Arduino + USBホストシールド で ADK を試す(その3)
「Arduino + USBホストシールド で ADK を試す(その1)」では、Android上のアプリの説明
「Arduino + USBホストシールド で ADK を試す(その2)」では、Arduino+USBホストシールドを使ったハードウェアの説明をしました。
で、今回は、Arduinoに書き込むプログラムの説明をして、最後にしたいと思います。
と、その前に、実際に動いているところの動画をアップしてみました。
動画内では、ボタンを押してスイッチのチェック、手をかざして明るさセンサーのチェック、スライダーを使ってLED1~3の調光テストを、しています。
開発環境
Arduinoにプログラムを書き込む為には、Arduinoの開発環境をPCにインストールしておかなくてはいけません。
Arduino の開発環境はこちらでダウンロードできます。
http://arduino.cc/en/Main/Software
最新のArduino 0022をダウンロード&インストールしておきましょう。
参考)http://www.geocities.jp/zattouka/GarageHouse/micon/Arduino/arduino_inst.htm
Arduinoの接続するポート番号も、同時にチェックしておいて下さい。
ソース
ADKのソースは、Android Developersの Android Open Accessory Development Kit ページからダウンロードできます。 最初の方にある、ADK package downloadと言うリンクがそれです。
ダウンロードした中には、ADKのソースの他、Androidで動かすデモアプリ、ハードウェアの回路図なんかも含まれています。ADK関連の物が一式詰まっています。
ダウンロードしたパッケージは、適当な場所に展開しておきます。
パッケージに含まれているADKのソースは、Arduino MEGAベースで作られた物なので、当然ながら、そのままではArduino Duemilanove では動きませんので、対応手順を示します。
まず、ライブラリー
パッケージ内のフォルダ
ADK_release_0506 firmware arduino_libs
には、AndroidAccessory と USB_Host_Shield の2つのフォルダ(ライブラリ)が入っています。
この2つを、そのままArduino 0022のライブラリフォルダーにコピーします。
Arduino 0022のライブラリフォルダーは、Arduino 0022をインストールした時のフォルダの中の libraries です。
例)僕の場合、C: Program Files2 arduino-0022 libraries
で、 USB_Host_Shield のライブラリは、以下の3つのファイルを
Max3421e.cppMax3421e.hMax3421e_constants.h
こちらの felis / USB_Host_Shield で公開されているファイルに置き換えます。
※ オリジナルUSBホストシールドのプロジェクト(Circuits@Home)で USB_Host_Shield ライブラリのADK対応バージョンが公開されたようです。
3つのファイルだけで無く、こちらの https://github.com/felis/USB_Host_Shield/tree/dev で公開されているファイル全てを、 USB_Host_Shield フォルダーにコピーすればOKです。
詳細は Andriod ADK-compatible USB Host Library release. で説明されています。
あと、Sparkfunの旧USBホストシールドを使う場合は、Max3421e_constants.h 内の MAX_GPX と MAX_RESET の番号(7と8)を入れ替える必要があるようです。
ライブラリの準備は、これで終了です。
次は、Arduinoのスケッチ
Arduinoでは、ソースのことをスケッチと言ったりします。
Arudinoのスケッチは
ADK_release_0506 firmware demokit
に、入っている、demokit.pdeと言うファイルですが、修正箇所は多すぎて書ききれないので、変更後のファイルを公開しておきます。
ダウンロードして適当な場所に保存しておいてください。
ちなみに、修正箇所は、// でコメントアウトしている部分の殆どです。
コンパイル~書き込み
Arduino 0022 を起動して、[File]→[Open]で先ほどダウンロードしたスケッチファイル demokit.pde を開きます。
次に、[Tools]→[Board]→[Arduino Duemilanove or Nano w/ ATmega328]
として、Arduinoのボードを指定します。(UNOの場合は、UNOを選択)
続いて、[Tools]→[Serial Port]
で、Arduinoの接続ポートを指定します。
そして、アップロードボタンをクリックすれば、自動でスケッチがビルドされて、Arduinoへの書き込みが始まります。
書き込みが終了するまで、数秒間待ちます。
書き込み中は、画面下に、Uploading to I/O board… と出ています。
画面下に、Done uploading. と出れば書き込み終了です。
後は、USBホストシールドのUSBコネクターに、Android端末を接続すればAndroid端末側で自動で認識してくれます。
そして、この先は、記事の冒頭の動画へ・・・
最後に
今回試してみたのは、もともとArduino Megaベースで作られているADKのソースを、Arduino向けにちょっと変えただけの、比較的簡単な方法です。
簡単な方法ですが、やってる事(AndroidとArduinoの通信)は本物のADKと同じです。
Android Open Accesorry に興味が有ってさわってみたいけど、本物のADKは高すぎて手が出ないと言う人は、是非Arduino + USBホストシールドを使ってお試し下さい。 これは、お勧めの方法だとおもいます。
Wifi、Bluetooth、NFC、そしてUSBと、外部機器と接続の選択肢が多い Android端末。
さて、これを使って何を作りましょうか?
関連記事
-
-
米粒AVRの動作周波数
米粒AVR(ATtiny10)のデフォルトでは内臓発振器利用の1MHzが指定されてい
-
-
そうだ、Raspberry Pi用にピンヘッダーのオス・メス変換アダプタを作ろう
Raspberry PiのI/O端子は、ピンヘッダーとなっていて、電極が出っ張ってる
-
-
赤外線リモコン受信機(イヤホンジャック接続)のアプリ
前回の赤外線リモコン受信機(イヤホンジャック接続)の回路 を使う為のAndroidア
-
-
Raspberry Pi インターネット接続
Raspberry Piをインターネットに接続してみた。 有線で接続(Ethern
-
-
Raspbianの起動
Raspbianの起動画面をキャプチャしてみた。 SDカードにイメージを書き込んだままのデフォ
-
-
米粒AVRで温度計(STTS751使用)
前回までに紹介したI2CライブラリとLCDライブラリを使って作る、温度計のサンプルです。 温度
-
-
赤外線リモコン受信機(イヤホンジャック接続)の回路
前回からだいぶと時間が経ってしまっていますが、今回はイヤホンジャック接続のリモコン受
-
-
赤外線リモコン受信機(イヤホンジャック接続)を作ってみた
最近、このブログ何も書いて無かったので、作成中の物の紹介・・・ これは、Andro
-
-
Raspberry Piのサウンドを試したら音が出なかった話
(これはX-WindowのVLCメディアプレイヤーのスクショ) Raspberry Piでは、
-
-
S2 Resistor Color Code 公開しました。
このアプリは、抵抗のカラーコードから抵抗値を素早く見る為のAndroidアプリです。 4本帯と、5
- PREV
- Arduino + USBホストシールド で ADK を試す(その2)
- NEXT
- XOOM買いました
Comment (1件)
ピンバック: Android × Arduino Uno R3 接続成功 | Diary of Macsan