Arduino UNO R4 Minima USB HID
Узнайте, как использовать UNO R4 Minima в качестве мыши/клавиатуры.
В этом руководстве вы узнаете, как эмулировать мышь/клавиатуру с помощью платы Arduino UNO R4 Minima, используя API Keyboard и Mouse.
Эта функция может быть использована для создания игровых контроллеров, клавиатурных расширений или других HID-устройств.
Цели
Цели данного руководства:
Научиться эмулировать клавиатуру (нажатия клавиш),
Научиться эмулировать мышь (координаты x, y).
Необходимое оборудование и программное обеспечение
Устройство интерфейса человека (HID)
Устройства интерфейса человека (HID) — это устройства, разработанные для людей (клавиатуры, мыши, игровые контроллеры и т. д.), которые часто отправляют данные по USB на компьютер. Когда вы нажимаете клавишу на клавиатуре, вы отправляете данные на компьютер, который считывает их и, в свою очередь, активирует соответствующую клавишу.
UNO R4 Minima имеет встроенную поддержку HID — функция, которая есть на большинстве современных плат разработки, но отсутствовала в предыдущих версиях UNO.
Чтобы превратить вашу плату в HID, вы можете использовать API keyboard/mouse, встроенный в пакет платы. Вы можете ознакомиться с документацией этого API в справочнике языка:
Помехи при загрузке скетча
Из-за многопроцессорной архитектуры платы UNO R4 Minima загрузка может завершиться ошибкой No device found on ..., когда на плате выполняется скетч, использующий возможности HID.
По этой причине следует использовать следующую процедуру для загрузки в таких условиях:
1. Быстро дважды нажмите и отпустите кнопку с надписью «RESET» на плате. Светодиод с надписью «L» на плате должен начать пульсировать.
2. Выберите порт платы в меню Arduino IDE. Порт мог измениться после предыдущего шага, поэтому убедитесь, что он выбран правильно.
3. Загрузите скетч как обычно.
Клавиатура
Для использования функций клавиатуры необходимо подключить библиотеку в начале скетча. Класс Keyboard содержит несколько методов, полезных для эмуляции клавиатуры.
#include <Keyboard.h>
Keyboard.method()
Пример работы с клавиатурой
Для эмуляции клавиатуры мы можем использовать методы press() и releaseAll(). Это позволит эмулировать нажатие клавиши, а также её отпускание. Следующий пример выводит «w» каждую секунду.
#include <Keyboard.h>
void setup() {
Keyboard.begin();
delay(1000);
}
void loop() {
Keyboard.press('w');
delay(100);
Keyboard.releaseAll();
delay(1000);
}
Дополнительные примеры можно найти по ссылкам ниже:
Мышь
Для использования функций мыши необходимо подключить библиотеку в начале скетча. Класс Mouse содержит несколько методов, полезных для эмуляции мыши.
#include <Mouse.h>
Mouse.method();
Пример работы с мышью
Следующий пример немного перемещает обе оси мыши (на 10 пунктов), вперёд и назад.
#include <Mouse.h>
void setup() {
Mouse.begin();
delay(1000);
}
void loop() {
Mouse.move(10,10);
delay(1000);
Mouse.move(-10,-10);
delay(1000);
}
Дополнительные примеры можно найти по ссылкам ниже:
Заключение
В этом руководстве мы продемонстрировали базовое использование HID с UNO R4 Minima. Для просмотра полного API обратитесь к следующим ресурсам:
Там вы найдёте подробный справочник и хорошие примеры, которые помогут вам начать работу с функциями HID.