2013年4月14日日曜日

Bluetooth モジュール

MultiWiiをAndroidに接続するのに便利なBluetoothアダプタのちょっとまとめ。到達距離は3-5mといったところです。回路パターンになっているアンテナをカットして別につけると改善できます。

この手のアダプタは3.3Vデバイスで、5Vのレギュレータが載ったアダプタに載せられて販売されていることが多いです。シリアルポートに接続して使います。Bluetoothにはスレーブ、マスターモードで動作する違いがあり、シリアル側のスピードも設定できます。

MultiWiiで使うためには115200bpsにあわせて使いたいですが、チップの違いがあるようで設定方法は何種類かあるようです。スレーブモード用のものを購入しても、シリアル側の通信速度の工場出荷値は9600bpsや38400bpsとなっており、設定変更が面倒です。MultiWiiですぐに使えるようにシリアル側が115200bpsに設定されたものがRCTimerで$8ほどで販売されています。が、これはドキュメントが無い。DEALEXTREMEで$8程度で販売されているものはマニュアルがリンクされています。

PCから設定するにはFTDIアダプタなどUSBシリアルアダプタに接続してATコマンドで行います。よくあるのは、PIO11ピンをHIGHにして電源を入れるとATコマンドモードには入れるものです。PIO11と3.3Vを抵抗をはさんでつなぐわけです。

たとえば、シリアル側の通信速度の変更するためにはPIO11ピンをHIGHにしてPCにUSBシリアルで接続します。PC側のターミナルソフトで9600bpsか38400bpsに設定してAT[Enter]をタイプしてOKが帰ってくれば、現在の設定されている通信速度で接続しており、設定モードに入れているわけです。マニュアルにしたがって通信速度の設定コマンド(例:AT+UART=115200,0,0[Enter])をタイプします。これでOKが帰ってくるのでそれでおしまいです。プルアップをはずして電源を入れなおすと通常の通信モードになります。

動作確認するにはAndroidのBluetermとかBluetooth側の通信ソフトがあると便利。Android側でこのBluetoothアダプタをバインドし、Bluetermでこのアダプタを選択します。お互いにタイプしたものが相手側に届けば正しく設定されているわけです。

MultiWiiに接続するには制御基板のシリアルと電源に接続するだけ。ソフトウェアの設定は不要。FTDIでのシリアル接続の替わりに使えます。ATmega 328のMultiWii制御基板でUSBポートが付いているタイプのはそのFTDIなどをとめないと使えないものもあります。シリアルポートがひとつしかないわけですから。

AndroidのMultiWii設定プログラム、EZ GUIやAndroid MultiWii Configurationで使えます。PCと接続して使うには、WinGUIがよいです。東芝のBluetoothスタックでないとProcessing, JavaベースのGUIは安定してつながらないようです。
ちなみにAndroidも機種によってはBluetoothがだめです。手持ちの中ではHuawei Ascend P1(=EMOBILE GS03)がどうにも不安定。Pocket WiFi S II (S41HW)とかは大丈夫だったのですが。

通常のBluetoothの到達距離は3-5mといったところです。Bluetoothアダプタのアンテナに手を加えると改善できます。回路パターンのアンテナをカットして、代わりに長さが波長の1/4(λ/4)、3cmほどのワイヤを半田付けするだけです。Galaxy Nexusで試したところ100mは十分届いてしまいます。クワッドならあまり遠くまで飛ばさないのでこれでテレメトリは十分。EZ GUIのマップ上で自分と機体の位置もずっと確認できます。GPSやらBAROなんかのPID設定もつなぎっぱなしなのでとても楽にできました。


0 件のコメント: