【EV3 Classroom入門】6-1 指定した条件だけ待つ、ループ処理1
みなさん、こんにちは。さいたま市のプログラミング教室「ツクリウム」です。
こちらはEV3 Classroomの入門記事になります(後継のSPIKEプライムやスクラッチにも役立つかと思いますので参考にしてみてください)。さて、今回のプログラムは指定した条件だけ待つ命令ブロックの解説です。またこれらのブロックはループ処理にも使われます。
6-1 (X)秒、待つ
解説:指定した秒数を待つ命令です。ディスプレイに表示させる時やロボットを停止させたい時に使います。
なお、6-2の命令も同様なのですが、旧版のLabVIEW版からの影響で連続でモーターを動かす移動ブロックと組み合わせるとループ処理を行うことができます。ループの種類としては後判定ループと呼ばれるものと思われますが、特殊な仕様のため分かりやすいコードを書くという点では問題があると感じています。ループブロックのみで実現できますし、はるか昔にあったgoto文のように用いる場所を必要な部分のみに限定しておきたいところです。
例:
プログラムがスタートすると、まっすぐに移動を開始し、1秒後に、後方に1回転分バックして、プログラムを終了します。(最初の処理が止まらない場合は明示的にモーターを停止させる処理を入れること)
6-2 (指定条件)になるまで待つ
解説:6-1の命令は秒数に限定されましたが、このブロックは一定条件になるまで待つことができます。そのため様々な条件を指定しています。独特なのはやはりループ処理に用いる時で、例のようにこのブロックを並べることでループ処理を複数行うことができるということです。どちらかと言うと旧バージョンとの互換性のために作られた機能です。慣れていない人は無理こうした書き方をするよりも6-5のループブロックを複数使うほうがオーソドックスな書き方ができると感じます。
例:n番目の色の線で止まるプログラム
プログラムがスタートすると、
3回続けるループを行います。その実行内容は、
移動スピードを変え、
まっすぐに移動を開始し、
カラーセンサーの値が白まで待機し(つまり白まで進む)、
カラーセンサーの値が赤まで待機し(つまり赤まで進む)、
移動をやめます(この命令がないと動き続けてしまいます)
です。
ループ終了後は、プログラムを終了します。
例:ジャイロセンサーを使ったターン
プログラムがスタートすると、移動スピードを30%に変更し、方向が右60で移動を開始し、
ジャイロセンサーの値が90°になるまで待ちます(つまりこの値になるまで右回転し続けます)。
その後、移動をやめます。
今度は、方向が左60で移動を開始し、ジャイロセンサーの値が0°になるまで待ちます(つまりこの値になるまで左回転し続けます)。
その後、移動をやめ、プログラムを停止します。
入会、または、体験会のお申込み
プログラミング教室「ツクリウム」ではスクラッチやPythonなどを学ぶ、小学生、中学生、高校生くらいまでの初心者向けの講座を通学形式やオンライン形式で開講しています。
お問いあわせ・ご入会・体験会のお申込みは下記のリンクからお願いいたします。
画像をクリックするとお問い合わせページにジャンプします。