超音波センサーと範囲ブロックを使ってトレーニングロボットを動かす ~レゴマインドストームEV3~ | そう備忘録

超音波センサーと範囲ブロックを使ってトレーニングロボットを動かす ~レゴマインドストームEV3~

範囲内に障害物がある時に前進する

教育用レゴマインドストームで超音波センサーと範囲ブロックを使ったプログラムを作ってみる。

超音波センサーは人間の耳には聞こえない超音波を出して物体との距離を測定する。

測定した距離を範囲ブロックを使って指定した範囲内かどうかを判断して、

  • 範囲内:トレーニングロボットを前進させる
  • 範囲外:トレーニングロボットを停止させる

により物体が一定の範囲内にあるときのみ前進するプログラムを作成する。

障害物が範囲内にある時のみ前進する

範囲ブロックとは

値が範囲内(範囲外)かを判別するためのブロック。

試験値が上限と下限の範囲内(外)かを判断して結果に出力する。

範囲ブロックの詳細についてはこちらの記事を参照

範囲ブロック 説明

プログラム全体

超音波センサーで物体との距離を測定して距離が10cm~20cmの時だけ前進するプログラム。

尚、記事の最後にプログラミングと実際に動かした時の動画を載せているので確認してみて欲しい

超音波センサーで障害物を検知して前進するプログラム

プログラム開始
3~9をプログラム終了まで繰り返す 
超音波センサーで物体との距離を測定する
測定値を5に引き渡す
測定値が10~20の範囲内かを判定する
判定結果を7に引き渡す
判定結果が”真”(範囲内)なら8、”偽”なら9を実行する
トレーニングロボットを前進させる
トレーニングロボットを停止させる

使用したブロック

今回使用したブロックは以下の5種類。

ループブロック

ループ内に配置されたブロックを右側の条件に一致するまで繰り返す。

ループブロックループを無限(プログラム終了まで)繰り返す。

  • 番号:01
  • ループ:無限

超音波センサーブロック

超音波センサーの測定結果を出力、比較する為のブロック。

今回は距離をcmで測定して結果を出力する為に使用する。

超音波センサーブロック超音波センサーで測定した距離を出力する。

  • 超音波センサー:測定、距離(cm)
  • 距離(cm):データワイヤーで範囲ブロックに出力する

範囲ブロック

値が範囲内(外)かを判断する。

範囲ブロック超音波センサーで測定された距離(cm)が10cm~20cmの範囲内かどうかを判定する。

  • 範囲:範囲内(範囲内の時に”真”)
  • 試験値:データワイヤーで超音波センサーブロックより測定値を受け取る
  • 下限:10(cm)
  • 上限:20(cm)
  • 結果:範囲内の時は”真”、範囲外の時は”偽”を出力する。

スイッチブロック

条件を判定して処理を分岐するブロック。

スイッチブロック範囲ブロックでの判定結果(範囲内/外)を元に範囲内なら”真”、範囲外なら”偽”の処理を実行する。

  • スイッチ:ロジック(”真”か”偽”を判定する)
  • ロジック:範囲ブロックの判定結果をデータワイヤーで受け取る

タンクブロック

Lモーターを制御してトレーニングロボットを移動、回転させるブロック。

今回はオン、オフの2パターンを使用した。

タンクブロック オントレーニングロボットをパワー50で前進させる

  • タンク:オン
  • 左側パワー:50
  • 右側パワー:50
タンクブロック オフトレーニングロボットを停止させる

  • タンク:オフ
  • ブレーキ方法:真

実際に動かしてみた動画

プログラミングと実際のトレーニングロボットの動きを動画にしている。

カラーボイドを追いかけるようにトレーニングロボットが前進する様子が分かる

souichirou

やった事を忘れない為の備忘録 同じような事をやりたい人の参考になればと思ってブログにしてます。 主にレゴ、AWS(Amazon Web Services)、WordPress、Deep Learning、RaspberryPiに関するブログを書いています。 仕事では工場に協働ロボットの導入や中小企業へのAI/IoT導入のアドバイザーをやっています。 2019年7月にJDLA(一般社団法人 日本デイープラーニング協会)Deep Learning for GENERALに合格しました。 質問は記事一番下にあるコメントかメニュー上部の問い合わせからお願いします。

おすすめ

質問やコメントや励ましの言葉などを残す

名前、メール、サイト欄は任意です。
またメールアドレスは公開されません。