先日開催されたmicro:bitワークショップの参加者、つちたともひろさんがご自身の作品の製作記を執筆してくれました。


これは、FabLabSENDAI – FLATで開催されたワークショップ 「micro:bitでオートマタをつくろう!」での課題制作作品についての開発記録

0.概要
ワークショップ概要
ワークショップでは、micro:bitを使用してプログラミングの基礎、からくりを動かすための動力の種類や機構の説明。また、オートマタとは何か、世界の作家の作例を紹介していただきながら、その面白さを教えていただいた。

課題 『オートマタ:役に立たないが美しい動きを設計する』

その後、課題のオートマタ制作に移るわけだが、センスのない私は何を作ったらいいのかなかなか思い浮かばない。何とか絞り出したテーマが、「便利なものを、便利から遠い構造にして意味のないものにしてみよう」ということ。

そこで思いついたのが7セグ表示機。7つの素子で0~9のアラビア数字を表示するというとてもよく考えられた技術。電子工作でよく使う7セグLEDは、数値をセグメント制御用のビットにデコードし、瞬時に表示を切り替える。これを今回は機械式で回りくどく行おうというわけである。

ワークショップでの課題制作時の条件
①作品はサーボモータを動力として動くもの。
②サーボーモータはmicro:bitによってコントロールする。
③電源は単三電池2本
④カム機構、機械構造を使って、モーターの回転運動を別の運動に変化させるほど評価する。
⑤モーターは、ただ一定の速度で動くだけでなく、センサーの値や時間経過なので動きに変化をつける。

これらの条件を満たしながら、作成する。

世の中にある機械式の7セグ表示機は機能を求めたものであり、ほぼフラップ式である。これは各セグメントの表示/非表示をすぐに切り替えられ任意の数字を表示することができる。ただしセグメント毎に異なった制御を同時にする必要がある。今回の条件「サーボモーター1個」で制御する方法が思いつかないし、機能的な構造だと今回のテーマから外れてしまうためNGである。

機械を作るのは初めてで技術的にあまり難しい構造にするのは無理なため、単純な構造とする必要がある。カム機構しか思い浮かばなかったため、それを使用した。1周で0~9の表示になるような構造を検討した。回転は一方向とする。(理由は後述)

「金属、針金を使い、古臭いアナログ的な見た目」にしたかったが、製作期間があまりないため、アクリル板をレーザーカットし正確な加工とすることで、机上検討で設計を詰め、制作時の修正をなるべく減らせるようにした。それでもある程度の見た目を考慮し、軸、ベルトは真鍮、7セグ表示部はブリキ板とした。

1.構造検討
CADソフトで図面を作成、画面上でアームを動かし、他部品との干渉を確認しながら大体の構造を検討。
セグメントは、針金で固定し、各セグメントを保持するアーム同士ぶつからずに動けるように逃げる。
カムは各セグメント毎に合計7つ使用する。カムでアームを動かし、アームが後ろに下がったときに、セグメントを固定している針金を引っ張ることで、セグメントを起こし表示させる。アームが前に戻るとセグメントと針金の自重により倒れて非表示となる。

2.カムの構造
3mmアクリルを使用する。
上記の構造から、カムとアームの関係は下記となる。
・セグメントを表示したいときはアームを後ろに倒す→カムの外周の位置
・セグメントを非表示にしたいときはアームを前に倒す→カムの内周の位置

各セグメントをa~gとした場合、表示する数字と各セグメントの関係は下記となる。


カムを10等分し、表の×部分が内側のカム、●部分が外側のカムとなるようにし、変化点を線で結ぶ。
その後余分な線をより除き、軽量化のため肉抜きする。
中心には回転軸の穴と7つのカムを一体で固定するための穴、裏表間違え防止の穴をあける。
a~gのそれぞれのカムを作成する。(例として、a~cのカムの作成を記載)

※今回は軽量化のため単純な肉抜きをしてしまったが、本来は全部組みあがった時の回転時の負荷を考 えて、アームを動かす際の負荷変動も考慮して適切な重心となるように肉抜きし、モーターにかかる負荷 を最小限にするべきである。

