Yokko's Lab

Back

NTP+スタティック方式なニキシー管時計を作る (3)Blur image

前々回、前回に引き続きニキシー管時計の製作を行っていきます。今回は最終回で、筐体と完全なプログラムを作成します。

当初はラズベリーパイを使ったサイネージと一体化する予定でしたが、世界観が合わないので止めました。あと市販の小型LCDの解像度が低すぎて、遠目から見づらいというのもあります。

プログラムの作成#

今回実装する機能は以下の通りです。

  • 自動調光
  • 日付表示
  • 炎ノイズシミュレート
  • タッチセンサによる設定
  • マルチコアによる時刻表示部の独立

完成したプログラムは前回の記事のダウンロードリンクから入手できるようにしていました。ここでは主要部分だけ抜き出して解説します。

① 変数宣言部#

ここでは今後使うピン番号や各種変数、フラグなどを宣言しています。Gaussian.h は正規分布に基づく乱数を生成する際に使います。

② 表示部#

参考元をベースにしつつ、日付表示も追加しています。

③ 機能部#

gotTouch1〜3 はタッチセンサ割り込みのフラグ立て、noise() は炎の揺らぎ再現、get_cds_value() はCdSによる自動調光です。

CdS調光と炎ノイズシミュレート機能は共存できるようにしてあり、関係は以下の図の通りです。

CdS調光と炎ノイズ機能の関係図

日付表示機能は、タッチ判定があると date_time_flagtrue にし、別コアで動いている時刻表示を一時停止させて、display_date() による上書きを行う仕組みです。

//略
date_time_flag = true;
display_date();
//略
date_time_flag = false;//button_date_time_flagではないことに注意
cpp

④ 設定系#

subProcess() が別コアで動く機能部、loop() がメインの時刻表示部です。

前回の記事の下部からは、全体の .ino ファイルも配布されていました。ファイル名は CompletedProgram.ino です。

筐体の製作#

筐体はアクリル板とパンチングアルミ板、秋月で買った丸型スペーサーで作りました。表から見える部分にはトルクスネジを使っています。

アクリル板をPカッターで切った様子
Pカッターで切りました
アルミ板を加工している様子
アルミ板は気合で曲げて、穴が合わないところは拡張しました
タッチセンサの電極に使ったステンレス板
タッチセンサはAmazonで買ったステンレス板を電極にしました。

以下にAmazonで買ったものを載せておきます。元のアフィリエイト埋め込みは切れていたので、通常の商品リンクに置き換えています。

Amazon.co.jp ステンレス板 タッチセンサ用の電極として使用。 Amazon.co.jp ワッシャー スペーサーの微妙な高さ調節に使用。 Amazon.co.jp トルクスねじ 表から見える部分の固定に使用。 Amazon.co.jp 薄型ヒートシンク 高電圧DC-DCの裏面に貼り付けて放熱補助。
秋月でまとめ買いした部品
秋月で大量買いしました
ニキシー管時計の完成写真その1
完成写真①(ゴム足を6個取り付け)
ニキシー管時計の完成写真その2
完成写真②(DCジャックはL字金具とUVレジンでアクリル板に固定)

動かすとこんな感じです。

Xで投稿を見る

終わりに#

というわけで、ニキシー管時計製作プロジェクトはここで一区切りとなります。

構想から完成までに4か月ほどかかってしまいましたが、設計通り動いてくれてよかったです。

また暇になったらDAC製作でも再開しようかと思っています。

ここまでお付き合いいただきありがとうございました。

NTP+スタティック方式なニキシー管時計を作る (3)
https://blog.yokko-jp.com/blog/ntp-static-nixie-clock-3
Author よっこー
Published at 2023年4月2日
Comment seems to stuck. Try to refresh?✨