2011年5月21日土曜日

AndroidとArduinoをUSBホストシールドでつなぐ(非ADK編)

この投稿へのリンク
巷はにわかにADK(Android Open Accessory Development Kit)で盛り上がっている中、
自分はN1やNSを持っていない為このBIG WAVEに乗りきれていません。
悔しいのでADKを使わなくてもAndroidとArduinoをつないでBIG WAVEにあやかろうと思います。


準備するもの(ハードウェア編)
  1. Android(できればDesire HD
  2. Arduino UnoかDeicimila。Megaとかでも動くみたい
  3. USBホストシールド(スイッチサイエンス千石電商
  4. USBホストシールドをArduino本体とつなぐ連結用のピン
これだけです。USBホストシールドは千石電商の店頭で購入しましたが、
連結用のピンが実装されていなかったので、これは個人でやらないといけなさそうです。



準備するもの(ソフトウェア編)
  1. Arduinoの開発環境
  2. MicroBridgeのライブラリ
今回はArduinoでAndroidのlogcatを表示しようと思うので、特にAndroid側のソフトはつくりません。


Arduinoのライブラリをインストール
MicroBridgeのダウンロードのページ(http://code.google.com/p/microbridge/downloads/list)からMicroBridge-Arduino.zipをダウンロードしてきます。
解凍したらARDUINO/librariesの下にAdbというフォルダ名でソースを配置します。


logcatサンプルの実行
Arduino IDEを起動して File -> Example -> AdbからLogcatを選択して、サンプルを開きます。
開けたらコンパイルして、Arduinoへ書きこむ。


logcatを見る
ターミナルやシリアルモニターを起動して、通信レートを57600に設定する。
そしたら、AndroidとUSBホストシールドとをつなぐとLogCatが出力されてくる。



動作確認した端末の結果
Desire HD 正常に動作した
Optimus Pad デバッグ接続まで行ったが、logcatのメッセージが出力されなかった
Xperia mini pro うんともすんとも言わない



まとめ
非常に簡単にArduinoとAndroidがつながりました。
USBホストシールドはADKでも使うので、もしDesire HDに2.3.4が降ってくるなんて
奇跡が起きたとしても今後使えるので購入しても良いかと思っていた程度でしたが、
意外とこのままでも使い物になるんじゃないかと期待ができそうです。