![]()
ニコニコ動画でみた「試験管時計」にインスパイアされて、試験管をケースに使ったデジタル時計を作ってみました。本家は試験管をメタファとしたユーザインタフェースが秀逸です。そこまでは凝れませんでしたが、非接触給電を使ってちょっとだけ工夫してみました。
一般的な試験管では長すぎるのとスパイスを入れにくいので、培養用試験管という太いけど短めの底が平らなものを利用しています。
Make: Japanで紹介(2015.07.02)されました。感謝! Maker Faire Tokyo 2015は出展をのがしました(応募時期を見逃した)が、観に行きます。
![]()
砂時計型のラーメンタイマ(3分計)を追加しました(2015.7.11)。動作の様子。
砂時計と通常表示を切り替えられるようにプログラム改版(V3)しました(2015.7.25)。
V3にバグがあり、プログラム修正(V3.1)しました(2015.7.29)。
夜中など真っ暗な中でLEDの輝度が高すぎたので、抑えるようにプログラム修正(V3.2)しました(2015.8.9)。
電源断で砂時計になる精度をあげるためにプログラム修正(V3.3)しました。詳細はソース参照。また、昨日のGUGEN 2015で、秋月賞を受賞しIGZO-LCDパネルを頂きました、感謝。立ち寄って頂いた皆様もありがとうございました。(2015.12.20)。
基板とチップ部品セット頒布中です。(終了しました. 2018.4.30)
![]()
毎日、うるう秒のドキドキを体感できる時計を作ってみた(2017.1.7)。
![]()
試験管の中に時計を作ってみた
参考にした、ニコニコ動画にアップされて話題になった「試験管の中に時計を作ってみた」。ユーザーインタフェース、LEDライトなど工夫されています。また撮影も小道具を使い凝っていて美しい。
今回、試験管に入れるというアイデアを
パクらせて利用させて頂き、以前作った青色LEDデジタル時計を小型化して入れてみた感じです。
回路図
全体制御は44ピンのPIC16F887、時刻は高精度なRTCモジュール(DS3234S)を使いバッテリバックアップしています。表示は5x7青色マトリクスLEDを横に並べ、2個分の14ドット列をダイナミック点灯。デューティ比1:14なので輝度を確保するためにTrでドライブ。
また、周囲の明るさに応じてLEDの輝度を変えるためにCDSで分圧した電圧をAD変換して、ソフトPWMで処理しています。
![]()
基板設計
外形φ25mm×120mmの培養試験管に入れるため基板サイズは21.6x100mmにした。表側にマトリクス青色LED 4個、RTCモジュール、タクトスイッチを搭載。裏面にはPICマイコン、Tr、C、R、バックアップ用バッテリホルダを搭載。
RTCモジュールの下にはパターンを引かないほうがよいが、スペースがなくて引いています。RTCモジュールの裏にPICが載り、基板幅も狭いためパターンの引き回しに苦労したが、何とかDRCエラーをなくし、基板の設計スペックを満たして引くことができた。
![]()
基板
中国のベンダに依頼して1ヶ月弱で届いた基板。製造は早いけど国際郵便が遅くて時間がかかる(国際宅配便なら早いようです)。円安のため以前に比べると少々高いが、それでも国内に比べると格安。
シルクが少しかすれているところもあるが、アマチュアが使うには十分な品質。
![]()
基板裏面実装
PICマイコン、Tr、R、Cなどを実装した様子。PICは 44Pin TQFTでピンピッチが0.8mmと狭いので半田付けは少々難しい。
表面よりも裏面を先に実装したほうが作業性がよさそう。ただし、電池ホルダと電解コンデンサは、表面も実装した後。
![]()
基板表面実装
RTCモジュールを実装した様子。RTCモジュールの裏にPICマイコンが載っている。このあと、マトリクスLED、CDS、ICSP用のピンヘッダ、タクトスイッチを実装する。
![]()
マトリクスLED
マトリクスLEDを並べる間隔がピッタリ過ぎて無理やり挿そうとしたら基板が反りそうになった。LEDの製造バラツキを考慮しなかったのが失敗。
(注)追加発注の基板では修正しました(2015.7.7)。
![]()
マトリクスLED加工
LEDの側面(短辺)を紙やすり(240番)で少し削って収めた。LEDを水平に動かして平らに削る。
(注)追加発注の基板では修正しました(2015.7.7)。
![]()
タクトスイッチ加工
今回、初めて2ピンのタクトスイッチを使ったが、Eagleのライブラリを作るときにピンサイズを勘違いして小さな穴になってしまった。そのままでは挿せないので、タクトスイッチのピンをヤスリで削った。写真左側が削った後で、右に比べると細くなっているのがわかる。
(注)追加発注の基板では修正しました(2015.7.7)。
![]()
基板
マトリクスLEDを実装し、ほぼ完成した様子。まだ電解コンデンサ、電池ホルダは実装していない。
この状態でプログラムのデバックを開始。マトリクスLEDの上にはキズ防止のためにマスキングテープが貼ってある。
![]()
プログラム
基本的な動作は、RTCモジュールから出力される1Hzの信号をトリガにして、RTCモジュール内の時刻情報を読み出して表示する。表示はタイマ0割り込みで表示列を切り替えるダイナミック点灯。また、タクトスイッチのチャタリング除去のために割り込み内でサンプリング確認している。
書いている途中に色々と思いついて拡張していったので綺麗ではありませんが、ソースプログラムと、HEXファイルです。バグがあるかもしれません、無保証です。著作権は留保しますが、改変などご自由にどうぞ。
![]()
デバッグ
PICKIT2を繋いで色々と試行錯誤しつつ仕様を固めてデバッグする。
横表示の数字フォントは青色LEDデジタル時計とほぼ同じ。
(注) C4 2,200uFのコンデンサを実装すると、PICKIT2からのみでは給電が不足で電源立ち上げ時間が間に合わずエラーとなる。別途電源を供給する必要がある。
![]()
縦表示
タクトスイッチ操作で縦表示に切り替えられる。このときは HH:MM のみ表示し、秒は表示しない。
縦表示のフォントは5x5で作成。
![]()
非接触給電モジュール
共立エレショップで購入した5V,250mAを取り出せるモジュール。給電側は9V〜12Vを供給。
商品名は「250mA 無接点電源モジュール」。容量的には50mAのものでも間に合いそうですが未検証。
![]()
給電モジュール(受信側)
基板の裏に給電モジュールの受信側基板をスポンジ入り両面テープで貼り付けた。基板への給電端子(スルーホール)は基板の端と中央の2箇所あるので、中央に繋ぐ。コイルはリード線が長かったので丁度よい長さにカットし、半田付けしなおした。
![]()
抵抗追加
基板の端にある給電端子に330Ωの抵抗を繋ぐ(写真の一番左端;回路図に無し)。電源が切れたときにフェイドアウトするアニメーションを動かすため。このために電源を監視しているが、抵抗を入れていないと電源が切れたときに電圧が下がるまでに時間がかかり、アニメーション表示の前に2200uFに溜めた電荷がなくなってしまうため。
470Ω程度でよかったが手元になかったので330Ωを使用した。5V/330Ω=15mAが常時流れてしまう。アニメーション不要なら抵抗無しでOK。またコンデンサももっと小さいものでよい。
![]()
抵抗追加
基板の端から給電する場合(USB給電など)には、基板中央にある給電端子に抵抗を取り付ける。
![]()
基板ガイド
試験管立てに立てるのではなく横置きするタイプには、基板を試験管内で安定させるためのガイドを取り付ける(必須ではない)。細い単芯の線材を基板の四隅にあけた穴に通したが、細い樹脂製のものを接着剤でつけてもよいかと思う。
一度半分の被覆を抜いて基板の穴に通してから、再度被覆をかぶせて固定した。
![]()
基板ガイド
基板の穴に通して、被覆を被せなおしたところ。
![]()
基板ガイド
端は半田で固定し、こんな感じで試験管の内側にピッタリ収まるように円形にする。
![]()
クリアブック
100均で見つけたクリアブック(透明ポケットに書類を入れて保管するもの)。欲しいのはこれの半透明の青いカバー部分のみ。マトリクスLEDの表面にフィルタとして貼るとコントラストがあがり見やすくなる。
青い透明アクリル板などがあればそのほうがよいが、おそらく100円では購入できない。
![]()
マトリクスLEDフィルタ
クリアブックのカバーから切り出したフィルタを両面テープで貼る。表端の白いのが両面テープ(まだ剥離紙が貼ってある)。
フィルタ(クリアブック・カバー)は、表側はツルピカで裏側はノングレア(非光沢)だったので、ノングレアが表になるように貼った。
![]()
基板完成
非接触給電ではない横置きタイプの基板完成。四隅に基板ガイド、給電は写真右端の白いUSBケーブルで行う。
![]()
培養用試験管
φ25x120mmの培養用試験管(平底・リム付)とコルク栓。ネットで購入。コルク栓が意外と高くて試験管とほぼ同じ価格だった。
また、送料が少し高めだったが、大量のエアキャップに包まれて大きなダンボールに入って届き、妥当な価格かな。
「日本橋せきや 楽天市場店」で購入しました。
![]()
試験管立て材料と工具
試験管立て用に桧材(40×1200x9mm厚)と、穴を開けるためのφ27mmフォスナービット。近所のホームセンタで調達。
試験管の外形がφ25mmなので約2mmのマージンがある。
![]()
試験管立て加工
6本立て用に加工。一番右端に非接触給電モジュールを埋め込み、他の5本はスパイス・ラック用。
![]()
給電モジュール(送信側)仮置き
裏側をくり貫いて、こんな感じで給電モジュールを埋め込む。コイルが収まる部分の板厚は1mm程度になるまでくり貫いた。
![]()
試験管立て完成
組み立ては木工ボンドと真鍮釘で行った。
![]()
裏側の給電モジュール
給電モジュールには9V〜12Vを供給するが、念のために100mAのポリスイッチ(自己復帰型のフューズ)を直列に入れてある。
原因は不明だが、非接触モジュールの動作を確認しているときに送信モジュールが壊れてしまった(初めて使ってから2〜3分後)ことがあるので。
![]()
試験管を立ててみた
ひとまず空の試験管を立ててみた。
![]()
完成
家にあったスパイスを試験管に入れて立ててみた。左から順に黒胡椒(ホール)、ローリエ、鷹の爪(輪切り)、八角、サフラン、時計。
時計は横表示モード。
![]()
縦表示モード
縦にHH:MM表示した様子。
![]()
横置き試験管ラック
φ27mmの穴の内側に1mm厚位のフェルトを貼った。試験管を挿すとちょっと硬めに入って丁度よい感じ。
![]()
横置きタイプ
横置きタイプは、非接触給電ではなくUSBから給電するようにした。白い給電ケーブルは100均で購入したUSB延長ケーブルを利用。
コルク栓の中心にドリルで穴を空けてケーブルを通した。
![]()
モバイルバッテリ駆動
RTCの時計はバッテリでバックアップしているので、USBから給電を開始すれば現在の時刻を表示する。
消費電力が少ないためモバイルバッテリが無負荷と判断するようで、しばらくすると電源が切れる。
![]()
時刻設定
初めて電源を入れた際、時刻設定モードになり、設定対象桁が点滅する。点滅中にSETスイッチを押すと当該桁がインクリメントする。MODEスイッチを押すと設定桁が移動する。10時間の位から順次設定し1分の位で完了。1分の設定完了で時刻設定が終了し、通常の表示モードになる。秒の桁は設定できない(00固定)。
通常表示中にMODEスイッチを長押し(約0.6秒)しても時刻設定モードに移行する。
通常表示中にSETスイッチを押すと、秒の位を00にアジャストする。30秒未満のときは秒を00にし、30秒以上は、分(必要に応じて時も)をインクリメントし、秒を00にする。30秒以内の時刻誤差はこれでピッタリあわせることができる。
表示モード切り替え
通常表示時にMODEスイッチを押すと(長押しではない)、表示モードが以下の順に切り替わる。
(1) HH:MM:SS 横表示
(2) HH:MM 縦表示
(3) HH:MM:SS 横表示(変化する桁がスクロールアップ)
(4) HH:MM 縦表示(変化する桁がスクロールアップ)
![]()
バッテリバックアップ
RTCはバッテリでバックアップし、給電なしでも時刻を計時している。給電を開始した際に、バッテリバックアップが有効だったか(時刻情報が正しいか)を確認するフラグがあり、給電開始時にこれを確認して、無効だった場合(初めて電源を入れた場合も)には時刻設定モードに入るようにしている。
しかし、この処理がたまに誤動作※するようで、ちゃんと計時していてもフラグが立ってしまい給電開始時に時刻設定モードになってしまうことがある。その場合には、一度給電をやめて、再度給電すると正しい時刻を表示する。もし、頻発して気になるようなら、フラグのチェック処理を行わないようにソース1箇所をコメントアウト(173行目の分岐命令)すれば対処可能。
※2台製作したうち、USB給電の1台のみ発生。それもUSB ACアダプタを変更すると発生したり/しなかったり。電源断・通電のタイミングで起こる模様。
動画
動画(メイキング)
砂時計型ラーメンタイマ (2015.7.11)
電源の再投入で砂時計型のラーメンタイマ(3分)になります。
RTCではなくPICの内蔵クロックで時間の測定を行っており、砂時計と同様に約3分です。
1ドットが約3秒なので1段5ドットで約15秒、4段で約1分の目安です。砂が落ちきると約10秒はそのままの状態を表示し、その後通常の時刻表示モードになります。
砂時計表示時にはMODEスイッチのみ有効で、通常押しで表示モード変更、長押しで時刻設定モードになります。
ソースプログラム(V2)と、HEXファイル(V2)です。バグがあるかもしれません、無保証です。著作権は留保しますが、改変などご自由にどうぞ。
砂時計型ラーメンタイマ・改善 (2015.7.25, 2015.7.29バグ修正)
V2では電源の再投入で、必ず砂時計型のラーメンタイマ(3分)になっていましたが、電源再投入のタイミングで砂時計、通常時計を切り替えられるようにしました。
試験管を試験管立てから持ち上げて(電源が切れて)、約4秒以内に降ろす(再度通電を開始する)と砂時計になり、4秒を越えてから通電すると普通の時計になります。
通電オン/オフの時間は、RTCの1秒単位の時刻を読み取っているので正確に3秒ではありません。タイミングによっては3秒強になることも、5秒弱になることもあります。また、電源オフでLEDが消灯してもコンデンサが完全に放電されるまで若干時間がかかるので、あまり素早く電源を再投入するとPICのリセットが効かず、砂時計が表示されません。一番下のLED 1列が点灯します。
【重要】V3にバグがありました。スクロールアップ表示モード時、深夜の23:59:59から00:00:00に切り替わる際、上位桁の表示が更新されず表示が異常となるものです。V3で埋め込んだバグでした。また、時刻設定で23時以上を設定できてしまい暴走するバグも修正し、V3.1として公開します。お手数ですが書き換えて下さい(2015.7.29)。
ソースプログラム(V3.1)と、HEXファイル(V3.1)です。バグがあるかもしれません、無保証です。著作権は留保しますが、改変などご自由にどうぞ。
真っ暗な中でLEDの輝度を抑えるように、ソフトPWMでのLED点灯時間を1回の割り込みの中でON/OFFするように改善しました。改善したソースプログラム(V3.2)と、HEXファイル(V3.2)です。バグがあるかもしれません、無保証です。著作権は留保しますが、改変などご自由にどうぞ。
電源断で砂時計になるのが失敗するケースがあるので、少し改善したソースプログラム(V3.3)と、HEXファイル(V3.3)です。電源低下のリセットと、砂時計になる電源断時間を4秒に見直し。
うるう秒時計 (2017.1.7)
欲しい人がいるか分かりませんが、ソースプログラム(V4.2)と、HEXファイル(V4.2)です。バグがあるかもしれません、無保証です。著作権は留保しますが、改変などご自由にどうぞ。
基板頒布のお知らせ
希望者があったので再度発注した基板が届きました。基板の頒布を再開しますが、現在使っているRTCモジュール(DS3234S)の入手が困難なようです。入手できる方、或いは手元にある方の希望をお待ちします。(2023.2.26)New
生基板に、少量では購入が難しいチップ抵抗、チップコンデンサをつけて頒布します。部品番号は基板のシルクに対応しています。
組み立て手順書など紙資料は付きません。上記記事をご参考にお願いします。
(注)上記記事の通り、LEDを並べて刺す際に隣と接触してきついことがあり、その場合はLED側面を紙やすり等で削る必要があります。また、タクトスイッチを刺す穴が小さいので、タクトスイッチのピンを削ってください。
追加発注では上記2点の問題を修正しました。LEDの間隔は0.1mm広げたところ一応は大丈夫になりましたが、マトリクスLEDによっては少し削った方がよい場合もあります。
◆生基板+チップRC※
1 セット \660(送料込み:定形郵便)
2 セット \1,200(送料込み:定形郵便)
※100Ωx 12個(2個予備)、2.2KΩ x 16個(2個予備)、10KΩ x 6個(1個予備)、0.1uF x 3個, 330Ω1/6W x 1個
ご質問やご希望の方は以下までメールください。折り返し、在庫状況や振り込み先などご連絡します。なお、振り込み手数料はご負担ください。アマゾンギフト券(Eメール版)もOKです(手数料がかかりません)。いきなりギフト券を送らないで、在庫確認後にお願いします。
![]()
迷惑メールフィルタを使っているので、件名を「試験管時計基板希望」などとしてください(HTMLメールは迷惑メールと認識される確率が高いです)。
会社勤めをしていますので、メールの返事は夜か朝になります。出張等で返信が遅れることも予想されますがご理解ください。余り長いこと返信がない場合には、迷惑メールと判断されたかも知れませんので、書き方を変えて出し直してみてください。
お送り頂く個人情報は適切に管理し、一連のやり取りが終了したら削除します。
以上