Arduino Leonardoでキーボード入力でAndroid端末にデータを送る

 ArduinoからAndroid端末にデータを送れれば色々応用がきく。各種方法はあるが長所短所がある。Android端末用のUSBハブが安く手に入ったので、キーボード入力でAndroid端末にデータを送る方法を試した。
長所としては手軽だ。例えばBluetoothだとAndroid端末側にSPPプロファイルがないと駄目だし、Arduinoで使えるBluetoothは高いし少ない。短所としてはAndroid端末側にUSBホスト機能が必要。

 xperia arc so-02cにUSBハブ経由でマウスを繋ぐとマウスカーソルが現れる。キーボードを繋ぐと、ちゃんと文字が打てる。processingでカーソルに合わせて円を描画するプログラムや、キー入力を描画するプログラムを作って送り込んだが、ちゃんと動いた。ただ、キー入力の描画は2.0β1では動かず、2.0β3では動いた。

 そして本題のArduino Leopardを繋いだ。「サポートされていないデバイスが接続されている」という表示は出るものの、Arduino Leonardoという表示が出て、マウスカーソルが現れる。この状態でもキー入力はちゃんと出来る。

 これでArduino Leonardo経由で、A/D入力や、各種マイコンセンサーの値や、GPIBとかRS232C制御で得た値をAndroid端末に送れる。そこから先は、画面をモニターに使うとか、メモリに保存するとか、ネットワークに送るとか、発想次第だろう。