WTM-1. Gimmick Theme Park WTM-1. ギミックのテーマパーク
「World Travel Machine Project」で作ったギミックの紹介です Some of the gimmicks we created for the "World Travel Machine Project.
タグ一覧 Tag List
使っているVIVIWARE Cell VIVIWARE Cell
その他使っているもの Other Parts
「World Travel Machine Project」についてはこちらの記事から!
ワークショップを実施して、子どもたちと一緒にVIVIWARE Cellをたくさん使って作った箇所の4つのギミックを紹介します。
1. ししおどし
まずはykによる、ボールが行って帰ってくる装置、ししおどしです。
直前の仕掛けから受け取った信号でサーボホーンが動き、置いてあるボールを動かしてスタートします。
すると、モーターにつけたししおどしがまわり、いったん右へボールを送ります。
その2秒後に、今度は反対に回転して、ししおどしの真下にある長い滑り台に落ち、待ち受けるエレベータにボールが乗り込みます。
この「行って帰ってくる」というしくみは、ykのこだわりの部分。
何度もやり直しては、角度や早さを調整してプログラムを完成させました!
2. エレベータ
このエレベータは、あいっちとたおたおで作りました。
みどりの枠の部分です
写真では隠れてしまっていますが、下方の白い板の裏にエレベータのボールを受け取る部分が待ち構えています。
これは、ガチャガチャのカプセルの半分をカットして使いました。
カプセルの両はじに穴をあけてひもを通し、モーターが巻き取れるようにします。
ひもをカプセルに通します
そして、モーターが巻き取るプーリー機構は、あいっちががんばったところ。
工作用紙2枚を同じ大きさに丸く切り、二枚の間にすきまができるように少し小さいMDFを切って作りました。
ロボコンで慣れ親しんだVIVIWARE Shellでさっと製図してレーザーカット、エレベータにつけたひもをくるくる巻き取るしかけができあがりました!
この機構は、ボールを受け取るとモーターが上まで引っ張りあげ、シーソーにぶつかると新たなボールが転がって、次のギミックへ繋がります。
3. Open the door!
3つめのギミックは、なんと、らりが一人で作り上げました!
水色の枠の部分です
滑り台の一番下にボールが止まるようドアと測距センターを設置します。
ボールがドアまできて測距センサーに近づくと、信号が送られてモーターが動き、ドアを上に引っ張り上げます。
ドアによって止められていたボールがまた次の滑り台を転がり落ち、最後のギミックへ繋がります。
本番までに何回もテストをしましたが、そのたびについつい「Open the door!」と唱えてしまう、とても楽しい仕掛けになりました!
4. ガラガラ抽選機
この板の最後のギミックは、大きなギヤ型のMDFを活かし、たくみとミーシャが作りました。
オレンジ枠の部分です
大きなギヤをサーボに取り付け、ボールを受け取る部分としてペットボトルを固定し、その底には測距センサーを仕込みます。
ボールがペットボトルに落ちると、センサーが反応して右下のペットボトルレーンに落ちて、端に設置した測距センサーが次のギミックに信号を送ります。
プログラム
全体像です。
それぞれのギミックごとに解説します。
1. ししおどし
Compareモジュールを使って、測距センサーの値が3より小さくなったときスタートして、サーボが固定してあるボールをはじきます。
ここでは、何度もテストが必要だったので、手動でできる場合とセンサーで動き出す場合と分けて使えるように、Logical OperationモジュールでORを使いました。
こうすると、測距センサーが反応したとき、または手動でButtonモジュールをタップしたときに発動させるができます。
また、ここで大事なのは、サーボを元にの位置に戻しておくことです。
そのままの状態でやり直そうとすると、サーボがボールを反対側に押し出してしまうためです。
そこでRoutineモジュールのOut1でボールをはじいたあと、Out2で2秒後に元の位置に戻る、と指定しています。
次に、「行って帰ってくる」プログラムです。
RoutineモジュールのOut3で、サーボが元に戻ってから2秒後、右側にボールを送るようにししおどしを固定したモーターを回します。
これが「行って」の部分です。
そして、その0.5秒後に下の滑り台にボールを送れるよう、Out4でモーターを戻して「帰って」部分を実装しています。
2. エレベータ
はじめは、エレベータにボールがうまく乗るようにつけた囲いにVIVIWARE Cell Motionをつけて、ボールが転がり込んだ振動で動き出すようにしていました。
Accelerometorモジュールが検知した振動をShake Detectorモジュールに送り、Sの振動と判断されたらRoutineモジュールに信号を送り、モーターを動かしてエレベータを動かす、というプログラムです。
ところが、これは何度も同じように実行させることがとてもむずかしかったのです・・・!
何度かは成功したものの、本番で間違いなく動くように、ししおどしの「帰って」の動作の5秒後にもエレベータが動くようにしました。
ししおどしの「帰って」の動作、つまり、ししおどしのプログラムのRoutineモジュールのOut4から信号を受けて5秒後にモーターが動くよう、Delay (Digital)モジュールを追加してつなぎます。
5秒後と設定するために、Delay (Sec)を5と指定します。
さらにLogical Operationモジュールを追加し、LogicをORに設定してRoutineモジュールにつなぎます。
これで、振動がおきた場合、または、ししおどしの「帰って」の動作の5秒後にエレベータが動くようになりました。
また、この装置も何度も練習できるようなプログラムにしています。
Routineモジュールを使って、モーターを順次回します。
4.1秒回して1秒止まり、4.1秒回して1秒止まるよう指定して、一度上がったエレベータが元の位置に戻るようにしてあります。
上がった時間(=Out1)と戻る時間(=Out4)を同じにすることで元の位置に戻ります。
エレベータが上がると、シーソーを動かし、置いてあるボールが動き出して次のしかけに続きます。
3. Open the door!
ボールが滑り台を転がり、ドアに設置している測距センサーの値が1以下になったら、という条件をCompareモジュールで指定し、Routineモジュールでそのあと3秒後にドアを引っ張るサーボを動かします。
ここでも、何度も練習できるようドアがあがったあと3秒後に元の位置に戻しています。
4. ガラガラ抽選機
ボールが転がってペットボトルに落ち、測距センサーの値が2以下のとき、サーボが動いて右下の滑り台にボールを流します。
このギミックを練習するときは、ButtonモジュールとLogical Operationモジュールを挟むことによって、手動でも動かせるようにしています。
プロジェクトシェア
(Created by yk, Ai-cchi, Takumi, Misia, Taotao)