円筒形7セグメントデジタル時計

ポイント

コンセプト

円筒の遊びを利用し、1個のモーターを往復回転させることで時刻を表示する円筒形デジタル時計は、とても単純で作りやすく、見た目も美しいものだった。このようにして円筒の表面にいろいろな表示ができるのであれば、これで7セグ時計もできるのではないか・・・?うまくやれば、表示される文字をもっと大きくできるのではないか・・と気づき、すぐに制作したのがこの円筒形7セグ時計である。

同様に円筒の遊びを利用し、7セグ風の表示を行う時計にはTime Twister 3という好例がある。レゴで作られており、2個のモーターを使用しているが、回転部の断面が4角形であるため、各回転子は4つの状態しか持つことができない。横棒のセグメントは3本あるので、ここを任意の組み合わせで表示するには8ポジション、0〜9の数値表示だけでも5ポジションが必要で、それには足りないので数値表示が自然ではない(4の表示のときの横棒が欠ける)という問題がある。しかしポジション数を増やすとそれだけ表示される数字の大きさが相対的に小さくなり、8ポジションならもとの円筒形時計(10ポジション)と大差ないという問題が起こる。そこでこの時計では、隣り合うポジション間でセグメントを共用することで表示される数値を大きくすることにした。

具体的には、円筒は9ポジション(1回転につき9箇所で停止)とする。これでは円筒形時計(10ポジション)と大差がないが、隣り合うポジション間でセグメントを共用するため、表示される数字は2倍以上の大きさになる。7セグの7つのセグメントを縦棒と横棒の3つグループに分け、それぞれを円筒上に配置する。横棒は3本あるので前述したように8ポジションあればすべての組み合わせが表示できる。セグメントを共用しているが、ON/OFFセグメントの配置を通信工学や制御工学で用いられるM系列符号に従って並べれば無駄なくすべての組み合わせが表示可能となる。ただし以下で説明するように、縦棒のセグメントの都合から、横棒セグメントにとっては1つ余計な9ポジションとしている。

縦棒セグメントは2本しかないので、前述の Time Twister 3 のように4ポジションあれば十分なはずであるが、セグメントを共用し、表示部の上下を覆い隠さないという条件では不足である。というのは上の図のコラム内のように、表示したい数字のすぐ上やすぐ下に棒が生えてしまうと数字としては読み取れなくなってしまうからである。よってここでは 0xx0 という4ビットの符号を配置することにし、その都合で9ポジションとなった。表示部の前に、数字の上下を覆う板をつければこのような工夫は必要ないが、たった1ポジション増やすだけで覆いが不要となるのでこの設計とした。

ほかはほとんど円筒形デジタル時計と同じである。ただし今回は、モーターや基板類をすべて回転軸の中に置くことでさらに部品点数を削減した。台座と回転軸も一体化可能であるが、回路を搭載する作業が難しくなるので2分割としている。ただしこの例のように4桁表示の場合は12個の円筒が回転されることになり、最上位桁の数値が変化したときには時刻の表示完了までに数分を要してしまうという欠点がある。24時間表示でなく12時間表示にすれば10個に減らせるので、そのほうが良かったかもしれない。

数値表示の実際は上の動画のようになる。7セグと言っても上下につながったセグメントは繋いでしまうことができ、4隅もきれいにつなぐことができるので、見やすい数字表示ができた。上下に少し見える余計なセグメントもほとんど気にならず、円筒形時計よりも時刻が把握しやすい。円筒が回転し、セグメントがやってきてピタッととまると数字になるという動きの面白さがあり、見飽きないところがある。家族からは「病院の待合室にでも置いたらちょうどいいのではないか」とのコメントをもらった。もっとも、時刻更新のうち 90% は最下位桁だけの更新であり、これにはさほど時間がかからないので実用性がまったくないというほどではない。

時刻設定を手動で行うことは難しい仕組みのため、ESP32 を用い、ntp 経由 (WiFi経由)で時刻を取得する仕組みも円筒形デジタル時計と同じである。この表示ユニットでは理論上、7つのすべてのセグメントの ON/OFF を任意に決定できるので、他の機械式7セグユニットとは異なり、16進数表示や、負数の表示なども可能である。

例によって3DデータとプログラムはThingiverseで公開している。