超音波センサーによる距離測定プログラム ~レゴマインドストームEV3~
Contents
超音波センサーでの距離測定
教育用レゴマインドストームEV3の超音波センサーを使って物体との距離を測定してリアルタイムにインテリジェントブロック(白い本体)のディスプレイに測定結果を表示するプログラムを作ってみる。
プログラミングにあたって3種類のデータワイヤー(※)を使用する。
※データワイヤーはプログラム中のブロックとブロックをドラッグ&ドロップで結んだ時に表示される線(ワイヤー)の事。
伝搬されるデータの種類によってワイヤーの太さ、色が異なってくる。
今回は3種類のデータワイヤーを使ってプログラミングをする事にした。
ロジック(緑) 条件に一致している(真)/していない(偽)などのロジックを伝搬するデータワイヤー | |
数値(黄) 数値を伝搬するデータワイヤー | |
テキスト(オレンジ) テキスト(文字列)を伝搬するデータワイヤー |
データワイヤーは上記の他に更に2種類ある。
- 数値配列(黄・太線)
- ロジック配列(緑・太線)
配列については別記事で試してみる事にした。
使用するブロック
使用するブロックは以下の5種類。
ループブロック
ループ内に配置されたブロックを右側の条件に一致するまで繰り返す。
ループの条件は”ロジック”。 判定結果が”真”になるまでループを繰り返す。 超音波センサーの比較結果をデータワイヤーで受け取ってループの条件を判定する。
|
超音波センサーブロック
超音波センサーで物体との距離を測定する。
物体との距離が5cm未満かどうかの比較結果と測定距離の2種類の情報をデータワイヤーを使って出力する。
|
テキストブロック
テキスト(文字列)を結合して一つのテキストにする。
A、B、Cと最大3つの文字列を結合ができる。
データワイヤーでAに入力された数値を文字列に変換してBの文字列(”cm”)と結合して結果に出力する。
|
表示ブロック
インテリジェントブロック(本体)のディスプレイにテキスト、イメージなどを表示させる為のブロック。
今回は2種類の表示ブロックを使用した。
なお、表示ブロックの機能詳細についてはこちらの記事を参照。
待機ブロック
条件を満たすまで待機をするブロック。
3秒間待機する
ディスプレイにNeutralイメージが表示された後、待機させないと初期表示に戻ってしまうので待機ブロックを使って3秒間表示させる。 |
測定距離をディスプレイに表示するプログラム
超音波センサーで物体との距離を測定して結果を文字列に加工してディスプレイに表示するプログラム。
物体との距離が5cm未満になるとループを終了してNeutralイメージ(両目の画像)を表示してプログラムを終了する。
1 | プログラム開始 |
2 | 超音波センサーの比較結果が真(5cm未満)になるまで3~5を繰り返す。 比較結果は緑のデータワイヤーで伝搬される。 5cm未満になると6に制御を移す。 |
3 | 超音波センサーで物体との距離を測定する。 このブロックからは2種類の情報がデータワイヤーで他のブロックに伝えられている。
|
4 | 超音波センサーの測定した物体との距離の後ろに”cm”の文字列を付加してテキストとしてオレンジのデータワイヤーで表示ブロック(5)に伝搬する。 |
5 | データワイヤーで伝えられたテキスト(オレンジ)を入力にして、物体との距離をインテリジェントブロックのディスプレイに表示する。 |
6 | ディスプレイにNeutralイメージを表示する。 |
7 | 3秒間待機してイメージファイルを表示する。 |
実行結果
物体との距離を超音波センサーで測定してディスプレイに表示。
距離は10.7cm
5cm未満になったのでNeutralイメージをディスプレイに表示する。
プログラミング動画
プログラミングと物体との距離を随時測定してインテリジェントブロックのディスプレイに表示する様子を動画にしている。
最近のコメント