Human Interface Device (HID)

Arduino と Human Interface Device (HID) についての話です。


Arduino と HID

USB <-> シリアル変換に ATmega8u2 とか ATmega16u2 が載っている Arduino はマイコンが二つ載っている事になります。

例えば Arduino UNOArduino Mega 2560 は廉価な互換品でない限り USB <-> シリアル変換に ATmega16u2 が使われています。

ICSP2 端子はこの ATmega16u2 をプログラムするためにあり、スケッチを ICSP2 経由で書き込めば、この ATmega16u2 を HID デバイスにする事が可能です。但し、Arduino の USB <-> シリアル変換としての機能は失われてしまいますから、Arduino としてのスケッチは ICSP1 から書き込む事になります。

See Also:


ATmega32u4 搭載の Arduino と HID

...ですが、今となっては ATmega16u2 をリプログラミングする必然性はあまりなくなっています。何故ならその用途のために Leonardo のような ATmega32u4 搭載 Arduino があるからです。

ATmega32u4 搭載 Arduino (または互換機) には以下のようなものがあります。

Arduboy も ATmega32u4 搭載ですね。これらの Arduino では以下の HID デバイスになるためのライブラリが用意されています。

詳細については Arduino Leonardo のページをご覧ください。

See Also:


その他の HID

micro:bit では BLE HID が使えます。

STM32F103 (Blue Pill) でも HID が使えます。


逆を行いたい

Arduino HID デバイスを扱うには USB ホスト機能が必要となります。

USB ホストシールドと Leonardo 系の Arduino を組み合わせると、HID デバイスの入力を読み取り、自身も HID デバイスとして振舞うことができるので、ロガーやコンバータのような事ができます。


ここにある情報が役に立って、「調べる手間が省けたからオマイに飯でもおごってやるよ」 というハートウォーミングな方がいらっしゃいましたら、下のボタンからどうぞ。

メニュー: