電動クローラの組み立て(その3)
はじめに
GPS電動クローラ(運搬車)を製作するために、自動制御コンピュータHolybro PixHawk 6XとWindows PCとの間をZigBee(ジグビー)にて無線化します。無線化により、Windows PCをクローラに搭載せずにすみます。
ZigBee XBee3の設定
この構成では、PixHawkとWindows PC上で動作するのMission Plannerが連携して、クローラ自動制御を行います。ここでは、この両者を接続するUSB-Cケーブルを無線化します。PixHawkのテレメータ(TELEM1)ポートに無線機を接続すると、この両者を無線化できます。
ここで導入したZigBeeは、Digi XBeeのXBee3です。この無線接続の用途では、前世代のXBee2(S2C)でも充分です。私が購入した時点では、XBeeS2CよりもXBee3の方が安価でしたので、XBee3を選択しました。XBee3は、XBeeS2Cの上位互換で、さらにMicroPythonが付加されているそうです。
この無線接続のために購入したものは次のとおりです。
- XBee3無線モジュール 3セット
- XBee USBインターフェイスボードキット 2セット
- XBee用2.54mmピッチ変換基板 1セット
無線モジュールは2セットあればよいのですが、設定練習のために予備の1セットを追加しました。USBインターフェイスボードを組み立てる一方、PixHawk 6X購入時に付属していた6ピンコネクタケーブルの一方を分解して、XBeeピッチ変換基板に接続します。
接続は次の通りです。
PixHawk 6X | XBee3 | note |
---|---|---|
1 (+5Vcc) | 1 (Vcc) | |
2 (TX) | 3 (Din) | |
3 (RX) | 2 (Dout) | |
4 (CTS) | NC (no connection) | フローコントロール不可のため |
5 (RTS) | NC (no connection) | フローコントロール不可のため |
6 (GND) | 10 (GND) |
一方、USBインターフェイスボードのピンヘッダには、USBバスパワとなるように、ジャンパピンを取り付けます。
USBインターフェイスボード2枚に、XBeeをそれぞれ取り付けます。そして、XBeeを1枚づつ、Windows PCにインストールしたソフトウェアDigi XCTUにて設定します。デバイススキャン時、ボーレートが問われますが、デフォルトの9600 bpsと、今後利用する57600 bpsとの2つを選択しました。接続したデバイスを発見できたら、addボタンを押して、そのデバイスを追加します。
ZigBeeでは、Device RoleCE
として、一方をJoin Network
、他方をForm Netork
に設定します。このZigBeeデバイスの組み合わせの場合、ArduPilot公式サイトのZigBee設定例の通りでは動作しないこともあるようですので、ここではPC側をJoin Network
に、PixHawk側をForm Network
に設定しました。
それぞれのXBee3において、デフォルト値から変更した項目は次のとおりです。なお、ここで示したこの相手のMACアドレスは、私のもので、XCTUに接続して確認しました。
設定 | PC側 | PixHawk側 | note |
---|---|---|---|
ID | 1234 | 1234 | 任意数値 |
NI | xb1 | xb2 | 任意文字列 |
CE | Join Network | Form Network | |
BD | 57600 | 57600 | ボーレートを9600 bpsから57600 bpsに変更 |
D7 | 0 | 0 | フローコントロールをオフにする |
DH | 13A200 | 13A200 | 相手XBeeの上位MACアドレス(固定のようです) |
DL | 421D74B2 | 421C0D69 | 相手XBeeの下位MACアドレス(13A200に続く文字列) |
設定値を入力するたびに、鉛筆ボタンを押して、設定値をデバイスに書き込みます。
設定が完了したら、2枚のZigBeeモジュール間で通信できることを確認します。私は、この2枚のZigBeeモジュールをそれぞれ2台のMacに接続して、screen /dev/tty.usbserial-... 57600
にて双方向通信のできることを確認しました。...
の部分はシリアルポート固有の名称が入りますが、zsh
シェルにてタブキーを押せば補完されます。screen
コマンドの終了はCtrl-a k
です。
Mission Controlの設定
PC側の設定を行ったZigBeeモジュールをWindows PCに接続して、Mission Controlを起動します。Mission ControlのZigBee設定方法は、ArduPilotの公式ホームページに書かれているとおりです。フローコントロールをオフにするため、設定/調整
→フルパラメータリスト
にて、BRD_SER1_RTSCTS
を2
から0
に変更します。
SERIAL1_PROTOCOL
はデフォルトの2
(MAVLink 2)のままでも動作しました。
PixHawkとZigBeeの接続
そして、PixHawk側の設定を行ったZigBeeモジュールをピッチ変換基板に接続し、この基板をPixHawkのTELEM1ポートに、PM02DをPixHawkのPOWER1ポートに、GPSユニットをGPS1ポートに、それぞれ接続します。機材が増えたため、CuGo V3コンプリートキットの防水ボックスに収まらなくなりました。防水ボックスのサイズアップが必要になりました。
この機材を屋外に持ち出して、プロポにて走行試験をしました。まだ、PixHawkとESCとを接続していませんので、ArduPilotによる自動制御はできませんが、雰囲気をつかむことができました。
Windows PC上のMission PlannerのシリアルポートとしてZigBeeのものを指定し、接続ボタンを押したら、ZigBee経由にてPixHawkの情報が表示されました。バッテリ情報、GPS情報などがMission Planner上に表示され、嬉しいです。
おわりに
PixHawk 6XとWindows PCをZigBeeにて無線化しました。今後、ESCとPixHawkを接続して、ArduPilotによる自動制御を試してみたいと思います。
関連記事
- 電動クローラの組み立て(その2) 15th October 2024
- 電動クローラの組み立て(その1) 11st October 2024