スマートフォン・ジン | Smartphone-Zine

引っ越し先→ https://smartphone-zine.com/

勢いで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エントリーキット(ボード別売)