Raspberry Piを使用した電波時計リピーター

2019. 4. 13 (土) | Raspberry Piを使用した電波時計リピーター はコメントを受け付けていません

ラズパイを使用した電波時計リピーターです。
実際に受信した電波をあらためて送信し直すのではく、ラズパイの日時情報から生成したタイムコードを送信するものですので、正確にはリピーターではなくシミュレータですが、この手の既存製品もリピーターと呼ばれていることも多いので、ここでもリピーターと呼びます。

回路について

主に
・ラズパイからのタイムコード受け取り部
・キャリア信号発振部
・信号加工部
・スイッチング、送信部
からなります。

5Vの電源は基板側へACアダプタを接続し、コネクタを通してラズパイへ供給しています。

キャリア信号の生成は40kHzまたは60kHzの水晶振動子を使っています。
両方使いたい場合はスイッチで切り替えるようにしても良いと思いますが、私は2ピンソケットで差し替えるようにしました。
ラズパイの別のポートを使って切替制御することも可能かと思いますが、稼働させ始めたらそれほど頻繁に切り替えるようなものでもないので、今回は見送り。

信号加工はCD4011というNANDゲートのICを使用しています。
水晶振動子を使った発振回路用のXORゲート、ラズパイからのタイムコートパルスと発振回路のキャリア信号のNANDゲート、それをさらに反転させるためのXORゲートとして使っています。

スイッチングにはパワーMOSFETを使用。
送信は自作のフェライトバーアンテナと、外部アンテナとして適当なリード線を使用。
私が使ったフェライトバーは昔ラジオから取り出して温存しておいた、断面が6x12mm、長さ70mmの角型のもの。
それに0.29mmのポリウレタンワイヤーを、1次側10m、2次側5mほど巻きました。
壊れた電波時計などがもしあれば、そこからフェライトバーを取り出して流用するのもいいのではないでしょうか。
電波到達距離はフェライトバーアンテナのみで50cmほど、リード線を付けて部屋の中いっぱいくらいでした。
このアンテナ次第で電波の飛びが大きく変わったりしますが、この辺あまり詳しくないので詳細は省きます…
あまり強くしすぎると電波法にも引っかかってくるのでご注意。

回路図とパーツ配置例
 
