はじめに
以前より MicroPython には USB HID のインタフェースが無いので、キーボード自作などには CircuitPython を使うという話がよくあります。
そこで、最近になっても MicroPython では USB HID が使えないのか調べてみました。
pyb モジュールには、けっこう前から USB HID インタフェースがある
MicroPython の pyb モジュールには、けっこう前(たぶん v1.9)から USB HID インタフェースがあります。
この USB_HID
クラスを使った 記事も見つけることができます。
ただ、pyb モジュールが使えるのは pyboard など、STM32 の MCU を積んだ一部のボードに限られるので、自作キーボードなどの目的で入手すること方は少ないでしょう。
v1.23.0 で追加された USBDevice クラスは使えるか
RP2系、samd系のMCU のポートに限られますが、MicroPython v1.23.0 で machine モジュールに USBDevice クラスが追加されました。
直接 HID をサポートしているわけではありませんが、あらゆる USB デバイスを MicroPython で実装できるとのことです。USBDevice クラスは低レベルAPIとのことで、これをベースにした高レベルAPIは microputhon-lib を参照してくれとのことです。
そこで、micropython-lib を除いてみると HID デバイスの実装がいくつか見つかりました。
次回からは、この micropython-lib にある usb-device-keyboard
パッケージを試してみます。