ボール・コンベアの組み立てとプログラミング ~レゴマインドストームEV3~
Contents
ボール・コンベアとは
教育用レゴマインドストームEV3の基本セットでBall Conveyor(ボール・コンベア)を組み立ててみた。
ボール・コンベアの基本的な動きは以下の通りである
- 最初に金属製のボールをコンベアを使って持ち上げてレールの上部に乗せる
- コンベアにボールを乗せたかどうかの判断はカラーセンサーの反射光の強さで判定を行う
- ボールはレールの下まで転がった後、タッチセンサーにぶつかってセンサーを押す
- タッチセンサーをきっかけにしてMモーターのアームで左右のどちらかにボールを落とす
ボール・コンベアの組み立て動画
駆動部、センサー類の説明
Lモーター(コンベア) | Lモーターを使ってベルトコンベアを動かして金属製のボールを上部まで運ぶ |
カラーセンサー | カラーセンサーで反射光の強さを測定して前にボールが置かれたかどうかを判断する
|
タッチセンサー | ボールがレールの上を転がってタッチセンサーにぶつかってタッチセンサーが押される それをきっかけにしてMモーターのアームを動かす |
Mモーター | Mモーターを使ってアームを動かしてボールを左右のボール受けに落とす |
プログラム概要
ボール・コンベアを使ったプログラムの概要。
- カラーセンサーの前にボールが置かれたらLモーターを使ってコンベアでボールを上まで運ぶ
- タッチセンサーが押されたらMモーターのアームで左右順番にボールをボール受けに落とす
の部分から構成されている。
尚、記事の最後にプログラミングと実際に動かした時の動画を載せているので確認してみて欲しい。
プログラム全体
1 | プログラム開始 2と7は並列で処理する |
2 | プログラム終了まで3~6を繰り返す |
3 | カラーセンサーの前にボールが置かれるまで(反射光の強さで判定)待機する |
4 | 1秒間待機する |
5 | Lモーターでコンベアを動かしてボールを上に運ぶ |
6 | コンベアを元の位置に戻す |
7 | プログラム終了まで8~16までを繰り返す |
8 | ループインデックスを2で割った余りを出力する(0、1、0、1と交互に出力される) |
9 | タッチセンサーにボールがぶつかって押されるまで待機する |
10 | データワイヤーで受け取った計算結果によって1(上部)と0(下部)のロジックに分岐する |
11 | アームを時計回りに18度回転させる(ボールは向かって左側に落ちる) |
12 | 1秒間待機する |
13 | アームを元に戻す |
14 | アームを反時計回りに18度回転させる(ボールは向かって右側に落ちる) |
15 | 1秒間待機する |
16 | アームを元に戻す |
使用したブロック
今回使用したブロックは以下の7種類。
ループブロック
ループ内に配置されたブロックを右側の条件に一致するまで繰り返す。
プログラム終了までループする コンベアの上下を繰り返すループとMモーターでボールを左右に振り分けるループの2箇所で使用する
|
待機ブロック
指定した条件になるまで待機する。
Lモーターブロック
重いものをゆっくり動かすのが得意なモーター
今回はベルトコンベアを使ってボールを上に運ぶ
Lモーターでベルトコンベアを動かしてボールを上に運ぶ
※マイナス回転でコンベアを下から上への移動、プラスではその逆の動きになる |
数学ブロック
計算式に基づいた演算を行うブロック。
ループインデックスを入力(a)にして2で割った余りを結果に出力する ループインデックスは0、1、2、3・・・と0から始まりカウントアップされるので、2で割った余りは0、1、0、1、0、1・・・が繰り返される
|
スイッチブロック
条件によって処理を分岐することができるブロック。
センサーの測定値やロジック(”真” or ”偽”)など様々な条件を指定する事ができるが今回は数値(#)での分岐を使用する。
数学ブロックの結果(0、1の繰り返し)をデータワイヤーで受け取って1、0のロジックに分岐する
|
Mモーターブロック
軽いものを素早く動かすのが得意なモーター
今回はアームを左右に動かしてボールを左右のボール受けに落とすために使用する。
アームを使ってボールを左右に落とす
※マイナス指定は正面に向かって反時計回りなので右側に落とす。プラスはその逆 |
プログラミングと実際に動かしてみた時の動画
ボールコンベアのプログラミングの解説動画と実際に動かしてみた時の様子
最近のコメント