PCでGPSモジュールを使ってみる

スマホやパッドには、GPSが内蔵されていて、
地図アプリとの連動などあたり前の時代ですね。

ノートPCなどは、
今でもGPSが内蔵されているものは少ないですね。
もちろん、GPSを必要とすることも少ないのでしょう。
今回は、ノートPCでGPS情報を受信してみます。
GPS情報を受信には、
GPS受信機モジュールという製品を使用します。

今回紹介する製品です。

GPS受信キットと変換モジュール
GPS受信キットと変換モジュール

GPS情報を受信するためのGPS受信機キットです。
 秋月電子通商
  GPS受信機キット 1PPS出力付き 「みちびき」3機受信対応
   ¥2,100- [AE-GYSFDMAXB]
   http://akizukidenshi.com/catalog/g/gK-09991/

GPS受信機キット
GPS受信機キット

GPS受信機の情報をUSB端子を経由で、
PCへ転送するための変換モジュール
 秋月電子通商
  FT234X 超小型USBシリアル変換モジュール
   ¥600- [AE-FT234X]
   http://akizukidenshi.com/catalog/g/gM-08461/

USBシリアル変換モジュール
USBシリアル変換モジュール

接続方法です。
※接続方法図のノートPC画像は、
 素材工場サイト(株式会社 パルスデザイン運営)より利用させて頂いています。
 https://sozaikoujou.com/

PCとの接続
PCとの接続

 この接続を行う前に、一度、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の画面です。

 MiniGPSの画面
MiniGPSの画面

PowerGPSの画面です。

PowerGPSの画面
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に設定します。

Tera Term設定1
Tera Term設定1
Tera Term設定1
Tera Term設定2

これで、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
と入力します。

Googleマップ での表示
Googleマップ での表示

これは、私がGPSで測位した位置ですが、
Googleマップで正確に表示されています。