リアルとアプリをつなぐ「Android Open Accessory Development Kit(ADK)」とは ―― Androidとクラウドとハードウェアの未来
●ADKを技術から考える
それでは,具体的にはADKとはどんなものでしょうか?
ADKとは,大まかに言えばAndroid開発環境のライブラリ(API)や,ADK対応ハードウェア(Accesory DemoKitと呼ばれるもの)で構成され,それらがUSBで通信できるもの,と言えるでしょう.
これだけ聞くと,Android端末以外のハードウェアと通信できるだけで目新しさも何もない,と思う方もいるかもしれません.しかし,ADKが注目されるのは,その技術的な発想にもよるのです.
Android端末とハードウェアはUSB接続を行います.USBでの接続には,「USBホスト」と「USBターゲット」の二つのモードがあり,前者は親で,後者は子の関係です.パソコンと周辺機器で考えると,USBホストはパソコン(PC),USBターゲットはキーボードやマウス,プリンタなどのイメージです.
スマートフォンはPCに対して子,つまりUSBターゲットになります.PCがスマートフォンを「Mass Storage Class」で認識するようなイメージです.
しかし,ADKではUSBホストのモードも持たせ,接続する機器と通信できます.また,それぞれのモードで親から子に電源の供給ができることも特徴の一つです.
つまり,ADKを利用すると,USBによる通信でAndroid端末から周辺機器を操作でき,逆に周辺機器からもAndroid端末を操作できます.例えば,スマートフォンからエアコンを操作するデバイスを開発したり,外部コントローラからタブレットを操作したりすることができるわけです.
●ADKはすべてオープン
ADKに関する情報を入手するには,「Android Open Accessory Development Kit」のWebサイトが一番でしょう.すべてがオープンなAndroidの思想のもと,ADKも関連する情報はすべて公開されています.
上記のWebサイトから入手できる「The ADK Package」には,ADKを開発する上で必要な情報が詰まっています.それはサンプル・コードやライブラリ,ファームウェア,回路図(図2)などです.回路図を利用すると,ADKボードのデッドコピーがすぐに作れてしまいます.例えば,アールティの「RT-ADK」と「RT-ADS」の外観(写真6,写真7)と回路図とを見比べてみると,回路図通りだということが分かります.
そんなADKですが,作るのが面倒だという人のために,各社からADK開発用ボードが入手できます.前述の「RT-ADK&RT-ADS」以外にも,アールティから発売されたばかりの「RTADKmini」(写真8)や,Microchip社のPICを搭載したもの(写真9)や,Seeed Studio社のもの(写真10)などがあります.オープンソース・ハードウェアのArduino(写真11)でも開発できます.
●ADK対応アプリを開発するには?
最後に,ADKアプリの開発に必要なものを紹介しておきましょう.
ハードウェアとしては,ADK対応のAndroid搭載端末,そしてADK対応ボードです.端末のAndroidのバージョンはAndroid 3.1以降,またはAndroid2.3.4以降です.中には対応していないものもあるので注意しましょう.
ソフトウェアとしてはAndroidアプリの開発環境である「Eclipse」と「Android SDK」,Arduino用開発環境「Arduino IDE」とArduino用ライブラリ「CapSense」です.
* * *
『Smartphone World』Volume.3では,ADK対応ボードを利用した開発方法として,RT-ADK&ADSと,Arduino MEGA ADKを使ったものを紹介しています.例えばサンプル・アプリでモータを動かしたり,ジョイスティックでキャラクタを動かし,弾丸を発射するようなアプリ,画面上方から現れる円をタイミングよくタップすると,LEDが点灯するようなアプリなどです.
ADKを使うと簡単に周辺機器をクラウドにつなげられますが,ADKを使わない「MicroBridge」などもあります.これについても紹介しています.
(本記事は『Smartphone World』Volume.3の掲載記事に一部手を加えたものです)