STマイクロエレクトロニクスの汎用32bitマイコン開発ボード「NUCLEO-F401RE」と、GNSS*測位ICを搭載した機能拡張ボード「X-NUCLEO-GNSS1A1」を使って、地図上のトラッキングを試してみます(*Global Navigation Satellite System : 全地球航法衛星システム)。拡張ボードに搭載されている車載用GNSS測位IC は「Teseo III」と呼ばれ、STのGNSSモジュール「Teseo-LIV3F」 として実装されています。今回は、簡単で細かい設定ができるGUIツールで操作し、マップ上で自分の位置をトラッキング・ログするところまでやってみます。
#1. まずは、ハードウェアを準備
NUCLEO-F401RE とX-NUCLEO-GNSS1A1を接続。NUCLEO-F401REは、GUIツール内であらかじめ対象アプリケーションが用意されています。また、X-NUCLEO-GNSS1A1に付属のアンテナは動作確認時に接続します(ここでは未接続のままでOK)。
NUCLEO-F401RE
X-NUCLEO-GNSS1A1
#2. 次にソフトウェアの準備
##STM32CubeProgrammerのインストール
(既にインストール済みであればスキップしてください)
初めてパソコンでSTM32NUCLEOボードを使用する場合、STM32CubeProgrammer(旧ツール:ST Link Utility)をインストールしてCOMポート・ドライバなどを入れます(この記事ではSTM32CubeProgrammerは使用しませんが、ドライバなどが必要になります)。
このツールはSTM32のボード上にファームウェア・プログラムを書き込む際に必要です。ダウンロード・ファイルを解凍した後は、実行ファイルを起動して案内にしたがってインストールしてください。すでにSTM32CubeProgrammerをインストール済みの場合はこの作業は不要です。
STM32CubeProgrammer
##GUIツールの入手(TESEO-SUITE)
こちらのページからツールのインストール・ファイルを入手し、パソコンにインストールします。
TESEO-SUITE
#3. TESEO-SUITEを起動する
##STM32 NUCLEOへファームウェアを書き込み
TESEO-SUITEのインストールが終了したら、STM32 Nucleoボード(+X-NUCLEO-GNSS1)をパソコンにUSB接続した状態でTESEO-SUITEを起動します。
NUCLEO-F4O1REにはまだファームウェアが入ってないので、Teseo-LIV3Fモジュールとパソコン間をUART接続させるため、VirtualCOMportとして動作するファームウェアを次の操作で書き込みます(何か別のファームウェアが入っている場合もここの操作で書き込めます)。
メニューバーの「ツール」より、Tools>X-NUCLEO-GNSS1を選択。
ポップアップ・ウインドウ内の「Update my STM32-NUCLEO board for X-NUCLEO-GNSS」をクリックします。
ファームウェアの選択画面にてSTM32_Nucleo64-xxxxx_UARTBridge.binを選択した状態でUploadの箇所のSTM32 Nucleoボードの画像をクリックします(STM32_Nucleo64-xxxxx_I2CBridge.binも選択可。ここでのUART/I2CはGNSSモジュール-STM32間のインタフェースの選択です。どちらでも動作可能です)。
これで書き込みが終わりました。ここでTESEO-SUITEを一度閉じて終了します。
#4. 動作確認
ボードをパソコンにUSB接続し、アンテナも接続した状態でTESEO-SUITEを再起動します。正常に動作している場合、TESEO-SUITEは自動認識してSignal LevelウインドウとSky Viewウインドウが表示されます。この2つ以外にも各種情報ウインドウはメニューバー下のアイコンにより表示・非表示できます。
Signal Level:現在補足している衛星の情報を表示。
Sky View:自分を中心として、どの位置にどの衛星がいるのかを天球マップ上に表示。
衛星シグナルレベル
天球衛星マップ
###地図上で自分の位置を確認・ログ記録
メニューバー下の「Open Map」アイコンをクリックすると、地図ウインドウが表示されます。移動しながらログを記録したい場合、「Start/Stop Recorder Control Port」アイコンを使用します。クリックすると記録がはじまり、もう一度クリックすると記録を停止します。
ログファイルはデフォルトでC:\Users(use name)\Documents\ST_Teseo_Suite\Logsにセーブされます。保管場所を変更したい場合メニューバーの「ファイル」から、File>Preferencesを選択します。Preferencesウインドウ内の「NMEA/BINARY/DEBUG log path」で設定が可能です。
地図上でマウスを右クリックし、メニューから「View Settings」を選択すると、地図の右側に設定枠が表示されます。移動した軌跡を表示させたい場合、「History」にチェックしておきます。
以上のステップで、地図上でのトレースを確認、NMEAログとして記録できます。
セーブしたログファイルはplayerウインドウで再生できます。再生時にマップ・ウインドウを開いておけば軌跡の様子をチェックできます。
###ビル周辺を歩いてみる
都心のビルの間を歩いてみた時の軌跡です。ここではGPS、GLONASS、QZSSをオンにしてデータを取りました。
###NMEAメッセージを見てみる
メニューバー下の「View Monitor」アイコンをクリックするとNMEAメッセージを直接モニタできます。デコードされた情報が表示され、緯度経度データなどを直接モニタすることもできます。NMEAコマンドをscriptで書いて送信することも可能です。右側のフィルタ設定画面では、表示させるメッセージをフィルタリングできます。
NMEA Commandウインドウからコマンド送信することも可能です。Send commandsアイコンをクリックします。
$PSTMDUMPALMANAC
コマンドを送信し(メモリ内のアルマナックデータの読み出し)、
$PSTMALMANAC
メッセージを受信している例
##最後に
いかがでしたか。次回はGNSSモジュール内設定を変更する方法について記載します。
GNSSモジュールを使って、地図上トラッキングに挑戦!・GUI編 (設定変更 1)
GNSSモジュールを使って、地図上トラッキングに挑戦!・GUI編 (設定変更 2)