Arduino + USBホストシールド で ADK を試す(その2)
前回「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)
関連記事
-
-
米粒AVRでSoftModem的なこと その2
前回は「米粒AVRからAndroidへデータを送る」ことを試しました。 今回はその逆の「And
-
-
Raspbianの起動SDカードを再利用
一度、Raspbianのイメージを書き込んだSDカードは、フォーマットが違う為にWindowsでは利
-
-
Raspberry Piのリビジョン
リビジョンの種類 現在、Rapsberry Piにはリビジョン1とリビジョン2と呼ばれる2つの
-
-
Raspberry Piのサウンドを試したら音が出なかった話
(これはX-WindowのVLCメディアプレイヤーのスクショ) Raspberry Piでは、
-
-
Android + Arduino でリモコン2 (softmodem接続)
以前、LAN接続のリモコン Android + Arduino でリモコン と言うものを作ったのです
-
-
Android+Arduinoでリモコン3 その2(AndroidAccessory接続)
何度か、Android+リモコンのネタを書いたことがあるのですが、今回はAndroid Access
-
-
米粒AVRでリモコン受信処理
米粒AVR(Tiny10)で赤外線リモコンを受信して処理をするサンプルを作ってみまし
-
-
Raspbianの起動
Raspbianの起動画面をキャプチャしてみた。 SDカードにイメージを書き込んだままのデフォ
-
-
赤外線リモコン受信機(イヤホンジャック接続)の回路
前回からだいぶと時間が経ってしまっていますが、今回はイヤホンジャック接続のリモコン受
-
-
米粒AVRでリモコン送信機
米粒AVR(tiny10)を使った赤外線リモコン送信機を作ってみました。 これで送信できるのは
Comment (3件)
はじめまして。
このサイトを参考にさせていただいてADKを試しました。
こちらはUNOを使用しましたが、問題はありませんでした。
UNOで動きましたか。
情報ありがとうございます!
大変参考になりました。サーボモータ1個でしたら、そのまま駆動できました。