TeraTermのインストール
緯度と経度を取得しようでGPSセンサから取得した情報から緯度・経度の値のみを取得することができました。
ここでは、緯度・経度の情報をCSVファイルとして保存してGoogleに描画をしてみます。
CanSatは競技のあと制御ログを提出する必要があります。 制御ログには、「センサからAの値を取得した。だからBの制御をした」というような説明ができるようにログを残す必要があります。
制御ログの考え方として秋田大学 平山先生の下記投稿が参考になると思います。
#CanSat の「制御履歴」には、状態量の観測値だけでなく、制御量もなければ説得力のある記録と言えません。 #のしろサット では周知が不十分だったようで、制御量を記録していないチームがいくつかあり、2回目の実験までにプログラム修正するよう指導しました。(制御の模式図をつけます) pic.twitter.com/P16X12WpKn
— 平山🛰 (@H_Hirayama) August 19, 2017
今回は、単に緯度・経度の観測値をログとして記録してGoogleマップに描画してみます。 最終的に画像のようなCanSatの移動ルートを描画したマップを取得します。
Googleマップに描画した様子
屋外で実験している様子
緯度・経度の情報をCSVファイルとして出力するためにTeraTermを使用します。 TeraTermを使用して、Arduino IDEのシリアルコンソールと同じようにCOMポートから取得したシリアル通信の内容を表示することができます。 TeraTermは下記からダウンロードしてください。
CSVファイル形式(カンマ区切り)のログを出力するプログラム
緯度と経度を取得しようでは下記のようなログをシリアルコンソールに出力していました。
1
2
3
4
5
6
7
8
Lat= 35.700883 Lng= 139.576153
Lat= 35.700883 Lng= 139.576153
Lat= 35.700883 Lng= 139.576153
Lat= 35.700883 Lng= 139.576153
Lat= 35.700883 Lng= 139.576153
Lat= 35.700883 Lng= 139.576153
Lat= 35.700883 Lng= 139.576153
Lat= 35.700883 Lng= 139.576153
このままのログでは「Lat=」のような余計な文字が入っていて、CSV形式の出力になっていないため、ソースコードを修正して「緯度の値,経度の値」を出力するようにします。 変更する箇所は、シリアルコンソールに出力している箇所です。
1
2
3
Serial.print(gps.location.lat(), 6);
Serial.print(",");
Serial.println(gps.location.lng(), 6);
TeraTermに出力してみる
CanSatをPCに接続してTeraTermを起動します。 「新しい接続」の画面が開くので「シリアル」にチェックを入れてCanSatのポートを選択します。
Arduino IDEのシリアルコンソールにCOMポートを接続しているとbusy状態で接続できない場合があります。 Arduino IDEのシリアルコンソールは閉じておきましょう。
TeraTermの起動
接続出来たらボーレートを設定します。 メニューの「設定」>「シリアルポート」から設定画面を開きます。 「スピード」を「115200」にしましょう。そのほかの設定はデフォルトのままで大丈夫です。
ボーレートの設定(1)
ボーレートの設定(2)
ボーレートを設定したら、TeraTermのコンソール画面にカンマ区切りの緯度・経度が出力されます。 もし何も表示されない場合は、GPSセンサが衛星を補足しているか確認してください。
緯度・経度が出力された様子
TeraTermの出力をCSVファイルとして保存する
次に出力された値をCSVファイルとして保存します。 メニューの「ファイル」>「ログ」を開いて、保存場所を選択します。 デフォルトではteraterm.log
のようなファイル名になっているので、拡張子をcsvに変更しておきます。 「保存」をクリックするとログの記録が始まります。
ログの保存(1)
ログの保存(2)
ログの保存を開始したら、CanSatとPCを持って適当に歩いてみてください。 歩いたルートの緯度・経度が時系列順でCSVファイルとしてログに記録されます。
ある程度ログが取れたら、メニューの「ファイル」>「ログを終了」で記録を終了します。 保存されたCSVファイルを開きます。 うまく保存できていたら1列目が緯度、2列目が経度でカンマで区切られたファイルとなっているはずです。
1
2
3
4
5
6
7
8
9
10
35.700877,139.576142
35.700877,139.576142
35.700877,139.576142
35.700877,139.576142
35.700877,139.576142
35.700877,139.576142
35.700877,139.576142
35.700877,139.576142
35.700877,139.576142
35.700877,139.576142
Googleマップに描画する
最後に緯度・経度を記録したCSVファイルを使ってGoogleマップに移動経路を描画してみます。
ブラウザでGoogleマップを開き、左上のハンバーガーアイコンからメニューを開きます。
Googleマップに描画する(1)
「マイプレイス」をクリックします
Googleマップに描画する(2)
「マイマップ」>「地図を作成」をクリックします
Googleマップに描画する(3)
「インポート」をクリックし、CSVファイルをアップロードします
Googleマップに描画する(4)
CSVファイルの緯度・経度の列をそれぞれ指定します。マーカのタイトルとして使用する列はどちらでもOKです
Googleマップに描画する(5)
完了をクリックすると、地図が作成されます
エラーが出る場合は、緯度・経度に指定する列が逆になっていないか確認してください。