コメを噛め

コメを噛め

rerofumi の電子工作メモ

hatena bookmark

先日「なにか面白いアイテムはないかなー」と yodobashi.com を覗いていたところ、共立電子の「Wi-Fi式電波時計用リピータ / P18-NTPWR」というものを見つけたので購入した。
(というか共立電子のアイテムって yodobashi.com や Amazon で買えるのか)

Wi-Fi 経由で NTP を使って現在時刻を取得し、それを JJY 信号として送信することで近距離(この場合の対称は部屋内)の電波時計の時刻を合わせるというガジェット。建物の中だと電波が届かなくてせっかくの電波時計でも時間がずれてしまったりするんだけれども、これがあればバッチリ合わせることができる。
丁度自室も入りが悪くて時刻合わせにほとんど失敗する(たまーに成功することがある)感じで困っていたので実用として購入。


買う前にわかってはいたけれども、中身は PIC マイコン 1つと無線制御に ESP-WROOM-02 1つというシンプルな構成。
といってもソフトが良くできているし実運用できる点でお値段相当の価値はあると思った。

しかし、これくらいシンプルな構造なら自分でも作ってみたいなと思ったのが今回のお話。

電波時計の時刻合わせをする JJY 信号発生器というのは割とメジャーな工作ターゲットらしく、検索するとたくさん出てくる。
興味がある場合は調べてみると良いだろう。

標準電波JJY の仕様については日本標準時グループのページに記載されている。
仕組みとしては 40kHz もしくは 60kHz の電波を 1秒毎に On/OFF する形で現在時刻を送出する形。
なので、40/60kHz の信号を生成する機構と、それをエンコードに従って ON/OFF する機構があれば良い事になる。

今回のターゲットは RaspberryPi にした。
単に golang でプログラムを書き殴りたかっただけというのが理由。
プログラムについては bitbucket においてある。
https://bitbucket.org/rerofumi/pi-jjy
実行バイナリは以下からダウンロードできる。
https://bitbucket.org/rerofumi/pi-jjy/downloads/pi-jjy-bin_20170507.tar.xz


RaspberryPi からの信号引き出しは上図の通り。
23番の GPIO は JJY に合わせて ON/OFF されるピン。別に信号生成器がある場合、それをこの GPIO で ON/OFF すると標準電波JJYとすることができる。開発中はシグナルジェネレータの出力をトランジスタでスイッチングしたもので確認していた。
18番は RaspberryPi の PWM を使って 60kHz の信号を発生させそれで簡易的に駆動する場合。コイルは 10巻き程度がお勧め。
回路保護のために 100Ω の抵抗を付けているけれども、この時で 12mA ほどの電流。10巻コイルとセットで 15cm くらいは飛ぶかな。
保護抵抗無くても 24mA 程度で動くと言えば動くけれども、安全のために抵抗はあった方が良いかと。

回路が準備できたら先の pi-jjy を用意して以下の様に実行。

$ sudo pi-jjy localtime

WiringPi を使っている関係上 root 権限で実行を行う。
最近の Raspbian だとインストール後そのままの設定で root なしの GPIO アクセスができるっぽいけれども、root じゃない状態で PWM レジスタを設定したらカーネルがクラッシュする現象にであったので実行時は必ず sudo すること。

これでピンから標準電波JJY が出力される。
送信は RaspberryPi の時計が 0秒になった時点から行われるので最初の数十秒はなにも出てこないかもしれない。
また、送出される時刻は RaspberryPi の localtime となる。Raspbian のインストール直後は localtime が UTC になっているのでこれを日本のタイムゾーンに変更するのを忘れないこと。
後は RaspberryPi に NTP クライアントでも仕込んで時刻をインターネット経由で合わせるようにすれば、電波時計リピーターの完成である。

実際に手元で実験する際は、40kHz や 60kHz といった信号の波形が見れるオシロスコープが必要となってくるだろう。
JJY の GPIO は 1秒ごとなので LED でも繋いでおけば確認できるし、丁度良い Lチカにもなる。

Leave a Reply