VSCode + PlatformIO用.LVGLは9.2を使用.
Module GNSSはこちら https://docs.m5stack.com/ja/module/GNSS%20Module
時刻はRTCにも保存しているので,次回起動時にはGNSSを受信できなくても一応時刻は表示される.
GNSSで時刻同期が出来るまでは,時計の文字は赤くなっている.
画面右下の丸いLED風のものは,1PPS入力があると点滅する.ここが点滅していれば正常に測位ができている状態.点滅していない状態では時計は信用できない.
バッテリーはこちらを利用. https://shop.m5stack.com/products/battery-module
裏ブタは,このリポジトリのCADディレクトリにSTLファイルを格納してあるので,それを3Dプリンタで出力.
起動時にSDカードが挿入されていた場合,次の3つのデータが記録される.
- NMEAメッセージ(GPSの出力全部)
- 位置データ (GGAメッセージから抽出, 1Hz)
- IMUデータ (10Hz)
- 環境データ (1Hz)
ただし,時刻同期が出来るまでは記録は開始されない.
SDカードは,FAT32でフォーマットされた16G以下のサイズのカードであること.
ファイル名は,記録開始時の日付と時刻から生成される.
記録中にSDカードを抜かないこと.抜く場合はシャットダウンを行って,電源を切ってから抜く.
記録が行われている状態では,衛星配置図の下にRecという文字が現れる. この領域がグレーになっている場合は,SDカードが認識されていないか,書き込み中にエラーが発生して記録が中止されている.SDカードの確認が必要.
データは次のような並びで記録される.
日付時刻(UTC), 緯度,経度, 高度, 測位モード, 測位衛星数, HDOP
日付時刻は,ISO 8601形式.例:"2025-09-20T05:51:27.000Z"
測位モードの数字の意味は以下の通り.
| 数字 | 意味 |
|---|---|
| 0 | 測位不能 |
| 1 | 単独測位(SPS) |
| 2 | Differential |
| 4 | RTK-Fix |
| 5 | RTK-Float |
使用しているGNSSデバイスがRTKをサポートしていないので,実際に出てくる測位モードは0~2の範囲.
データは次のような並びで記録される
タイムスタンプ, カウント,加速度X, 加速度Y, 加速度Z, 角速度X, 角速度Y, 角速度Z, 磁気x, 磁気y, 磁気z
タイムスタンプはunixtimeで小数点以下6桁. カウントはuint32_tで,32bit分カウントアップすると0に戻る. IMUの値はセンサから読んだ値そのものであり,オフセット調整等は行われていないので注意.
データは次のような並びで記録される
タイムスタンプ, 温度,気圧
タイムスタンプはunixtimeで,単位は秒の整数値.
画面を左にスワイプするか,Cボタンを押すとシャットダウン画面に遷移する. SDカードにデータを記録している場合には,いきなり電源を切るのではなく,必ずシャットダウン画面から電源を切ること.
SDカードを挿入していない場合は,いきなり電源を切っても構わない.
以下の接続になるように設定する.
- PPS: GPIO35
- TX: GPIO14
- RX: GPIO13
赤枠のスイッチがON
シリアルポートから入力されたデータがそのままNEO-M9Nに送られる.また,NEO-M9Nからのデータがそのままシリアルに出力されるので,u-centerをそのまま利用できる. u-centerの通信レートを115200bpsに設定し,ポートをM5Stackが接続されているポートにすれば,M5StackがGNSSモジュールとして見える. ただし,シリアルポートの通信レートに注意.PC-M5Stack間は115200bps, M5Stack-NEO 間は38400bpsに固定されているので, u-centerで通信レートを変更すると通信できなくなる.


