ADK のボードはUSB ホストとして動作するため、USB デバイスであるAndroid 機器に対して電源を供給する必要があります。
スマートフォンはUSB 経由で充電を行なうため、充電モードに入ります。
携帯を充電するとなると、数百mA の電流が流れるので、電池で動かすのは結構大変です。
USB の仕様では、電源ライン(VBas ) に5V をかけることになっています。
Sparkfun USB Host Shield は、Arduino を外部電源で使用した場合、VBas に5V が出るようになっています。
Arduinoを Mac のUSB ポートからとった電源で使用した場合、VBas は3.2V 程度に落ちていました。
このVBas 電圧では、Xperia Arc はADK ボードを認識しなかったため、5V の出力をVBas にバイパスするよう、ハードウェアを修正しました。
このような経緯で、「VBas = 5V付近 が必要」と思い込んでいたのですが、写真のように「ボードを認識するが、充電しない」モードがあるようです。
(端末による仕様や、個体差もあることだと思います。)
VBas へのパターンをカットし、外から電圧を加えて変化させてみました。
あくまで私の端末での実験によると、3.3V〜4.0V あたりが充電マークがつかない状態で、ボードを認識しました。
検討の結果、USB Host Shield 上にある、3.3V のレギュレータの出力をVBas に接続したところ、この「認識するが充電しないモード」で動作することができました。
参考までに、USB Host Shield とArduino Uno の組み合わせで、
・無改造(5V レギュレータの出力をVBas に接続した状態)VBas = 4.95V, (電源 5.15V - 約214mA)
・3.3V レギュレータの出力をVBas に接続した状態 VBas = 3.4V, (電源 5.15V - 約69 mA)
となりました。(電流は、Arduino に入力する箇所で、テスターにて測定。)
電流値から、実際に充電されていないことがわかります。
電池2本を昇圧して 5V を出力する電池BOX が100〜200円くらいで売られていますが、この手の安物は 200mA の電流を取り出すのは難しいです。
今回の充電しないモードを活用すれば、簡易な電源で、ポータブルなADK 環境を構成できそうです。単純計算で、同じバッテリーを使用して3倍長持ちする、ということです。(その分、スマホ側が消費します。)
もうちょっといいDCDC コンバータをつかえば、電池1本でも良さそうですね。
※メーカーの想定外の動作だと思うので、機器を壊す可能性があります。
※USB 経由の充電をしないタブレットの場合、この記事の内容は関係ありません。
0 件のコメント:
コメントを投稿