[Arduino]keyboard(USB)

シリアルポートを通じて、USBキーボードを押すことができるという仕組みです。

たとえば「A」のキャラクターコード(0x41)を1バイト送信すると、キーボードの「A」キーを押すことができます。

材料

回路図

Arduino Leonardoはプログラムを書き込むことによってHIDデバイスに変身する機能があります。それを使ってUSBキーボードとして動作させます。

USBシリアル変換モジュールはここでは「FT232RQ」というCTS/RTS端子付きのタイプを使っています。CTS/RTSがない製品を使っても問題ありません。

Arduino IDEの下準備

↑ ボードは「Arduino Leonardo」を選択します。シリアルポートも設定しておきましょう。

*選択したCOMポートの番号が他と衝突して、通信できない場合があります。その時はデバイスマネージャでCOMポート番号がかぶらないように変更しましょう。

↑ ライブラリを管理(ライブラリマネージャ)をメニュー選択して、Keyboardライブラリをインストールします。

↑ シリアルポートからデータを受信してキー入力を行う「KeyboardSerial」というサンプルプログラムがすでにArduino IDEに存在しています。ファイル→スケッチ例→USB→Keyboard→KeyboardSerialをメニュー選択すると、ファイルを開くことができます。好きなフォルダに保存しましょう。

プログラムの修正

↑ KeyboardSerialの中身をこのように修正します。修正は3か所です。

9600→4800

ボーレートを4800に落とすことで、キー入力が早すぎることを防ぎます。

Serial→Serial1

Arduino Leonardoではハードウェアのシリアルポートを使う時は「Serial」ではなく「Serial1」と記述します。

inChar+1→inChar

キャラクターコードを+1しないようにします。

キー操作側のプログラム

準備中