PCでGPSモジュールを使ってみる
スマホやパッドには、GPSが内蔵されていて、
地図アプリとの連動などあたり前の時代ですね。
ノートPCなどは、
今でもGPSが内蔵されているものは少ないですね。
もちろん、GPSを必要とすることも少ないのでしょう。
今回は、ノートPCでGPS情報を受信してみます。
GPS情報を受信には、
GPS受信機モジュールという製品を使用します。
今回紹介する製品です。
GPS情報を受信するためのGPS受信機キットです。
秋月電子通商
GPS受信機キット 1PPS出力付き 「みちびき」3機受信対応
¥2,100- [AE-GYSFDMAXB]
http://akizukidenshi.com/catalog/g/gK-09991/
GPS受信機の情報をUSB端子を経由で、
PCへ転送するための変換モジュール
秋月電子通商
FT234X 超小型USBシリアル変換モジュール
¥600- [AE-FT234X]
http://akizukidenshi.com/catalog/g/gM-08461/
接続方法です。
※接続方法図のノートPC画像は、
素材工場サイト(株式会社 パルスデザイン運営)より利用させて頂いています。
https://sozaikoujou.com/
この接続を行う前に、一度、USBシリアル変換モジュールと
ノートPCのみをUSBケーブルで接続します。
これにより、FT234X USBシリアル変換モジュールを使用するための
ドライバソフトが自動的にインストールされます。(要インターネット接続)
※自動的にインストールされない場合、
FTDI 社のWebサイト http://www.ftdichip.com/
よりダウンロード可能です。
GPS受信機キットの簡単な利用方法としては、
秋月電子通商さんの
GPS受信機キットの販売・注文ページから、
http://akizukidenshi.com/catalog/g/gK-09991/
・ソフトウェアパッケージ(MiniGPS、PowerGPS、マニュアル)
がダウンロードできます。
MiniGPSでは、GPS受信機状態や受信情報が確認でき、
PowerGPSではより詳しい情報が表示されます。
※これらは、ダウンロードして展開するだけで、
インストールなどの操作は必要なく使用できます。
(ソフトウェアはWindows用です)
MiniGPSの画面です。
PowerGPSの画面です。
GPS受信モジュールからどのようなデータが送られてくるか確認してみます。
ターミナルエミュレーターソフトの「Tera Term」を使用して、
USBのCOMポートに送られてくるデータを表示してみます。
※「Tera Term」は、窓の杜にてダウンロードできます。
https://forest.watch.impress.co.jp/library/software/utf8teraterm/
「Tera Term」以外でも、COMポートにアクセスできるターミナルソフトであればOKです。
1.接続方法図のように、
GPS受信モジュール
- USBシリアル変換モジュール
- ノートPCを接続します。
2.Windowsスタートメニューを右クリックし、
「デバイスマネージャー」を選択します。
一覧より、ポート(COMとLPT)を選択します。
このリストの中に、
USB Serial Port(COMx) xは数字
があることを確認し、このCOMxを控えておきます。
※もし、この項目が無ければ、ドライバのインストールが
できてか、接続不良などが考えられます。
3.Tera Termを起動します。
「Tera Term 新しい接続」画面の、
シリアル(E)のラジオボタンを選択し、
後ろのリストより、2で確認したCOM 通信ポートを選択、
「OK」ボタンを押します。
※Tera Termを既にお使いの場合、
メニューの「設定(S)」→「シリアルポート(E)」を選択し、
設定画面で、スピードを9600bpsに設定します。
これで、GPS受信モジュールとの通信が開始され、
GPS情報がコンソールに表示されます。
表示例です。
このGPSモジュールからの情報は、
NMEAフォーマットという形式で情報が送信されます。
NMEAフォーマットの情報は、
センテンスの集まりで、
センテンスは、「$」で始まり、「改行」で終了します。
センテンス間は、「,」で区切られています。
センテンスの最初の単語は、データタイプを表します。
最初の2文字は、トーカ(talker)IDで、
GP:GPS
GN:GNSS
GL:GLONASS
GA:Galileo
を表しています。
3文字目からは、
GGA Position Response Message(Max82byte)
GPS位置情報
ZDA Time and Date Response Message
時刻、日付情報
GSV Satellites-in-View Response Message
利用可能衛星情報
VTG Course over Ground and Ground Speed Response Message
進路、速度情報
GLL Geograpic Position-Lattude/Lonitude Message
緯度、経度情報
GSA: Satellite Used Response Message
使用衛星、DOP値
RMC: Recommended Minimum Course Response Message
最小構成の航法情報
GNS GNSS 測位データ GN/GP/GA6 GN GP
GST GNSS 擬似距離誤差
GST 誤差楕円、精度指標 GN/GP/GA6 GN GP
GBS 異常衛星検出 GN/GP/GA6 GN GP
GFA Integrity 情報 GN/GP/GA6 GN GP
となっています。
これらの、NMEAフォーマットの中から
自分が必要とする情報を含むメッセージを利用することになります。
各メッセージ内のセンテンス情報は、
データシートやWebで詳しく紹介されていますので、
必要の応じて確認して下さい。
”NMEAフォーマット”などで検索できます。
では、
現在の位置を地図で表示するために、緯度経度を取得したいとします。
この場合、このGPS受信機キットから送られてくる、
NMEAフォーマットメッセージの中で、緯度経度情報を含むものは、
以下の3本です。
$GPRMC,025102.000,A,3514.8018,N,13637.0094,E,0.03,350.56,030820,,,A*6A $GPGGA,025103.000,3514.8017,N,13637.0094,E,1,10,1.01,26.0,M,36.1,M,,*58 $GPGLL,3514.8017,N,13637.0094,E,025104.000,A,A*5B
トーカ(talker)ID、$GPRMCには、
時刻、日付、緯度、経度が含まれています。
トーカ(talker)ID、$GPGGAには、
時刻、緯度、経度、アンテナの海抜高さが含まれています。
トーカ(talker)ID、$GPGLLには、
緯度、経度が含まれています。このどれでも良さそうですが、
トーカ(talker)ID:$GPRMCが使いやすそうです。
この中に含まれる
緯度:3514.8018,N(北緯)
経度:13637.0094,E(東経)
です。
この緯度、経度は、
北緯:35度14.8018分
東経:136度37.0094分
であり、秒数は使われていません。
(60進緯度経度ではありません)
そため、Googleマップなどで表示させるためには、
10進緯度経度に変換する必要があります。
計算式は、
10進緯度経度 = 度データ + (分データ÷60)
計算してみます。
35.24669667 = 35 + ( 14.8018 / 60 )
136.61682333 = 136 + ( 37.0094 / 60 )
となります。
ではこれをGoogleマップで表示してみます。
Googleマップの検索欄に、
35.24669667,136.61682333
と入力します。
これは、私がGPSで測位した位置ですが、
Googleマップで正確に表示されています。