【RTK2021】M5StackでRTK-MB_SDcardロガーPgm作った<2日でできた>

2021スキーターン測定システムのロガーは、2種類用意してます。
①WIN10ベースのノート、タブレットで受信ログ解析を行う
(VB.NETのリアルタイムグラフィックモニタ)

②M5StackのSDカードロガー
(ESP-NOW受信でログ複数子機からのデータを一括してSDカードログ)

■スキー場で使うロガー
日照がまぶしいので、ノートPC、タブレットの液晶では、見えません。スマホなど屋外視認性がよいLCDが必要です。M5StackのLCDは意外と屋外いけてました。直射日光に当てると見にくいですが、手で日陰を作ると細かい文字もしっかりと読めたのでスキー場でも使えると判断しました。


拡張基板に電源コネクタとボタンコネクタとLEDを実装しても、未だ余裕があるので将来的にはセンサ搭載します


バッテリーを入れ込むとしっかりと全体が固定されます。

※その後、本記事でのM5Stackでの無線データ転送でエラー率が1%近く発生したため、無線通信はやめてF9PのBOX内でSDカードログすることにして、エラー率4σレベルまで上げることができました。データを1個でも落としたくない方は、こちらの方法でSDカードログしたほうがいいです。

【RTK2021】無線ログからSDカードログへ変更<データのロス率4σ達成>

■M5Stackでのロガープログラム備忘録
M5Stackは8か月ぶりなので備忘録しておきます。

①「M5StackBasicは、RTCがついてないので、NTPで時刻を取得していた」
=>F9PからのMovingBaseでNAV-PVTがきているので、正確な時刻が判るのでRTC NTPなどは不要なのを忘れてました。

②プログラムの機能

資料:UBX仕様のNAV-PVTのFrame表NAV-RELPOSNEDのFrame表

機能項目 機能説明
受信 ESP-NOWでF9P MovingBase子機から受信 子機からは、バイナリー172byteのデータが125msec周期で送信されてくる。
ログ マイクロSDカードへバイナリーを16進数文字に変換してデータの並び順はこちら
MB_Output_BinaryDataList
USB出力 バイナリ172Byteを16進数文字とカンマデリミタを加えてUSBで出力
SDカード出力 バイナリ172Byteを16進数文字とカンマデリミタを加えてUSBでカードへ書き込み
ログファイル CSV形式 タイムスタンプをファイル名にして保存(時刻はNTPで取得している)
LCD表示 受信したバイナリーで主なデータをバイナリーから整数変換して表示
●リアルタイムに変化する各数値を見ながら計測状態を判断する
[FIX]:data[26]=fixが3の時に3D FIXとなる
numSV:data[29]=捕捉衛星数 MB精度を得るには23個以上は必要
Acc:data[46~49]=Acc3D FIX精度mm
Len:data[26~29]=アンテナ2点間の距離cm 2点固定しているので常に一定値でなければならない
Hed:data[30~33]アンテナ間の方角 東西が270度or90度 南北0度or180度
N:data[14~17]=relPOSN,data[18~21]=relPOSE,data[22~25]=relPOSDアンテナ間の相対位置cm
SeaHeight:data[42~45]=海抜 m
Long:経度 度 小数点以下7桁目が1cm単位に相当
Lati:緯度 度  小数点以下7桁目が1cm単位に相当
工夫した点 M5StackのLCDの文字は、重ね書きされるので、毎回黒く塗りつぶさないといけない
全面を塗りつぶすと固定文字が消えてしまうので、M5.Lcd.fillRect()で消したい文字範囲だけ黒塗りした。

③プログラムソース
SSIDとパスは、自分のポケットWifiのものをいれてください。
https://gist.github.com/dj1711572002/c83442a45d98f1cb9a315a5120e01579

 

コメントを残す

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