LoginSignup
9
8

More than 5 years have passed since last update.

1行もコード書かずにAndroidとArduinoでADKを試す

Posted at

USBホストシールドがAmazonから届いたので,AndroidとArduinoを繋いでADK(Accessory Development Kit)を試してみました.

最近のAndroid端末はUSB Hostを持っていてADK無しでもArduinoとシリアル通信できたりするので,あまり必要ないかも.ただ,Androidに電源を供給しつつ使えるので長時間動かせる利点はあります.(あとから気づきましたが,ドックやqiで電源供給できる端末ならUSBふさがってても大丈夫ですね...)

Arduino

USBホストシールド 2.0 for Arduino (Amazon)

ホストシールドは,2世代目の2.0のものを使います.

Arduino Leonardo (Amazon)

Unoや他のArduinoでも良いと思います.

あと,Android端末とHost Shiel間用のものと,ArduinoとPCの接続用にマイクロUSBケーブルが二本必要です.

開発環境・ライブラリ

普段はArduinoの開発環境は使わずavr-gccでやってるのですが,慣れるためにIDE使います.IDEのバージョンは1.0.6をインストール.

git cloneするなり,zipをダウンロードするなりして,説明通りにArduinoのlibrariesディレクトリにUSB_Host_Shield_2.0という名前で配置.

アプリ

サンプルコードは色々公開されているので,参考にしつつ.

サンプルコードを探していると「android.hardware.usb」パッケージを使ったものと,「com.android.future.usb」パッケージを使ったものが存在しますが, com.android.future.usb の方は Android 2.3 でのAPIなので,今から使うなら android.hardware.usb の方を使うのが良いです.

とりあえず,ここではADKのデモアプリがPlayストアにあるのでAndroid端末にインストールします.

動かしてみる

ArduinoにUSB Host Shieldシールドをつなぎます.

IDEで「ツール」→「マイコンボード」でArduino Leonardoを選択.USB_Host_Shield_2.0のサンプルに, adk/demokit_20/demokit_20.ino があるので,とりあえずこれを書き込みます.

書き込んだあと,Android端末にUSBケーブルで接続すると,アプリからUSBアクセサリに接続を確認するダイアログが出るので「OK」を押すと,DemoKitのアプリが立ち上がるはずです.

demokit_20.ino のサンプルは,DemoKitのアプリから送られてくるデータのうちLED1のREDの値をpin3に出力しているようなので,適当なLEDをつなげば,アプリ上でバーを動かすとLEDの明るさが変わると思います.

LEDを繋ぐのすら面倒だという場合は,

#define  LED1_RED       13

として,Arduino Leonardoの基板上に載っているLEDにするのが良いです.(1行書いてしまった…)

Android と Arduino,構成文字が似ていて何度も書いていると???ってなります.

9
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
8