【パワーメーター2019】左右トルクXbee2個受信処理はまった<PCスレッドで同期検討>

左クランク基板が完成したところで、左右のトルクデータが4msec周期で母艦マイコンで受信するのですが、意外と大変で、時間遅延なく正確に受信する手段がありません。
ブレッドボードに2個のXbeeから4msec周期で時刻データを送信テストプログラムを作って、母艦での処理方法を検討しました。

●2つのシリアルポートで受信
実験1:シリアルポート割り込みを2個使った
=>でたらめなデータになってしまった。割り込みの優先順をきめないときちんと出ないが、結局優先の低いデータは時間遅れが発生してしまうはず。

実験2:割り込み無しでmain ループ内で、順次受信処理
=>右トルクデータ受信してから次の左ポート受信すると20msecも遅れてしまう。
どこかで道草をくっている、Xbee側の受信タイミングとマイコン側の受信タイミングチェックがずれていると予想以上に遅れるのか?

●XbeeのAPIモードAP=2で受信
学習してみましたが、パケットの演算を理解するのが面倒なので、今回は
パス。パケット処理しても、結局左右Chのデータを得るのに時間ズレは免れないと
おもう。

●左トルクXbeeだけ独立してPCへログ
最終的には、PCで集計してCPLTでグラフにするので、
PCのスレッドでCPLT2個立ち上げて片方のCPLTで、母艦で右トルク波形とシートチューブの波形、一方のCPLTで、左クランクのXbee受信データそのものを入力ログすれば、最も時間ズレがないのではないかと思う。
2つのシリアルポートからの受信処理をマイコンの割り込み処理を使っても、所詮180MHz程度の命令が走って分業するので、クロック分必ず遅延がでてしまいます。ですので、マイコンのクロックを数GHzまであげられれば遅延は極限まで減少していきます。そこで、どうせなら最も高速な分業処理ができるPC上で、ポート2個を受信するのが遅延が最も少ない方法であると思います。

●以後
PC上でログしたデータの遅延をチェックして、使えれば採用します。
しかし、実走走行でも、小型モバイルPCを積載しないといけないのが
ハンディですが、4msec周期でペダリング動作をサンプリングするのが
目的なので、最適な手段でトライしたいと思います。

 

●その後2020年になって
 Xbeeで115200bpsでデータ送信するとデータ落ちが多くて、信頼性に劣ることがわかりました。
 2020年度からXbeeは使わないことにしました。代わりにESP-NOWというWIFI系の無線方式を採用して、2019年度失敗した左右クランクからのトルクデータの同期と精度を確保することができました。

【PowerMeter2020】ESP-NOWの通信速度速い4msecOKだった<BTやXbeeより良い>


2019年の失敗があったから、2020年度の成功があったのですが、無駄な数か月を過ごしたと思いますが、その分、精度よく測定するスキルが向上しました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です