Spresenseのチュートリアル「2.2. GPS トラッカーを使ってみよう」を参考にして、SpresenseでGPS トラッカーを作成します。GPS トラッカーで取得したデータは、「GPSデータをQGISに表示」に従って、QGISの地図に表示します。
GPS トラッカーの作成
Arduino IDE のスケッチ例から次の手順でコードを取得して、収集したGPSデータをSDカードに保存します。
メニュー「ファイル」から→ 「スケッチ例」 →「 GNSS」 → 「gnss_tracker」と選択してスケッチを開きます。
取得したスケッチを次のように変更します。
- 6行目で「#include
」を追加します。 - 15,16行目で156MHz で動作しているシステム全体のクロックを 32MHz へ落とすことで電力を削減します。
gnss_tracker.ino
#include <GNSS.h> #include <GNSSPositionData.h> #include "gnss_tracker.h" #include "gnss_nmea.h" #include "gnss_file.h" #include <LowPower.h> ・・・ if (error_flag == 1) { Led_isError(true); } LowPower.begin(); LowPower.clockMode(CLOCK_MODE_32MHz); } void loop() { static int State = eStateActive; static int TimeOut = IDLE_ACTIVE_TIME; ・・・
作成したコードをSPRESENSEに書き込みます。
GPSデータの収集
作成したコードを実行してGPSデータがシリアルモニタ表示され、SDカードにGPSデータが保存されることを確認しておきます。
新規に次のデフォルト値がファイルに作成されます。
tracker.ini
; Satellite system(GPS/GLONASS/SBAS/QZSS_L1CA/QZSS_L1S) SatelliteSystem=GPS+GLONASS+QZSS_L1CA ; Output NMEA message to UART(TRUE/FALSE) NmeaOutUart=TRUE ; Output NMEA message to file(TRUE/FALSE) NmeaOutFile=TRUE ; Output binary data to file(TRUE/FALSE) BinaryOut=FALSE ; Positioning interval sec(1-300) IntervalSec=1 ; Positioning active sec(60-300) ActiveSec=60 ; Positioning sleep sec(0-240) SleepSec=240 ; Uart debug message(NONE/ERROR/WARNING/INFO) UartDebugMessage=NONE ; EOF
SpresenseのGPSで野外でデータを取得するときには電源としてモバイルバッテリを使用します。
アプリケーションの動作が開始するときに 4 つの全ての LED が一回だけ点滅します。測位停止中は 全ての LED が消灯します。個別の LED に関する動作仕様は以下の通りです。LED0点滅中は測位動作中のため、点灯してから移動します。
LED | 説明 |
---|---|
LED0 | 測位動作中に点灯/消灯を繰り返します |
LED1 | 現在の位置情報が取得(FIX)できたら点灯します |
LED2 | ファイルアクセス中に点灯します |
LED3 | microSD カードにアクセスできないなど、何かしらのエラーが発生したときに点灯します |
GPS visualizerによるGPGGA センテンスの変換
取得したGPGGA センテンスを「GPS visualizer」を使って、Google Earth やその他のファイルフォーマットへ変換します。
GPS visualizerをアクセスすると次の画面が表示され、次の設定を行い、「ファイル選択」ボタンで収取したCSVファイルを選択し、「Convert」ボタンを押します。
- Output format: Plain text
- Plain text delimiter: comma
変換されたデータが次のように表示されるので、「Download」ボタンを押してダウンロードします。
QGISへの表示
QGISは「QGISに横浜市みなとみらい地区の表示」ですでにインストール済みですが、「フリーでオープンソースの地理情報システム」から現在の最新バージョン「3.26.2」にバージョンアップします。
画面の左側の「XYZ Tiles」→「OpenStreetMap」をダブルクリックして、左側に表示された地図を操作して山下公園を表示させます。
GPS visualizerで変換したデータをQGISで読み込めるようにExcelを使って次のように変換します。
latitude,longitude 35.444135,139.65261 35.4442,139.6524183 35.44422833,139.6524117 35.444205,139.6525133 35.44421,139.6525633 35.44421167,139.6525717 ・・・
次のように、レイヤメニューから「CSVテキストレイヤの追加」を選択して、CSVテキスト読み込みダイアログを表示します。
CSVテキスト読み込みダイアログの「ファイル名」に変換したCSVファイルを設定し、「追加」ボタンを押して「閉じる」ボタンを押します。
CSVファイル内の緯度/経度データが読み込まれ、次のように地図上に緑丸でその位置が表示されます。
うまくGPSデータが収集されていないところがあります。