できたらいいなAndroidアプリ

Androidに限らずいろいろ書いていく。

ADKでLチカ

ArduinoのLEDをAndroidから操作する。

Arduino

これを購入した。

Arduino ADK Rev3

Arduino ADK Rev3

Arduino Unoだと別途USBホストシールドが必要みたいなので、少々値が張るけどこちらを購入した。

ADK

ADKについてはyanzmさんのブログを参考にした。ただし、ソースは少し修正させてもらった。 y-anz-m.blogspot.jp

修正内容

ADKAndroid 3.0から対応していて、それ以前のバージョンではバックポートされたadd-on libraryがあるのでそれを使用する必要がある。プラットフォームのAPIとadd-on libraryのAPIでは使い方が少々異なる。まずはUsbManagerの取得方法。

add-on libraryを使用する場合
UsbManager manager = UsbManager.getInstance(this);
プラットフォームAPIを使用する場合
UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE);

また、UsbAccessoryの取得方法も異なる。

add-on libraryを使用する場合
UsbAccessory accessory = UsbManager.getAccessory(intent);
プラットフォームAPIを使用する場合
UsbAccessory accessory = (UsbAccessory) intent.getParcelableExtra(UsbManager.EXTRA_ACCESSORY);

先のブログで紹介されているソースはadd-on libraryを使用するバージョンだったので、プラットフォームAPIバージョンに修正した。 ソースはGitHubにあげてみた。

github.com

動作の様子はこちら


AndroidとArduinoをADKで接続してLチカ