モーション#
導入#
Motors control how parts of a robot move. Motors can be used to raise an arm, turn a claw, spin a wheel, or move another part of a build. Two motors can work together as a drivetrain to move and turn the whole robot.
各モーターは「デバイス」ウィンドウで設定します。ビルドによっては、モーター名や方向が変わる場合があります。例えば、Competition Advanced 2.0ビルドでは、ArmMotorという名前のモーターがあり、方向は上と下です。カスタムロボットでは、異なるモーター名や方向を使用する場合があります。
デフォルトでは、正回転はモーターを反時計回りに回転させ、逆回転はモーターを時計回りに回転させます。デバイスウィンドウでモーターを逆回転に設定すると、これらの回転方向が反転します。
モーターをプログラミングする方法はたくさんあります。以下に、すべてのモーションブロックの一覧を示します。
動作 — モーターを停止および回転させる。
スピンモーター — モーターを永久に正転または逆転させます。
spin motor for — モーターを特定の距離だけ回転させます。
モーターを所定の位置に回転 — モーターを特定の位置まで回転させます。
モーター停止 — モーターの回転を停止します。
設定 — モーター設定を調整します。
モーター位置の設定 — モーターの現在の位置を新しい値に変更します。
モーター速度を設定 — モーターに回転速度を指示します。
モーター停止の設定 — モーターが停止する方法(ブレーキ、惰性走行、保持)を設定します。
モーター最大トルクを設定 — モーターが回転中にどれだけの力で押せるかを設定します。
モータータイムアウトを設定 — モーターが動作を完了しようとする秒数を設定します。
値 — モーターの状態を確認します。
モーター完了 — モーターが動作を完了したかどうかを報告します。
モーターは回転していますか? — モーターが回転しているかどうかを報告します。
モーター位置 — モーターの現在の位置を報告します。
モーター速度 — モーターの回転速度を-100%から100%までのパーセンテージで報告します。
モーター電流 — モーターがバッテリーからどれだけの電力を使用しているかを、0%から100%までのパーセンテージで報告します。
行動#
スピンモーター#
スピンモータースタックブロックは、モーターを正逆方向に永久に回転させます。モーターは、別の方向に回転させたり停止させたりといった別の動作が与えられるまで回転し続けます。
[ArmMotor v] を [上 v] へ回転
パラメータ |
説明 |
|---|---|
モーター |
回転させるモーター。デバイスウィンドウで設定されているモーターから選択してください。 |
方向 |
モーターの回転方向。デフォルトでは、正回転と逆回転の2種類から選択できます。モーターの構成によっては、回転方向の選択肢が変わる場合があります。 |
例
開始したとき :: hat events
[Build Used: Competition Advanced 2.0]
[Raise the ArmMotor, then stop.]
[ArmMotor v] を [上 v] へ回転
[1] 秒待つ
[ArmMotor v] を停止
スピンモーター#
spin motor forスタックブロックは、モーターを特定の距離だけ回転させます。回転はモーターの現在位置を基準としています。プロジェクトは、モーターの回転が終了するまで待機し、その後スタック内の次のブロックが実行されます。
[ArmMotor v] を [上 v] へ [90] [度 v] 回転 ▶
パラメータ |
説明 |
|---|---|
モーター |
回転させるモーター。デバイスウィンドウで設定されているモーターから選択してください。 |
方向 |
モーターの回転方向。デフォルトでは、正回転と逆回転の2種類から選択できます。モーターの構成によっては、回転方向の選択肢が変わる場合があります。 |
距離 |
モーターが回転する距離。度は整数を使用します。回転数は整数または小数を使用できます。 |
ユニット |
距離の単位:度または回転数。 |
そして待たない |
矢印(▶)を選択してブロックを展開すると、「待機しない」と表示されるので、スタック内の次のブロックがすぐに実行されます。 |
例
開始したとき :: hat events
[Build Used: Competition Advanced 2.0]
[Raise and lower the ArmMotor.]
[ArmMotor v] を [上 v] へ [180] [度 v] 回転 ▶
[1] 秒待つ
[ArmMotor v] を [下 v] へ [180] [度 v] 回転 ▶
モーターを回転させて位置を合わせる#
モーターを所定の位置に回転させるスタックブロックは、モーターを特定の位置まで回転させます。
モーターの位置は、回転した角度を表し、度または回転数で測定されます。1回転は360度です。プロジェクトの開始時には、モーターの位置は0度に設定されています。モーターの位置は、モーター位置の設定ブロックを使用して設定することもできます。
位置値は絶対値です。つまり、回転方向はモーターの現在位置によって決まります。
[ArmMotor v] を位置 (90) [度 v] へ回転 ▶
パラメータ |
説明 |
|---|---|
モーター |
回転させるモーター。デバイスウィンドウで設定されているモーターから選択してください。 |
位置 |
モーターが回転する位置の値。度は整数を使用します。回転数は整数または小数を使用できます。 |
ユニット |
位置の単位:度または回転。 |
そして待たない |
矢印(▶)を選択してブロックを展開すると、「待機しない」と表示されるので、スタック内の次のブロックがすぐに実行されます。 |
例
開始したとき :: hat events
[Build Used: Competition Advanced 2.0]
[Return ArmMotor to 0 degrees after raising.]
[ArmMotor v] を [上 v] へ [180] [度 v] 回転 ▶
[1] 秒待つ
[ArmMotor v] を位置 [0] [度 v] へ回転 ▶
モーターを停止する#
モーター停止スタックブロックは、モーターの回転を停止させます。
[ArmMotor v] を停止
パラメータ |
説明 |
|---|---|
モーター |
停止させるモーターを選択してください。デバイスウィンドウで設定されているモーターの中から選択してください。 |
例
開始したとき :: hat events
[Build Used: Competition Advanced 2.0]
[Raise the ArmMotor.]
[ArmMotor v] を [上 v] へ回転
[1] 秒待つ
[ArmMotor v] を停止
設定#
モーター位置を設定する#
モーターの位置とは、モーターが回転した角度のことで、度または回転数で表されます。1回転は360度です。モーター位置設定スタックブロックは、モーターの現在の位置を新しい値に変更します。
例えば、モーターが180度まで回転している場合、位置を0度に設定すると、その位置は180度から0度にリセットされます。その後、モーターはその新しい値に基づいて回転できるようになります。
[ArmMotor v] の位置を (0) [度 v] に設定
パラメータ |
説明 |
|---|---|
モーター |
位置を設定するモーター。デバイスウィンドウで設定されているモーターから選択してください。 |
位置 |
モーターに設定する位置の値。度は整数を使用します。回転数は整数または小数を使用できます。 |
ユニット |
位置の単位:度または回転。 |
例
開始したとき :: hat events
[Build Used: Competition Advanced 2.0]
[Return ArmMotor to 0 degrees after raising.]
[ArmMotor v] の位置を [0] [度 v] に設定
[ArmMotor v] を [上 v] へ [180] [度 v] 回転 ▶
[1] 秒待つ
[ArmMotor v] を位置 [0] [度 v] へ回転 ▶
モーター速度を設定する#
モーター速度設定スタックブロックは、モーターの回転速度を指定します。パーセンテージが高いほどモーターは速く回転し、低いほど遅く回転します。
すべてのプロジェクトは、各モーターがデフォルトで50%の速度で回転する状態から始まります。
注: 速度を速くするとモーターの回転速度は速くなりますが、精度が低下する可能性があります。速度を遅くするとモーターの回転速度は遅くなりますが、精度は向上する可能性があります。
[ArmMotor v] の速度を [50] % に設定
パラメータ |
説明 |
|---|---|
モーター |
速度を設定するモーター。デバイスウィンドウで設定されているモーターから選択してください。 |
速度 |
回転速度を0%から100%まで設定します。 |
例
開始したとき :: hat events
[Build Used: Competition Advanced 2.0]
[Move the ArmMotor at different velocities.]
[ArmMotor v] を [上 v] へ [180] [度 v] 回転 ▶
[1] 秒待つ
[Move slow.]
[ArmMotor v] の速度を [20] % に設定
[ArmMotor v] を [下 v] へ [180] [度 v] 回転 ▶
[1] 秒待つ
[Move fast.]
[ArmMotor v] の速度を [100] % に設定
[ArmMotor v] を [上 v] へ [180] [度 v] 回転 ▶
モーター停止設定#
set motor stoppingスタックブロックは、モーターがブレーキ、惰性走行、または保持によってどのように停止するかを設定します。
[ArmMotor v] の停止モードを [ブレーキ v] に設定
パラメータ |
説明 |
|---|---|
モーター |
停止動作を設定するモーター。デバイスウィンドウで設定されているモーターから選択してください。 |
停止動作 |
モーターの停止方法:
|
例えば、Competition Advanced 2.0ビルドを使用し、ArmMotorを保持モードに設定した場合、次のアームの動きが発生するまで、モーターはアームを現在の位置に保持します。つまり、アームが上がった状態でモーターが停止した場合、モーターは重力に逆らってアームを空中に保持する働きをします。
このブロックを使用しない場合、モーターは停止時にブレーキを使用します。
例
開始したとき :: hat events
[Build Used: Competition Advanced 2.0]
[Move the ArmMotor, then coast to a stop.]
[ArmMotor v] の速度を [20] % に設定
[ArmMotor v] の停止モードを [コースト v] に設定
[ArmMotor v] を [上 v] へ回転
[1] 秒待つ
[ArmMotor v] を停止
モーターの最大トルクを設定する#
トルクとは回転力のことです。モーターが回転する際に、どれだけの力で押したり引いたりできるかを示します。
set motor max torqueスタックブロックは、モーターが使用できる最大トルクを設定します。
パーセンテージを高くすると、重い物を持ち上げる時など、モーターがより強く押すことができます。パーセンテージを低くすると、モーターが押せる力が制限されます。これは、モーターが詰まったり、可動範囲の限界に達したりした場合に、ロボットを保護するのに役立ちます。
すべてのプロジェクトは、各モーターのトルクがデフォルトで50%に設定された状態から始まります。
[ArmMotor v] の最大トルクを (50) % に設定
パラメータ |
説明 |
|---|---|
モーター |
最大トルクを設定するモーター。デバイスウィンドウで設定されているモーターから選択してください。 |
トルク |
モーターが使用できる最大トルク(0%~100%)。 |
例
開始したとき :: hat events
[Build Used: Competition Advanced 2.0]
[Move the ArmMotor at different torques.]
[ArmMotor v] を [上 v] へ [180] [度 v] 回転 ▶
[1] 秒待つ
[Move with less torque.]
[ArmMotor v] の最大トルクを [20] % に設定
[ArmMotor v] を [下 v] へ [180] [度 v] 回転 ▶
[1] 秒待つ
[Move with maximum torque.]
[ArmMotor v] の最大トルクを [100] % に設定
[ArmMotor v] を [上 v] へ [180] [度 v] 回転 ▶
モータータイムアウトを設定する#
set motor timeoutスタックブロックは、モーターが動作を完了するまでの試行時間を秒単位で設定します。モーターがその時間内に動作を完了できない場合、試行を停止してスタック内の次のブロックに進みます。これにより、モーターが動作中に停止してしまうのを防ぎます。
[ArmMotor v] のタイムアウトを (1) 秒に設定
パラメータ |
説明 |
|---|---|
モーター |
タイムアウトを設定するモーター。デバイスウィンドウで設定されているモーターから選択してください。 |
時間 |
モーターが動作を完了するまでの試行時間(秒)。整数または小数を指定できます。 |
例
開始したとき :: hat events
[Build Used: Competition Advanced 2.0]
[Move ArmMotor as far as possible for 1 second before resetting.]
[ArmMotor v] の位置を [0] [度 v] に設定
[ArmMotor v] のタイムアウトを [1] 秒に設定
[ArmMotor v] を [上 v] へ [180] [度 v] 回転 ▶
[ArmMotor v] を位置 [0] [度 v] へ回転 ▶
価値観#
モーターは壊れましたか?#
モーター完了ブールブロックは、モーターの動作が完了したかどうかを報告します。これは、モーターの動きに基づいて他の動作のタイミングを制御するために使用できます。
正解 — モーターは動作を終えました。
誤り — モーターはまだ動いています。
このブロックは、and don’t wait パラメーターを持つ次のモーションブロックと連携して動作します: spin motor for および spin motor to position。
<[ArmMotor v] 完了?>
パラメータ |
説明 |
|---|---|
モーター |
動作完了を報告するモーター。デバイスウィンドウで設定されているモーターから選択してください。 |
例
開始したとき :: hat events
[Build Used: Competition Advanced 2.0]
[Turn the Eye Sensor's light on while ArmMotor is moving.]
[ArmMotor v] を [上 v] へ [180] [度 v] 回転 ◀ 待たない
[0.1] 秒待つ
ずっと
もし <[ArmMotor v] 完了?> なら
アイライトを [オフ v] に設定
でなければ
アイライトを [オン v] に設定
モーターが回転していますか?#
モーターは回転していますか? ブール値ブロックは、モーターが回転しているかどうかを報告します。これは、モーターの動きに基づいて他の動作のタイミングを制御するために使用できます。
正解 — モーターは回転しています。
誤り — モーターは回転していません。
このブロックは、and don’t wait パラメーターを持つ次のモーションブロックと連携して動作します: spin motor for および spin motor to position。
<[ArmMotor v] 回転中?>
パラメータ |
説明 |
|---|---|
モーター |
回転しているかどうかを報告するモーター。デバイスウィンドウで設定されているモーターから選択してください。 |
例
開始したとき :: hat events
[Build Used: Competition Advanced 2.0]
[Turn the Eye Sensor's light on while ArmMotor is moving.]
[ArmMotor v] を [上 v] へ [180] [度 v] 回転 ◀ 待たない
[0.1] 秒待つ
ずっと
もし <[ArmMotor v] 回転中?> なら
アイライトを [オン v] に設定
でなければ
アイライトを [オフ v] に設定
運動位置#
モーターの位置とは、回転した角度(度数または回転数)のことです。モーター位置レポーターブロックは、モーターの現在の位置を報告します。
プロジェクト開始時、モーターの位置は0度に設定されます。モーターが正方向に1回転すると、位置は360度、つまり1回転となります。モーターが逆方向に回転すると、位置は負の値になります。
([ArmMotor v] の位置([度 v]) :: custom-motion)
パラメータ |
説明 |
|---|---|
モーター |
位置情報を報告するモーター。デバイスウィンドウで設定されているモーターから選択してください。 |
ユニット |
モーターの位置を報告する単位:度または回転数。 |
例
開始したとき :: hat events
[Build Used: Competition Advanced 2.0]
[Display how far the ArmMotor moves after one second.]
[ArmMotor v] の位置を [0] [度 v] に設定
[Start: ] を表示 ▶
([ArmMotor v] の位置([度 v]) :: custom-motion) を表示 ▶
カーソルを次の行へ移動
[ArmMotor v] を [上 v] へ回転
[1] 秒待つ
[ArmMotor v] を停止
[After: ] を表示 ▶
([ArmMotor v] の位置([度 v]) :: custom-motion) を表示 ▶
モーター速度#
モーター速度レポーターブロックは、モーターの回転速度を-100%から100%までのパーセンテージで報告します。
正の値はモーターが正方向に回転していることを意味し、負の値はモーターが逆方向に回転していることを意味します。
([ArmMotor v] の速度(%))
パラメータ |
説明 |
|---|---|
モーター |
速度を報告するモーター。デバイスウィンドウで設定されているモーターから選択してください。 |
例
開始したとき :: hat events
[Build Used: Competition Advanced 2.0]
[Display the ArmMotor's velocity when it moves.]
[Resting: ] を表示 ▶
([ArmMotor v] の速度(%)) を表示 ▶
カーソルを次の行へ移動
[ArmMotor v] を [上 v] へ回転
[1] 秒待つ
[Moving: ] を表示 ▶
([ArmMotor v] の速度(%)) を表示 ▶
[ArmMotor v] を停止
モーター電流#
モーター電流レポーターブロックは、モーターがバッテリーからどれだけの電力を使用しているかを、0%から100%までのパーセンテージで報告します。
電流値が高いということは、モーターがより多くの電力を消費していることを意味します。これは、モーターが重い物を持ち上げているとき、物体に押し付けられているとき、または動かなくなってしまったときに発生する可能性があります。
([ArmMotor v] の電流(%))
パラメータ |
説明 |
|---|---|
モーター |
電流値を報告するモーターを選択します。デバイスウィンドウで設定されているモーターの中から選択してください。 |
例
開始したとき :: hat events
[Build Used: Competition Advanced 2.0]
[Display the motor's current when it moves.]
[Resting: ] を表示 ▶
([ArmMotor v] の電流(%)) を表示 ▶
カーソルを次の行へ移動
[ArmMotor v] を [上 v] へ回転
[1] 秒待つ
[Moving: ] を表示 ▶
([ArmMotor v] の電流(%)) を表示 ▶
[ArmMotor v] を停止