[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しないようにします。
キー操作側のプログラム
準備中