今回は、前回の最後に書いたハノイの塔のパズルを水平方向に動かす機構作りです。
対象となるパズルの3軸間の長さは92㎜なので、それ以上のストロークで水平に移動できる必要があります。その2で試したラック・アンド・ピニオンのストロークは100mmなので一個だと余裕がありません。しかし幸運なことにラック・ギアの片側は解放状態になっていて、2つを逆向きにして直列に並べると連続的に使えるので、そういう使い方をすると下の写真のように200mmのストロークが取れます。このラック・ギアにパズルを載せる台を固定し水平にスライドさせるようにしました。パズルは重さ100g程度で軽いので構造は極めてシンプルです。
下のビデオのようにハノイの塔のパズルをモーターで左右に滑らかに動かすことができます。
ここまでで、グリッパーを上下に動かす機構とパズルを左右に動かす機構ができたので、それらを下の写真のように合体させます。
これによって下のように、Y軸方向に円盤を挟んで掴む機構、それをZ軸方向に移動する機構、それらに相対的にX軸方向にパズルを動かす機構を備えたメカニクス全体が完成しました。
下のビデオは完成したメカニクス全体の動作をテストした様子です。
赤外線リモコンを使って手動で3つのモーターを動かし、円盤を軸から軸に動かしています。ビデオでは2種類の円盤しか動かしていませんが、全ての大きさの円盤を任意の軸間で動かせることが確認できました。
一番の難関と思われたメカニクスが完成し、その動作が確認できたので、次はこれをPythonを登載したMindstorms EV3で動かすためのソフトウェア開発に移ることにします。
ハノイの塔の解法のアルゴリズムはシンプルで、それに従ってモーターをコントロールしていけばいいので、特に不確定な要素はありません。以前、Rubik Cube Solverを作ったときは、アルゴリズムが複雑なのでロボットに実装するまえに、動作をグラフィカルに表示して検証してみました。ハノイの塔に関してはそういった検証の必要はありませんが、すぐにロボットを動かすのではなく、その前にちょっとアニメーションを作ってアルゴリズムを視覚化してみるのも面白いアイデアです。
Mindstorms EV3で動かすためのソフトウェア開発はMicrosoftのVisual Studio Code(VSCode)でするのが標準となっているので、その環境を準備する必要がありますが、PC上でグラフィカルに表示するとなれば更にその上でOpenCVが使えるようにしておく必要もあります。
以降、そうした準備を進めていきます。