回路設計については素人同然ですので詳しい方から見ればツッコミどころも多々あるかと思いますが、目を瞑っていただければ(^^;

作成した基板と、ラズパイZeroを挿した様子
  
離れた位置にも水晶振動子が一個挿さってますが、単に使っていないほうを無くさないための置き場所です。
水晶振動子は小さい上に足も細く抜き差しして使うにはあまり向いていないので、ピンソケットをハンダ付けして使っています。

水晶振動子を使った発振回路部分は、部品個体差などの影響が出やすい箇所かと思います。
当初、C1とC2それぞれ15pFで仮組みしてみましたが、発振周波数を見てみると40kHzの振動子で80kHz、60kHzの振動子で120kHz出たり、触るとふらついて更に増減したりと不安定でしたが、最終的にC1側に15pFを1個、C2側に15pFを2個並列で30pF(回路図では30pFを1個として書いています)とすることで、40kHz、60kHzどちらの振動子でも安定して目的の周波数で発振してくれるようになりました。
実は今回の製作中でいちばん手こずった部分でもありますが、いちばん楽しかった部分でもあります。

この辺りの試行錯誤は、こちらのページの情報が大変参考になりました。
水晶発振回路の豆知識/なひたふ新聞

調整しているうち、40kHzの振動子では正しく発振するのに60kHzの振動子ではおかしい(あるいは逆)という状態になることもあるかもしれませんが、どうしても両方で正しく発振するよう調整しきれなければどちらか一方で手を打つか、CD4011のNANDゲートの空き1個も使って40kHz用と60kHz用それぞれ別に発振周りの回路を作り、スイッチかジャンパで選択するようにしてしまうのも手かもしれません。
あるいは水晶振動子ではなく、LTC1799のようなオシレータを使うのも有りかと思います。
(LTC1799を使ったこともありますが、これはこれで半固定ボリュームでの微妙な調整が難しかったです)

マルチメーターで簡易的に発振周波数を確認している様子

稼働中の様子

発熱に関しては、既に数日稼働させていますがCPUの裏あたりを触るとほんのり温かく感じる程度なので、とくに心配することもなさそうです。
(ずっと稼働させている状態で、室温25℃の時に vcgencmd measure_temp で確認したCPU温度は36℃程でした)

稼働状態の消費電力も監視してみましたが、基板とラズパイZeroを接続した状態でラズパイ起動時には最大200mA程、起動完了後しばらくして安定し始めたらだいたい平均100mA前後でしたので、ほとんどラズパイZero単独で稼働させた時と同じでした。
とはいえ、回路の作り方(特にフェライトバーアンテナ)によっても変わってくるかと思います。

スクリプト

■ JJYシミュレータ(jjy.py)

シミュレータ本体。
Pythonで書かれています。
JJYのタイムコードをシミュレートしてラズパイのGPIOポートに出力します。

設置パス例
/home/pi/script/jjy.py
設置したファイル jjy.py のパーミッションを0744にしておきます。

後述の送出タイムコード日時変更ユーティリティを使用する場合は、
/home/pi/script/ に jjy_adjust.txt という空ファイルを作成してそのファイルのパーミッションを0666にしておきます。

> /home/pi/script/jjy.py
でフォアグラウンドプロセスとして(通常の状態として)実行できます。
実行中はCtrl+Cで中断できます。

バックグラウンドプロセスとして実行する場合は

> /home/pi/script/jjy.py > /dev/null &
(末尾に「&」を付けるとバックグラウンド実行になります。「> /dev/null」はそのプロセスの画面表示を非表示にするためのものです)
バックグラウンドプロセスはCtrl+Cでは中断できません。
> ps -A
で実行中のプロセスIDを検索して
> kill プロセスID
とするか、
> pkill ^jjy\.py$
で中断できます。

起動時に自動でバックグラウンド実行させたい場合は、

> sudo nano /etc/rc.local
として /etc/rc.local を開いて
末尾のexit 0という行より手前に
/home/pi/script/jjy.py > /dev/null &
を追記して保存します。
再起動後より自動実行が有効になります。

自動実行させる方法は /etc/rc.local への追記以外にもいくつかありますが、ここでは割愛。

ラズパイ内部の時計を正確に保つため、ntpdでnictのNTPサーバへ同期するよう設定しておくのもいいと思います。
最新のRaspbianではntpdが入っていないという話も聞きますので、「ラズパイ ntpd インストール」で検索すれば、私がここで説明するよりずっと分かりやすく解説されている記事がたくさん見つかると思います。

実際のJJYの標準電波には毎時15分と45分の40秒台の9秒間、モールス信号でのJJYコールサインがありますが、電波時計にとってそれは必要無いというかむしろノイズでしかないので、本シミュレータでは実装していません。
コールサインもお聞きになりたいのであれば、聴感上の再現を主としてJavascriptで作成したこちらをどうぞ。

■ JJYシミュレータ用 送出タイムコード日時変更ユーティリティ(index.php)

リピーターが送信するタイムコードの時刻設定を他のPCやスマホのWEBブラウザから変更するためのスクリプトですが、こちらは設置しなくてもリピーターは動作します。
PHPで書かれています。
ラズパイ上でApache2等のwebサーバを稼働させている必要があり、PHPのインストールも必要です。

設置パス例
/var/www/html/jjy/index.php

同一ネットワーク上のブラウザから
http://raspberrypi/jjy/
http://raspberrypi.local/jjy/
http://[192.168.xxx.xxx等、ラズパイのローカルネットワーク上でのIPアドレス]/jjy/
等のURLでアクセスできます。
設定や環境によって変わる場合もありますので、その場合は適宜調べてください。
インターネット経由での外部からのアクセスは不可。あくまで同一LAN上からのアクセスに限ります。
インターネット経由でアクセスできるようにする方法もありますが、リピーターの時刻補正に外部からのアクセスは不要ですのでここでは触れません。

実行すると、jjy.plが送出するタイムコードを実際の日時に対して進めたり遅らせたりするための更新画面が表示されます。
ここで設定されるものはあくまで「どれだけずらすか」という現在時刻との相対時間のみですので、ラズパイ自身の時刻設定そのものが変更されることはありません。

日時設定変更ユーティリティの操作感の確認用サンプル

jjy.pyを別のPCからSSH経由でフォアグラウンドプロセスとして実行させ、ブラウザからタイムコードの送出日時設定変更を行ない、変更した設定が反映される様子

適当なケースに収納。
ケーブル類は短めの延長コードでケース外へ。
  

使用した主な部品リスト

ピンソケット 2×20
ラズパイとの接続用

水晶振動子 40kHz
標準電波のキャリア信号発生用

水晶振動子 60kHz
標準電波のキャリア信号発生用
必要なほうどちらか片方だけでも大丈夫です。

積層セラミックコンデンサ 15pF
当初15pFで設計しましたが、発振周波数が2倍、3倍となったりして不安定だったので並列に増減しながら様子を見て、C1側15pF、C2側並列2個で30pFで落ち着きました。

抵抗 10MΩ

抵抗 220kΩ

CD4011BE 4回路NANDゲートIC
手持ちがあったのでこれを使いましたが、SN74HC00N等でも構いません。
回路図でのピン番号の違いは適宜読み替えて下さい。

ICソケット 14pin
無くても大丈夫。
ハンダ付けの熱でICを壊さないか心配な場合はあったほうが安心。

2SK2232 パワーMOSFET

■ 適当なフェライトバーアンテナ

■ 外部アンテナ
付けなくてもフェライトバーアンテナのすぐ近くであれば届きますが、私はたまたま手元に余らせていた3.5mmミニプラグのオーディオケーブルをアンテナとして使ってます。
既存ケーブルを流用する場合は、芯線だと物によってはシールドされている場合もあって電波が飛ばないので、ケーブルのGND側に結線。

3.5mmミニジャック
3.5mmオーディオケーブルを外部アンテナとして流用する場合の接続用

■ LED
手元にあった1.8mm白色チップLED

■ LED保護及び輝度調整用の抵抗
抵抗値が低ければ明るく光りますが、低すぎたり抵抗を繋がなかったりするとLEDに電流が流れすぎてすぐ切れます。
逆に抵抗値が高ければ暗くなりますが、高すぎると電圧が足りず全く光らなくなります。
私は手元にあった24kΩのを使ってます。
24kΩだとかなり暗いですが、照明用途ではなくタイムコードのパルス確認用なので、明るすぎないのはむしろ好都合。

ユニバーサル基板
回路が収まれば何でもいいです。
せっかく小さなZeroを使うので、それに合わせた小さな基板にまとめてもいいかもしれません。

マイクロUSB端子
回路の電源供給用です。
電源自体は市販のUSB ACアダプター等を使ってください。

丸ピンソケット 1×12
いくつか切り離して水晶振動子差替え用のソケットにしました。

■ Raspberry Pi Zero WH
タイムコードシミュレート及びパルス制御させる本体。
他のラズパイでも大丈夫かと思いますが、常時稼働する前提なので消費電力の少ないZeroで、更にWi-Fiによる設定変更やNTPサーバとの同期、コネクタ接続も必須なのでWHが最適。
こんな小さなロジックボードひとつでサーバとしての機能がパワーはそこそこであれひと通り実現できてしかも安く入手できるのですから、いい時代になったものです。

■ タカチ電気工業 SS型プラスチックケース(SS-160W)

Raspberry Piを使用した電波時計リピーター はコメントを受け付けていません
internet, Raspberry Pi, ガジェット, ソフトウェア, ハードウェア by あけび

 JavaScriptで動作する標準電波シミュレータ

2019. 2. 26 (火) | JavaScriptで動作する標準電波シミュレータ はコメントを受け付けていません

電波時計が時刻補正に用いている標準電波のタイムコードをJavaScriptでシミュレートして送出するスクリプトを作成しました。
標準電波シミュレータ

Webブラウザで実行しているものですので、PCやスマホ等、多数の機器で使用可能です。

当方では、
Windows10:InternetExplorer11、Firefox、GoogleChrome、MicrosoftEdge
MacOS:Safari、Firefox、GoogleChrome
iOS:Safari
Android:GoogleChrome
で正常に動作し、音声信号も出力されるのを確認しています。


WindowsPCにイヤホンを繋いで腕時計の時刻設定を変更するテスト


iPod touchのスピーカーと向かい合わせて置時計の時刻設定を変更するテスト

JavaScriptで動作する標準電波シミュレータ はコメントを受け付けていません
iPad, PC, ガジェット by あけび

 PENTAX K-S1 撮影した結果が暗くなる

2018. 9. 12 (水) | PENTAX K-S1 撮影した結果が暗くなる はコメントを受け付けていません

私の使用機種はK-S1ですが、K-50/30/S2などでも同様の症例があるようです。
ちなみにうちで症状が出始めたのは、購入後3年ほど経った頃から。

K100D/200Dも所持していますが、こちらは同様の症状は出ていません。

・症状の内容
 設定したF値に関わらず、レリーズ時には完全に絞った状態で撮影されてしまう。
 レンズを交換しても症状は出る。また、他のボディーでは症状は出ないのでレンズ側が原因ではない。
 接点をクリーニングしても変わらない。

・ファインダー撮影時
 何が写ってるか分からないほど暗い。
 レタッチで明度を上げると、暗いなりに何か写っているのは確認できる。

・ライブビュー撮影時
 写ることは写るが、やたらレリーズ時間が長かったりする。
 モニター画面上のプレビュー表示は暗い状態から増感されているためノイズが多く、周囲の明るさによっては増感しきれず暗い場合もある。

・動画撮影時
 設定したF値に関わらず実際の絞り羽根は絞り切られているため増感されてノイズが多く、周囲の明るさによっては増感しきれず暗い場合もある。

写真撮影時にライブビューモードにすると、絞り(設定上のF値ではなく実際の絞り羽根の状態)は開放からちょっと絞られているくらいが正常(写真1)なのに対し、この症状が出ている時は完全に絞られた状態(写真2)になっている。
写真1 写真2

この状態の時、ライブビューモードのON/OFFを何度か繰り返していると正常な開き具合に戻ってくる。(動画参照)


正常な開き具合になったら、ファインダー撮影でもしばらく正常に撮影できる。

普通に何度か撮影しているうちに回復してくることもありますが、上記の方法なら絞り羽根の状態を見ながら回復するまで繰り返せますし、余分なファイルを削除する手間も無いのでいくらか楽でしょう。

とりあえず今のところはこれで回復できていますが、症状がさらに進行したらこの方法でも回復不能になるかもしれません。

PENTAX K-S1 撮影した結果が暗くなる はコメントを受け付けていません
カメラ by あけび

 TrueImageの起動用ブータブルメディアをUSBハードディスクに含める

2018. 3. 31 (土) | TrueImageの起動用ブータブルメディアをUSBハードディスクに含める はコメントを受け付けていません

TrueImageの起動用ブータブルメディアパーティションを含んだバックアップ専用USBハードディスクを作成するメモ。
使用したTrueImageは2018。


まずTrueImageでUSBメモリにブータブルメディアを作成。
作成したブータブルメディアのボリュームラベルを分かりやすいものに変更しておく。


空のUSBハードディスクとブータブルメディアをPCに接続して、ブータブルメディアから起動。
ツールとユーティリティ > ディスクのクローン作成 を選択


クローン作成モードは “手動”


ソースディスクにブータブルメディアを選択


ターゲットディスクにUSBハードディスクを選択


クローンの作成方法は “変更せずにパーティションをコピー”


移行方法は “手動”


パーティションマップをダブルクリック


パーティションサイズ > 1GB程度に縮小
前方の空き容量 > できるだけ先頭へ
その他の項目は元のまま


未割り当て部分をダブルクリック


パーティションサイズ > めいっぱい広げる
ファイルシステム > NTFS
パーティションラベル > backup
パーティションの種類 > “プライマリ” を選択、”アクティブとしてマークする” はチェックしない


作成されるUSBハードディスクのレイアウトを確認


確認して実行


作成完了したUSBハードディスクはUSBメモリのブータブルメディアと同様に起動可能、そのままbackupパーティションを使ってバックアップや復元ができます。

——–
2018.12.01追記
TrueImage2019では、同様に1台のUSB外付けHDDに起動用ツールとバックアップデータをまとめることのできるAcronis Survival Kitという機能が搭載されているようです。
Acronis True Image 2019の新機能ーAcronis Survival KitをUSB外付けHDDに設定

TrueImageの起動用ブータブルメディアをUSBハードディスクに含める はコメントを受け付けていません
PC, ソフトウェア by あけび

 蓮沼勝・磯貝裕美 二人展

2016. 3. 19 (土) | 蓮沼勝・磯貝裕美 二人展 はコメントを受け付けていません

展示の告知です。
——————————–
蓮沼勝・磯貝裕美 二人展

場所: Gallery&Cafe 樹庵
 安城市東町新井48-1
 0655-99-8020

日程: 2016年4月7日(木)~18日(月) 9:30~18:00
 最終日は17:00まで。
 12日(火)・13(水)は定休日です。

image1
春いろ あおば
——————————–

蓮沼勝・磯貝裕美 二人展 はコメントを受け付けていません
未分類 by あけび