Ввод текста в ESP8266 с помощью USB-клавиатуры

Мне нужно иметь возможность подключить USB-клавиатуру, например, маленькую Xbox-клавиатуру, или хорошую беспроводную, к устройству на базе ESP8266, чтобы вводить пароли в MCU. Адаптация библиотеки PS2 для AVR (PS2==USB-пинауты для KB) оказалась ненадежной, поэтому я попробовал поддельный Pro Mini.

Она работала намного лучше, идеально с PS2, но только с подмножеством моих USB-клавиатур, а именно с клавиатурой 104 Das и старой школьной Dell. Моя клавиатура Mac 2002 года не работает, ни одна из моих 5 беспроводных клавиатур не работает, и ни Xbox, ни складные клавиатуры не работают. Ничего из того, что представляется как составное устройство (например, клавиатура с USB-слотами), похоже, работают только самые простые (без причудливых клавиш/ручек) клавиатуры.

  1. Позволит ли мне USB-хост-модуль (вроде Uno shield, но не shield) считывать данные не только с базовых USB-клавиатур, эмулирующих PS2?

  2. Является ли код для чтения основных буквенно-цифровых клавиш одинаковым для разных клавиатур или для каждой модели потребуются специальные инструкции? (подобно тому, как драйвер предоставляет фактическую ОС)

  3. Если это не «plug and play», какой был бы простой способ (без пайки) безопасного ввода паролей в микроконтроллер?

РЕДАКТИРОВАТЬ:

Ранние клавиатуры USB и клавиатуры PS2 имеют одинаковую распиновку и поведение, поэтому вы можете использовать Pro Mini и Arduino ps2keyboard для чтения таких клавиатур USB, либо с помощью пассивного адаптера USB-клавиатура-PS2-папа менее чем за 1 доллар США, либо через USB-мама, подключенная так же. Более сложные клавиатуры вообще не работают как таковые, отсюда возможная необходимость в модуле USB-хоста.

, 👍3

Обсуждение

непонятно, что вы описываете... вы говорите, что хотите использовать USB-клавиатуру, но говорите о клавиатуре PS2... пожалуйста, обновите свой вопрос, чтобы прояснить его, @jsotola

посмотрите на это https://arduinoprosto.ru/q/48447/how-to-detect-host-computer-when-boot-power-on-just-use-usb-without-any-sens ...... используйте arduino nano, @jsotola

@jsotola: Я хочу печатать на ESP с помощью USB-клавиатуры, надеюсь, беспроводной, ПК поблизости нет..., @dandavis

некоторые, возможно, большинство, USB-клавиатур имеют «режим загрузки клавиатуры» (или что-то в этом роде), который используется для включения функций клавиатуры при навигации по меню BIOS. .... Модуль USB-хоста Arduino должен вам подойти. ... проблема в том, чтобы разобраться с программным обеспечением, @jsotola


2 ответа


Лучший ответ:

4

Моя клавиатура Mac 2002 года выпуска не работает,

Меня это не удивляет — современным компьютерам Mac никогда не требовалась поддержка PS/2.

ни одна из моих 5 беспроводных клавиатур не работает,

Это потому, что это не клавиатуры, а беспроводные приемопередатчики, которые обеспечивают интерфейсы USB HID.

И то же самое касается Xbox или складных клавиатур.

Слишком современно, и, конечно, XBox никогда не нуждался в поддержке PS/2.

Ничто из того, что можно представить как составное устройство, не работает (например, клавиатура с USB-слотами), работают только предельно простые (без замысловатых клавиш/ручек) клавиатуры.

Конечно, это не клавиатуры PS/2, это USB-устройства.

Старые клавиатуры обеспечивали двойную работу - USB и PS/2. Это функция, предоставляемая клавиатурой, а не стандартом USB. Клавиатуры Mac, поскольку компьютеры Apple никогда не имели портов PS/2 (так как PS/2 - это стандарт IBM от компьютеров PS/2 еще в 80-х и 90-х годах). Современные клавиатуры, которые предоставляют больше, чем просто функциональность клавиатуры, не могут на самом деле предоставлять PS/2, поскольку она не может предоставлять другие функции клавиатуры. То же самое касается составных устройств или беспроводных устройств - возможности, которые они предоставляют, превышают то, что может предоставить PS/2, поэтому было бы нелогично пытаться обеспечить поддержку PS/2 - особенно с учетом того, что порты PS/2 становятся все более редкими на компьютерах.

Позволит ли мне хост-модуль USB (например, шилд Uno, но не шилд) считывать данные не только с базовых USB-клавиатур, эмулирующих PS2?

Конечно, если вы сможете заставить библиотеки работать на ESP8266, что само по себе может оказаться огромной проблемой.

Является ли код для считывания основных буквенно-цифровых клавиш одинаковым для разных клавиатур или для каждой модели потребуются специальные инструкции? (подобно тому, как драйвер предоставляет фактическую ОС)

Все USB-клавиатуры являются устройствами HID, соответствующими классу. Они отправляют отчеты HID в стандартном формате, возможно, с пользовательскими дополнениями. Хотя основы всегда одинаковы.

Если это не «plug and play», какой был бы простой способ (без пайки) безопасного ввода паролей в микроконтроллер?

Это было бы далеко от принципа «plug and play» для того, чтобы интерфейс USB-хоста работал с ESP8266. Рассмотрите другие, более простые пути, такие как использование последовательного порта или настройка ESP8266 в качестве точки доступа и использование веб-браузера для его настройки.

,

1

USB Host Shield Library 2.0 поддерживает ESP8266 уже около года. Поддержка ESP32 была добавлена совсем недавно.

Ниже приведена ссылка на файл README проекта, в котором перечислены поддерживаемые платы и микроконтроллеры.

https://github.com/felis/USB_Host_Shield_2.0#boards

,