ESP32-S3 ile USB HID Cihaz Tasarımı: Özel Klavye Firmware
ESP32-S3 native USB özelliğini kullanarak sıfırdan bir HID klavye cihazı nasıl yapılır? TinyUSB ile adım adım.
ESP32-S3 ve Native USB
ESP32-S3, seleflerinden farklı olarak native USB desteğine sahip. Harici USB-Serial bridge e gerek kalmadan doğrudan USB HID, CDC veya MSC cihazı olarak davranabiliyor.
Donanım Bağlantısı
ESP32-S3 DevKit üzerinde GPIO19 USB D- hattına, GPIO20 USB D+ hattına bağlanır. GND ortak toprak hattına bağlanır.
TinyUSB Konfigürasyonu
idfcomponent.yml dosyasına espressif/esptinyusb bağımlılığı eklenir. idf versiyonu 5.0 veya üstü gereklidir.
HID Descriptor
HID report descriptor, TUDHIDREPORTDESCKEYBOARD makrosu kullanılarak tanımlanır. Bu descriptor USB host a cihazın standart bir HID klavye olduğunu bildirir.
Tuş Gönderme Mantığı
tudhidready() kontrolü yapılır. Hazırsa 6 elemanlı keycode dizisi oluşturulur, tudhidkeyboard_report() ile gönderilir. Ardından kısa bir gecikme sonrası NULL raporu gönderilerek tuş bırakma sinyali verilir.
Makro Tuş Uygulaması
GPIO0 butonuna basıldığında önceden tanımlı bir metin dizisi USB klavye olarak gönderilir. Örneğin git commit -m metni otomatik yazılabilir.
Sonuç
ESP32-S3 ile 10 dolar altında tam özellikli bir USB HID cihazı geliştirebilirsiniz. Mekanik klavye, macro pad veya özel input cihazları için mükemmel bir platform.
İlgili yazılar