「外付けGPS対応」
「外部GPS設定」
「10Hz GPS」
といった言葉を目にすることがあります。
以前の記事、「GPSラップタイマーを使う前に知っておきたいGPSの基礎」では、GPSとGNSSの違いや、1Hz・10HzといったGPSの基本的な仕組みについて紹介しました。
今回はそこから一歩進んで、GPSラップタイマーで実際に使われている「GPSモジュール」そのものについて詳しく解説します。
GPSモジュールは、GPSラップタイマーの性能を左右する重要な部品の一つです。
特に、自作GPSラップタイマーを作ったり、スマートフォンのアプリに外付けGPSを接続したりする場合には、
どのGPSモジュールを使うのか
何Hzで動作させるのか
どのGNSSを使用するのか
どのデータを出力するのか
NMEAデータをどう扱うのか
USBやBluetoothなどでどう接続するのか
といった点を確認する必要があります。
私自身、自作GPSラップタイマー「KLAP」の開発で複数のGPSモジュールを使用し、実際のサーキット走行で検証してきました。
その経験をもとに、今回はGPSモジュールの基本から、実際の設定につながるところまで順番に説明します。
GPSモジュールとは?
GPSモジュールを簡単に説明すると、
衛星からの電波を受信して、自分の位置情報などを計算し、その情報を外部へ出力する電子部品
です。
一般的なGPSモジュールには、
GNSS受信チップ
アンテナ
電源回路
通信回路
設定用インターフェース
などが組み込まれています。
GPSモジュール単体で地図を表示するわけではありません。
衛星から受信した信号を処理して、
「現在の緯度・経度はこの位置です」
というデータを外部へ送ります。
そのデータを、
マイコン
スマートフォン
PC
GPSラップタイマー
走行解析ソフト
などが受け取って利用します。
GPSラップタイマーの場合は、
GNSS衛星
↓
GPSモジュール
↓
位置・時刻・速度などのデータ
↓
ラップタイマー
という流れになります。
GPSモジュールとGPS受信機は同じもの?
GPSモジュールを調べていると、
「GPSモジュール」
「GPS受信機」
「GNSS受信機」
など、いろいろな呼び方が出てきます。
厳密にはそれぞれ意味が異なる場合がありますが、この記事では、
衛星信号を受信して位置情報などを計算し、外部へ出力する装置
という意味で「GPSモジュール」という言葉を使います。
なお、現在のGPS関連製品ではGPSだけではなく、複数の衛星測位システムに対応したGNSS受信機が一般的です。
GPSモジュールの中では何をしている?
GPSモジュールの内部では、衛星から受信した信号を処理して現在位置などを計算しています。
そして、計算した情報を外部へ出力します。
例えばGPSラップタイマーで利用する場合、
緯度
経度
高度
速度
進行方向
時刻
日付
測位状態
使用している衛星に関する情報
などが利用できます。
GPSラップタイマーでは特に、
緯度・経度・時刻・速度
が重要になります。
例えば、
「現在位置がスタートラインを通過した」
という判定には緯度・経度などの位置情報が必要です。
そして、
「いつ通過したのか」
という時間情報を組み合わせることで、ラップタイムを計算できます。
GPSモジュールなら、どれを使っても同じ?
GPSラップタイマーでは、
「GPSならどれを使っても同じなのでは?」
と思うかもしれません。
しかし、実際にはGPSモジュールによって性能や設定できる項目が異なります。
例えば、
測位性能
対応するGNSS
更新レート
最大出力レート
通信方式
NMEA出力
設定方法
アンテナ性能
受信環境への強さ
などに違いがあります。
そのため、
GPSモジュールなら何でも同じ
というわけではありません。
例えばGPSラップタイマーで10Hzのデータを利用したい場合は、当然ながら10Hzの出力に対応したGPSモジュールが必要になります。
ただし、ここで注意したいのが、
10Hzだから必ず高精度というわけではない
ということです。
10Hzは、あくまで位置情報を更新する頻度を表しています。
実際の走行データは、受信チップ、アンテナ、衛星の受信状態、設定、データ処理などにも影響されます。
GPSモジュールの設定が重要な理由
GPSモジュールは、
購入して接続すれば必ず最適な状態で動作する
とは限りません。
製品によっては、
更新レート
使用するGNSS
NMEA出力
通信速度
出力するメッセージ
各種省電力設定
などを変更できます。
以前、私自身が市販のGPSモジュールをそのまま使用したとき、低速になると通信が途切れるという問題が発生したことがありました。
調べてみると、低速時に省電力のためのスリープモードへ移行する設定になっていたことが原因でした。
そこで設定を変更したところ、通信が途切れる現象が発生しなくなりました。
この経験からも、
GPSモジュールは購入して終わりではなく、使用目的に合わせて設定を確認することが重要
だと感じています。
特にサーキット走行では、減速・低速・加速を繰り返すため、一般的なナビゲーション用途とは異なる設定が必要になる場合があります。
GPSモジュールの性能を決めるポイント
GPSモジュールには、
「10Hz対応」
「15Hz対応」
「25Hz対応」
などと記載されている製品があります。
更新レートが高いことはGPSラップタイマーにとって重要な要素ですが、数字だけを見て選べばよいわけではありません。
ここでは、主な確認ポイントを紹介します。
① GNSS受信チップ
GPSモジュールには、GNSS信号を処理する受信チップが搭載されています。
このチップによって、
対応する衛星測位システム
更新レート
測位性能
設定できる項目
出力できるデータ
通信処理能力
などが変わります。
GPSラップタイマーを自作する場合、この受信チップは非常に重要な部分です。
例えばチップによっては、更新レートを上げると使用できる衛星測位システムや出力データに制限が発生する場合があります。
私自身もGPSモジュールを設定するときには、単純に「すべての衛星を使用する」という設定にするのではなく、GPSラップタイマーで必要な処理量とのバランスを考えて設定することがあります。
実際に、衛星測位システムや出力データを絞ることで、更新レートや通信処理を安定させたこともあります。
② アンテナ
GPSモジュールでは、受信チップだけでなくアンテナも重要です。
衛星からの信号を十分に受信できなければ、GPSモジュールは安定して位置を計算できません。
そのため、
GPSモジュールの性能=受信チップの性能
と単純に考えることはできません。
アンテナの種類や設置場所、周囲の環境も重要になります。
特にバイクや車に搭載する場合には、
金属部品
カウル
電装品
配線
電気的ノイズ
などの影響も考える必要があります。
また、GPSモジュールを購入するときには、アンテナだけが接続されている製品なのか、データ通信までできる製品なのかも確認してください。
GPSラップタイマーでは、位置情報などのデータをアプリやマイコンへ送信する必要があります。
③ 衛星の受信環境
GPSモジュールは衛星からの電波を受信しています。
そのため、周囲の環境によって測位状態が変化する場合があります。
例えば、
建物
屋根
木々
山
金属構造物
などがあると、衛星信号を受信しにくくなる場合があります。
サーキットでも、コースのレイアウトや周囲の環境によってGPSの受信状態が変わることがあります。
そのため、GPSモジュールの性能を確認するときには、仕様表だけではなく実際の走行環境で確認することも重要です。
GPSモジュールには「設定」がある
GPSモジュールには、さまざまな設定項目があります。
例えば、
更新レート
使用するGNSS
NMEA出力
通信速度
出力するメッセージ
各種測位設定
省電力設定
などです。
つまり、
GPSモジュールは単なるGPSセンサーではありません。
内部の設定によって、外部へ出力するデータや動作が変わります。
サーキット用GPSラップタイマーでは、用途に合わせた設定を行うことで、必要なデータを効率よく利用できます。
1Hzを10Hzに変更すると何が変わる?
GPSラップタイマーでは、GPSモジュールの更新レート変更がよく行われます。
例えば初期状態が、
1Hz
だったGPSモジュールを、
10Hz
に変更します。
1Hzでは1秒間に1回。
10Hzでは1秒間に10回。
位置情報を更新・出力することになります。
サーキット走行では車両が高速で移動するため、この違いは走行ログにも影響します。
1Hzでは位置情報の点と点の間隔が大きくなります。
10Hzでは、より細かい間隔で位置情報を取得できます。
そのため、走行ラインやラップタイムを解析するときに、10Hzのデータが有利になる場合があります。
ただし、
10Hzにしただけで測位精度そのものが10倍になるわけではありません。
更新頻度が上がることと、位置測定の絶対的な精度は別の要素です。
この点はGPSラップタイマーを理解するときに重要です。
GPSモジュールの「NMEA」とは?
GPSモジュールについて調べていると、
NMEA
という言葉がよく出てきます。
NMEAは、GNSS受信機などが位置情報を外部へ出力するときに利用される代表的なデータ形式です。
代表的なものに、
GGA
RMC
などがあります。
GGA
GGAには、
緯度
経度
測位状態
衛星数
高度
などの情報が含まれます。
表示の例として
$GPGGA,085120.00,3500.1234,N,13830.5678,E,1,08,0.9,15.2,M,38.0,M,,*47
| 番号 | 値 | 項目名 | 説明・読み方 |
| 1 | 085120.00 | UTC時刻 | 08:51:20.00(時分秒.秒下) ※日本時間は+9時間して17:51:20 |
| 2 | 3500.1234 | 緯度 | 度分形式(ddmm.mmmm) → 35度 00.1234分 |
| 3 | N | 北緯/南緯 | N=北緯, S=南緯 |
| 4 | 13830.5678 | 経度 | 度分形式(dddmm.mmmm) → 138度 30.5678分 |
| 5 | E | 東経/西経 | E=東経, W=西経 |
| 6 | 1 | 測位品質 (Quality Flag) | 0=無効, 1=単独測位(SPS), 2=DGPS, 4=RTK固定解, 5=RTK浮動解 |
| 7 | 08 | 使用衛星数 | 測位に使われている衛星の数(8機) |
| 8 | 0.9 | HDOP (水平精度低下率) | 値が小さいほど高精度(1.0未満は好条件) |
| 9 | 15.2 | 標高(海抜高度) | 15.2 m |
| 10 | M | 標高の単位 | M = メートル |
| 11 | 38.0 | ジオイド高 | ジオイド面からの高さ(38.0 m) |
| 12 | M | ジオイド高の単位 | M = メートル |
| 13 | (空欄) | DGPSデータの経時時間 | 単独測位時は空欄 |
| 14 | (空欄) | DGPS基準局ID | 単独測位時は空欄 |
| -- | *47 | チェックサム | * の後の16進数2桁(データの破損確認用) |
RMC
RMCには、
時刻
緯度
経度
速度
進行方向
日付
などの情報が含まれます。
表示例として
$GPRMC,085120.00,A,3500.1234,N,13830.5678,E,015.4,180.0,210926,,,A*68
| 番号 | 値 | 項目名 | 説明・読み方 |
| 1 | 085120.00 | UTC時刻 | 08:51:20.00 |
| 2 | A | ステータス | A = Valid(有効), V = Invalid(警告・無効) |
| 3 | 3500.1234 | 緯度 | 35度 00.1234分 |
| 4 | N | 北緯/南緯 | N=北緯 |
| 5 | 13830.5678 | 経度 | 138度 30.5678分 |
| 6 | E | 東経/西経 | E=東経 |
| 7 | 015.4 | 移動速度(ノット) | 15.4 knot (28.52{ km/h}) |
| 8 | 180.0 | 移動方向(真方位) | 180.0度(真南に向かって移動中) |
| 9 | 210926 | UTC日付 | 日/月/年 形式(DDMMYY) → 2026年9月21日 |
| 10 | (空欄) | 磁気偏角 | 測位機器によって出力・未出力あり |
| 11 | (空欄) | 磁気偏角の方向 | EまたはW(未出力時は空欄) |
| 12 | A | モード指示子 | A=単独測位, D=DGPS, E=推測航法, N=データ無効 |
| -- | *68 | チェックサム | データの破損確認用 |
GPSラップタイマーでは、これらのデータを読み取って必要な情報を取り出します。
GPSモジュール → NMEA → KLAP
KLAPのような自作GPSラップタイマーでは、
GPSモジュール
↓
NMEAデータ
↓
緯度・経度・速度・時刻などを取り出す
↓
ラップラインを判定
↓
ラップタイムを計算
という処理を行います。
ここで重要なのは、
GPSモジュール自体がラップタイムを計算しているわけではない
ということです。
GPSモジュールは基本的に、位置や時刻、速度などの情報を出力します。
そのデータを受け取ったKLAP側のプログラムが、
「スタートラインを通過した」
「セクターラインを通過した」
などを判断して、ラップタイムを計算します。
つまり、
GPSモジュールの性能
と
ラップタイマーのソフトウェア
の両方が重要になります。
u-blox M8・M10とは?
GPSモジュールを調べていると、
u-blox M8
u-blox M10
という名前を見かけることがあります。
これらはGPSモジュールそのものの製品名というより、GNSS受信チップ・シリーズとして理解すると分かりやすくなります。
同じシリーズでも、実際に販売されているGPSモジュールにはさまざまな製品があります。
そのため、
「M10だから必ずこの性能」
と単純に判断するのではなく、
搭載チップ
アンテナ
基板
通信方式
ファームウェア
設定
などを合わせて確認することが重要です。
KLAPの開発でもu-blox系のGPSモジュールを使用して検証しています。
実際に使用してみると、
新しい世代のチップだから、そのまま最高の結果になる
というわけではありません。
設定やアンテナ、実際の走行環境での確認が重要だと感じています。
GPSモジュールの通信方式
GPSモジュールをスマートフォンやマイコンに接続する場合には、通信方法も確認する必要があります。
代表的なのが、
UART
USB
Bluetooth
などです。
例えば自作GPSラップタイマーでは、GPSモジュールからUARTでNMEAデータを受信する構成があります。
一方、スマートフォンで外部GPSを利用する場合には、
USB接続
や
Bluetooth接続
が使われる場合があります。
bluetooth接続で気をつけなければならないのは、使うラップタイマーによっては、GPSのアプリが別に必要ということがあります。
専用機は違いますが、スマホアプリではGPSモジュールを接続した場合、スマホアンテナで検出したと位置情報アプリおよび設定が必要になります(Android)
これは、スマホ本体のセキュリティ上の関係で直接位置情報を外部機器から取得できない仕組みになっているためです。
DorrogerGPSなど有名なアプリもあるので、そちらを使用すれば問題なく使用できます。
GPSモジュールを選ぶときのチェックポイント
GPSラップタイマー用としてGPSモジュールを選ぶ場合は、次の項目を確認すると分かりやすくなります。
| 確認項目 | 確認する内容 |
|---|---|
| GNSS対応 | :GPS以外の衛星測位システムに対応しているか |
| 更新レート | :1Hz、5Hz、10Hzなど |
| 受信チップ | :どのGNSSチップを搭載しているか |
| アンテナ: | 内蔵・外付け、アンテナの種類 |
| NMEA: | 必要なデータを出力できるか |
| 通信方式: | UART、USB、Bluetoothなど |
| 設定方法: | PCなどから設定変更できるか |
| 電源: | 使用する機器から供給できるか |
| サイズ: | 車体への取り付けに適しているか |
特に自作GPSラップタイマーでは、
更新レート
通信方式
NMEA出力
設定方法
の4つは重要です。
GPSモジュールを買ったら、すぐ10Hzにする?
ここで注意したいのが、
「10Hzにすればいいから、とりあえず10Hzに設定する」
という考え方です。
実際にはGPSモジュールによって、設定できる最大更新レートや推奨される設定が異なります。
また、更新レートを上げると、
出力データ量
通信負荷
消費電力
マイコン側の処理量
スマートフォン側の処理量
などにも影響します。
そのため、
GPSモジュールの仕様を確認してから設定する
ことが重要です。
以前購入した安価なGPSモジュールでは、10Hzに設定することはできましたが、通信処理が追いつかず、スマートフォン側へデータを送信しきれずフリーズしたような状態になったことがありました。
そこで通信データを減らすために出力内容を調整したり、衛星測位の設定を変更したりして対応しました。
最終的には別のGPSモジュールへ買い替えました。
このような経験からも、
「10Hz対応」と書いてあるだけで、そのままGPSラップタイマーに最適とは限らない
と考えています。
GPSモジュールの設定で確認したい項目
実際にGPSモジュールを設定するときには、まず次の項目を確認します。
① 更新レート
1Hzなのか、5Hzなのか、10Hzなのか。
GPSラップタイマーでは重要な項目です。
② ボーレート
GPSモジュールと接続機器の通信速度です。
例えば、
9600bps
38400bps
115200bps
などがあります。
10Hzで多くのNMEAデータを出力する場合には、通信速度が処理量に影響するため、モジュールと接続機器の仕様を確認する必要があります。
③ NMEA出力
GGA、RMCなど、どのメッセージを出力するか確認します。
必要のないデータまで大量に出力すると、通信量が増える場合があります。
④ GNSS設定
GPSだけを使用するのか、複数のGNSSを使用するのかを確認します。
⑤ 省電力設定
使用目的によっては、省電力機能が通信や測位に影響する場合があります。
サーキット走行で使用する場合には、通常のナビゲーション用途とは異なるため、設定内容を確認することが重要です。
⑥ 設定の保存
変更した設定をGPSモジュール内部に保存できるかも確認します。
設定を変更しただけでは電源を切ると元に戻ってしまう製品もあるため、保存方法を確認しておきます。
GPSモジュールの設定はPCで行える
GPSモジュールによっては、PCと接続して設定を変更できます。
専用の設定ソフトを使うことで、
更新レート
GNSS設定
NMEA出力
ボーレート
各種設定
などを変更できます。
ただし、具体的な設定方法はGPSモジュールのメーカーや搭載チップによって大きく異なります。
そのため、設定方法については別の記事で詳しく紹介する予定です。
GPSモジュールは「設定して終わり」ではない
GPSモジュールを10Hzに設定できたとしても、それだけでGPSラップタイマーが完成するわけではありません。
GPSモジュールから送られてくるデータを、
正しく受信する
↓
必要なデータを取り出す
↓
時刻情報を利用する
↓
位置情報を記録する
↓
スタートラインを判定する
↓
ラップタイムを計算する
という処理が必要になります。
つまり、
GPSモジュール+ソフトウェア
で初めてGPSラップタイマーとして機能します。
これはKLAPを実際に開発してみて、特に強く感じた部分です。
GPSモジュールを交換すると何が変わる?
GPSラップタイマーを自作していると、
「GPSモジュールを変えたら何が変わるのか?」
という疑問も出てきます。
実際には、
走行ライン
位置の安定性
衛星の捕捉状態
データ更新
ラップラインの判定
などを比較できます。
私自身も開発途中でGPSモジュールを変更し、実際にサーキットを走行して比較しました。
同じ10Hzに設定していても、取得した走行データに違いが出るケースがありました。
この経験からも、
10Hzという数字だけでGPSモジュールを判断しないこと
が重要だと考えています。
GPSモジュールを理解すると「設定」の意味が分かる
ここまでGPSモジュールについて説明してきました。
GPSモジュールについて理解してくると、
「なぜ10Hzに設定するのか?」
「なぜNMEAを設定するのか?」
「なぜボーレートを変更するのか?」
といった疑問も理解しやすくなります。
GPSモジュールは、
衛星から情報を受け取る部品
であると同時に、
必要なデータを決められた形式・速度で外部へ送る装置
でもあります。
そのため、自作GPSラップタイマーを作ったり、GPSアプリで外部GPSを使用したりする場合には、GPSモジュールの設定が非常に重要になります。
GPSモジュール設定へ
今回の記事では、GPSモジュールの基本的な仕組みと、GPSラップタイマーで使用するときに確認したいポイントについて説明しました。
次はいよいよ、実際の設定です。
別記事では、GPSモジュールをPCへ接続して、
GPSモジュールを認識させる
現在の設定を確認する
1Hzから10Hzへ変更する
NMEA出力を確認する
ボーレートを確認する
GNSS設定を確認する
設定を保存する
実際にGPSラップタイマーで使用する
といった内容を、実際の画面や設定例を使って紹介します。
GPSモジュールは、接続するだけでも使用できる製品があります。
しかし、GPSラップタイマーで10Hzなどの高い更新レートを活用したい場合には、
GPSモジュールの設定を理解すること
が重要です。
KLAPの開発でも、GPSモジュールの設定を変更し、実走行データを確認しながら調整してきました。
次の記事では、今回紹介した内容を実際の設定画面に落とし込み、「GPSモジュールをどう設定すればGPSラップタイマーで使えるのか」を具体的に紹介します。
まとめ
GPSモジュールは、衛星からの電波を受信して位置情報などを計算し、そのデータを外部へ出力する電子部品です。
GPSラップタイマーでは、GPSモジュールから取得した、
緯度
経度
時刻
速度
測位状態
などの情報を利用します。
GPSモジュールを選ぶときは、
GNSS対応
受信チップ
更新レート
アンテナ
NMEA出力
通信方式
設定方法
などを確認することが重要です。
また、
10Hz=高精度
ではありません。
10Hzはあくまで位置情報の更新頻度です。
実際のGPSラップタイマーでは、
GPSモジュール
+
アンテナ・受信環境
+
GPSデータの処理
+
ラップ判定プログラム
を組み合わせて考える必要があります。
GPSラップタイマーを自作してみると、この違いがよく分かります。
私自身もKLAPの開発を通して、GPSモジュールの設定や交換、実走行による検証を行ってきました。
今回の記事ではGPSモジュールの「仕組み」と「選び方」を中心に紹介しました。
次は、さらに一歩進んで、実際にGPSモジュールをPCへ接続し、1Hz・10Hz・NMEA・ボーレート・GNSS設定などを変更する方法を紹介します。
「GPSモジュールを買ったけど、どう設定すればいい?」
という方は、次の記事で実際の設定を確認してみてください。














0 件のコメント:
コメントを投稿