2021スキーターン測定システムのロガーは、2種類用意してます。
①WIN10ベースのノート、タブレットで受信ログ解析を行う
(VB.NETのリアルタイムグラフィックモニタ)
②M5StackのSDカードロガー
(ESP-NOW受信でログ複数子機からのデータを一括してSDカードログ)
■スキー場で使うロガー
日照がまぶしいので、ノートPC、タブレットの液晶では、見えません。スマホなど屋外視認性がよいLCDが必要です。M5StackのLCDは意外と屋外いけてました。直射日光に当てると見にくいですが、手で日陰を作ると細かい文字もしっかりと読めたのでスキー場でも使えると判断しました。
拡張基板に電源コネクタとボタンコネクタとLEDを実装しても、未だ余裕があるので将来的にはセンサ搭載します
※その後、本記事でのM5Stackでの無線データ転送でエラー率が1%近く発生したため、無線通信はやめてF9PのBOX内でSDカードログすることにして、エラー率4σレベルまで上げることができました。データを1個でも落としたくない方は、こちらの方法でSDカードログしたほうがいいです。
■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