今回は、mBotプログラミングシリーズの第5回です。
mBotプログラミングの重要な要素である「条件分岐」と「繰り返し処理」を学びます。
条件分岐を使うことで、プログラムに「もし〇〇ならば、××する」という判断力を持たせることができ、センサー値を基にした柔軟な動作制御ができます。
また、繰り返し処理により、センサー値を継続的に読み込むことも可能となります。
全講座の一覧はこちら
目標
- mBlockの「条件分岐」「繰り返し処理」ブロックを理解する
- mBotを制御するための、条件分岐と繰り返し処理の組み合わせ方を学ぶ
必要なブロック
『制御』パレット
繰り返し処理と条件分岐のブロックが入っています。
これら2つを組み合わせることで、複雑な動作をシンプルなコードで表現できます。
繰り返し処理とは?
同じ処理を何度も繰り返すことで、効率的にプログラムを実行できます。
例:「LEDを3回点滅させる」
繰り返し処理ブロック
設定した回数だけ、枠の中に入っている処理(ブロック)を繰り返して実行します。
繰り返し処理ブロック
枠の中に入っている処理(ブロック)を繰り返して実行します。
mBlockで強制的に処理を止めない限り、繰り返し続けます。
繰り返し処理ブロック
設定した条件が成立するまで、枠の中に入っている処理(ブロック)を繰り返して実行します。
条件分岐とは?
特定の条件に応じてプログラムの動作を変える処理のことです。
例:「もし光センサーの値が50以下なら、LEDを点灯する」
条件分岐ブロック
設定した条件が「真(True)」なら、枠の中に入っている処理(ブロック)を実行します。
条件分岐ブロック
設定した条件が「真(True)」なら、上の枠の中に入っている処理(ブロック)を実行、「偽(False)」なら、下の枠の中に入っている処理(ブロック)を実行します。
『センサー』パレット
条件分岐・繰り返し処理の動作確認のために、mBot上のボタンが押されたかどうかを認識するブロックを使います。
mBotのボード上のボタンが押されたら「真(True)」、そうでなければ「偽(False)」となります。
簡単な動作プログラム作成
条件分岐
『乱数を発生させ、その値が4以下の場合はmBotを左回転、5以上の場合は右回転する』プログラムを作ってみます。
真と偽の処理を行う条件分岐ブロックを使います。
『乱数<5(4以下)』のときに左回転、そうでないとき(5以上)に右回転をさせます。
繰り返し処理
『LEDライトを点滅させる』プログラムを作ってみます。
『赤点灯』と『消灯』ブロックを『ずっと繰り返す』ブロックで挟むことで、点滅処理となります。
【例題】条件分岐と繰り返し処理を使ってみよう
例題1:繰り返し処理を終了する
- 例題
- 解答例
『1秒間ずつ右回転と左回転を繰り返し、mBot上のボタンを押したら回転動作を終了する』プログラムを作ってみましょう。
繰り返し処理『〇まで繰り返す』ブロックを用います。
条件に『ボード上のボタンが押された』を入れて、mBotの回転動作を繰り返しブロックの枠の中で処理することで実現します。
例題2:条件分岐と繰り返し処理の組み合わせ
- 例題
- 解答例
『青色LEDの点滅を継続させ、mBot上のボタンを押した直後にだけ1秒間赤色点灯させる』プログラムを作ってみましょう。
もしくは
『青色点滅』処理と『ボード上のボタンが押された』条件分岐処理を、『ずっと』の繰り返し処理でループさせます。
条件分岐処理の使い方は、上の2パターンが考えらえます。
まとめ
今回は、条件分岐と繰り返し処理を組み合わせたプログラムを作成しました。
この2つを組み合わせることで、センサー値を継続的に取り入れた、mBotのより柔軟な動作を実現できます。
次回は、『センサー値』プログラムに取り入れる上で、非常に役立つ『変数』について学んでいきます。
mBlockを使ったmBotのプログラミング方法を丁寧に解説していておススメです。
mBotを使用した拡張的な遊びは『mBotでものづくりをはじめよう』が参考になります。mBotのパーツを段ボールと組み合わせてオリジナルのロボットを作るといったような拡張的な遊びが楽しめます。
コメント