GNSSモジュールを使って、地図上トラッキングに挑戦！・GUI編

STマイクロエレクトロニクスの汎用32bitマイコン開発ボード[「NUCLEO-F401RE」](https://www.st.com/ja/ecosystems/stm32-nucleo.html#products)と、GNSS*測位ICを搭載した機能拡張ボード「X-NUCLEO-GNSS1A1」を使って、地図上のトラッキングを試してみます（*Global Navigation Satellite System : 全地球航法衛星システム）。拡張ボードに搭載されている車載用GNSS測位IC は「Teseo III」と呼ばれ、STのGNSSモジュール[「Teseo-LIV3F」](https://www.st.com/content/st_com/en/products/positioning/gnss-modules/teseo-liv3f.html#overview) として実装されています。今回は、簡単で細かい設定ができるGUIツールで操作し、マップ上で自分の位置をトラッキング・ログするところまでやってみます。

[（ターミナルモニタ編はこちら）](https://qiita.com/ykawano/items/0f541ed7467fb0c0b896)

#1. まずは、ハードウェアを準備
NUCLEO-F401RE とX-NUCLEO-GNSS1A1を接続。NUCLEO-F401REは、GUIツール内であらかじめ対象アプリケーションが用意されています。また、X-NUCLEO-GNSS1A1に付属のアンテナは動作確認時に接続します（ここでは未接続のままでOK）。
[NUCLEO-F401RE](https://www.st.com/content/st_com/en/products/evaluation-tools/product-evaluation-tools/mcu-mpu-eval-tools/stm32-mcu-mpu-eval-tools/stm32-nucleo-boards/nucleo-f401re.html)
[X-NUCLEO-GNSS1A1](https://www.st.com/en/ecosystems/x-nucleo-gnss1a1.html#resource)
![1_IMG_20190513_173400.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360475/f1d787da-47d7-4ca5-62f5-6564d8b3ffbc.jpeg)


#2. 次にソフトウェアの準備
##STM32CubeProgrammerのインストール
（既にインストール済みであればスキップしてください）
初めてパソコンでSTM32NUCLEOボードを使用する場合、STM32CubeProgrammer（旧ツール：ST Link Utility）をインストールしてCOMポート･ドライバなどを入れます（この記事ではSTM32CubeProgrammerは使用しませんが、ドライバなどが必要になります）。

このツールはSTM32のボード上にファームウェア・プログラムを書き込む際に必要です。ダウンロード･ファイルを解凍した後は、実行ファイルを起動して案内にしたがってインストールしてください。すでにSTM32CubeProgrammerをインストール済みの場合はこの作業は不要です。
[STM32CubeProgrammer](https://www.st.com/en/development-tools/stm32cubeprog.html)
![STM32CubeProg_STweb.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360475/289d6f5f-4b84-caf7-7506-d42cfd441aa9.png)



##GUIツールの入手（TESEO-SUITE）
こちらのページからツールのインストール･ファイルを入手し、パソコンにインストールします。
[TESEO-SUITE](https://www.st.com/en/embedded-software/teseo-suite.html)
![3_Teseo-suite_download.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360475/1abb658e-aec9-699a-b756-d2241fb944e2.jpeg)


#3. TESEO-SUITEを起動する
##STM32 NUCLEOへファームウェアを書き込み
TESEO-SUITEのインストールが終了したら、STM32 Nucleoボード(+X-NUCLEO-GNSS1)をパソコンにUSB接続した状態でTESEO-SUITEを起動します。
![Teseo_icon.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360475/ef05b73c-8f8a-f64e-4d6b-8b3b7e6d3b46.jpeg)
NUCLEO-F4O1REにはまだファームウェアが入ってないので、Teseo-LIV3Fモジュールとパソコン間をUART接続させるため、VirtualCOMportとして動作するファームウェアを次の操作で書き込みます（何か別のファームウェアが入っている場合もここの操作で書き込めます）。
メニューバーの「ツール」より、Tools>X-NUCLEO-GNSS1を選択。
![4_0_teseo-suite_tools_x-nucleo.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360475/89303cb8-80d9-5279-e09b-a06ba889b6d9.jpeg)



ポップアップ･ウインドウ内の「Update my STM32-NUCLEO board for X-NUCLEO-GNSS」をクリックします。
![4_1_teseo-suite_x-nucleo.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360475/023f84e1-1bfc-7a50-7c3c-dbf8f2d0562c.jpeg)



ファームウェアの選択画面にてSTM32_Nucleo64-xxxxx_UARTBridge.binを選択した状態でUploadの箇所のSTM32 Nucleoボードの画像をクリックします（STM32_Nucleo64-xxxxx_I2CBridge.binも選択可。ここでのUART/I2CはGNSSモジュール-STM32間のインタフェースの選択です。どちらでも動作可能です）。
![4_2_teseo-suite_x-nucleo_FWselect.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360475/cef090e9-93c2-95db-0343-19222fb703a2.jpeg)
これで書き込みが終わりました。ここでTESEO-SUITEを一度閉じて終了します。

#4. 動作確認
ボードをパソコンにUSB接続し、アンテナも接続した状態でTESEO-SUITEを再起動します。正常に動作している場合、TESEO-SUITEは自動認識してSignal LevelウインドウとSky Viewウインドウが表示されます。この2つ以外にも各種情報ウインドウはメニューバー下のアイコンにより表示・非表示できます。

Signal Level：現在補足している衛星の情報を表示。
Sky View：自分を中心として、どの位置にどの衛星がいるのかを天球マップ上に表示。
![5_0_teseo-suite_main.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360475/853a15ed-68c6-f229-b003-d455776abdc2.jpeg)
衛星シグナルレベル![5_1_teseo-suite_signal.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360475/fb8cb21f-b851-430b-6ccb-c59f9b0715bd.jpeg)
天球衛星マップ![5_2_teseo-suite_Skyview.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360475/96ea02e9-e465-9353-c8de-b5d64a4981bc.jpeg)




###地図上で自分の位置を確認・ログ記録
メニューバー下の「Open Map」アイコンをクリックすると、地図ウインドウが表示されます。移動しながらログを記録したい場合、「Start/Stop Recorder Control Port」アイコンを使用します。クリックすると記録がはじまり、もう一度クリックすると記録を停止します。
![6_0_teseo-suite_toolbar_map_log.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360475/f3bb426f-4570-2cf8-b85d-707a4bee7e49.jpeg)

![6_1_map_.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360475/25bdd278-0a8f-ffb3-ad70-5566eee15209.jpeg)

ログファイルはデフォルトでC:\Users(use name)\Documents\ST_Teseo_Suite\Logsにセーブされます。保管場所を変更したい場合メニューバーの「ファイル」から、File>Preferencesを選択します。Preferencesウインドウ内の「NMEA/BINARY/DEBUG log path」で設定が可能です。
![6_2_teseo-suite_preference.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360475/d9947303-9e9e-f8c5-8ce7-8402d612ee5b.jpeg)

地図上でマウスを右クリックし、メニューから「View Settings」を選択すると、地図の右側に設定枠が表示されます。移動した軌跡を表示させたい場合、「History」にチェックしておきます。
![6_3_map_setting.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360475/3cdfa467-3617-3eb1-3a5c-2041de3fa516.jpeg)
以上のステップで、地図上でのトレースを確認、NMEAログとして記録できます。
セーブしたログファイルはplayerウインドウで再生できます。再生時にマップ･ウインドウを開いておけば軌跡の様子をチェックできます。
![7_0_teseo-suite_toolbar_play_.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360475/3dd35b83-0ecb-34df-bf4e-fbe87424d410.jpeg)




###ビル周辺を歩いてみる
都心のビルの間を歩いてみた時の軌跡です。ここではGPS、GLONASS、QZSSをオンにしてデータを取りました。
![7_1_teseo-suite_toolbar_mapview_log.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360475/c8e6f936-2372-8c81-0e61-8e7566310d94.jpeg)


###NMEAメッセージを見てみる
メニューバー下の「View Monitor」アイコンをクリックするとNMEAメッセージを直接モニタできます。デコードされた情報が表示され、緯度経度データなどを直接モニタすることもできます。NMEAコマンドをscriptで書いて送信することも可能です。右側のフィルタ設定画面では、表示させるメッセージをフィルタリングできます。
![8_0_teseo-suite_toolbar_viewmonitor.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360475/44cff610-d0dd-93e3-519f-3a52985e5bd4.jpeg)
![8_1_teseo-suite_nmea_.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360475/b31324e7-ebef-c18e-d5cd-0acba10b2323.jpeg)


NMEA Commandウインドウからコマンド送信することも可能です。Send commandsアイコンをクリックします。
`$PSTMDUMPALMANAC`コマンドを送信し（メモリ内のアルマナックデータの読み出し）、
`$PSTMALMANAC`メッセージを受信している例
![8_2_teseo-suite_nmeacommand_.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360475/87f1c4bc-9de1-f640-90f2-1af77794fc04.jpeg)
![8_3_teseo-suite_nmeacommand_.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360475/4a683c92-fd8c-6bfb-d19e-05a9a164523d.jpeg)


##最後に
いかがでしたか。次回はGNSSモジュール内設定を変更する方法について記載します。
[GNSSモジュールを使って、地図上トラッキングに挑戦！・GUI編 （設定変更 1）](https://qiita.com/ykawano/items/83a0185557e29a85eefc)
[GNSSモジュールを使って、地図上トラッキングに挑戦！・GUI編 （設定変更 2）](https://qiita.com/ykawano/items/24f2c92f254fd42f4b46)