どうも、Reveです。ヴィンテージ水晶発振子を使った時計制作もいよいよ最終回。
今回は、きっかけと完成までの紆余曲折をつらつらと書き綴ります。
目次
- 概要と機能・動作
- 材料
- クロック回路
- 時計(時刻のカウント)
- 時刻合わせ
- VFD点灯制御
- 電源、リセット
- 実装(はんだ付け、筐体)
- 完成までのストーリー ← 今回はココ!!
きっかけ
2022年2月27日(日)、鉱物がたくさん売ってる「第8回浅草橋ミネラルマルシェ」に相方の2人で行った日のこと。
何気なく水晶が時計や電子機器のクロック周波数を生成するために使われている事を話したら、Revetroniqueのデザイン担当が「じゃあ天然の水晶でもできるの?」と言ったのをきっかけにトライしてました。
最初は発振すればいいかと思いましたが、相方(デザイン担当)が「え、それで終わり?」と言ったので、しばらく悩んだ末にひねり出したのが「デジタル時計」でした。電子機器のクロック源ということで、そのまま時計にしてみました。
紆余曲折
天然水晶でのテストと断念
ミネラルマルシェで小さい水晶を買って、軽くたたいたり電圧をかけたりしながら発振できないか挑戦しました。何回も試みたものの、やはり安定して発進させるのは難しいということになり断念。早速、計画が頓挫しました。
ちなみに、超巨大水晶発振器 (楢ノ木技研)という装置を知り、たまたま見つけた人工水晶を買って発振させようとしたのですが、こちらもあえなく失敗…。これもいずれは成功させたいですね。
ヴィンテージ水晶発振子との出会い
いろいろと調べた所、安定して発振させるにはどのような水晶でもよいという訳ではなく、一定の品質で製造できる人工水晶と、結晶方向を一定の角度にそろえる加工方法が必要でした。
そんな感じで水晶の発振で悩みましたが、秋葉原のマイクロ・パワー研究所という所でガラス管の古い水晶発振子を発振させる回路を見せていただきました。50年以上前の水晶発振子が動き、しかも周波数が可聴域で音が聴こえた事が面白かったので、水晶の代わりにヴィンテージの水晶発振子を使うことに決めました。
なお、量産化技術が確立するまでは天然の水晶を職人がカットして作られていたようで、大変手間がかかるものだったらしいです。
70年以上前に天然水晶が無線機の部品として加工される様子を記録した映像が公開中 (Gigazine)
水晶発振子の入手
まず、使用する水晶発振子には以下の条件を設けました。
- ガラス管
- 発信周波数が10kHz (可聴域かつ分周しやすい)
- 値段も比較的安い (5千円くらい)
とはいえ、昔の水晶発振子はどれも既に生産を終了しているので現存するものは少なく、ましてや上記全てに当てはまる水晶発振子の捜索は困難を極めました。最終的には、eBayで英国製のものを購入。だいたい2週間位で配送されました。
発振回路の製作
届いた水晶発振子が動作するかどうか、発振回路を組んで検証しました。前述の発振・分周回路を実装して確かめたところ発振が確認できました。概ね1Hzを生成できたものの、時に周波数が早い事もあったので外部環境(気温など)によって変わるのかもしれません。
デジタル時計の制作へ
10kHzなので1/10000に分周すれば1秒は簡単に刻めます。ただ、その1Hz信号をマイコンなどの外部割り込みに入れても面白みが無いので、せっかくならとヴィンテージをテーマに以下の条件を入れてみました。
- 水晶発振子をクロック源(1Hz)とした時刻計測
- 任意の時刻をセット
- ディスクリートロジック回路 (マイコン類は一切使用しない)
- VFD管で時刻を表示 (サイバーパンク風かつアンティークな感じ)
時刻の表示には、ヴィンテージ風を重視してVFD管を採用しました。7セグLEDやニキシー管を使う事例も多いですが、発光色の青(水色?)がアンティークかつサイバーパンクといった雰囲気でデザイン担当が気に入ったからです。確かにVFD管の青色の光も素敵ですね。
ハードウェアロジックにしたのは、1970年代にはデジタル時計が開発されていたとはいえ、VFD管とガラス管の水晶発振子がまだ生産されていた頃(60~70年代?)はロジックICでの設計もまだメジャーだったろうと思い、ロジックICだけで回路を組むことにしてみました。(専門家に時代考証をしてもらいたい所ですが)
それが後々、あんな地獄を見ることになるとは、この時は露ほども考えていませんでした。
時計回路の設計
大体の方針が決まったので、発振・分周回路の他に必要な要素を考えてみました。デジタル時計もVFD管の点灯も実際に制作するのは初めてだったので、いろいろと調べながら設計を進めていきました。
- クロックからの時間計測 (時計)
- 時刻の入力と時計側へのセット
- VFD管の点灯制御
- 電源回路 (時計 / VFD管)
長期の一時中断
VFD管の点灯と電源回路については、VFD管フィラメントの電源と制御も含めて割とスムーズに開発が進み、難なく開発できました。また、時間の計測も秒の更新はすぐにブレッドボードで組んで動いたので、「部品は多いが少しずつ実装すれば終わるか」くらいに考えてました。ですが、基板の大きさと部品点数の多さに加え、仕事の関係で忙しくなったことから、しばらく時計の制作を中断せざるを得ませんでした。
後々、それが如何に甘かったか思い知らされることに。
設計と実装の再開、からの停滞
前回の作業から半年も経って、気が付けば年明けまであと1か月。「このまま未完成で来年を迎えるのはマズい」そう思って時計を完成させようと一念発起しました。
まずは半年ぶりの作業なので今までの進捗を振り返り、時計回路の設計で未完成の部分を確認。現状でまだできていない部分を整理したところ、主に以下の3点が課題となりました。
- 時刻の更新。特に時の単位の数値更新(9→10 / 19→20 / 23→0)
- 時刻セットの入力方法
- 設定した任意の時刻を、時計本体に反映する方法
これらを踏まえ、時計の構成をクロック生成(水晶発振子の発振・分周)回路、電源回路、時刻計測+VFD管点灯回路に分け、既に完成していたクロック生成を除いた電源回路と時刻計測の設計・実装に入りました。
時刻の計測自体はもとよりカウンタICを使う予定で、ロジックICによる時計では定番の手法だと思います。BCD(10進)カウンタである74HC160の方が内部で桁の繰り上がりを自動で処理するので部品点数は少なくなりますが、生産終了品も多くメンテナンス性を鑑みて74HC161にしました。そのため、桁の繰り上がりも含めた24/60進数の条件分岐を設計しなくてはならず、難易度が上がりました。
ただ、それ以上に困難を極めたのが時刻入力。こちらは値の増減ができ、なおかつ24/60進数にも対応するためアップダウンカウンタICによる設計を試みました。諸々検討しましたが、苦心の末にBCDカウンタの74HC192を2個ずつ使い、24進数と60進数でそれぞれ時と分の設定を行う回路を設計しました。が、これらの設計が想像以上に複雑となり暗礁に乗り上げました。
こうして初めて知るのでした。実は時計の設計が完成から程遠かったことを…。
深淵にようこそ
ロジックICだけで構成するため部品数も増加し、それに伴ってはんだ付けの箇所も多くなります。ただでさえ設計ミスが見つかる中、PCBも作らずユニバーサル基板による手付けのため、配線やはんだ付けのミスも続きます。しかし、どうにか完成にこじつけ、いよいよ電源を入れてのテストに入りました。
しかし、問題は続きます。
なんと、秒は正常に動くものの、分や時が最大値(59あるいは23)になった直後の秒カウントと共に0となる現象に見舞われました。おまけに、時刻セットにおいては色々な問題(ボタン入力が1つ遅れて反映される、0から-1を入力する時に最大値+1となる、あるいは0と最大値間の循環が上手くいかない)が続出してしまいました。
(失敗時の動画あったはずなので探します)
実は、分や時の更新では下位の値の変化を考慮しないといけないはずが、その時はそれぞれの数値しか見ていなかったため、59:00 あるいは 23:00:00 になって次の1秒を迎えた瞬間に0に戻るというのが真相でした。そこで、下位の値が変化する時、つまりLoadに入る信号(の反転)も入力とすることで59秒、あるいは59分59秒になった次の1秒で分や時が0に戻るようにしました。
時刻セットもCLRを最大値からのリセット、Loadを0から最大値へ戻すときの読込に使うことで増加と減少どちらにも対応させました。読込値は24(時)および60(分)で、IC内の処理により一つ減ってそれぞれの最大値(23/59)になります。
こうして、ようやく正しい動作につながる設計ができた事で、やっと完成に至る一筋の希望が見えてきました。
そして完成へ
とはいえ、まだ回路の実装は終わっていません。
半ば気が遠くなりつつ配線の見直しとはんだ付けのやり直しを繰り返し、2週間近くをかけてようやく回路の実装が終わりました。
年末をほとんど潰したことを後悔しつつ、完成したらワニとカンガルー肉を食べるんだと!と気になっていた秋葉原にあるバー「MIKAKU」に行き、ようやく完成した喜びを相方とかみしめていました。
ちなみに、そこではルーミート(カンガルー肉)やワニ肉が味わえます。ウィスキーガチャもあるよ。相方は引きが強いらしく、一発でウィスキーガチャの1等SSSを引いていました…wそういえば、前にも、最初のお台場超次元音楽祭@フジテレビで抽選で観覧募集があった時、僕は外れましたが相方が当ててくれたおかげで観覧することができた(しかも最前列)のを思い出しました…恐るべし相方…。余談はともかく、ヴィンテージ水晶発振で作る水晶発振子時計が完成して無事に動いて本当に良かったです。
最後に、できたのが嬉しいので完成した水晶発振子時計の動画を再掲ですが載せておきます。見ていただけたら嬉しいです、ありがとうございました!
参考
VFD管の点灯制御
VFD表示管IV-6を点灯させて見ました (kohacraftのblog)
VFD表示管IV-6とMM5316Nにクロック源を追加して時計になりました (kohacraftのblog)
汎用ロジックICによる時計の回路設計
あとがき
(決して)マイコンやFPGA反対派では無いです。余力があれば、以下の機能も含めた完全版を作りたい…。
- 時刻セットへの切替で、現在時刻を読み込む
- 12時間表記の対応
最後に
や め と け
これを見ても再現は全くオススメしません(マイコンで作る方が楽なので)。ユニバーサル基板で実装なんかしたら最後、軽く地獄を見ます。どうしてもやりたい人は、プリント基板を設計するか、できればFPGAなどを使って挑みましょう。