USB HID - Клавиатура для Windows и Android на Arduino
Здесь описываются детали построения универсальной последовательной шины (USB HID) внешней клавиатуры для устройств, работающих в операционных системах Windows и / или Android. Клавиатура - это, по сути, кнопочная клавиатура, которая посылает предварительно подключенную клавиатуру к подключенной системе. Благодаря простой аппаратной проводке и эскизу для эмуляции клавиатуры, благодаря USB HID, Arduino Leonardo Pro Micro является обязательным. Имейте в виду, что Arduino Uno не поддерживает USB HID и, следовательно, не подходит для этого проекта. Первый имеет процессор Atmega32U4 со встроенным USB-последовательным интерфейсом. 32U4 поставляется с полноскоростным интерфейсом USB-приемопередатчика, позволяя программе Leonardo Pro Micro запрограммировать эмуляцию любого USB-устройства. Проще говоря, вы можете запрограммировать его так же, как клавиатура, мышь или другое USB-устройство HID-класса.
Аппаратное обеспечение
Как показано выше, для завершения проекта требуется всего два аппаратных компонента. Первый - плата Mini Leonardo Pro Micro (5-V / 16-МГц), а вторая - тактический коммутатор Omron B3F-4055 (я получил оба из интернет-магазинов). Чтобы завершить установку оборудования, подключите тактильный переключатель к D2 и GND платы микроконтроллера. Это оно!
Прошивка
Код (который на самом деле является фрагментом другого кода, подготовленного мной) использует библиотеку клавиатуры для блокировки экрана рабочего стола вашего компьютера Windows или открытия меню «Календарь» на вашем телефоне / планшете Android при нажатии кнопки. Эскиз имитирует нажатие клавиши в последовательности двух клавиш одновременно, и после небольшой задержки он отпускает их. Код готов отправить только одну комбинацию клавиш после нажатия клавиши. В Arduino IDE выберите плату как «Arduino Leonardo» (Tools - Board), скопируйте / вставьте и загрузите (Ctrl + U) скомпилированный код, как обычно.
* USB HID Keyboard for Windows & Android
* Microcontroller: Mini Leonardo Pro Micro (5V/16MHz)
* IDE: Arduino 1.6.9
* OS (Tested): Windows 7 Ultimate (x64) & Android 5.1.1 (Lollipop)
* T.K.Hareendran/2018
*/
#include “Keyboard.h”
#define KEY_PIN 2
static void KeyDown(void)
{
Keyboard.press(KEY_LEFT_GUI);
Keyboard.press(‘l’);
}
void setup(void)
{
Keyboard.begin();
pinMode(KEY_PIN, INPUT);
digitalWrite(KEY_PIN, HIGH);
}
void loop(void)
{
static uint8_t buttonStateLast = 0;
uint8_t buttonState;
buttonState = digitalRead(KEY_PIN);
if (buttonState != buttonStateLast) {
buttonStateLast = buttonState;
if (buttonState == 0) {
KeyDown();
delay(100);
Keyboard.releaseAll();
}
}
delay(50);
}
Подключите готовое к использованию устройство в любой свободный USB-порт компьютера под управлением Windows и нажмите кнопку. Рабочий стол будет заблокирован мгновенно. После блокировки компьютер может быть разблокирован с помощью клавиатуры с / без пароля в соответствии с настройками входа в систему. Для Android подключите устройство к смартфону / планшету через адаптер / кабель USB-OTG. Настройка внешней клавиатуры на Android не является строго необходимой, но это не займет много времени - и вы можете с самого начала настроить ее на свои нужды. Затем нажмите кнопку «ключ», чтобы открыть меню «Календарь». Он должен работать.
После того, как все настроено и работает, вы даже можете сделать еще один шаг, изменив линии кода и добавив больше кнопок для создания настраиваемой USB-HID-клавиатуры.
Вероятно, вам не нужна такая клавиатура, но если вам иногда понадобится специальная клавиатура для чего-то странного, сверните свои рукава и продолжайте.