PR

【mBotプログラミング例】障害物回避×ライントレース~mBlock編~

小学生向けロボット
この記事は約4分で読めます。

mBlockのサンプルプログラムには、障害物回避動作とライントレース動作のプログラムが用意されています。今回は、それらを流用することで、ライン追従しながら障害物を検知して停止するプログラムを作成しました。

この記事では、mBlockを使った具体的なプログラムとそのポイントをご紹介します!

かにロボ
かにロボ

ライントレース用の黒色ラインの作成には、反射の少ない黒色マスキングテープがお勧めです。
(黒色マジックペンでは、反射してセンサーが黒色を認識しないことがあります)

「障害物回避×ライントレース」プログラム概要

作成するプログラムでは、以下の動作を実現します。

  • ライントレースセンサーを用いて、ライン追従動作をさせる
  • 超音波センサーを用いて、障害物を検知した際にmBotを停止させる

「障害物回避×ライントレース」プログラムの流れ

mBlockで用意されているサンプルプログラムには、障害物回避とライントレースのプログラムが用意されています。今回は、それらのプログラムを流用して作成します。

サンプルプログラムの内容把握

mBlock画面右上の「サンプルプログラム」を押すと、サンプルプログラムの一覧が表示されます。

障害物回避プログラムの内容

サンプルプログラム一覧から「ObstacleAvoidance」を選択し、「OK」を押します。

障害物回避のサンプルプログラムとして、以下のブロックが表示されます。

超音波センサーで検出した障害物までの距離が10cmより大きければ前進、10cm以下の時に右に回転するプログラムとなっています。

ライントレースプログラムの内容

サンプルプログラム一覧から「SimpleLineFollowProgram」を選択し、「OK」を押します。

ライントレースのサンプルプログラムとして、以下のブロックが表示されます。

ライントレースセンサーの検出値に応じて、前進、右回転、左回転、後退の動作を切り替えています。

「障害物回避×ライントレース」プログラムの設計

以上のサンプルプログラムを流用することを考えます。

障害物回避のプログラムをベースとして、

次のように処理を置き換えることで、「障害物回避×ライントレース」の組み合わせ処理を実現することができます。

変更箇所ベース処理置き換え後
AmBotの前進処理ライントレース動作のサンプルプログラム
B障害物を検知して方向転換する処理mBotの停止処理

「障害物回避×ライントレース」プログラム例

上で示した処理の置き換えを、ビジュアルプログラミングで表現すると次のようになります。

障害物回避のプログラムをベースとして、Aの箇所をライントレースのプログラム、Bの箇所を停止処理で置き換えることで実現しました。

「障害物回避×ライントレース」実行結果

このプログラムを実行した結果です。
※Arduinoでプログラムした時と同様の動作となります

ライントレースをしながら、障害物を検知して停止していることが分かります。また、障害物を取り除くと、前進を再開します。

まとめ

今回は、「障害物回避 × ライントレース」のプログラム例をご紹介しました。

このように、既存のサンプルプログラムを流用するだけでも、mBotの動作の幅を広げる面白いプログラミングが可能です。この記事を参考に、ぜひ自分だけのカスタマイズプログラムにも挑戦してみてください!

次回の記事では、さらに応用した動作のプログラミングをご紹介する予定ですので、お楽しみに!

mBlockでの基本的な操作方法は『mBotで楽しむレッツ!ロボットプログラミング』がお勧めです。

コメント

タイトルとURLをコピーしました