ニキシー管時計の製作 (14) 電波時計にする

ようやくケースも完成し、時計としての形をなすようになりました。あとは、電波時計の機能を持たせれば個人的には完璧です。

当初、電波時計の機能は秋月の電波時計キットを流用して使う予定で、実際にキットを購入して製作・実験しました。しかしどうしても満足のいく受信感度が 得られず、数日経っても時刻が同期しない現象が頻発したため、このキットの使用は断念せざるを得ませんでした。なお私の受信環境は、市販の電波時計が問題 なく動作する環境です。

ということで、GPSを試すことにしました。(3)でお話ししたように、Tubehobby社のNCV2.1には、GPSの電波に含まれる時刻情報に時 計の時刻を同期させる機能が備わっています。この場合、別売のGPSレシーバーが必要となります。マニュアルではNavilockやHaicomのレシー バーが推奨されていますが、NEMA-0183プロトコルで出力され、4800bpsのRS-232Cインターフェースで接続できるレシーバーであれば、 ほとんどの機種で問題はないようです。

ただ当時は、この種のGPSレシーバーの入手性があまり良くありませんでした。そのため海外のサイトで探していたところ、偶然、GPSレシーバーの中古品が イギリスのオークションサイトで出品されているのを見つけ、落札しました。価格は20ポンド(約4000円)でした。
nixie048
入手したのはHaicomのHI-204Sという機種で、自動車の屋根の上に設置できるように底面にマグネットが入っており、完全防水仕様になっています。
nixie049
このGPSレシーバーをNCV2.1に接続して、動作すればそれでおしまいなのですが、話はそううまくはいきません。問題が2つ発生しました。

①GPSレシーバーを屋外の空のひらけた場所に設置しないと、NCV2.1は時刻を同期してくれませんでした。最初はレシーバーが故障しているのかと思ったくらいです。

②GPSレシーバーを接続すると、NCV2.1で時刻の調整ができなくなりました。時刻が同期していれば何の問題もありませんが、非同期で時刻がずれている場合は、ずれた状態を修正しようがないことになります。

レシーバーのケーブルを室内から屋外に引き回すなんて格好悪いし、GPSもだめか、もったいないことをしたと一旦はあきらめかけました。

ところがある日、室内に置いたGPSレシーバーの出力をRS-232Cを通してPCでモニタしていたところ、室内にもかかわらず現在時刻が出力されてい るのに気付きました。この状態でGPSレシーバーをNCV2.1につないでも、同期はしません。これは何とかなるかもしれないと思い、NCV2.1の動作 の解析を始めました。
nixie050
NCV2.1はPICマイコン16F876Aが全体制御をしていますが、当然のことながら、この16F876Aに書き込まれたプログラムのソースはわかりません(もしソースを公開したら模倣品が出回るでしょう)。そのため、NCV2.1の外から、ダミーのNEMA-0183プロトコルのデータを入力する ことで、NCV2.1の動作を推定することにしました。

その結果、次のことがわかりました。

①NCV2.1は、GPRMCデータの2フィールド目にある「受信ステータス」が”A”(Valid position)の場合のみ時刻を同期する。”V”(Navigation receiver warning)の場合は、現在時刻が入力されても同期しない。受信ステータスが”A”になるのは、複数個の衛星から電波を受信でき、現在位置を特定でき た場合のようです。現在時刻は、受信できる衛星がそれより少なくても特定できます。

②NCV2.1は、GPSレシーバーからデータを受信し始めると、時刻調整の機能などを停止する。受信が終わると時刻調整は再び可能となるが、GPSレシーバーからは1秒に1回以上データが来るため、事実上、時刻調整ができない。

これら2つのことに対する解決策として、GPSレシーバーからの出力を一旦、別のPICマイコンが中継する方法を考えました。その動作は次のようにします。

①GPSデータに含まれる現在時刻の妥当性を判断する。判断基準は、現在時刻がレシーバーの初期値でないことと、一定の間(たとえば1分間)現在時刻が ずれないこととする。妥当な場合はGPRMCデータの2フィールド目を”A”に変換して、NCV2.1に送る。

※GPRMCデータの最後に付加されるチェックサムの値も変更して送ります。NCV2.1では、チェックサムが正しいかどうかもきっちり調べているようです。

②GPSレシーバーからすべてのGPSデータを受け取るが、NCV2.1にはGPSデータを間引いて送る。たとえば、1分間に1回だけ送る。

妥当性を判断する基準は、GPSレシーバーの性能や受信環境によってさじ加減が必要と思います。基準を甘くすれば同期する確率は高くなりますが、同期した時刻が誤差を持つ確率も高くなります。

PICマイコンは、(6)の制御用に使っているものと兼用します。(6)では16F819を使いましたが、後で時報機能を追加したときにI/Oを増やす 必要があったので、18F2550に載せ換えています。18F2550はプログラムメモリが16kワードあるので、多少複雑なことをしても、リソースは余裕があります。

実際にニキシー管時計を動作させ、GPSレシーバーで電波を受信させながら、プログラムおよびデバッグを行います。このとき、RS-232Cインター フェースを使って、PCで動作状態をモニタしながらデバッグすると効率的です。また、PICマイコンへの書き込みはICSP(In Circuit Serial Programming)を使った方が、ライタ(書き込み器)を使うよりも圧倒的に開発効率が上がります。
nixie051
プログラミングが完了し、市販の電波時計と並べてニキシー管時計の表示時刻を確認したところ、実用上問題ない程度の精度(1秒以下)で同期が維持されま した。NTTの時報(117)と照合したら、電波時計よりもニキシー管時計の方が正確でした。まれにニキシー管時計の時刻がきっちり15秒ずれることがあ りますが、しばらくすると正しく修正されます。
nixie052
ニキシー管時計で電波の受信状態が確認できるように、秒表示の上に橙色のLEDを仕込みました。現在時刻をNCV2.1に送ったときには、秒表示のニキシー管がLEDで照らし出されます。

(おわり)

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク