【EV3 Classroom入門】1-2 モーター単体を連続で動かす(ループ処理)

デフォルトアイキャッチ

なさん、こんにちは。さいたま市浦和区にあるプログラミング教室「ツクリウム」です。

 さて、今回はEV3Classroomのモーター制御に関する記事です。


1-2 (指定したポートのモーター)を(時計回り/反時計回り)で回転させ続けます。

EV3 Classroom入門 モーター制御1-2-1

解説:停止させるには1-3のようなモーターを停止させる命令と組み合わせます。よく使われるのは一定条件を満たすまでループ処理でモーターを動かし続け、ループ脱出条件を満たしたときにモーターを止め、その後プログラムを終了する、というプログラムです。なおモーターのパワーの初期値は75%です。

例:

EV3 Classroom入門 モーター制御1-2-2

この例ではスタックは2つあるのが特徴で、「タイマーが>3の場合」というブロックでタイマーのイベント処理を行っています。結果としては3秒間、モーターを動かし、プログラムが停止します。なおモーターのパワーの初期値は75%です。

ちなみにループブロックを使えばこのような形になりこれでも同じように動作します。EV3 Classroomの特徴は同じ処理でもプログラムの書き方は幅があることです。この程度の小さなプログラムでは全く差は感じないのですが、もし何らかの理由で思ったように動かないときはプログラムを変えてみるのもよいでしょう。


例:

EV3 Classroom入門 モーター制御1-2-3

ちなみに、以下のようにループ中の処理を1-1のブロックに差し替えると、タイヤが1回転するごとに少し間を作ることができます。

EV3 Classroom入門 モーター制御1-2-4

メモ:この命令ブロックは、LabVIEW版ですと次の例のようにモード指定を「オン」にすることと同じ働きです。LabVIEW版ですと以下の例のように待機ブロックを用いてループ処理を行うことがありました。

EV3 Classroom入門 モーター制御1-2-5

こうした書き方でも指定したモーターを3秒間動かした後、モーターを止めるということができます。ただし、こうした待機ブロックを使ったループ処理はプログラミングの基本からは外れた特殊な仕様の面もありましたので子供をはじめとする初心者にはすっきりと書き方は統一したほうが誤解や混乱が少なくなると感じます。そしてロボット競技のテクニックとして使うか使わないかはその後の話になるかと思います。

例:プログラムがスタートすると、3秒間、モーターを動かした後に停止する。

EV3 Classroom入門 モーター制御1-2-6

■入会、または、体験会のお申込み

プログラミング教室「ツクリウム」ではスクラッチやPythonなどを学ぶ、小学生、中学生、高校生くらいまでの初心者向けの講座を通学形式やオンライン形式で開講しています。
お問いあわせ・ご入会・体験会のお申込みは下記のリンクからお願いいたします。

画像をクリックするとお問い合わせページにジャンプします。

お問い合わせアイコン

https://forms.gle/nzsFZqiCXHzNWH3cA