超音波センサーと範囲ブロックを使ってトレーニングロボットを動かす ~レゴマインドストームEV3~
Contents
範囲内に障害物がある時に前進する
教育用レゴマインドストームで超音波センサーと範囲ブロックを使ったプログラムを作ってみる。
超音波センサーは人間の耳には聞こえない超音波を出して物体との距離を測定する。
測定した距離を範囲ブロックを使って指定した範囲内かどうかを判断して、
- 範囲内:トレーニングロボットを前進させる
- 範囲外:トレーニングロボットを停止させる
により物体が一定の範囲内にあるときのみ前進するプログラムを作成する。
範囲ブロックとは
値が範囲内(範囲外)かを判別するためのブロック。
試験値が上限と下限の範囲内(外)かを判断して結果に出力する。
プログラム全体
超音波センサーで物体との距離を測定して距離が10cm~20cmの時だけ前進するプログラム。
尚、記事の最後にプログラミングと実際に動かした時の動画を載せているので確認してみて欲しい。
1 | プログラム開始 |
2 | 3~9をプログラム終了まで繰り返す |
3 | 超音波センサーで物体との距離を測定する |
4 | 測定値を5に引き渡す |
5 | 測定値が10~20の範囲内かを判定する |
6 | 判定結果を7に引き渡す |
7 | 判定結果が”真”(範囲内)なら8、”偽”なら9を実行する |
8 | トレーニングロボットを前進させる |
9 | トレーニングロボットを停止させる |
使用したブロック
今回使用したブロックは以下の5種類。
ループブロック
ループ内に配置されたブロックを右側の条件に一致するまで繰り返す。
ループを無限(プログラム終了まで)繰り返す。
|
超音波センサーブロック
超音波センサーの測定結果を出力、比較する為のブロック。
今回は距離をcmで測定して結果を出力する為に使用する。
超音波センサーで測定した距離を出力する。
|
範囲ブロック
値が範囲内(外)かを判断する。
超音波センサーで測定された距離(cm)が10cm~20cmの範囲内かどうかを判定する。
|
スイッチブロック
条件を判定して処理を分岐するブロック。
範囲ブロックでの判定結果(範囲内/外)を元に範囲内なら”真”、範囲外なら”偽”の処理を実行する。
|
タンクブロック
Lモーターを制御してトレーニングロボットを移動、回転させるブロック。
今回はオン、オフの2パターンを使用した。
トレーニングロボットをパワー50で前進させる
| |
トレーニングロボットを停止させる
|
実際に動かしてみた動画
プログラミングと実際のトレーニングロボットの動きを動画にしている。
カラーボイドを追いかけるようにトレーニングロボットが前進する様子が分かる
最近のコメント