Seeeduinoで始めるADK (Android3.1(XOOM) Ubuntu 64bit 環境)
Seeeduino ADKとAndroid 3.1(XOOM)で遊んでみました。
Seeeduino ADKはI/O少ないので今回はLEDチカチカまで。
自分のホスト環境はUbuntu 10.10 64bit
この記事の読者対象は「これからADK始める」って人向け。
サクッと要点残しておきます。
1.準備部材
- Seeeduino ADK ($79.9) 送料無料だよ http://www.seeedstudio.com/depot/seeeduino-adk-main-board-p-846.html?cPath=132_133
- micro-B ⇔ USBオス ケーブル (※mini-Bじゃない)
- Android 3.1以上のタブレット(Android 2.3.4のケータイ端末でもいけるたぶん)
- タブレットにつなぐUSBケーブル(XOOMの場合 micro-B ⇔ USBオス ケーブル)
Seeeduinoはダウンロードコネクタにmicro-Bを使ってます。写真のようにmini-Bと比べすこし平べったいです。
最近micro-Bタイプ増えてきたけど手元にあるケーブルはmini-Bってことが多いので
micro-B - mini-B 変換コネクタを手に入れておくと便利かも。
2.環境設定
2.1 Android 環境構築
Android環境構築の解説は他サイトに多いのではぶきます。
特にTechBoosterさんの記事がわかりやすいのでリンクぺたり。
Ubuntu 11.04にAndroid開発環境を構築する - TechBooster
http://techbooster.jpn.org/andriod/environment/5580/
2.2 Arduino環境構築
Arduino http://arduino.cc/en/Main/Software
上記サイトからDLしたファイルを解凍。lnでパス統一しとくと幸せ。
$ mkdir ~/opt
$ cd ~/opt
$ mv ~/Download/arduino-0022-64-2.tgz .
$ tar zxvf arduino-0022-64-2.tgz
$ ln -s arduino-0022 arduino
arduino環境のパスを通す
$ vi ~/.bashrc
~/.bashrcに追記
export PATH=$PATH:$HOME/opt/arduino
.bashrcを読み直してarduinoが立ち上がればOK
$ source ~/.bashrc
$ arduino &
2.3 ADK package
ADK packageにはADK開発に必要なファイルが入っているので、それぞれ適切な場所に置きます。
ADK package をダウンロード
http://developer.android.com/intl/ja/guide/topics/usb/adk.html
解凍して必要なファイルをarduino環境にコピーします。
$ unzip adk_release_0512.zip
$ cd ADK_release_0512/firmware/arduino_libs
$ cp -r AndroidAccessory USB_Host_Shield ~/opt/arduino/libraries/.
Androidのソースは以下パスにあります。あとで必要になります。
ADK_release_0512/app
2.4 udev rulesの設定
タブレット端末をUbuntuに認識させます。ADKアプリをPCからタブレット端末へ転送するための準備です。
XOOMの場合、USBのベンダIDは22b8なので以下追記
/etc/udev/rules.d/51-android.rules
SUBSYSTEM=="usb", SYSFS{idVendor}=="22b8", MODE="0666"
USBを抜き差ししておきます。
他ベンダのタブレットを使う場合、lsusbコマンドでベンダIDをチェックできます。
$ lsusb
...
Bus 001 Device 026: ID 22b8:70a9 Motorola PCS
...
3.Seeeduinoへファームウェアをダウンロード
ファームウェアをSeeeduinoへダウンロードします。
USBでPCとSeeeduinoを繋げておきます。
arduinoを起動します。
$ arduino &
初期設定をしておきます。
- Tools -> Board -> Arduino Mega 2560 を選択
- Tools -> Serial Port -> /dev/ttyUSB? を選択
File -> Open... で以下ファイルを開きます。
ADK_release_0512/firmware/demokit/demokit.pde
※ソース内のJoystick初期化でコケていたので init_joystick(5); をコメントアウトします。
... void setup() { Serial.begin(115200); Serial.print("\r\nStart"); init_leds(); init_relays(); init_buttons(); // init_joystick( 5 ); // autocalibrate OFF touch_robot.set_CS_AutocaL_Millis(0xFFFFFFFF); ...
Uploadボタンを押して完了。
4.AndroidへADKアプリをインストール
PC-タブレットをUSB接続した状態で eclipse 起動
ADK_release_0512/app
を開いて実行。
ADKアプリが立ち上がればOK。
この状態で、PC-タブレット と繋いでいたUSBを
タブレット-Seeeduinoに挿し替え。
Seeeduinoを認識してくれたら万々歳。
5.LEDチカチカ ファームウェアへ書き換え
LEDチカチカさせるためにSeeeduinoのファームを書き換えます。
Relay1のボタンでLEDがON/OFFするようになっています。
#include <Max3421e.h> #include <Usb.h> #include <AndroidAccessory.h> #define LED1 13 AndroidAccessory acc("Google, Inc.", "DemoKit", "DemoKit Arduino Board", "1.0", "http://www.android.com", "0000000012345678"); void setup(); void loop(); void setup() { Serial.begin(115200); Serial.print("\r\nStart"); digitalWrite(LED1, LOW); // set the LED off pinMode(LED1, OUTPUT); acc.powerOn(); } void loop() { byte msg[3]; // Androidと接続された場合 if (acc.isConnected()) { int len = acc.read(msg, sizeof(msg), 1); if(len > 0) { if (msg[0] == 0x3) { if (msg[1] == 0x0) digitalWrite(LED1, msg[2] ? HIGH : LOW); } } // Androidと接続されていない場合 } else { digitalWrite(LED1, LOW); } delay(10); }
以上で記事おわり。
余談だけど、Android 2.3.4 のケータイとか 3.1以上のタブレットないよ〜
って場合でも MicroBridge(ADB接続) って方法でAndroid1.5以上の端末とSeeeduino ADKをUSBで繋げて遊べます。
Seeeduino ADKのwikiのソースコピペでできるんでお試しあれ。
http://garden.seeedstudio.com/index.php?title=Seeeduino_ADK_Main_Board