パワーメーター動的校正をしたいので、XBEEを使って、右クランクのひずみゲージ値をPCへシリアル転送できるかいじってみました。半日でなんとかセ接続できましたが、例によって、わかりにくいしバージョンアップの解説が不足していて丁寧な解説がどこにも無いというハマルパターンでしたが単純なシリアル接続なのでなんとか接続できて良かったです。
- 結果
ルーター側:ATモードでNUCLEO L432KCと115200bps接続
Cordinator側:ATモードでPCへ接続(秋月AE-XBEE-USB経由)
115200bpsでNUCLEOから転送OKでした。
***********************
2019年9月末現在、Xbee通信の精度信頼性を評価した結果
適当につながっている状態では115200bpsでのデータの欠落が多くて精度よい計測不可能であることが判明してます。対策としては、HardwareFlow制御をいれたり、Xbee電源電圧の安定化
アンテナと距離位置の最適化などの対策を検討してます。しかし、0.5%データ落ちます。
※9600bpsとか14400bps程度なら適当につながった状態でも大丈夫です。詳細記事は、下記です。
秋月のピッチ変換基板にXBEE ZB S2Cを載せて、ブレッドボードで配線、注意するのは、ピッチ変換基板の1番ピンは、5V入力であって、XBEEの1番ピンとはつながってません。XBEEの1番ピンは、3.3V専用なので、間違って5Vをいれたら壊れるので、5Vがまわらないように、外にはださないようになってました。
ピッチ変換基板の2番ピンがDOUT(TX)3番ピンがDIN(RX)となってますので、NUCLEOのTXとDIN、RXとDOUTを接続しました。日本語ブログでは、S2Cの最新解説が無かったので、海外ブログで下記が一番役立ちました。
NUCLEO側は、簡単なシリアル転送プログラムだけでOKでした。
- 新モード TH-REGって何だ?
XBEE S2BからS2Cになって大幅にバージョンアップされていてXCTUで従来のモード選定画面が現れなくなりました。2016年以前のXCTUの使い方のブログが全て活用できなくて、困ってしまいました。th-regというモード1本しかでてこないし、XBEEのUSER GUIDEにもth-regという単語が一個も出てこないという不思議なことになってました。DIGIもユーザーサポートしたくないのか解説も無く、放置状態という感じです。WEB上で検索しても1個しかなかったのでDIY電子工作では、過去のデバイスだと思います。メジャーでないと価格も下がらないし、WEB情報も少ないので、XBEEは、買いではないと思います。
※2020年12月追記
本記事2017年7月作成ですが、すでにXbeeは、時代遅れとなっていて、2020年になって1度もXbeeを使ってません。マイコン無線は、ESP32独自の無線規格ESP-NOWで統一してます。
何故かというと高速通信のデータ落ちが少ない(Xbeeより一桁上の信頼性)多端末との通信が非常に簡単(XbeeではAPIモードで複雑なプログラムが必要でしかも遅い)ということで
ESP-NOWと比較するとXbeeは存在自体あってはならないほど劣ったデバイスとなってます。
しかも、時代は5G時代ですのでこれから数年でマイコン無線規格が革命的に変化する時代です
2020年以降Xbeeへ1円でも投資することはお金を捨てることになりますので、お勧めしません。
ESP-NOW カテゴリーはこちらです。
とりあえず、DIGIのFAQで回答がありました。
https://www.digi.com/support/forum/61620/zigbee-th-reg-what-to-do””>https://www.digi.com/support/forum/61620/zigbee-th-reg-what-to-do
=>従来,モードを選んでファームウェアを書き換えていた方法だったが、CPUが大規模になったため、全モードが既に書き込まれているので、ATコマンドを送るだけでモード設定ができるらしいです。Router ATモードは、デフォルトになっている。APIモードは、今回は、使わないので割愛します。
- 最低限XCTUで設定したこと
全て、秋月で調達しました。
XBee USBインターフェースボードキット これは2個買っておいたほうがいいです。
XBee ZB S2Cモジュール ワイヤーアンテナタイプ
XBee用2.54mmピッチ変換基板 実装するときにつかいますが
2mmピッチと2.54ピッチなので片足タイプの基板セットが便利です。
スイッチサイエンスにあります、これと2mm10ピンコネクタです。
https://www.switch-science.com/catalog/1508/
①準備
個別IDをメモしておく
2個のXBEEの背面にIDがあるので、メモをとっておきます。
どちらをCordinatorにして、ルーターをどちらにするか印をつけておかないと抜き差しが頻繁にありますので、間違って設定してしまいそうです。
②XCTUのインストール
これは、解説記事がたくさんあります。旧バージョンでも同じです。「琵琶湖のほとりの人」というブログが丁寧に解説していただいております。
http://hikone.info/blog/?cat=12
③XCTUの最低限設定
1)PAN ID:通信相手同士同じ番号を任意に決めておく
2)CE:Coodinate設定で enable[1]にした場合はXBEEが
Coordinatorになります。しかし、ATモードにしておくと
Cマークがつかなくて、Coordinatorとして認められません。
ルーターは、デフォルトでルーターですのでいじらなくていいです。Coordinatorをデフォルトに戻したければ上のアイコンに
Defaltがありますので、DefaultにしあとWRITEしてしまえば出荷時のルーターATモードに戻ります。
3)APIモードとATモード
ATとAPIモードの変更は、Serial Interfacing項目の
AP:API enableモードがTransparent modeならATです。
API enable modeなら APIになります。
APIモードにすると初めて、Cマークがつくのですが、
ATモードだけで、単純なシリアル通信できるので、
私は、APIモードにして子機と接続確認した後、
ATモードに戻してしまいました。
- XCTUで接続試験は、できるのですが、分りにくいのでXCTUが閉じて、ブレッドボードのUSBシリアルとCoordinator側USBシリアルとTERATERMだけで、通信チェックしたほうが分りやすいです。
- 以後
- 急いで、クランクのひずみゲージ出力をXBEE送信できる基板を作ります。スペースがないのでどのCPUを使うかが問題ですので、手持ちで選んでみますが、手間もあるし電源である電池をどうするかが問題です。今週中に作って、動的校正をやります。
- ※この記事が2017年7月の記事ですが1年たって現時点(2018年9月)にXbeeで電池駆動をトライしてますが課題があってつまずいてます。スリープを使えば電池寿命は伸ばせるのですが、スリープのタイミングが400msec以上かかりますので400msec以下のタイミングで毎回測定する用途だとスリープが使えません。
そこで、電池を大きくするか本数を増やす対策が必要となるのがXbeeの欠点です。
※2020年7月記 「もうXbeeの時代ではありません」
本記事は、2017年7月の記事ですが、3年たって、私の技術とスキルも向上して、Xbeeは、2020年度以降は使わないことにしました。
理由1:速度を早くするとデータ落ち率が増加して信頼性が劣る。
=>115200bpsでHardwareFlowをつけても0.5%程度発生します。
理由2:複数個での通信はAPモードでプログラムが大変面倒で処理時間も遅くなる
=>パケットを作って、プログラム管理しながら、複数の通信タイミングを
落ちがないようにプログラムするのは非常に面倒で、難しい。
理由3:PC、スマホに搭載されていない無線方式なので、データをログする用途には不向き
=>BlueToothやWiFiなら、PC、スマホで直接受信できるので、無線モジュールが半分ですむ
理由4:5Gが普及した場合、Xbeeのメリット長距離、低遅延がなくなり、速度が遅い点だけめだつようになる。
=>5年後には、Xbeeに無線におけるシェアは確実に低下しているはずなので、2020年以降でXbeeへの投資は、無駄である。
理由5:マイコン間通信で使うならESP32シリーズで独自の無線規格ESP-NOWのほうが、高速性、複数台通信が容易、プログラムが簡単とメリットがあるので、電池寿命はXbeeに負けますが、ESP32だけ購入すれば、無線モジュールも含まれているので、コストパフォーマンス、実装面積、システム規模が小さくてすむ点で、圧倒的にXbeeを凌駕してます。
私は、2020年以降ESP-NOWをつかうことにしました。ここ3年間Xbeeではできなかった、複数個所からの高速データ通信でデータのリアルタイム同期処理とログが超簡単に実現できました。