「ビー玉転がし」ドットマトリクスディスプレイ

ポイント

コンセプト

これまでに機械式の7セグメントディスプレイや時計を作ってきた。しかし、時間の管理はマイコンで行っているため、要するに作っているのはすべて「ディスプレイ」である。7セグでは数字しか表示できないので、汎用のディスプレイとは言えない。なんでも表示ができる、といえば、パソコンやスマホ、TVと同様のドットマトリクスディスプレイということになる。

機械式のドットマトリクスディスプレイといえば、フリップドットディスプレイと呼ばれるものがある。これは1画素ごとに電磁石が入っていて、それで表面のパネルを裏返すものだが、すべての画素にメカや回路を配置しなければならないのが気に入らない。だいたい、そんなもの面倒で作れない。遅くてもいいので、できるだけ少ないモーターで動くもの、しかも動きが面白いもの・・ということで、結果的にこんな変なディスプレイを作ってしまった。marble run と呼ばれる、要するにビー玉転がしメカは Thingiverse でも人気があって、その一種を自分でも作りたかったということもある。

ボールを転がして運ぶだけ、ではあるが、これがなかなかに複雑である。というのは、転がして運ぶ以外に、その都度1個だけのボールを補給する仕組みが必要である。ほかに、欲しいのと違う色のボール(どこにもセットできないボール)を捨てる動作や、完全リセット(クリア)の動作も必要である。そういうわけで、細かい角度ごとにそれぞれの動作が変化するような構造になった。上の図で、最も左に傾いたときがボールの供給動作で、次がセット(確定)。水平状態に近い2つの角度が迷路中をボール輸送する際の角度で、右に傾いた状態はボールの破棄と完全リセットに対応する。それに加えて、図とは直交方向の傾きも細かく制御してボールを転がしている。

このディスプレイで難しかったのは、ボールを1個だけ取り出す部分と、その色を判別する部分だった。ボールを取り出すときに、身をくねらすように複雑な動作をしているのは、供給部分に1個だけボールを引っ掛けて残すためである。それでもときどき、ボールが出てこなかったり、2個出てきたりするが、それはセンサや動きで解決している。ボールの色は赤外線式の近接センサで判定した。ボールの色(可視光色)によって、赤外線でも反射率が違うことを期待していたが、その違いが思いのほか小さかった上、ボール(BB弾)の表面のツヤの影響が大きく、ボールの色の判定がなかなか安定にできないのに苦労させられた。

BB弾は軽くて小さいため、振動に弱い。僅かな振動で飛んでしまったり変な動きをしたりする。なのでサーボの動きには正確性や滑らかさが必要で、今回はSG90サーボの純正品を用いた。互換品(というか同じ寸法の別物)はガタツキや滑らかさが劣るためうまく動かなかった。

問題は、この7x7画素の表示に約30分ほどかかる点である。実用性が低いが、それでもなにか、今日の天気の表示とかには使えるかもしれない。

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