モーター回転センサーを使用する



モーター回転センサーは、モーターがどの程度回転したかを測定するのに使用されます。回転センサーは M モーター、L モーター、そして NXT モーターに内臓されています。これらのモーターのセンサーは、回転の量(角度)を検出することができます。モーターの完全 1 回転は 360 度回転になります。

また、モーター回転センサーを使って、モーターが現在稼動しているパワー レベルを把握することもできます。
ヒントと豆知識
モーター回転センサーは、EV3 ブロック(A、B、C、または D)のモーター ポートに接続されているモーターにより使用されます。モーター回転センサーはEV3 センサー ポート(1、2、3、および 4)では使用することはできません。
モーター回転データ
モーター回転センサーは以下のデータを提供することができます:
データタイプ備考
数値回転量(角度)
回転 数値回転数で表示される回転量(角度/360 度)
現在のパワー 数値モーターが作動中の現在のモーターのパワー レベル(1-100)。モーターが停止している場合は 0 となります。
モーター回転センサーをリセットする
モーター回転センサーは、プログラムのいかなる時点でもゼロにリセットすることができます。センサーは、リセットした時点からの総回転量を測定します。モーター回転センサーをリセットするには、リセット モードのモーター回転ブロックを使用します。
ヒントと豆知識
リセットされたことのないモーター回転センサーを測定する場合、プログラム開始時からモーターが回転した総回転量を取得することになります。
モーター回転方向と総回転量
モーターの正回転では、正の角度や回転数となり、逆回転では負の数値となります。回転は常に、センサーが最後にリセットされた時点からの正回転の合計として測定されます。逆回転は、正回転の数から控除されます。

以下の表では、いくつかのステップからなるモーターの動作の例と、各ステップ後のモーター回転の測定結果を示しています。
ステップ動作モーター回転:
1プログラムが開始し、モーターが回転を始めていない状態0 度
2モーターが正回転で完全 1 回転(360 度)360 度
3モーターが正回転で完全 1 回転720 度
4モーターが 60 度正回転780 度
5モーターが 30 度逆回転750 度
6モーター回転がリセットされた状態0 度
7モーターが 100 度逆回転-100 度
8モーターが 60 度逆回転-160 度
9モーターが 360 度正回転200 度
「モーター回転センサーを使用する」の例
プログラムでモーター回転センサーを使用する方法の例が以下に示されています。
例 1:ロボットが押された時に音を鳴らす
このプログラムは、ロボットのホイールが若干動く程度に手で押した時に、ロボットの音を鳴らします。このプログラムは、「モーター回転 - 変化 -角度」モードの待機ブロックを使って、モーター C の回転センサーがいずれかの方向に 5 度変化するまで待機します。次にサウンド ブロックが音を鳴らします。
例 2:一定の距離の間パターンを描く駆動
このプログラムは、モーターを 2 回転だけ動かし、ロボットを直線運動させ、次に 6.5 回転だけジグザグのパターンで駆動させます。最初のホイールを作動させ、次に他のホイールを作動させることにより、ジグザグのパターンで駆動します。ジグザグのパターンは、モーター B が合計 6.5 回転するまで、ループ内で繰り返されます。このプログラムは、「モーター回転 - 回転数」モードのループを使って、モーター B の回転センサーが合計 6.5 回転を測定した時点でループを停止します。この 6.5 回転ではジグザグの移動だけを測定し、最初の直線運動での2回転は含まれていません。モーターBの回転センサーは、リセット モードでジグザグ移動の前にゼロにリセットしています。
例 3:速度制御ダイヤル
このプログラムは、ポート C に接続されているモーターを、ポート B に接続されているモーターに対する速度制御ダイヤルとして機能させます。C モーターを手動で正回転や逆回転させることで、B モーターの速度を制御します。このプログラムは、「測定 - 角度」モードのモーター回転ブロックを使って、モーター C が回転した角度を測定します。この結果は、L モーター動作ブロックのパワー入力のために利用され、また表示ブロックを使って表示されます。このプロセスは、速度が継続的に更新されるようにループ内で繰り返されます。
ヒントと豆知識
L モーター動作ブロックへのパワー入力が 100 より大きい場合は、100% のパワーを使うことになります。
モーター回転ブロックとモード
以下の表では、モーター回転センサーと併用できるすべてのプログラミング ブロックとモードを示しています。
ブロックモード使用例
待機 モーター回転 - 比較回転センサーが一定の値(角度、回転数、または現在のパワー)に達するまで待機します。
待機モーター回転 - 変化回転センサーが一定の量(角度、回転数、または現在のパワー)だけ変化するまで待機します。
ループ モーター回転回転センサーが一定の値(角度、回転数、または現在のパワー)に達するまで、ブロックのシーケンスを繰り返します。
スイッチ モーター回転回転センサー(角度、回転数、または現在のパワー)に従って、2 つのブロックのシーケンスから選択します。
モーター回転測定回転センサー(角度、回転数、または現在のパワー)を読み込み、数値データ ワイヤーで結果を取得します。
モーター回転比較回転センサー(角度、回転数、または現在のパワー)をしきい値と比較し、ロジック データ ワイヤーで結果を取得します。
モーター回転リセット回転センサーをゼロにリセットします。
データロギングデータロギングをご確認ください。
ヒントと豆知識
また、モーター回転センサーは以下の動作ブロックとモードで内部でも使用されます:
ブロックモード使用例
M モーター
L モーター
角度
回転数
モーターを一定の角度または回転数だけ回転します。
ステアリング
タンク
角度、
回転数
2 つの L モーターを使って、一定の角度または回転数だけ動作します。
モーター回転
クイックリンク