Keyboard
Библиотека Keyboard превращает совместимую плату Arduino в USB-клавиатуру — она имитирует нажатия клавиш, отправляя символы, строки и спецклавиши в активное окно.
Полная статья
Описание
Библиотека Keyboard реализует поддержку USB HID-клавиатуры на платах Arduino с нативным USB. С точки зрения операционной системы такая плата неотличима от обычной клавиатуры: она может отправлять символы, строки, Enter, горячие клавиши и специальные клавиши — Ctrl, Shift, Esc, F1 и другие.
Главное, что нужно понять с самого начала: библиотека не «вставляет текст» в конкретное приложение. Она имитирует физические нажатия клавиш в том окне, которое активно в данный момент на компьютере. Если пользователь переключится на другое окно, именно туда и попадут следующие символы. Раскладка клавиатуры, выбранная в системе, тоже влияет на результат — символы, которые вы отправляете, могут интерпретироваться иначе, чем ожидалось.
Не все ASCII-символы передаются корректно. Печатаемые символы, как правило, работают предсказуемо. Для управляющих и специальных клавиш используйте именованные константы из раздела Keyboard Modifiers and Special Keys — это надёжнее, чем передавать числовые коды напрямую.
Совместимое оборудование
Keyboard работает только на платах с нативной поддержкой USB HID. Классические Arduino Uno и Mega не поддерживают эту библиотеку через основной USB-разъём.
| Плата | Поддерживаемые контакты |
|---|---|
| Leonardo | Все цифровые и аналоговые контакты |
| Micro | Все цифровые и аналоговые контакты |
| Arduino Due | Все цифровые и аналоговые контакты |
| Zero | Все цифровые и аналоговые контакты |
| UNO R4 Minima | Все цифровые и аналоговые контакты |
| UNO R4 WiFi | Все цифровые и аналоговые контакты |
| GIGA R1 Wi-Fi | Все цифровые и аналоговые контакты |
| Nano ESP32 | Все цифровые и аналоговые контакты |
| Семейство MKR | Все цифровые и аналоговые контакты |
Где применяется
- Макропады и панели горячих клавиш — компактные устройства с кнопками для редакторов кода, DAW, CAD-программ или игр.
- Автоматизация ввода — отправка тестовых строк, команд терминала или повторяющихся последовательностей символов.
- Устройства доступности — большие кнопки, ножные педали, специальные переключатели для людей с ограниченными возможностями.
- Учебные стенды — демонстрация работы USB HID и принципов взаимодействия микроконтроллера с компьютером.
Практические замечания
- Перед тем как реально отправлять нажатия клавиш, отладьте логику скетча через
Serial.print(). Так вы увидите, что именно собираетесь «напечатать», не рискуя случайно набрать команды в активном окне. - Привязывайте отправку клавиш к конкретному событию: нажатию физической кнопки, изменению состояния переключателя, сигналу от датчика. Скетч, который непрерывно печатает символы или удерживает клавиши, может заблокировать загрузку нового кода на плату.
- Библиотеки Keyboard и Mouse могут мешать друг другу, если вызовы
Mouse.move()иKeyboard.print()происходят одновременно и бесконтрольно. Следите за тем, чтобы управляемые события были чёткими и предсказуемыми. - Раскладка клавиатуры на компьютере влияет на то, какой символ появится на экране. Если вы отправляете, например,
Keyboard.print()со строкой на кириллице, убедитесь, что в системе активна нужная раскладка. - Если плата «зависла» в режиме бесконечного ввода и не принимает новый скетч, попробуйте быстро дважды нажать кнопку Reset — это переведёт плату в режим загрузчика на несколько секунд.