LoginSignup
6
3

More than 3 years have passed since last update.

micro:bitで電波時計を作った話

Posted at

電波時計とは

日本の時刻の基準は、国立研究開発法人情報通信研究機構(NICT)が「日本標準時」として生成しています。NICTが保有する原子時計から生成した国際標準時(UTC、かつてはグリニッチ標準時GMTとしておなじみでした)を9時間進めたものを日本標準時として、NTPなどの各種時刻サービスを運用しています。詳しくは下記のリンクを参照してください。
https://jjy.nict.go.jp/index.html

時刻サービスの一つに標準電波JJYがあります。JJYは標準電波を送信する無線局のコールサインで、2001年までは5MHz、10MHzなどの短波帯で音声信号による時刻情報を送出していました。
現在は40KHz、60KHzという日常では縁のない長波帯で独特の2進化10進数でコード化した時刻情報(タイムコード)を送出しています。

市販の電波時計は、この長波帯でコード化した時刻情報を受信・解析して、時刻を較正しているわけです。
コードについてはNICTのサイトに解説がありますが、時、分、曜日、年などの情報を1秒ごとのパルスで送信しており、パルスの間隔が秒の情報となります。
https://jjy.nict.go.jp/jjy/trans/index.html

パルスの幅も情報の一つで、幅でバイナリの0と1、マーカーを区別しています。時刻情報はマーカーの区切りごとに8ビットのBCDでコード化されています。
コードの例
https://jjy.nict.go.jp/jjy/trans/timecode1.html
timecode.png
最初のマーカーが「x時x分0秒」をあらわしますが、分・時の情報を全て取得するのに20秒かかるため、マーカーの時刻がわかるのは20秒後ということになります。
原理的にリアルタイムに時刻を取得することはできず、あくまである程度正確な時計の較正用ということです。

JJY受信機

電波時計を自作する場合、40KHz/60KHzが受信できる装置をどうするか、が最初の問題になりますが、幸いその目的のモジュールが販売されています。aitendoのD606Cというモジュールを使用しました。
https://www.aitendo.com/product/9148
denpatokei.png
CME6005というチップが使われており、バーアンテナもついていて、面倒な部分は処理して頂いているようです。助かります。
IMG_1711_2.jpg
電源をつなげば出力端子にタイムコードが出て来ます。自室でJJYの電波が受信できないため、テスト用にJJYシミュレータを使用しました。
ocsillo.png

micro:bitでタイムコードを解析する

電波時計モジュールの出力は、上記のように3種類の幅を持つアナログ信号です。パルスの幅をmicro:bitで取得して、「1」「0」「マーカー」を識別する必要があります。
micro:bitには「入出力端子」のカテゴリに「P0に正パルスが入力されたとき」や「受け取ったパルスの長さ(マイクロ秒)」というブロックがありますが、まさにこういう場面で使う機能でした。
microbitPG.png
ノイズを除去するため一定幅以下のパルスは無視して、パルス幅で1,0を識別し、分と時を格納するバッファ(配列)に書き込みます。分と時さえ取得できればよいので、残りの情報は切り捨てています。
プログラムはこちら
https://makecode.microbit.org/_E20VUW8aCRVr

時計の形にする

mojiban.png
時計本体もmicro:bitで作りますが、LEDに表示するだけだと面白くないのでアナログ時計にしました。一番単純にサーボの回転角で表現しています。
電波時計がタイムコードを解析し終わると、micro:bitの無線で時計本体に時刻を送信するようにしています。
構造はレゴ、サーボはレゴ対応のGeekservoの灰色のやつで作りました。
文字盤は見やすいように紙コップで縦型にしました。表示は0時~11時、0分~59分と変則ですが、実用上は問題ありません。

こちらの本家サイトに動画もありますので、よろしければご覧ください。
http://make-lab.sakura.ne.jp/RadioClock.html

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3