電動クローラの組み立て(その3)

category: gnss
tags: cugo pixhawk

はじめに

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が付加されているそうです。

この無線接続のために購入したものは次のとおりです。

無線モジュールは2セットあればよいのですが、設定練習のために予備の1セットを追加しました。USBインターフェイスボードを組み立てる一方、PixHawk 6X購入時に付属していた6ピンコネクタケーブルの一方を分解して、XBeeピッチ変換基板に接続します。

PixHawk 6X and XBee3

接続は次の通りです。

PixHawk 6XXBee3note
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ボタンを押して、そのデバイスを追加します。

Digi XCTU

ZigBeeでは、Device RoleCEとして、一方をJoin Network、他方をForm Netorkに設定します。このZigBeeデバイスの組み合わせの場合、ArduPilot公式サイトのZigBee設定例の通りでは動作しないこともあるようですので、ここではPC側をJoin Networkに、PixHawk側をForm Networkに設定しました。

それぞれのXBee3において、デフォルト値から変更した項目は次のとおりです。なお、ここで示したこの相手のMACアドレスは、私のもので、XCTUに接続して確認しました。

設定PC側PixHawk側note
ID12341234任意数値
NIxb1xb2任意文字列
CEJoin NetworkForm Network
BD5760057600ボーレートを9600 bpsから57600 bpsに変更
D700フローコントロールをオフにする
DH13A20013A200相手XBeeの上位MACアドレス(固定のようです)
DL421D74B2421C0D69相手XBeeの下位MACアドレス(13A200に続く文字列)

設定値を入力するたびに、鉛筆ボタンを押して、設定値をデバイスに書き込みます。

Digi XCTU

設定が完了したら、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_RTSCTS2から0に変更します。

Mission Control

SERIAL1_PROTOCOLはデフォルトの2(MAVLink 2)のままでも動作しました。

Mission Control Configuration

PixHawkとZigBeeの接続

そして、PixHawk側の設定を行ったZigBeeモジュールをピッチ変換基板に接続し、この基板をPixHawkのTELEM1ポートに、PM02DをPixHawkのPOWER1ポートに、GPSユニットをGPS1ポートに、それぞれ接続します。機材が増えたため、CuGo V3コンプリートキットの防水ボックスに収まらなくなりました。防水ボックスのサイズアップが必要になりました。

PixHawk 6X and XBee3

この機材を屋外に持ち出して、プロポにて走行試験をしました。まだ、PixHawkとESCとを接続していませんので、ArduPilotによる自動制御はできませんが、雰囲気をつかむことができました。

PixHawk 6X and XBee3

Windows PC上のMission PlannerのシリアルポートとしてZigBeeのものを指定し、接続ボタンを押したら、ZigBee経由にてPixHawkの情報が表示されました。バッテリ情報、GPS情報などがMission Planner上に表示され、嬉しいです。

Mission Planner

おわりに

PixHawk 6XとWindows PCをZigBeeにて無線化しました。今後、ESCとPixHawkを接続して、ArduPilotによる自動制御を試してみたいと思います。


関連記事