Можно ли создать устройство HID (например, клавиатуру), используя Arduino Uno?
В настоящее время у меня есть кнопки ввода на Arduino, выдающие выходы на последовательной линии. Итак, как я могу превратить мою текущую прошивку во что-то, что может вести себя как HID клавиатура?
- Должен ли я написать новый драйвер устройства окна?
- Должен ли я создать программный слой, который мог бы принимать мои последовательные данные и иметь окна, считывающие их как ввод HID?
- Есть ли лучший способ добиться этого, если это вообще возможно?
arduino-uno
serial
аномалия
источник
источник
Ответы:
Да, это! И есть отличный урок о том, как это сделать здесь
Как показано в руководстве, вам необходимо преобразовать код прошивки, чтобы вместо печати событий вы фактически инициировали события. Что вам нужно сделать, это добавить в свой код:
То, что вы делаете здесь, это отправка с вашего основного события Arduino микроконтроллера по последовательной линии на меньший микроконтроллер, который управляет USB-связью. Этот микроконтроллер возьмет эти ключевые «буферы» и передаст их при нажатии клавиши HID на клавиатуре USB через USB.
Помните, что ключевой символ (
chr
в данном коде) на самом деле является кодом, отправляемым через USB, который интерпретируется драйвером USB HID, который затем преобразует его в реальный символ с использованием текущей раскладки, настроенной для клавиатуры.Символ
mod
- это одна из клавиш-модификаторов, которые вы используете на клавиатуре (shift, control, alt ...), не0x00
являющаяся модификатором.Нет, тебе не нужно! С обновлением DFU ваше arduino будет восприниматься Windows как клавиатура USB.
Вам также не нужно этого делать, и это на самом деле очень плохая идея по многим причинам:
Наконец, в комментарии у вас возникают опасения по поводу кирпичной кладки вашего Arduino. Пожалуйста, поверьте мне и автору статьи, что вы не можете кирпичить свой Arduino, выполняя прошивку:
ПРИМЕЧАНИЕ. Нет шансов «заложить» устройство с помощью этого метода. Микропрограмма загрузчика Arduino всегда может быть обновлена с использованием протокола DFU!
В случае, если что-то действительно сильно не так, и вы получаете повреждение загрузчика в маленьком AVR (atmega8u2), вы все равно можете перепрошить его, используя другой Arduino или программатор Atmel, используя 6 контактов рядом с разъемом USB.
В конце, знайте, что единственный способ заглушить AVR, а значит и Arduino, это поиграть с предохранителями и сбросить программные предохранители. И даже в этом случае вы можете использовать HVSP для сохранения своего устройства, хотя зачастую проще взять новый чип.
источник
Я создал проект, который полностью заменяет загрузчик Arduino. Вы можете загружать эскизы и использовать его как HID. См. Проект HID на Github: https://github.com/NicoHood/HID
источник