円筒形ドットマトリクスディスプレイ

ポイント

コンセプト

これまでにいろいろな時計を作ってきたが、言ってみれば時計は時刻表示を専門とするディスプレイ(表示装置)である。もちろん計時機能も必要だが、これはマイコンを使えば簡単に解決できるので、それを除けば結局のところ、機械式のディスプレイだということになる。実際、7セグメントディスプレイは様々な用途に用いられているし、機械式のものも例えばYouTube のチャンネル登録者表示なんかに使っている人もいる。機械式ディスプレイは一旦表示が確定すれば電源を切っても表示が保持されるなどの利点もある。しかしどうしても7セグには表示できる内容に限界がある。スマホや液晶テレビのようなドットマトリクスディスプレイであれば、アルファベットを始めいろいろなものが表示できる。

まえに、BB弾をコロコロと転がしてビットマップ表示を行う「ビー玉転がし」ドットマトリクスディスプレイを作成した。表示に要する時間などは度外視し、動きの面白さも考えて悠長な方法で実現したが、いくつか問題があった。一つは表示にとても時間がかかること。度外視すると言っても流石に半時間もかかるのはどうか。また現実問題として、ボールの色の判定の不安定さが問題になっていた。赤外線反射センサを用いたが、可視光での色があまり赤外線での反射率と関係しないことや、表面のツヤに影響されて、ボールの色を安定に判別するのが難しかった。その後も別の構造だが、やはり2種類のボールを使うディスプレイをいくつか作ろうとしたが、結局このボールの色の判別の安定性で放棄することにし、ボールの有無で表示を行うディスプレイを作ることにした。

もう1つは普通の液晶ディスプレイ等ではできない表示を実現することをテーマにした。これは円筒形のディスプレイとして実現した。単に丸いだけでなく、ぐるっと一周継ぎ目がないこと。また筐体そのものも完全な円筒形で出っ張り等がないような形状にした。

しくみ

原理は単純で、円筒部分の内側は螺旋状になっており、この円筒を回転させることで、外枠との間に引っかかったボール(BB弾)を上へ運ぶ。てっぺんまで登ったボールはまた内側へ落ちて再利用される。問題は、ボールの有無を選別する機構である。ここにもう1つモーターを使ってもよいが複雑になるし、大きさも大きくなってしまう。ぐるぐる回る部分だと配線をどうするかという問題も発生する。そこでここでは、円筒同士の遊び(バックラッシュ)を利用した構造とした。上の図で、外側の円筒(紫色)と内側の部品(緑色)の間には少しだけ回転方向の遊びがある。外側の紫色の部品が下から見て反時計回りに回転するが、そのときは緑の部品と紫の部品の穴がずれて穴が塞がり、ボールが供給されない。ここで、この紫の筒を少し逆回転させると、2つの穴の位置が一致し、そこにボールが供給される。つまり、ぐるぐると正方向に回転している間はボールが上へと運ばれるだけだが、逆転するとそこにボールが供給されるので、正転と逆転をコントロールすることでボールを任意に配置することが出来る。

正直言って、ボールを運んだり選別したりする部分にはほとんどトラブルや調整が必要なく簡単だったが、一番苦労させられたのは、ボールを確実に取り込む部分だった。紫色の部品の内側(緑色の部品の上)にはボールがたくさん溜まっているが、これがスクラムを組んだように組み合ってしまい、穴にボールが落ちてこないということが頻発した。穴の形状や位置、周囲の部品の突起などをいろいろ工夫して、やっとのことで安定にボールを供給できるようになった。単に底に穴をあけるだけではだめ、漏斗状に斜めにするともっとだめ(詰まりやすい)。一番のポイントは、ボールを落とす穴を中央でなく、壁際ギリギリに置くことだった。壁際にはボールが外向きに押し付けられており、ボールがスクラムを組んで穴をまたいでしまうことがなく、またボールの位置が穴に合う確率が高いのだ。

設計

いくつかのバージョンを作成した。原理上、縦の長さはいくらでも長くすることが出来る。よって、通常タイプ(5×24ドット)に加え、縦長タイプ(12×24ドット)を設計した。また、縦の枠(24本もある)を組み立てるのはかなり厄介だったので、透明の素材で一体構造としたものも後から追加した。これはこれで、ボールの色を選べばかなり見やすいものになった。

部品点数の少なさも自慢である。透明タイプは上の図のように、たった5個の部品でできている。プリントもサポート材なしで可能である。

前のボールを転がすタイプに比べればかなり早くなったが、それでも表示の更新には1〜2分ほどかかる。音もけっこうするので時計には不向きである。そこで用途として、Google Calendar にアクセスして、次の予定の時刻を表示するものを作ってみた。ESP32 マイコンを使っているので、WiFi 経由で予定情報を取り出すことが出来る(以前、翌日の予定を調べて自動でアラームをセットする目覚まし時計をM5stackで作成し、毎日これで起床しているが、このソースを流用した)。それなりに実用的とは思うが、円筒型ディスプレイなので回さないと時間全体が読めないという問題はある。

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