Electronics

2011.07.01

Android ADK開発の旅: ハードウェア編

Text by kanai


ボクのAndroid伝説も、Android SDKとEclipseもすべて順調に走ってAndroidエミュレータにHello Worldが表示できる段階に到達したところで、ここがとても重要なステップであることはわかってるけど、これでは飽き足らない。本物のハードで走らせたい! Nexus Oneで走らせるのだ。
ボクは携帯が対応するようにシステムをOS version 2.3.4(Gingerbread)に更新した。ADKとUSBホスト機能は2.3.4以上でないと使えないからだ。このガイドの手順に従って携帯を開発モードに切り替える。重要なのは、携帯のApplications > Developmentモードを「USB debugging」にして、EclipseのHelloWorldプログラム用の AndroidManifest.xmlファイルの中の「Debuggable」フラグを「true」にすることだ。
これで、HelloWorldを、エミュレータではなくEclipseから走らせると、アプリが携帯にアップロードされて実行される。ここまでは難なくできた。さあ、これでADKに進む準備ができた。
ADKを使うためにインストールする必要があるものについては、これまたAndroid Developerのウェブサイトに丁寧な解説がある。まずは、Arduino IDE 22がインストールされていることを確認する。次に、ADK packageをダウンロードして展開する。これには、必要なArduinoライブラリ(USBホスト機能、Open Acessory Protocolライブラリ、それに デモシールドの小さな金色のAndroidロボットに触って登録するときのためのCapSenseライブラリ)、DemoKit Androidアプリ、関連するDemoKit Arduinoスケッチが入っている。また、自作したい人のために、ADKボードとデモシールド用の製作ファイルも含まれている。ボクは、Arduinoソフトウェアを使ってDemoKit.pdeスケッチをADK Arduinoにアップロードした。
Android DemoKitアプリケーションをコンパイルして走らせるには、その前に、Google APIs Level 10アドオンライブラリをインストールしておく必要がある。ここにはちょっとつまづいた。Eclipseの「Android SDK and AVD Manager」で、 SDK Platform API 10(すでに持ってる) と、本当に必要なGoogle APIs Android API 10とを間違えてしまったからだ。さらに、Eclipseプロジェクトを、Androidターゲットプラットフォームではなく、Google APIターゲットで作るように設定してしまった。DemoKitアプリケーションは、インターネットが助けてくれるまで大量のエラーを吐き続けた(さんざん悪態をついたり物を投げつけたりしたが、ここでは言わないでおこう)。



それが解決すると、DemoKitアプリケーションを「debuggable」に設定できるようになり、携帯電話で走らせることに成功した! Androidアプリをアップロードしている間はArduinoを携帯につなぐことができなかった。なので、こんなグルーヴィーな画像が現れた。

(このとき偶然にも、Android Centralで携帯電話のスクリーンショットをコンピュータに取り込むといういい方法を発見できた)
興奮とともにマウントと完了し、携帯からのUSBケーブルをコンピュータから引き抜き、ADK Arduinoボードに付け替えた。こいつには12ボルトの電源がACアダプタから供給されている。携帯でDemoKitアプリを立ち上げる。すべて問題なく動いた! アプリは2つのモードがある。入力と出力だ。入力モードでは携帯のDemo Shieldの温度センサ、光センサ、2軸ジョイスティック、3つのボタン、静電容量ロボットパッドからのデータが表示される。

出力モードでは、スライダを使って3つのRGB LEDの明るさ(めちゃくちゃ明るい)や色の調整、3つのサーボの制御、2つの12ボルトリレーの開閉がタップでできる。

DemoKitアプリでさんざん遊んでみた。LEDの色のミキシングでは目が見えなくなるほどだった。リレーの開閉や、Nexus Oneの可愛い画面で入力データを見たり。ADKハードウェアを、びっくりするような使い方をする奇抜なアイデアのAndroidアプリが作られる可能性は無限にある。だけど今は、Arduinoでナイスなタッチスクリーンが使えるというだけでボクは感激だ。
下のビデオは、ボード上のサーボを連続回転するように設定したところと、LEDで遊んでいるところだ。

– John Park
Android ADK開発への旅:準備編
原文