
Google I/O 2011 で発表された「Open Accessory Development Kit (ADK)」を使ってみました。
試した環境
- Ubuntu 10.10 (64bit)
- Nexus S 2.3.4
- Arduino 0022 + adk_release_0512.zip + CapacitiveSense003.zip
PC に Arudiono IDE と必要なライブラリをインストールする
1. Arduino Software を ココ からダウンロードし、任意の場所に展開する
2. CapSense library を ココ からダウンロードし、任意の場所に展開する
3. The ADK package を ココ からダウンロードし、任意の場所に展開する
4. (手順)2 で得られたディレクトリ直下に含まれる CapSense.h と CapSense.cpp を
(手順)1 で得られた arduino/libraries ディレクトリ直下に、新たに CapSense ディレクトリを作成し、
同ディレクトリ下にコピーする
5. (手順)3 で得られた firmware/arduino_libs/AndroidAccessory ディレクトリと
firmware/arduino_libs/USB_Host_Shield ディレクトリを、
(手順)1 で得られた arduino/libraries ディレクトリ直下に(ディレクトリごと)コピーする
<完成図>
arduino を展開したディレクトリの libraries 下の構成が以下のようになっていればOK。
ADK ボードのファームウェア書き換える
I/O で配布された状態でも動作するのですが、このままだとタッチセンサーが動作しないため、ファームウェアを書き換えます。
1) ADK ボードと PC を USB 接続する
2) PC 側で(コマンドラインから上記でインストールしたディレクトリ直下にある)arduino (IDE)を起動する
3) (arduino IDE)初回起動時、「Select folder for sketches...」のようにディレクトリ選択画面が表示されるので、
任意のディレクトリを選択し、arduino IDE を起動する
4) Tools > Board > Arduino Mega 2560 を選択する
5) Tools > Serial Port > /dev/ttyUSB0 (名称は環境依存)を選択する
6) File > Open から、(先のインストール手順でダウンロードした)The ADK package に含まれる
firmware/demokit/demokit.pde を選択し、sketch を開く
7) Sketch > Verify / Compile からコンパイルする(Done compiling. と表示されればOK)
8) File > Upload to I/O Board で ADK ボードに転送する(Done uploading. と表示されればOK)

Android 端末に ADK のサンプルアプリをインストールする
1. android コマンドから「Google APIs API Level 10 add-on library」をインストールする
2. Eclipse を起動し、New > Project > Android Project、Create project from existing source で
(先のインストール手順でダウンロードした)The ADK package に含まれる app プロジェクトを選択、
Buile Target を Google APIs (Platform 2.3.3) に変更し、Finish
3. プロジェクトをビルドし、PC と Android 端末を USB 接続して、アプリケーションを転送する
ADK ボードを Android アプリケーションから操作する!
Android 端末と ADK ボードを接続すると、DemoKit ダイアログが表示されるので OK をタップ。
ADK ボード側の Temp / Light / Buttons / Joystick のセンサー値がアプリ画面の In タブ、
アプリ画面の Out 画面で操作した結果が、ADK ボードに反映されます。

備考
- 事前に、Ubuntu への arduino のインストールを sudo apt-get install arduino から実行したため、
上記手順だけだと、必要なライブラリのインストールが足りないと思います(汗)
※ちなみに apt-get からだと arduino 0018 がインストールされますが、
コンパイルエラーとなるため 0022 の圧縮ファイルをダウンロード・展開し直しました - arudino IDE 起動時、
「java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path thrown while loading gnu.io.RXTXCommDriver」
のようなエラーが出た場合、以下のサイトを参考にエラーを回避できました
http://colinharrington.net/blog/2010/11/arduino-ubuntu-10-10-maverick-meerkat-no-rxtxserial/
あわせて読みたい
- How To ADK ・・・@mhidaka さん ※PDF直リンク
- I/O 2011 報告会 ADKで遊んでみた ・・・@zaki50 さん
- ADK のデモアプリの動かし方 - superdry memorandum :-D ・・・@lychee さん
- side2 » Arduino + USBホストシールド で ADK を試す(その1) ・・・@curry_man さん
※他にもシリーズもので多数あり - いわたんlab 日記: AndroidとArduinoをUSBホストシールドでつなぐ(非ADK編) ・・・@iwata_n さん
- YouTube - AndroidとArduinoを使ってQSteerを動かす(non ADK)
- YouTube - mbed and ADK
- Y.A.M の 雑記帳: Android Open Accessory Development Kit ・・・@yanzm さん (これは凄い!)
- Y.A.M の 雑記帳: Android 3.1 Platform ・・・@yanzm さん
- ADKのデモアプリを動かしてみた: めろの日記 ・・・ @melodie_blue さん ※5/31追記
- sola : PandaBoard で ADK を使ってみた・・・ @androidsola さん※5/31追記
