2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Rover製作04 ArdupirotにXBeeで接続する

Last updated at Posted at 2022-02-12

環境

この記事は以下の環境で動いています。

項目
CPU Core i5-8250U
OS Windows10
MissionPlanner v1.3.80
項目
Board Pixhawk(v2.4.8)
Ardupilot Rover V4.2.3

概要

ここまでUSBケーブルでPC-Pixhawkを接続してきました。今後機体を動かしながら調整するにあたり、無線でMissionPlannerで接続した方が便利です。無線の形式は色々ありますが、ここではXBeeを使います。

04_xbee.jpg

予備知識

XBee

海外サイトでPixhawkとセットでテレメトリー無線が多々販売されていますが、技適対応品かが怪しいです。XBeeなら秋月電子などで技適対応品が販売されています。
XBeeはメジャーな無線通信モジュールです。ZigBeeという通信規格を使っています。ZigBee自体はメッシュネットワーク等高度な機能がおおいのですが、ここではただUART通信を無線化する用途で使います。XBeeそれぞれにはユニークなIDが振られていて、2つのXBeeにそれぞれ相手のIDを書き込むことで相互通信ができます。

XBeeの設定をするWindowsソフトが「XCTU」です。これを使って2つのXBee同士のペアリングなどを行います。
またXBeeは2mmピッチのDIPコネクタという独特なコネクタをしています。USB&2.56mmピッチ変換基板を用意する必要があります。以下の物が良く売っていて安いので使います。(USB-mminiBコネクタなのが玉に瑕ですが...)
XBeeアダプター.jpg

Xbeeの無線HWでのbaudrateはドキュメントの記載では「250kbps」と記載されています。安定してUART通信するためには、XbeeのUARTのbaudrateをその1/5程度に設定するのが良いかと思います。

事前条件

以下の機材が必要です。

  • WindowsPC
  • pixhawk
  • USBA-microBケーブル
  • USBモバイルバッテリー
  • XBeeS2C x2
    • それぞれに「cordinator」、「rooter1」というラベル貼って、容易に区別できるようにすることを推奨
  • XBeeシリアルアダプター x2
  • USB-miniBケーブル x2
  • pixhawk-Xbeeアダプターケーブル用の部材
    • ケーブル(AWG26推奨)
    • PHコネクタ(5Pハウジングx1、ピンx5)
    • 2550コネクタ(5Pハウジングx1、ピンx5)

手順

XBeeIDの確認

  • 「cordinator」、「rooter1」のそれぞれのXBeeについて、裏のラベルの「MAC」の項の値をにメモする(後々の設定に使う)。

XBee_mac.JPG

XCTUのインストール

  • windowsPCにて、XCTUダウンロードページの下方の「XCTU v.X.X.X Windows x86:x64」をダウンロードする。
  • ファイルを開き画面の指示に従ってインストールをする。

「cordinator」のXBeeの接続・設定

  • 「cordinator」のXBeeを変換基板に乗せて、WindowsPCとUSB接続する。
  • XCTUを起動する。

XCTU1.png

  • 左上の「Add device」を押す。
  • 出現した「Add radio device」デバイス選択ウィンドウで以下の操作をする。
    • 「Resfresh ports」を押す。
      • 「Select the Serial/USB port」の下に接続したデバイスが表示される。
    • 「Baud Rate」で「9600」を選択する。
    • 「Finish」を押す。

XCTU2.png

  • 以下のようにデバイスが追加されたことを確認する。
  • 画面右の「Radio Configuration」でパラメーターを選択する。以下の表の「#1」の値を選択する。
  • パラメーターの選択後「Write」ボタンを押す。

XCTU3.png

