Raspberry PiにGPSモジュールを接続

Raspberry PiにGPSモジュールを接続してみました。
接続したGPSモジュールはV.KELというメーカーのVK16U6というモジュールです。
VK16U6
GPSチップはu-bloxのUBX-G6010-STの様です。
チップ(u-blox 6 GPSレシーバー・チップ(UBX-G6010))の特徴は以下の通りです。
・-162 dBm および -148 dBm (コールドスタート)でナビゲーション可能
・AssistNow Autonomousによる迅速な捕捉
・設定可能な電源管理
・ハイブリッド GPS/SBAS エンジン (WAAS、EGNOS、MSAS、GAGAN)
・妨害電波抑制
・A-GPS: AssistNow Online およびAssistNow Offline をサポート、OMA SUPL 準拠

今回このGPSモジュールをNTPサーバに接続させます。
GPSモジュールをNTPサーバへ接続する方法は2種類あります。
1つはGPSモジュールのNMEAを解釈させる方法
もう1つはPPS信号という割れる1秒に1回onする信号を入力する方法
です。
PPS信号の精度はすごく高いですがPPS信号のみでは時刻情報になりません。
1つ目の方法でもネットワークに依存せずそこそこの精度で時刻を取得できるので悪い方法ではありません。オフラインでも時刻が欲しい場合に良い方法になると思います。
現在のGPSモジュールの感度はかなり高いのでGPSのアンテナを屋外に出す必要はあまりないと思います。窓際にGPSのアンテナをおければほぼ問題ありません。
今回使用したモジュールは小さなバッテリーを持っており、少しの時間電源Offになっても電源供給が再開されると比較的すぐに受信が再開されます。GPSは原理的にコールドスタートとなってしまうと最短でも30数秒受信開始までかかってしまいます。バッテリーのお陰でそのような時間がかかることもなく快適に使用出来ます。

PPS信号をカーネルで処理するためには以前のRaspberry Piのバージョンではカーネルからビルドする必要がありましたが2015年以降にリリースされているRaspbianはPPS信号入力対応ですのでカーネルからビルドする必要はありません。
それでも、若干動かすまで面倒です。
ntpはパッケージのものは使用出来ないのでソースからビルドする必要があります。
ビルドは2Bでも16分くらいはかかります。

ちゃんと動作すると数マイクロ秒のふれの範囲に収まり非常に安定したタイムサーバーになります。

カテゴリー: Debian, GPS, Raspberry Pi パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください