Как создать USB HID из Arduino?

У меня есть Arduino Mega, и появилось желание, сделать usb-устройство, которое будет легко распознаваться компьютером. Например, как USB HID - клавиатура, мышь и т. д.
Где можно узнать, про то как работать с USB, как компьютер распознаёт устройство?
  • Вопрос задан
  • 24209 просмотров
Решения вопроса 2
@Inkvizitor66
Брать ардуино на Atmega32u4 (leonardo большая, pro micro компактная) она умеет в железный HID и требует всего пары строк инициализации.
А если строить на атмера32, atmega328 (большинство ардуин) то как в ответе от Александр v-usb в помощь.

Upd. Сперва ответил на вопрос шапки, потом прочитал уточнение. Но все равно пускай будет
Ответ написан
Комментировать
@vanyamba-electronics
Самому пытаться программировать USB можно, конечно, но приготовьтесь, что на решение только одной этой задачи у Вас уйдут следующие несколько лет. Проще воспользоваться готовой библиотекой.
В случае, если в микроконтроллере нет встроенного USB-порта, то можно попробовать использовать библиотеку V-USB (виртуальный USB), но как и все чисто софтовые решения, это скорее эмулятор, чем полноценный порт. Требует много процессорного времени, и к тому же качество её работы оставляет желать лучшего. Например, если погрузить компьютер в спящий режим, то V-USB вряд ли это распознает, и придётся каждый раз переподключать микроконтроллер, или нажимать на кнопку сброса.
Так что попробовать стоит, но лично я рекомендую использовать микроконтроллер ATmega32U4, на котором построена плата Arduino Leonardo. Для него поддержка USB HID реализована в самом программном обеспечении Arduino IDE, так что для того, чтобы превратить микроконтроллер в "мышь" и "клавиатуру" (одновременно), достаточно просто загрузить скетч примера.
И наконец, третий вариант. В современных Arduino вместо чипа USB-RS232 используется микроконтроллер ATmega16U2. Это практически тот же Arduino Leonardo, только памяти у него в 2 раза меньше. Можно перепрограммировать в USB HID его, разве что потребуется программатор, потому что он программируется через интерфейс ICSP.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
NeiroNx
@NeiroNx
Программист
гуглите по "V-USB HID Arduino"
вот один из примеров rukodelie-ds.ru/forum/viewtopic.php?t=804

Также есть от Digispark для Attiny85 - его основа V-USB
Также вам придется узнать что такое "HID дескриптор" и о правилах его написания(в инете есть документация и проги для этого).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы