1秒間隔で90度ずつMモーターを回転させる ~レゴマインドストームEV3~ | そう備忘録

1秒間隔で90度ずつMモーターを回転させる ~レゴマインドストームEV3~

1秒間隔で90度ずつMモーターを回転させる

教育用レゴマインドストームで1秒間隔で90度ずつMモーターを回転させるプログラムを作ってみる。

Mモーターの先端に白い羽をつけて回転の状態が分かるようにした。

タイマーブロックを使ってタイマーリセットからの時間を計測して1秒間隔の処理を実現させる。

1秒間間隔で90度回転させる

使用するブロック

使用するブロックは以下の4種類。

ループブロック

ループ内に配置されたブロックを右側の条件に一致するまで繰り返す。

ループブロックループを無限(プログラム終了まで)繰り返す

  • 番号:01
  • ループ:無限

タイマーブロック

タイマーブロックは8個のタイマーを持っていて時間を測定する事ができる。

今回はリセットのみ使用する。

尚、タイマーブロックの詳細についてはこちらの記事を参照

タイマーリセットタイマーID1をリセットする

  • タイマー:リセット
  • タイマーID:1

Mモーター

Mモーターは軽いものを素早く動かすためのモーター

Mモーターパワー50で90度回転させる

  • Mモーター:角度
  • パワー:50
  • 度:90(度)
  • ブレーキ方法:真

 

待機ブロック

指定された条件に一致するまで待機するブロック。

今回大切なのがこの待機ブロック。

単純な1秒待機では無くタイマーの経過時間と比較して待機をするところがポイント。

待機ブロック タイマータイマーの経過時間が1秒以上になるまで待機する

  • 待機:タイマー、比較、時間
  • タイマーID:1
  • 比較タイプ:3(≧)
  • しきい値:1(秒)
  • 経過時間:経過時間が出力される

1秒間隔で90度Mモーターを回転させるプログラム

タイマーを使って1秒間隔でMモーターを90度回転させる。

5の所で「1秒待機ブロック」を置いてしまうと4の処理時間が考慮されないので1秒以上の間隔になってしまうのでタイマーリセットからの経過時間に対して待機をさせている。

但し、4の処理が1秒以上かかる場合はこのプログラムではうまくいかない。

1秒間隔で90度回転させるプログラム

プログラム開始
3~5をプログラム終了まで繰り返す 
タイマーをリセット
Mモーターを90度回転させる
3から1秒経過するまで待機

経過したら3へ戻る

実際に動かしてみた動画

プログラミングと実際のMモーターの回転の様子を動画にしている。

1秒間隔でMモーターが回転する様子を確認できる。

souichirou

やった事を忘れない為の備忘録 同じような事をやりたい人の参考になればと思ってブログにしてます。 主にレゴ、AWS(Amazon Web Services)、WordPress、Deep Learning、RaspberryPiに関するブログを書いています。 仕事では工場に協働ロボットの導入や中小企業へのAI/IoT導入のアドバイザーをやっています。 2019年7月にJDLA(一般社団法人 日本デイープラーニング協会)Deep Learning for GENERALに合格しました。 質問は記事一番下にあるコメントかメニュー上部の問い合わせからお願いします。

おすすめ

質問やコメントや励ましの言葉などを残す

名前、メール、サイト欄は任意です。
またメールアドレスは公開されません。