На некоторых платах ESP32-S3 есть дополнительный USB разъем.
На той плате которая у меня - тот что справа подключен через USB-UART мост на базе CH343 и подключен к аппаратному UART 0. Через него можно заливать прошивки и делать отладку кода через виртуальный COM порт.
А вот второй разъем многофункциональный. Он может работать как USB-HOST т.е. к нему можно подключать USB устройства (смотри прошлую статью)
Либо наоборот позволяет превратить ESP32-S3 в USB устройство. В среде Arduino IDE все это уже доступно "из коробки" - ни каких дополнительны библиотек не потребуются. Все примеры уже есть в среде Arduino IDE.
Список устройств, в которые можно превратить ESP-шку достаточно большой.
Как работает этот функционал разберем на примере создания комплекта клавиатуры/мыши.
Перед заливкой любого примера в среде Arduino IDE важно сделать одну настройку!
Ежели теперь залить в плату пример:
libraries/USB/examples/KeyboardAndMouseControl/KeyboardAndMouseControl.ino
и подключить плату к ПК вторым кабелем, то можно обнаружить, что в диспетчере устройств появилось еще 2 дополнительных устройства:
т.е. Windows видит СТАНДАРТНУЮ мышь и клавиатуру.
Зачем все это может быть нужно?
Самый простой пример - устройство имитирующее бурную деятельность сотрудника, которое кстати стоит не дешево.
Польза в этом устройстве сомнительная (как ни странно на работе все-таки лучше работать, а если работа не нравится, то поискать что-нибудь другое). Тем не менее если нет ни какой разницы - зачем платить больше?
Главный плюс самоделок - если вдруг устройство станет не нужным - то ESP32 можно будет перепрограммировать под другие задачи, а вот покупной "шевелятор-мыши" так навсегда и останется только "шевелятором".
Можно прикрутить энкодеры и управлять каким-нибудь Windows проигрывателем поддерживающие горячие клавиши, или звуковой картой (это будет точно удобнее чем клацать кнопки на мультимедийной клавиатуре). Либо сделать нестандартную клавиатуру.
Такие проекты в сети тоже встречаются.
Когда то я еще делал самодельные рули на базе Arduino Leonardo, поэтому заодно решил посмотреть как будет выглядеть Gamepad.
После загрузки скетча в панели управления Windows можно будет найти вот такую штуковину:
4 Оси, 32 кнопки - руль или контроллер для игры в авиасимуляторы на таком функционале сделать элементарно.
Разработчики от Espressif в данном случае не стали изобретать велосипед, панель управления игрового устройства для Arduino Leonardo выглядит аналогично, а значит без проблем можно сделать что-то такое:
В самодельном руле тоже есть плюс. Если вы не фанат компьютерных игр (играете не часто), то покупать дорогущий руль смысла нет ни какого (и куда его потом девать, если вдруг желание играть пропадет совсем). А изредка управлять каким-нибудь грузовичком из игры крышкой от пластикового контейнера все же удобнее, чем тыкать на клавиатуре стрелочки.
Статья имела больше ознакомительный характер - если вдруг возникнет потребность собрать какое-нибудь самодельное периферийное устройство для компьютера с USB интерфейсом - ESP32-S3 для этих целей подходит идеально.
Список устройств можно посмотреть тут
Оглавление канала тут:
Всем удачи!