今回は、mBotプログラミングシリーズ(mBlock編)の第12回です。
ここでは、プログラムに「待ち処理」を取り入れる方法を学びます。
待ち処理とは、指定した時間だけプログラムの実行を一時停止させる機能のことです。
ロボットの動作をより滑らかにしたり、センサーのデータを正確に処理するために重要な役割を果たします。
本記事では、待ち処理の基本的な使い方から、センサーと組み合わせた応用例までをわかりやすく解説します。
この記事で分かること
- 待ち処理の仕組み
- 待ち処理に関するブロックとその使い方
- センサー値を上手に使うための待ち処理の活用方法
mBlockとは?『スクラッチ(Scratch)』との違い
mBlockは、小学校や学習塾で取り入れられている『スクラッチ(Scratch)』をベースとしたビジュアルプログラミングツールです。
スクラッチの基本的な操作感を引き継ぎながら、ロボットやハードウェアの制御に特化しているため、mBlockを使えば、プログラミング初心者でも簡単にロボットプログラミングを始めることができます。
待ち処理とは
待ち処理とは、プログラムの中で一定時間だけ動作を一時停止させる機能です。
mBlockでは、「○秒待つ」「○まで待つ」ブロックを使って簡単に実現できます。
これにより、次の動作を始めるタイミングを調整することができます。
mBlockで使用するブロック
『制御』パレット

指定した時間だけプログラムの動作を一時停止します。
シンプルな間隔調整に最適。

指定した条件が満たされるまでプログラムを停止し、その条件が成立した瞬間に次のブロックに進みます。
簡単な動作プログラム作成
以下は、『mBot上のボタンが押されたら前進する』プログラムです。

『〇まで待つ』ブロックを使用し、その条件に『ボード上のボタンが押された』を使用します。
ボード上のボタンが押されると、下のブロックの動作に移ります。
mBotを動かすプログラムを作成する場合には、今回のように『ボード上のボタンが押されるまで待つ』条件を入れることで、いきなり走り出すことが無く、安心して動作確認することができます。
【例題】待ち処理を使ってみよう
例題1:mBotで円を一周描く
- 例題
- 解答例
『mBotが円を描くように走行させ、おおよそ1周したら停止する』プログラムを作ってみましょう。
円を描いて走らせるには、左右異なるスピードで走らせてみよう。

この例では、左タイヤを70%、右タイヤを40%のスピードで走らせることで円を描きます。
その下に『〇秒待つ』ブロックを置くことで、走行する時間を設定することができます。
時間の設定は、各々の環境に合わせて1周にかかる時間を設定しましょう。
例題2:センサーの特性を考慮する
- 例題
- 解答例
『mBot上のボタンを押すごとに、LEDライトの色が「赤 → 緑 → 青 → 赤 →・・・」と変化する』プログラムを作ってみましょう。

今回の場合、『ボード上のボタンが押されたまで待つ』の待ちブロックだけでは上手く動きません。
人が1回だけボタンを押したつもりでも、プログラムの処理時間は非常に早いため、プログラム内ではボタンが押し続けられている状態になり、どんどん先の処理に進んでいきます。
それを回避するために、『ボタンが押された』判定をする前に『ボタンが離された』判定を入れます。
確実にボタンが離されたことを確認してから『ボタンが押された』判定をしましょう。
このように、センサーごとの特性を理解してプログラムを作成することが重要です。

まとめ
待ち処理を使うことで、プログラムにタイミングを持たせることができました。
また、センサーと組み合わせることで、より柔軟な動作制御を実現できることが分かりました。
こうしたタイミング制御のスキルは、プログラミングにおける基礎であり、さまざまな応用に役立ちます。
次回は、『リスト』について学びます。
mBlockを使ったmBotのプログラミング方法を丁寧に解説していておススメです。
mBotを使用した拡張的な遊びは『mBotでものづくりをはじめよう』が参考になります。mBotのパーツを段ボールと組み合わせてオリジナルのロボットを作るといったような拡張的な遊びが楽しめます。