キーボード@yishiiさんの素のAndroid端末を外部のキーにより操作する実験と言う記事を参考に、Arduino+MicrobridgeでAndroidにPS2キーボードを繋いてみました。※PS2ってプレイステーション2のことじゃないよ以前、wimejiやbimeji経由でキー入力を行うデバイスをArduinoで作ったことが有りますが、今回のものはwimejiやbimejiと言ったAndroid側のアプリは必要無く、ハードウェアキーボードが付いた端末と同等な操作できます。若干反応は鈍いですが・・・実用レベルかも以前作った経験から「これは余裕だろ」と思ってたのが、思わぬ所でハマってしまい完成まで若干時間がかかりました・・・が、なんとかハマった所も対策が出来たっぽいので、また作り方を紹介したいと思います。USBホストシールドがメインとなります。AndroidとArduinoとの通信は、MicroBridgeによって行っています。One,IS01,HT03Aの3機種。XOOMでは動かず・・・そもそもMicrobridge全般がXOOMで動かないorz実はJapaninoでも動くことを確認しています。clientと言うのを作った時に、シールド化していたのでそれをそのまま利用しました。́・ω・`)AmazonでPS2キーボードを見てみると、500円台で売ってたりするんで、実験用ならコネクタ使わずにケーブル切ってt直接繋ぐって言う手もありかなとも思う。Bluetoothモジュールを接続するためのピンヘッダが付いているけど、モジュールを付けなければ特に問題は無い。ArduinoにUSBホストシールドを接続してから、各部品の配線を行って下さい。NC作り方とか上の回路図をもとに部品を接続し、ArduinoIDEを使ってプログラムをArduinoに書き込めばデバイスは完成です。IDEのlibrariesフォルダにコピーしておいてください。PS2Keyboardライブラリは、少し修正しているのでzipファイルに同梱しています。そのままコンパイルは通ると思います。オリジナルのライブラリは、onDownイベントしか取れないのですが、onUpイベントも欲しかったので、その辺りを修正しました。Accessoryのデバイスとして認識されません。これはMicroBridgeでも同様です。使い方とかAndroid側には特にアプリは必要とせず、完成したデバイスをAndroidに接続すると、即使えます。その際には設定で、USBデバッグをONにしてください。USBデバッグソフトキーボードが消える問題FlickWnnで、このデバイスを使うと、ソフトキーボードが消えてしまい、通常時にフリック入力で文字を入力したくても出来なくなってしまいました。その場合、一度他の入力方法に変更して、FlickWnnに戻すとソフトキーボードが表示されるようになりました。指定すると、ADBのshellに接続することができる。/>後は、shellコネクションに対してコマンドを送信するだけで、ADBのshell操作ができます。テキストの指定やキーイベントの指定で、キー操作を行えます。N1だけで発生する不具合があった。キー操作が、Microbridge接続後に、最初の1回だけ正しくできるものの、その後2回目からは操作ができなくなると言う不具合。これはキー操作だけではなく、shellコマンド全般に言えることかもしれない。IS01やHT03Aでは問題なく操作できるのに、N1だけで発生する。ちなみに、XOOMではMicrobridge自体が動かない。実際にADBから送る場合には、以下のような文字列を送ればキーイベントが発行されます。23と有ったので、コマンドの先頭にexecを付けてみた。23n");これで、一応2回目以降の操作もできるようになったものの、困ったことに、キー操作のバッファリングが行われなくなると言う副作用が現れた。いうことかと言うと、例えば「konnnitiha」と普段通り連続で入力すると、「k」とか「h」とかだけが入力されて、未処理の途中のキー操作が全部吹っ飛んでしまう。■解決策その2Microbridgeで公開されているライブラリには、exampleとしてArduinoのシリアル経由で操作するshellターミナルのようなプログラムが含まれている。試しに、このshellプログラムを利用して、手入力でinputコマンドを実行すると2回目以降も問題無くキー操作ができることが分かった。