Arduino + USBホストシールド で ADK を試す(その2)
2011年5月13日
Tweet
前回「Arduino + USBホストシールド で ADK を試す(その1)」では、Androidで動かすアプリを紹介しました。
で、今回は接続するハードウェアの方を紹介したいと思います。
※ハードウェアの方は、ちょっとした接続ミスで簡単に基板が壊れたりするので、慎重な作業が必要になります。
お約束事ですが、作成は各自の自己責任でお願いします。

ハードウェア構成
今回試したのは、
- Arduino Duemilanove 328
- Sparkfun USBホストシールド
の組み合わせです。
Arduino Duemilanoveは、Arduinoの最新版である Arduino UNO の1つ前のモデルです。 UNOと何が違うのかよく分かりませんが、たぶんUNOでも動くと思うので、わざわざDuemilanoveを探して買う必要は無いと思います。
USBホストシールドの方は、少し注意点があるので後で詳しく説明します。
本物のADKはArduino MEGAをベースとしているので、Arduino Duemilanoveとは使えるピンの数が圧倒的に違います。 本物のADKでは、LEDがフルカラーだったり、リレーが2つ付いてたり、サーボモーターが付いてたり、アナログジョイスティックが付いてたり・・・するようですが、普通のArduinoではそうは行きません。
な、もんで、接続する部品は
- LED x 3
- 押しボタン x3
- 温度センサー
- 明るさセンサー
のみとしました。
これだと、少しピンが余るのですが、動作を確認する為にはこれで十分だと思います。
温度センサーにはMCP9701(本物のADKと同じ物)、明るさセンサーにはCDSセルを使っています。
部品一覧
| - | 数量 | 記号 | 備考 |
| Arduino Duemilanove | 1 | Arduino Uno | |
| Sparkfun USBホストシールド | 1 | ||
| LED | 3 | LED1-3 | |
| スイッチ | 3 | SW1-3 | |
| MCP9701 | 1 | IC1 | 温度センサー |
| CdS | 1 | CDS1 | 明るさセンサー |
| 抵抗(1k) | 3 | R1-3 | |
| 抵抗(10k) | 1 | R4 | |
| セラミックコンデンサ(0.1uF) | 1 | C1 |
USBホストシールド
オリジナルのUSBホストシールドは Circuits@Homeと言うところが発売して、Arduinoライブラリなんかもここが開発しているみたいです。 プロジェクト・ページ
今回利用したのは、Sparkfunで発売されている同等品です。(スイッチサイエンスさんで買いました)
SparkfunのUSBホストシールドは、新旧2つのシールドが有るようで、古い方のシールドではライブラリーを一部書き換えないと使えないらしいです。 これからSparkfunのUSBホストシールドの購入を考えている方は、新旧どちらのシールドなのか注意してください。(Arduino Duemilanoveと同じく、古いシールドを手に入れる方が難しいかも・・・)
また、このシールドにはヘッダーピンが付属していません。これから購入する人には、同時にArduino用の連結ピンの購入をお勧めします。 僕は普通のヘッダーピンしか手持ちに無くて、部品の接続に苦労しました。 (結局、配線を直接半田付け・・・と言う不細工仕様w)
※そして最大の注意点
このUSBホストシールドは、電源として、VINからの電源をレギュレータを使って VIN → 5V → 3.3V と2段で変圧して利用しています。
レギュレータとは、目的の電圧よりも高い電圧を、目的の電圧に下げてくれる部品ですが、その特性から必ず目的の電圧よりも高い電圧が必要となります。
USBからの電源をArduinoの電源として利用する場合、VINにはUSBからの5V(実際には5V以下)の電圧が供給されるので、5Vレギュレータに5Vを入力する状態となり、これでは正しく5Vは出力されません。
この結果、Androidと接続するUSBコネクターへの電圧が足りず、AndroidとArduinoを接続してもADKとして認識されませんでした。
悩んだあげく、Arduinoの5V出力を、USBホストシールドの5Vライン(レギュレータの出力端子(真ん中))に接続することにしました。
USBケーブルから給電せず、ACアダプター等で動かす場合は、この作業は必要ありません。
でも、かわりに、レギュレータの発熱に注意が必要らしいです。
Android端末が充電状態になっちゃって、電流を沢山食うのでしょうがないのかな・・・?
部品の接続
USBホストシールドでは、ArduinoのD7~D13ピンを利用しているので、これらのピンは自由に使えません。
残った D0~D6とアナログ入力ピンが部品の接続に使えます。
で、今回は、このような配線としました。
LEDが3,5,6と飛んでいるのは、PWMによって調光する為です。
また、使うLEDによっては、明るさ最大にしても暗かったりするかもなので、そんな時は抵抗を小さい値の物に変更すると良いでしょう。
ブレッドボード上に、こんな風に配置しました。
と、ここまででハードウェアの説明は終わって、次は、Arduinoに書き込むプログラムの説明をしたいと思います。
続きはこちら Arduino + USBホストシールド で ADK を試す(その3)
Category: Androidと電子工作
TrackBack URL :



はじめまして。
このサイトを参考にさせていただいてADKを試しました。
こちらはUNOを使用しましたが、問題はありませんでした。
UNOで動きましたか。
情報ありがとうございます!
大変参考になりました。サーボモータ1個でしたら、そのまま駆動できました。