【M5】M5Atom間サンプリング時間同期Pgm作った<備忘録>

SCP(SmartCalibrationSystem)を開発してますが、入力端末のロードセル出力と被測定物側応力センシング端末間で同期ができてないと、測定精度が確保できないので、10msecオーダーでの無線同期システムを作りました。

■システム概要

母艦でデータを主収集して、PCのVB.NETリアルタイムモニターに渡します。
子機は、2台で力を加えるロードセル(SCP)の子機Aと被測定物に貼ったひずみゲージ群の出力をまとめる子機Bです。

 

■同期精度、通信信頼性測定結果

考察1:4000データ中データ欠落はゼロで、ESP-NOWの高信頼性が確認されました。(Xbee,BlueToothより優秀です)

考察2:サンプリング周期ばらつきは、M5StickCが悪いことが判明した。
それに比べ、mbed NucleoL432KCはほとんど周期ばらつきがありません。
M5StickCの場合液晶表示が1秒に一回はいるのですが、これば、ばらつきの原因です。

考察3:1秒に1回同期リセットをかけているので、12.5msecで80個分で時間管理されてますので、精度が並みの20ppm程度のマイコンでも数msecも誤差がでないので、データの同期と周期信頼性はでています。

 

■プログラムの備忘録
 上記実験に使ったプログラムをGISTにアップ備忘録しておきます。
①子機A:NucleoL432KC mbed C++ プログラム
AD7194 6chでシリアル115200bps転送時間10msecは無理で、12.5msecとなった。
https://gist.github.com/dj1711572002/ef0d328db03e9ad1cc9b1084af4c3c0d

 

②子機A用SPPモジュール
https://gist.github.com/dj1711572002/08e9bb5ec0362c630f2706e6d4ee1b4a


③子機B:M5StickC ArduinoIDE プログラム
液晶DISPLAYを1秒に一回更新をいれるとADCサンプリング周期が乱れる
https://gist.github.com/dj1711572002/3d6a9b2caac83a514cd491f6378835fd

 

③母艦:M5Atom lite ArudinoIDEプログラム
子機の受信順序は、ほぼ一定だが、時々狂うので、VB.NET側で整理してログする必要がある。
https://gist.github.com/dj1711572002/35f90c40f131b4e982fb4c5d9ebc3e36

 

●以後
  ようやくマイコン側のSCPシステムが完成したので、VB.NETリアルタイムモニターの仕上げをします。
 9月末には全SCPシステム動作開始になりそうです10月にSCPの実証実験できそうです。

コメントを残す

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