2014/10/25

JJYシミュレータの試作(AVRマイコン)

 すこし前に購入した電波時計モジュール(40KHz) [MAS6180-40KHZ]を使って電波時計を作ってみることにしました。電波時計モジュールから出力されるパルス信号をAVRマイコンでデコードして7segLEDかLCDに表示するつもりです。
 ところが実際にデバッグを始めたところ困ったことが発生。電波時計モジュールから出力されるパルス信号がノイズだらけでデコードできないようなのです。電波時計モジュールとAVRマイコンを窓際に持っていくと正しいパルスが出てくるのですが、マイコンデバッグ用PCに接続するためにPCが設置されている場所まで持っていくと出力パルスが怪しくなります。原因として考えられるのは以下の2点です。

 1)電波が弱いため窓際でないと正しく受信できない。
 2)PCが出すノイズに邪魔される。

 PCの電源を落とすとだいぶ改善されるので2)の要因が大きいのだと思います。

 PCなしではマイコンのデバッグができないので、電波時計モジュールのパルス出力を疑似出力する「JJYシミュレータ」なるツールをAVRマイコンで試作することにしました。

構成


  • いつものAVRマイコン(ATmega168/328マイコンボードキット)を使用します。
  • ATmega168/328マイコンボードキットのPB5ピンにはLEDが実装されているので、このピンをパルス出力ピンにします。
  • パルス出力のフォーマットはNICTの長波JJY送信方法を参考にしました。
  • 時刻情報はタイマ1で生成した10Hzから生成します。
  • 時刻合わせ機能はありません(プログラム上で初期値を定義し、常に初期値からスタート)
  • タイマ0で40kHzを生成し、PD6(OC0A)ピンに出力します。このときパルス出力で送信OFF/ONを制御します。
  • パルス出力の状況はシリアル(RS232C)に出力します。
今回はパルス出力だけで良かったのですが、遊びで40kHz出力もつけてみました。

使ってみて


 まだ本来の目的(パルス出力を使って電波時計のデバッグ)は試していません。
 替わりに40kHz出力を試してみたところ見事に動きました。PD6ピンに15cmぐらいの線材を接続し市販電波時計に近づけてみたところ同期してくれました。10cmぐらい離しても同期します。
 本物のJJYの電波形式(A1B)とはちょっと違う40kHzの矩形波のON/OFFですがうまく動きました。
 頭では分かっているけど、実際に動いている所をみると電波は面白いというか不思議ですね。

シリアル出力例


<<< JJY Simulator >>>
 Copyright (c) 2014 Being. Ver0.1

00M 2016/02/29 23:14
M00100101M001000011M000000110M000000110M_________M000000000M 2016/02/29 23:15
M00100110M001000011M000000110M000000110M000010110M001000000M 2016/02/29 23:16
M00100111M001000011M000000110M000000100M000010110M001000000M 2016/02/29 23:17
M00101000M001000011M000000110M000000100M000010110M001000000M 2016/02/29 23:18
M00101001M001000011M000000110M000000110M000010110M001000000M 2016/02/29 23:19
M01000000M001000011M000000110M000000110M000010110M001000000M 2016/02/29 23:20

2014/10/07

黒部ダムに行ってきました(紅葉)

10/4(土)に黒部ダムに行ってきました。紅葉は色づき初めの段階で来週あたりから本番を迎えそうな感じでした。

黒部ダムの放水風景


放水を真上から見た図


紅葉


2014/10/01

【その後】Shure SE425ケーブル交換

先日ケーブルを交換したShure SE425ですがとても快調です。

交換前のケーブルはゴワゴワしていて絡まりやすく使いにくかったのですが、交換後のケーブルは柔らかく絡まりにくいです。

【備忘録】時系列データの編集方法(R言語, tidyverse)

TimeSeries.knit 1 サンプルデータ作成 2 日付単位に集計する 2.1 月毎集計 2.2 四半期毎集計 ...