Elektronik 14 dakika okuma

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.

E
Emre Cihan
· · 157 görüntüleme
## 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

idf_component.yml dosyasına espressif/esp_tinyusb bağımlılığı eklenir. idf versiyonu 5.0 veya üstü gereklidir.

## HID Descriptor

HID report descriptor, TUD_HID_REPORT_DESC_KEYBOARD makrosu kullanılarak tanımlanır. Bu descriptor USB host a cihazın standart bir HID klavye olduğunu bildirir.

## Tuş Gönderme Mantığı

tud_hid_ready() kontrolü yapılır. Hazırsa 6 elemanlı keycode dizisi oluşturulur, tud_hid_keyboard_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.
Etiketler: #ESP32 #PCB #USB HID
Paylaş: Twitter / X
E
Emre Cihan
Hardware & Software Engineer