Возможна ли программируемая клавиатура (Arduino Pro Micro + USB HOST)?
Как использовать Arduino для создания программируемой клавиатуры?
Я хочу подключить USB-клавиатуру к Arduino, а затем подключить Arduino к компьютеру по USB, чтобы Arduino распознавалась как клавиатура. Это позволит мне переназначить клавиши.
Необходимое оборудование для этой настройки:
[Клавиатура] -> [Arduino (как виртуальная клавиатура)] -> [Компьютер]
Цель — достичь этой конфигурации как можно более дешевым способом.
- Arduino Pro Micro, использующая чип ATmega32u4 и способная осуществлять связь по USB в качестве виртуальной клавиатуры.
- USB-хост-плата типа это, чтобы получить ДРУГОЕ USB-подключение, к которому я смогу подключить настоящую клавиатуру.
@aguiadouro, 👍0
Обсуждение2 ответа
Лучший ответ:
Все платы Arduino должны поддерживать функцию USB CDC Device для последовательной связи. Некоторые более сложные платы Arduino могут поддерживать другие USB-протоколы, например, USB HID Host (или Device) для связи с клавиатурой. Лишь немногие, если таковые вообще имеются, поддерживают более одного USB-порта одновременно.
Для создания устройства, которое может работать как USB HID-хост для прослушивания клавиатуры и одновременно как USB HID-устройство для отправки сигналов клавиш на компьютер, скорее всего, понадобятся две платы Arduino. По одной для каждой задачи.
Кроме того, ко многим платам Arduino, поддерживающим порт USB HID Host, можно добавить USB Host Arduino Shield.
Кроме того, некоторые недорогие платы Arduino используют второй процессор в качестве интерфейса USB CDC-устройства. Рассмотрите возможность перепрограммирования этого второго процессора так, чтобы он работал как USB HID-устройство для имитации клавиатуры.
Рекомендуется использовать хорошо документированное оборудование, поддерживаемое существующими библиотеками и инструментами. USB — сложная задача, и без существующей программной поддержки её реализация может превратиться в чрезвычайно долгую и трудоёмкую задачу.
Я решил ответить. Думаю, эта версия ответа поможет вам лучше сформулировать вопрос., @st2000
Разве нельзя использовать одну плату USB HOST?, @aguiadouro
Вам наверняка удастся найти более сложную плату Arduino с поддержкой USB/HID-хоста. Возможно, вам также удастся найти плату Arduino, которая одновременно поддерживает USB/HID-хост и устройство. Для взаимодействия с клавиатурой вам понадобится USB/HID-хост. Также вам потребуется отдельное USB/HID-устройство, которое будет выполнять функции клавиатуры для хост-компьютера., @st2000
Для USB HID требуется Arduino Pro Micro (ATmega32u4). Для взаимодействия с USB-клавиатурой вам понадобится плата USB Host Shield / USB Host Mini Board.
Вам потребуется установить библиотеки USBHost и HID-Project в Arduino IDE.
Если хотите сэкономить, можно использовать Arduino UNO + USB Host Shield. Вам понадобится дополнительная программная эмуляция клавиатуры, например, V-USB. Она не очень надёжна. Arduino Pro Micro — лучший выбор, поскольку он изначально поддерживает HID.
Вы также можете сделать компактную печатную плату клавиатуры. Вот пример.
- Ввод текста в ESP8266 с помощью USB-клавиатуры
- Как преобразовать USB в PS/2?
- Можно ли создать устройство IP-to-USB HID (клавиатуру) с помощью Arduino?
- Keyboard.print() пропускает клавиши
- Разбудить компьютер из Uno
- STM32 в качестве клавиатуры
- Считать клавиши с обычной USB-клавиатуры
- Кнопка и поворотная ручка для отправки нажатия клавиши на ПК
Интересный вопрос. Я подумывал ответить общим (бесполезным?) ответом. Затем уточнить ответ, поскольку вы добавили ограничения к своему вопросу. Но решил пойти по пути большинства и просто задать несколько вопросов, чтобы помочь вам сузить проблему здесь, в комментарии (но обязательно отредактируйте свой вопрос, чтобы улучшить его!). Какую плату Arduino вы используете? Или, лучше сказать прямо: USB гораздо сложнее, чем многие думают. Вряд ли Arduino Uno справится с этим. И даже в этом случае, не без больших усилий. И даже в этом случае вам, вероятно, понадобятся две платы Arduino. Одна для USB-хоста, а другая для USB-периферии., @st2000
Я изменю свой вопрос, добавив: Arduino Pro Micro + USB HOST Но я не знаю, сработает ли это., @aguiadouro
Я бы воздержался от покупки любого продукта с предупреждениями вроде: «Покупайте осторожно, если у вас нет возможности разработки, и временно не предоставляем техническую поддержку!». USB — очень сложная система! Если RS232 описывается на бумаге, то USB описывается в книге! Скорее всего, вы не хотите писать собственный код для USB. Вам нужен хорошо поддерживаемый продукт и проверенные программные библиотеки, на основе которых можно создавать свой код., @st2000
Arduino Pro Micro (ATmega32U4) может работать как USB-клавиатура, используя библиотеку Keyboard.h., @liaifat85