3.アームの構造
アームは5mmアクリルを使用。2mm幅で切断しカムとの接触部分とする。
次のカムの段差にぶつからないように逃げる必要があるため、くの字形状とする。(a)
レーザーカットした断面には細かい段差ができ、カムとアームの接触負荷が大きい。
アームが後ろに下がるときにはセグメントを引っ張るためさらに負荷は大きくなるので、(b)のように、アームの平らな部分をカムで押し、接触角がなるべく小さくなるような構造とした。
この構造のため、カムの回転方向は一方のみとなり逆回転はできない。
逆回転ができない場合、例えば「2」の状態から「1」を表示する時は、1周しなければならず効率が悪いが、今回目的とする「便利から遠い構造」に合致するため問題なし。

4.動力伝達
動力伝達は、構造を簡単にするためギアは使用せずプーリーとする。3mmまたは5mmのアクリル板を円にカットし、外周に溝を掘りプーリーを作る。ベルトはアクセサリー用のチェーンを使用しはんだ付けでループにして使用する。ベルトテンショナーを追加しスリップを防止する。
プーリー比は1:6を2段使用し、約1:36。
無理な力が加わった場合にはプーリーが滑り、機器の破損を防ぐことも期待している。

プーリーの溝は下記のように、円盤を固定し、手で回しながら、サーキュラソーにつけたダイヤモンドカッターで掘っていく。3mmのアクリル板でも、簡単に溝を掘ることができた。

ベルトにする真鍮チェーンは、下記の手順で輪にする。
①平らなところでチェーンの向きをそろえる。

②両端のチェーンに細い銅線(より銅線をほぐして使用)を遠しねじってつなげる。

③ペンチの柄などに巻き付け、テンションをかけた状態ではんだ付け。

5.セグメント部
セグメントはブリキ版をカットし作成する。カット後は丸みをつけ立体的にする。

ペンチで曲げた針金をはんだ付けして固定し、回転部には3mm真鍮棒と4mm真鍮パイプを使用する。
この真鍮棒と真鍮パイプは大抵どこのホームセンターでも売っているが、精度が素晴らしく、クリアランスがほぼゼロで、滑るががたつきがない状態。この組み合わせはおすすめです。
(同種金属での使用は摩耗がしやすかったりするので本来するべきではないが、模型レベルであれば大きな負荷はかからないし、入手性、加工のしやすさからどちらも真鍮とした。)

針金は、ペンチで固定し電動ドリルでねじるとまっすぐになる。また、多少硬度が増す。

6.組み立て
各パーツを組み立てる。
セグメントの針金とアームの接続は真鍮チェーンで行う。
チェーンは絡まりづらく、自重で垂れ下がるため、回転する部品の近くでも取り扱いが簡単。
また、見た目もよいので使用した。
接続にはゴム板を小さく切り穴をあけたものを使用している。
長さの微調整が必要であったため、容易に調整できるようにこの構造とした。
また、完全に固定しているわけではないので、無理な力が加わった場合には壊れる前に外れる。

7.プログラム
動力に使用したサーボモーターはパルス信号で制御されている。
サーボに接続したmicro:bitで制御を行う。
A/Bボタンで速度設定を行いパルス信号を出力する。

8.完成(本当は未完成・・・。)

動作している様子

9.今後の作業
完成に向けて
作業途中でタイムアップとなってしまった。動作はするが任意の数字を指定できず、連続で数字が変化するだけの状態である。このままでは、ワークショップでの課題制作条件
「⑤モーターは、ただ一定の速度で動くだけでなく、センサーの値や時間経過などで動きに変化をつける。」
が満たせていないため、「位置検出の機構を追加し、任意の数字で回転を止められるようにする」機能を追加し、当初想定していた目標の完了とする。

その他予定
・追加で数台作成し、複数台での動作(時計やカレンダーなど)を行う。
・追加で作成する装置の制御はmicro:bitではなく、BLEモジュールを使用したワイヤレス通信機能を搭載。
・アクリルの使用はやめて、すべて真鍮、銅などの金属で作成する。
・キット化して、誰でも簡単に作製できるようにする。(組み立てワークショップなど開催してみたい)