Найти в Дзене
Электроника, ESP32, Arduino

ESP32-S3 подключение USB клавы с мышью (комплект)!

Топовые платы ESP32-S3/S3 поддерживают собственный интерфейс USB. Да он устаревший и медленный как USB 1.1 (максимальная скорость составляет 12 Мбит/с), но без каких-либо дополнительных аппаратных заморочек позволяет подключать USB устройства. На момент написания данной статьи разработчик Espressif еще не встроил данные возможности (USB-хост) в среду Arduino IDE, однако на GitHub нашлась библиотека от разработчика из Японии, который сделал это за них. Библиотека называется EspUsbHost С клавиатурой библиотека дружит без проблем, с мышью без дополнительных танцев с бубном не завелась, тем не менее код собрался без каких-либо проблем под версию плат ESP32 3.0.7! и после небольшой "доработки напильником" полноценно заработал с беспроводным комплектом мышь+клавиатура от Logitech. Отдельной USB клавы и мыши у меня не было - но через USB коммутатор (Hub) у разработчика 2 устройства одновременно работать не смогли. Т.е. ресурсы библиотеки позволяют подключать к ESP32 и использовать их в качест
Оглавление

Топовые платы ESP32-S3/S3 поддерживают собственный интерфейс USB. Да он устаревший и медленный как USB 1.1 (максимальная скорость составляет 12 Мбит/с), но без каких-либо дополнительных аппаратных заморочек позволяет подключать USB устройства.

На момент написания данной статьи разработчик Espressif еще не встроил данные возможности (USB-хост) в среду Arduino IDE, однако на GitHub нашлась библиотека от разработчика из Японии, который сделал это за них.

Библиотека называется EspUsbHost

GitHub - tanakamasayuki/EspUsbHost: Library for using USB Host with ESP32

С клавиатурой библиотека дружит без проблем, с мышью без дополнительных танцев с бубном не завелась, тем не менее код собрался без каких-либо проблем под версию плат ESP32 3.0.7!

и после небольшой "доработки напильником" полноценно заработал с беспроводным комплектом мышь+клавиатура от Logitech.

ESP32-S3 USB HOST
ESP32-S3 USB HOST

Отдельной USB клавы и мыши у меня не было - но через USB коммутатор (Hub) у разработчика 2 устройства одновременно работать не смогли.

Т.е. ресурсы библиотеки позволяют подключать к ESP32

  • клавиатуру
  • мышь
  • комплект клавиатура + мышь

и использовать их в качестве полноценного устройства ввода, что будет актуально для проектов где например требуется огромное количество кнопок.

Схема подключения

Для питания USB устройства требуется 5V поэтому если у Вас вдруг окажется такая-же плата как у меня - необходимо капнуть капельку припоя на эту перемычку!!!

-3

В противном случае при питании от USB компьютера на выходе 5V не будет напряжения!!!

Через штатный дополнительный USB разъем на плате ESP32 клавы/мыши у меня тоже не запустились (похоже, что там тоже нет питания на выход).

-4

Был использован отдельный USB переходник.

-5
  • VBUS - +5V
  • GND - GND
  • D+ GPIO20 (USB_D+)
  • D- GPIO19 (USB_D-)

Тестирование + "напильник"

В библиотеке идут 2 примера:

examples/EspUsbHostKeybord/EspUsbHostKeybord.ino

к нему вопросов нет - подключаете любую USB клавиатуру, открываете COM порт и клацаете любые кнопочки на клавиатуре. Кроме символов ASCII в верхнем (клавиша Shift) и нижнем регистре, автор не поленился прописать и клавишу Enter (перевод строки). Сложно представить проект в котором бы не хватило клавиш клавиатуры от ПК.

examples/EspUsbHostMouse/EspUsbHostMouse.ino

С мышами вне не так радужно. Проводные мыши глючили, беспроводная, работала стабильно, но почему-то не менялась координата по Х

Методом "научного втыка" поменял в библиотеке 2 строчки кода:

-6

и слил оба тестовых примера в один.

-7

В первом приближении все работает как нужно.... Дальше нужно читать документацию.

Использовать клавиатуру и мышь в качестве устройства ввода на ESP32-S3 реально и даже из среды Arduino IDE.

Код примеров и "подпиленная" библиотека тут

ESP32-S3_keyboard_mouse.zip

Оригинальную качайте с GitHub.

Оглавление канала тут:

Всем удачи!