項目 #1 #2 説明
ID(Pan ID) 1234 ←同じ ネットワークのIDで2つで同じ値にする必要がある
JV (Channel Verification) Enabled[1] ←同じ 接続channelにかかわる設定
CE Coordinator Enable Enabled[1] Disabled[0] 片方だけをEnableにします。
DH (Destination Address High) #2のSH #1のSH 相手のアドレスの上位8桁
DL (Destination Address Low) #2のSL #1のSL 相手のアドレスの下位8桁
NI (Node Identifier) cordinator rooter1 任意の両者を区別するための値(Option)
BD (Baud Rate) 57600[6] ←同じ シリアル接続IFのbaudrate
D7 (Pon 12 - DIO7/nCTS Configuration) Disabled[0] ←同じ CTS信号を無効にします

「router1」のXBeeの接続・設定

  • 「cordinator」の時と同じように「router1」のXBeeをXCTUと接続します。
  • 同様にパラメーターを書き込みます。この時に上表の#2の値を設定します。

XBee同士の導通確認

  • 「cordinator」のXBeeをXCTUと接続して、シリアルターミナルの設定をする。
    • 「cordinator」のXBeeをWindowsPCに接続する
    • XCTUを起動する
    • 「Add device」の操作をする。
    • 右上のボタンで「(1)ターミナルモード」を選択する。
    • ウィンドウ中の「(2)Open」ボタンを押す。
    • 「Send packets」内の「(3)+」ボタンを押す。
    • 出てくるウィンドウに適当な文字列を入れる。
    • 「(4)Send selected packet」を押すことで実際にUARTにデータが送信される。
      • まだこの段階では受信側がいないので、効果は起こらない
  • 「router1」のXBeeをXCTUと接続して、シリアルターミナルの設定をする。
    • 「router1」のXBeeをWindowsPCに接続する
    • 「cordinator」と同様にXCTUを設定をする。
  • 通信確認を行う
    • 片方のXCTUのウィンドウで文字の送信をすると、もう1つのXCTUのウィンドウで受信をすることを確認する。

XCTU4.png

XBee-Pixhawkの接続ケーブル作成

  • 以下の接続でXBeeアダプターとpichawkの接続をするケーブルを作成する。長さは15cmあれば十分。
    • XBeeアダプター側のピンは、アダプター上の表示を確認して合わせる。
    • pixhawkのコネクタは種類があるが、一番メジャーなものがmolexのPicoblade仕様のもの。
      • このPicobladeコネクターはハウジングのピンをひっかける穴がある方を見て右から1ピンとなる(ヒロセコネクタとは逆なので注意)。
# pixhawk側 # XBeeアダプター側
1 VCC 1 VCC
2 TX(OUT) 3 TX(IN)
3 RX(IN) 4 RX(OUT)
4 CTS 5 RST
5 RTS - ---
6 GND 2 GND

Ardupilotの通信設定

  • XBee関連の接続はすべて解除する
  • WindowsPCとPixhawkをUSBケーブルで接続する。
  • MissionPlannerを起動して、Pixhawkと「接続」する。
  • MissionPlannerで「設定/調整」->「パラメーターツリー」から以下のパラメーターを設定します。
    • 注:これらのパラメーターを反映するにはpixhawkの再起動が必要
パラメーター名 説明
BRD_SER1_RTSCTS 0 rtsピンを用いたフロー制御を無効にします
SERIAL1_BAUD 57(デフォルト) 57600bps

XBee経由でのMissionPlannerの接続の確認

  • WindowsPC側の操作
    • WindowsPCとPixhawkを接続しているUSBケーブルを抜く。
    • WindowsPCとXbeeの片方をUSBケーブルで接続する。
    • MissionPlannerを立ち上げる。
    • MissionPlannerの右上のポート指定でXbeeとつながっているポートを選択する。
    • baudrateで「57600」を指定する。
    • 「接続」を押す。
  • Pixhawk側にの操作
    • PixhawkにXbeeを接続する。
    • PixhawkのUSBにモバイルバッテリーをつなげて電源供給をする。
  • MissionPlannerでArdupilotとの接続がされていることを確認する。

※ 筆者の環境ではPixhawkの電源ON -> MissionPlannerで「接続」の順番では接続が確立しないことが多いです。

参考

pixhawkのコネクタ事情

目次ページへのリンク

ROS講座の目次へのリンク
ROS2講座の目次へのリンク

2
3
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?