USBキーボードを読む(Arduino+かんたんUSBホスト)

執筆者:

カテゴリ:

Img3146
会社のUSBキーボードに電源キーがついているUSBキーボードがあるらしい。「A」のキーを打ったら、AのキャラクタコードがPCに送信されるのだろうけど、本当にそうなのか?確認したことがあるか?キャラクタ以外のキーを押すと、どんなコードが出力されるのか?知りたい。そんな動機から、USBインタフェースのデータをシリアルに変換して見てみようとおもった。
最初は、PCにUSBキーボードをさしてアプリ、pythonやshellでusb deviceを制御すればいいのだろうと、おもったけど、それって、OSやドライバーの仕事。アプリにかってなことはさせんと、邪魔をしてくるはず。なので、このやり方は、NG
Windows 10におけるキーボードの秘密
ArduinoのArduino IDEのツールにシリアルモニターというのがあったはず。USBキーボードをArduinoに接続し、ArduinoをPCに接続し、Arduino IDEのシリアルモニターに表示させればうまくいくはず。でも,
USBにはホスト(マスター)/ゲスト(スレーブ)の関係があったはず。この接続だと、ArduinoがUSB HOSTになる必要。そんな用途のためにARDUINO HOST SHIELDが市場に出ているが、けっこう、高価。
マルツオンライン
ARDUINO USBホスト シールド

¥4819
もうちょっと、安いのがないかな?と、探して、たどりついたのが、この「かんたんUSBホスト」
スイッチサイエンス
USBキーボード→UART変換「かんたんUSBホスト」

¥1800
これです。ほしかったのは。
このデバイス、南京沁恒微电子(Nanjing Qinheng Microelectronics)製のIntel 8051のクローン、CH559をつかって実装しています。q61さんが、USB デバイスがマウスなのかシリアル変換ケーブルなのか判定したり、USB キーボードとどういうやりとりをすれば打った文字がわかるのか、みたいな上位レイヤーの処理をファームウェアに書いてくれています。あとは、使うだけ。
かんたんUSBホスト(HIDキーボード用)をつくりました
格安USBホストマイコン CH559をいじってみた(大盛)
私が書いたのは、こんな小さなArduinoプログラム
20230709-192039
ArduinoのソフトSerialを使って、USBキーボードから、データを取り出し、ArduioのハードSerialにデータを書き込んでおわり。USBキーボードからのデータが、文字コードなのか、そうでないのかで、処理を分けるべきなのでしょうが、かんたん治具をめざすのであれば、それもいらないでしょう。
目的達成、立派に役立ってくれました。
ありがとうございます。

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です