Техника

а обычная Arduino UNO может ли по USB-порту отправить клик мышью или нажатие кнопки клавиатуры?

А пропеллера узнаю.. да по походке..
Пеганов Алексей
Пеганов Алексей
50 205
Лучший ответ
Может, но тут колдунство есть. Надо писать программу для Atmega8U2 - тот который интерфейсный контроллер, а не основной, и не на языке скетчей ардуины. И не у всех UNO он есть - у китайских тупо железный USB-UART
только R3 с перепрошитым контроллером может
Arduino UNO основано на МК типа ATmega328P (168 и т. д.) у которого нету встроенной поддержки USB. В качестве USB-UART преобразователя используются микросхемы типа FT232 (в оригинальном Уно), CP2102, CH340. Такие микросхемы ОБЫЧНО не могут использоваться для таких целей (некоторые из самих этих микросхем можно перепрограммировать под другой PID/HID, но не все и это сложное дело, для этого надо специальные программы, подключение к другим пинам этих микросхем, они могут быть залочены и т. д.).
Я не рассматриваю варианты Ардуино, в котором мост USB-UART сделан в виде ATmega8U2, т. к. это очевидно, что перепрошив этот контроллер, можно получить то, что тебе нужно, но и второй МК тогда совершенно не нужен.
Итак на Ардуино Уно стандартными способами сделать то, что ты хочешь, не получится.

Однако есть готовые библиотеки и способ подключения МК AVR напрямую к USB (без USB-UART преобразователя) с програмной эммуляцией USB-стека, и там ты можешь сделать эммуляцию чего хочешь, хоть мышки, хоть клавиатуры, хоть COM-порта, да чего угодно, в приницпе, на что быстродействия хватит.
Называется это V-USB: https://www.obdev.at/products/vusb/prjhid.html

Вот, например, программная эмуляция на голом ATmega8 (даже без USB-UART микросхемы) мышки (конкретно в этом проекте мышка "магнетометрическая", но можно сделать любую).
AA
Anna Anna
13 683