リモートコントロール(RC)戦車をつくる【XBeeコントロール①】 [XBee]
これまで遠隔コントロールとして赤外線リモコンを使ってきましたが、一旦、前回までで終了して、次に”XBee"を使ってみたいと思います。
若干”今さら?”感も拭えないところですが、電子工作的には必ず通る基礎スキルのようなものですので、遠隔コントロールの第2弾として、やってみたいと思います。
で、こちら↓です。
わたしが持っているのは”s2"というシリーズですが、少々調べたところ2015年12月~2016年2月くらいに”s2c"という後継シリーズがリリースされています。そのため、今(2019年10月)時点で販売終了品となっています。
本来であれば、販売終了品を積極的に使う理由はなく、新しいタイプに買い直して。。。ということになるのですが、XBee本体の設定ができれば、その後の用途でs2とs2cの差分が問題にはならないため(まぁ、買い直すのももったいないかなーとも思って)、今回は"s2"を利活用することにしました。ちなみにs2とs2cの主な差分は以下のようです。
・従来のXBee ZB(S2)と同程度の消費電力で、従来のPROシリーズ(S2B)に近い通信距離
・最大5 MbpsのSPI通信ができる
・ZigBeeデバイスタイプ(コーディネータやルータなど)のモード設定変更時におけるファーム
ウェアの書き換えが不要
今さらXBee s2モジュールへの設定ですので、ググっても今の最新版XCTU(Ver.6.x)とs2の組み合わせはなかなか見当たりませんでした。実現までに多少手探りで苦労したところもあったので、一通り今回できた手順をTipsとして列記していきたいと思います。
【XCTUインストール】
Digi社のサイトからXTCUをダウンロードしインストールします。
2019年10月時点でバージョン6.4.4でした。
https://www.digi.com/products/embedded-systems/digi-xbee/digi-xbee-tools/xctu#productsupport-utilities
>XCTU v. 6.4.4 Windows x86/x64
【ハードウェアの準備】
XBee を PC に接続するためには USBアダプタが必要になります。もちろん、それ用のものを購入して使ってもよいのですが、手元にUSB-シリアル変換モジュールがあるので自作します。XBeeはピン間隔が2mmピッチで、そのままではブレッドボードやユニバーサル基板に差すことができないので、変換基板を使います。電源とGND、あとはシリアルデータ(TX, RX)2本を接続して簡単に作りました。
XBee用2.54mmピッチ変換基板
"http://akizukidenshi.com/catalog/g/gP-05060/"
【Xbee s2を接続した直後のXCTU画面】
XCTUとハードウェアの準備ができたら、XBeeをPCと接続します。
USB-シリアル変換モジュールのJ1ピンヘッダでシリアルI/Oの電圧を切り替えています。XBeeは3.3V動作なので1-2ピンをショートして使用します(ちなみに2-3ピンショートは5V)。
(2020.5.31)XBee用2.54mmピッチ変換基板には3.3V電圧レギュレータが実装されています。データシートを見ると概ね5V~12V印加で3.3V出力します。なので、この場合では5V印加が正しいです(2-3ピンをショートして5V印加)。一応、3.3V印加で3.3V出力はしてくれているので、使い方的には少し間違えたかもしれませんが、動作はするってことですね。
XBeeモジュールは認識したようですが”ファームウェアが見つからない”と言われています。
"ファームウェアのライブラリをアップデートするか?"と聞かれているのでYesを押します。
”探してもファームウェアが見つからない”と言われています。
次に手動でファームウェアを探そうと試みますが、これもうまくいきません。
既にs2cシリーズがリリースされてから約3年半くらい経過して、ネットショップでもs2シリーズは販売終了品として流通在庫も無い状況のようなので、”legacyとして扱われていてもおかしくはないのでは?“と考えて、古いバージョンのファームウェアをインストールしてみます。
これでうまくいったようです。
Functioinにファームウェアの表示が出てきました。ルータモードのようですね。
【ファームウェアの書き換え】
s2シリーズでは、コーディネータやルータなどのモード設定変更時にはファームウェアを書き換える必要があります。
XBeeネットワークでは1つのコーディネータが必須なので、1個をルータからコーディネータへ変更します。ついでに1個のルータモードのxBeeは、ファームウェアバージョンが最新版ではないのでバージョンアップします。
若干”今さら?”感も拭えないところですが、電子工作的には必ず通る基礎スキルのようなものですので、遠隔コントロールの第2弾として、やってみたいと思います。
で、こちら↓です。
わたしが持っているのは”s2"というシリーズですが、少々調べたところ2015年12月~2016年2月くらいに”s2c"という後継シリーズがリリースされています。そのため、今(2019年10月)時点で販売終了品となっています。
本来であれば、販売終了品を積極的に使う理由はなく、新しいタイプに買い直して。。。ということになるのですが、XBee本体の設定ができれば、その後の用途でs2とs2cの差分が問題にはならないため(まぁ、買い直すのももったいないかなーとも思って)、今回は"s2"を利活用することにしました。ちなみにs2とs2cの主な差分は以下のようです。
・従来のXBee ZB(S2)と同程度の消費電力で、従来のPROシリーズ(S2B)に近い通信距離
・最大5 MbpsのSPI通信ができる
・ZigBeeデバイスタイプ(コーディネータやルータなど)のモード設定変更時におけるファーム
ウェアの書き換えが不要
今さらXBee s2モジュールへの設定ですので、ググっても今の最新版XCTU(Ver.6.x)とs2の組み合わせはなかなか見当たりませんでした。実現までに多少手探りで苦労したところもあったので、一通り今回できた手順をTipsとして列記していきたいと思います。
【XCTUインストール】
Digi社のサイトからXTCUをダウンロードしインストールします。
2019年10月時点でバージョン6.4.4でした。
https://www.digi.com/products/embedded-systems/digi-xbee/digi-xbee-tools/xctu#productsupport-utilities
>XCTU v. 6.4.4 Windows x86/x64
【ハードウェアの準備】
XBee を PC に接続するためには USBアダプタが必要になります。もちろん、それ用のものを購入して使ってもよいのですが、手元にUSB-シリアル変換モジュールがあるので自作します。XBeeはピン間隔が2mmピッチで、そのままではブレッドボードやユニバーサル基板に差すことができないので、変換基板を使います。電源とGND、あとはシリアルデータ(TX, RX)2本を接続して簡単に作りました。
XBee用2.54mmピッチ変換基板
"http://akizukidenshi.com/catalog/g/gP-05060/"
【Xbee s2を接続した直後のXCTU画面】
XCTUとハードウェアの準備ができたら、XBeeをPCと接続します。
USB-シリアル変換モジュールのJ1ピンヘッダでシリアルI/Oの電圧を切り替えています。XBeeは3.3V動作なので1-2ピンをショートして使用します(ちなみに2-3ピンショートは5V)。
(2020.5.31)XBee用2.54mmピッチ変換基板には3.3V電圧レギュレータが実装されています。データシートを見ると概ね5V~12V印加で3.3V出力します。なので、この場合では5V印加が正しいです(2-3ピンをショートして5V印加)。一応、3.3V印加で3.3V出力はしてくれているので、使い方的には少し間違えたかもしれませんが、動作はするってことですね。
XBeeモジュールは認識したようですが”ファームウェアが見つからない”と言われています。
"ファームウェアのライブラリをアップデートするか?"と聞かれているのでYesを押します。
”探してもファームウェアが見つからない”と言われています。
次に手動でファームウェアを探そうと試みますが、これもうまくいきません。
既にs2cシリーズがリリースされてから約3年半くらい経過して、ネットショップでもs2シリーズは販売終了品として流通在庫も無い状況のようなので、”legacyとして扱われていてもおかしくはないのでは?“と考えて、古いバージョンのファームウェアをインストールしてみます。
これでうまくいったようです。
Functioinにファームウェアの表示が出てきました。ルータモードのようですね。
【ファームウェアの書き換え】
s2シリーズでは、コーディネータやルータなどのモード設定変更時にはファームウェアを書き換える必要があります。
XBeeネットワークでは1つのコーディネータが必須なので、1個をルータからコーディネータへ変更します。ついでに1個のルータモードのxBeeは、ファームウェアバージョンが最新版ではないのでバージョンアップします。