勢いでArduinoADKを購入〜初期設定から動作確認まで〜

買ってしまいました。まさかこちらの世界に足を踏み入れることになるとは。AndroidADKで動くArduino ADK R3
です。
最初どれを買えばわからず戸惑いました。
結論、Arduino ADKならばUSBホストの機能も付いているのでこれ1枚で大丈夫!
ちなみに、他のArduinoならばADK/ADB に必要な USBホストの機能がついていません。そのため、ホスト機能を追加するシールド(拡張ボード)が必要です。どのUSBホストシールドを買えばよいか悩んでしまいそうです。また、USBホストシールドによっては、ピンソケットのハンダ付けが必要なんだそうです。面倒くさいですね。

Arduinoの動作テスト

届いたArduino AKDを早速動作テストしてみましょう。
http://www.arduino.cc/en/Main/software
より、Arduino 1.0.3をダウンロード。今日はMacなのでMacOS Xと書かれた方をダウンロードしました。
arduino-1.0.3-macosx.zip
を解凍して出てきたArduinoアプリを、アプリケーションフォルダに放り込みます。
ArduioとMacをUSBケーブルで繋ぎます。Arduinoの緑の電源LEDと、なんかオレンジのLEDも光っています。
Arduinoアプリを起動します。
ファイル>スケッチの例>1.Basics>Blink
を開きます。
[C]
/
Blink
Turns on an LED on for one second, then off for one second, repeatedly.
This example code is in the public domain.
/
// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;
// the setup routine runs once when you press reset:
void setup() {
// initialize the digital pin as an output.
pinMode(led, OUTPUT);
}
// the loop routine runs over and over again forever:
void loop() {
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
[/C]
こんなコードらしきものが表示されました。なんでしょうねこれ。まあいい、先に進みます。
ツール>マイコンボード>Arduino Mega 2560 or Mega ADK
を選択します。

ツール>シリアルポート>/dev/tty.usbmodemfd141
を選択します。tty.usbmodemfd141のところは環境によって変わるようです。

丸い右向きの矢印のボタン「マイコンボードに書き込む」をクリックします。
マイコンボードへの書き込みが完了しました。」と表示されればOKです。
そおうすると、Pin13のLと書かれたLEDがオレンジの点灯だったのが、点滅になっていると思います。
なるほど、さっきのコードは、このLEDを点滅させるためのコードだったんだな。それをArduinoに書き込んだということですね。

ここまでで、Arduino ADKの動作確認は終了です。

ADK開発環境を整える

次に環境構築。ADKパッケージです。
Arduino の本などには、

https://dl-ssl.google.com/android/adk/adk_release_20120606.zip
をダウンロード、展開します。展開してできたADK_release_20120606フォルダを任意の場所に置きます。

なんて書いてあることが多いと思いますが、実はこのGoogleADKサンプルソース「Demokit」はArduinoのバージョンアップに対応しておらず、そのままではGoogleADKのサンプルはArduino 1.0では動かないのだそう。早く言ってよ。
オープンソース」を使ってみよう (第18回 ADK編) 日本Androidの会神戸支部
http://www.ospn.jp/press/20120404no22-2-useit-oss.html
の記事の通り、セットアップを行いましょう。記事はWindows7を対象としていますので、Mac版の場合を以下に記載していきます。
Android ADK勉強会(東京)が作成したYaoadkライブラリ」
https://github.com/ADKstudyGroupTokyo/Yaoadk/
を使わせて頂きます。
ZIPボタンをクリックしてzipファイルをダウンロードして下さい。
ダウンロードしたYaoadk-master.zipを展開すると
Adb
AndroidAccessory
USB_Host_Shield
の3つのディレクトリがあります。これらをディレクトリごと、Arduinoアプリの中に入れます。
場所は、/Applications/Arduino.app/Contents/Resources/Java/librariesディレクトリ内です。
Finderからアプリケーション内のArduinoアプリを右クリックして「パッケージの内容を表示」することで上記フォルダにアクセスできます。

サンプルソース「GettingStartedADK」をダウンロードします。

より、ZIPのボタンをクリックしてダウンロードします。
ダウンロードしたファイルを展開し
firm_Arduino0100/AdkDaio/AdkDaio.ino
をダブルクリックします。Arduinoアプリが起動すると思います。

それでは、
micro-USBポート「四角い方のポート」を使ってADKとつなぎます。
ツール>マイコンボード>Arduino Mega 2560 or Mega ADK
を選択します。
ツール>シリアルポート>/dev/tty.usbmodemfd141
を選択します。
[Command]+Rを押してコンパイルします。
コンパイル終了。よっしゃ、ではボードに書き込みましょう。
ファイル>マイコンボードに書き込む
を選択するか[Command]+U
で書き込みます。書込み中はLとTXとRXが点滅します。
よし、これでArduinoの準備は完璧。ではデモアプリを動かしてみましょう。

Android側のアプリケーションを準備する

Eclipseを起動します。
ファイル>新規作成>その他>Create project from existing source を選択
ルート/ディレクトリに
GettingStartedADKをダウンロードしたディレクトリの中にある「AdkDaioProj」フォルダを指定します。
を指定。
プロジェクトをワークスペースにコピーにチェック入れる。
完了。
これでAndroidのサンプルアプリが取り込めました。多分このままだとエラーが有るはずです。そこでjarファイルを追加します。
Javaのビルドパス>ライブラリで、
外部Jar追加
<sdkのある場所>/add-ons/addon-google_apis-google-10/libs/usb.jar
を選択して開く。
あとエラーになってるところをちょこちょこなおして動くようにしたら、ビルドして、Nexus7へインストール!
よっしゃ。これでAndroid側の準備はOKと。
では次に、電子部品を繋げていきます。

ここちらの記事のとおりに、電子部品をつなげていきます。
電子部品はamazonで入手しました。Arduinoエントリーキット(ボード別売)
に、必要な部品は全部入っていました。
そして、Androidと接続!すると、
「このUSBアクセサリが接続された時にAdkDaioProjを開きますか?」と聞かれます。

OKを押すと、アプリが起動!

アプリケーションで基板上の4つの部品の状態を取得したり、操作することが出来るみたい!
おお動いた!なにかよくわからないけど、とにかく動いたよ!!
今回使用したのはこちらです。

Arduino ADK Rev3

Arduinoエントリーキット(ボード別売)

上部へスクロール