モーターとモーターグループ#
導入#
Motors and motor groups control how parts of a robot move. A motor controls one configured Smart Motor, while a motor group controls two configured Smart Motors together so they move in tandem. Motors and motor groups 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.
各モーターは「デバイス」ウィンドウで設定します。構成によっては、モーター名や回転方向が変わる場合があります。カスタムロボットでは、異なるモーター名や回転方向が使用されることがあります。
デフォルトでは、正回転はモーターを反時計回りに回転させ、逆回転はモーターを時計回りに回転させます。デバイスウィンドウでモーターを逆回転に設定すると、これらの回転方向が反転します。
モーターやモーターグループをコーディングする方法は数多くあります。以下に、すべてのモーターおよびモーターグループブロックの一覧を示します。
動作 — モーターおよびモーター群を停止および回転させる。
spin motor — モーターまたはモーターグループを永久に正転または逆転させます。
spin motor for — モーターまたはモーターグループを特定の距離だけ回転させます。
モーターを所定の位置に回転 — モーターまたはモーターグループを特定の位置まで回転させます。
モーター停止 — モーターまたはモーターグループの回転を停止します。
設定 — モーターおよびモーターグループの設定を調整します。
モーター位置の設定 — モーターまたはモーターグループの現在の位置を新しい値に変更します。
モーター速度を設定 — モーターまたはモーターグループに回転速度を指示します。
モーター停止の設定 — モーターまたはモーターグループが停止する方法(ブレーキ、惰性走行、保持)を設定します。
モーター最大トルクを設定 — モーターまたはモーターグループが回転中にどれだけ強く押せるかを設定します。
モータータイムアウトを設定 — モーターまたはモーターグループが動作を完了しようとする秒数を設定します。
値 — 運動機能および運動群の状態を確認します。
モーター完了 — モーターまたはモーターグループが動作を完了したかどうかを報告します。
モーターが回転しています — モーターまたはモーターグループが回転しているかどうかを報告します。
モーター位置 — モーターまたはモーターグループの現在の位置を報告します。
モーター速度 — モーターまたはモーターグループが回転している速度を報告します。
モーター電流 — モーターまたはモーターグループが使用している電流の量を示します。
行動#
スピンモーター#
スピンモータースタックブロックは、モーターまたはモーターグループを正逆方向に永久に回転させます。モーターまたはモーターグループは、別の方向に回転させたり停止させたりするなど、別の動作が与えられるまで回転し続けます。
[Motor1 v] を [前進 v] へ回転
パラメータ |
説明 |
|---|---|
モーター |
回転させるモーターまたはモーターグループ。デバイスウィンドウで設定されているモーターから選択してください。 |
方向 |
モーターまたはモーター群の回転方向。デフォルトでは、正転と逆転の2種類から選択できます。回転方向はモーターの構成によって変更される場合があります。 |
例
開始したとき
[Spin the motor forward, then stop.]
[Motor1 v] を [前進 v] へ回転
(1) 秒待つ
[Motor1 v] を停止
スピンモーター#
spin motor forスタックブロックは、モーターまたはモーターグループを特定の距離だけ回転させます。回転は、モーターまたはモーターグループの現在位置を基準とします。プロジェクトは、モーターまたはモーターグループの回転が終了するまで待機し、その後スタック内の次のブロックが実行されます。
[Motor1 v] を [前進 v] へ (90) [度 v] 回転 ▶
パラメータ |
説明 |
|---|---|
モーター |
回転させるモーターまたはモーターグループ。デバイスウィンドウで設定されているモーターから選択してください。 |
方向 |
モーターまたはモーター群の回転方向。デフォルトでは、正転と逆転の2種類から選択できます。回転方向はモーターの構成によって変更される場合があります。 |
距離 |
モーターまたはモーター群が回転する距離。度は整数を使用します。回転数は整数または小数を使用できます。 |
ユニット |
距離の単位:度または回転数。 |
そして待たない |
矢印(▶)を選択してブロックを展開すると、「待機しない」と表示されるので、スタック内の次のブロックがすぐに実行されます。 |
例
開始したとき
[Spin the motor forward once, then reset.]
[Motor1 v] を [前進 v] へ (90) [度 v] 回転 ▶
[Motor1 v] を [後退 v] へ (90) [度 v] 回転 ▶
モーターを回転させて位置を合わせる#
モーターを所定の位置に回転させるスタックブロックは、モーターまたはモーターグループを特定の位置まで回転させます。
モーターまたはモーターグループの位置は、回転した角度を表し、度または回転数で測定されます。1回転は360度です。プロジェクトの開始時には、モーターの位置は0度に設定されます。モーターの位置は、モーター位置の設定ブロックを使用して設定することもできます。
位置情報は絶対値です。つまり、回転方向はモーターまたはモーター群の現在の位置によって決まります。
[Motor1 v] を位置 (90) [度 v] へ回転 ▶
パラメータ |
説明 |
|---|---|
モーター |
回転させるモーターまたはモーターグループ。デバイスウィンドウで設定されているモーターから選択してください。 |
位置 |
モーターまたはモーターグループが回転する位置の値。度は整数を使用します。回転数は整数または小数を使用できます。 |
ユニット |
位置の単位:度または回転。 |
そして待たない |
矢印(▶)を選択してブロックを展開すると、「待機しない」と表示されるので、スタック内の次のブロックがすぐに実行されます。 |
例
開始したとき
[Spin the motor, then put the motor at half of a rotation.]
[Motor1 v] を [前進 v] へ回転
(2) 秒待つ
[Motor1 v] を位置 (180) [度 v] へ回転 ▶
モーターを停止する#
モーター停止スタックブロックは、選択したモーターまたはモーターグループを即座に停止します。
[Motor1 v] を停止
パラメータ |
説明 |
|---|---|
モーター |
停止するモーターまたはモーターグループを選択します。デバイスウィンドウで設定されているモーターから選択してください。 |
例
開始したとき
[Stop the motor after 1 second.]
[Motor1 v] を [前進 v] へ回転
(1) 秒待つ
[Motor1 v] を停止
設定#
モーター位置を設定する#
モーターまたはモーターグループの位置は、回転した角度(度または回転数)で表されます。1回転は360度です。モーター位置設定スタックブロックは、モーターまたはモーターグループの現在の位置を新しい値に変更します。
例えば、モーターが180度まで回転している場合、位置を0度に設定すると、その位置は180度から0度にリセットされます。その後、モーターはその新しい値に基づいて回転できるようになります。
[Motor1 v] の位置を (0) [度 v] に設定
パラメータ |
説明 |
|---|---|
モーター |
位置を設定するモーターまたはモーターグループ。デバイスウィンドウで設定されているモーターから選択してください。 |
位置 |
モーターまたはモーターグループに設定する位置値。度は整数を使用します。回転数は整数または小数を使用できます。 |
ユニット |
位置の単位:度または回転。 |
例
開始したとき
[Spin the motor to the new 0 position.]
[Motor1 v] の位置を [180] [度 v] に設定
[Motor1 v] を位置 [0] [度 v] へ回転 ▶
モーター速度を設定する#
モーター速度設定スタックブロックは、モーターまたはモーターグループに回転速度を指示します。パーセンテージが高いほどモーターまたはモーターグループは速く回転し、パーセンテージが低いほどモーターまたはモーターグループは遅く回転します。
すべてのプロジェクトは、各モーターがデフォルトで50%の速度で回転する状態から始まります。
注: 速度を速くするとモーターの回転速度は速くなりますが、精度が低下する可能性があります。速度を遅くするとモーターの回転速度は遅くなりますが、精度は向上する可能性があります。
[Motor1 v] の速度を (50) [% v] に設定
パラメータ |
説明 |
|---|---|
モーター |
速度を設定するモーターまたはモーターグループ。デバイスウィンドウで設定されているモーターから選択してください。 |
速度 |
モーターまたはモーターグループが回転する速度。パーセントは0%から100%までの整数値を使用します。RPMは0から127までの整数値を使用します。 |
ユニット |
速度の単位:% または rpm(1分あたりの回転数)。 |
例
開始したとき
[Spin forward at the default velocity.]
[Motor1 v] を [前進 v] へ (90) [回転 v] 回転 ▶
[Spin slower.]
[Motor1 v] の速度を (20) [% v] に設定
[Motor1 v] を [後退 v] へ (90) [回転 v] 回転 ▶
[Spin faster.]
[Motor1 v] の速度を (100) [% v] に設定
[Motor1 v] を [前進 v] へ (90) [回転 v] 回転 ▶
モーター停止設定#
モーター停止設定スタックブロックは、モーターまたはモーターグループがブレーキ、惰性走行、または保持によってどのように停止するかを設定します。
[Motor1 v] の停止モードを [ブレーキ v] に設定
パラメータ |
説明 |
|---|---|
モーター |
停止動作を設定するモーターまたはモーターグループ。デバイスウィンドウで設定されているモーターから選択してください。 |
停止動作 |
モーターまたはモーター群の停止方法:
|
このブロックを使用しない場合、モーターは停止時にブレーキを使用します。
モーターの最大トルクを設定する#
トルクとは回転力のことです。モーターが回転する際に、どれだけの力で押したり引いたりできるかを示します。
set motor max torqueスタックブロックは、モーターまたはモーターグループが使用できる最大トルクを設定します。
パーセンテージを高くすると、モーターまたはモーター群がより強く押すことができ、例えば重い物を持ち上げる時などに便利です。パーセンテージを低くすると、モーターまたはモーター群が押せる力が制限されます。これは、モーターが詰まったり、可動範囲の限界に達したりした場合に、ロボットを保護するのに役立ちます。
すべてのプロジェクトは、各モーターのトルクがデフォルトで50%に設定された状態から始まります。
[Motor1 v] の最大トルクを [50] % に設定
パラメータ |
説明 |
|---|---|
モーター |
最大トルクを設定するモーターまたはモーターグループを選択します。デバイスウィンドウで設定されているモーターから選択してください。 |
トルク |
モーターまたはモーターグループが使用できる最大トルク(0%~100%)。 |
例
開始したとき
[Spin the motor at the default torque.]
[Motor1 v] を位置 (200) [度 v] へ回転 ▶
(0.5) 秒待つ
[Spin at a lower torque.]
[Motor1 v] の最大トルクを (20) % に設定
[Motor1 v] を位置 (0) [度 v] へ回転 ▶
(0.5) 秒待つ
[Spin at the maximum torque.]
[Motor1 v] の最大トルクを (100) % に設定
[Motor1 v] を位置 (200) [度 v] へ回転 ▶
モータータイムアウトを設定する#
set motor timeoutスタックブロックは、モーターまたはモーターグループが動作を完了するまでの試行時間を秒単位で設定します。モーターまたはモーターグループがその時間内に動作を完了できない場合、試行を停止してスタック内の次のブロックに進みます。これにより、モーターまたはモーターグループが動作中に停止してしまうのを防ぎます。
[Motor1 v] のタイムアウトを (1) 秒に設定
パラメータ |
説明 |
|---|---|
モーター |
タイムアウトを設定するモーターまたはモーターグループ。デバイスウィンドウで設定されているモーターから選択してください。 |
時間 |
運動器官または運動群が動作を完了しようと試みることができる秒数。整数または小数で指定できます。 |
例
開始したとき
[Spin the motor forward for 1 second, then reset it.]
[Motor1 v] のタイムアウトを (1) 秒に設定
[Motor1 v] を [前進 v] へ (5) [回転 v] 回転 ▶
[Motor1 v] を位置 (0) [度 v] へ回転 ▶
価値観#
モーターが完成しました#
モーター完了ブールブロックは、モーターまたはモーターグループの動作が完了したかどうかを報告します。これは、モーターまたはモーターグループの動作に基づいて、他の動作のタイミングを制御するために使用できます。
真 — モーターまたはモーター群の動作が完了しました。
誤り — 運動器または運動器群はまだ動いています。
このブロックは、and don’t wait パラメーターを持つ次のモーションブロックと連携して動作します: spin motor for および spin motor to position。
<[Motor1 v] 完了?>
パラメータ |
説明 |
|---|---|
モーター |
動作完了を報告するモーターまたはモーターグループを指定します。デバイスウィンドウで設定されているモーターから選択してください。 |
例
開始したとき
[Drive forward until the motor is done spinning.]
[Motor1 v] を [前進 v] へ (200) [度 v] 回転 ◀ 待たない
ずっと
もし <[Motor1 v] 完了?> なら
走行停止
でなければ
[前進 v] へ走行
モーターが回転している#
モーターが回転しているブールブロックは、モーターまたはモーターグループが回転しているかどうかを報告します。これは、モーターまたはモーターグループの動きに基づいて、他の動作のタイミングを制御するために使用できます。
真 — モーターまたはモーター群が回転している。
誤り — モーターまたはモーター群が回転していません。
このブロックは、and don’t wait パラメーターを持つ次のモーションブロックと連携して動作します: spin motor for および spin motor to position。
<[Motor1 v] 回転中?>
パラメータ |
説明 |
|---|---|
モーター |
回転しているかどうかを報告するモーターまたはモーターグループを指定します。デバイスウィンドウで設定されているモーターから選択してください。 |
例
開始したとき
[Move forward while the motor is spinning.]
[Motor1 v] を [前進 v] へ (200) [度 v] 回転 ◀ 待たない
<[Motor1 v] 回転中?> の間繰り返す
[前進 v] へ走行
終わり
走行停止
運動位置#
モーターまたはモーター群の位置は、回転した角度(度または回転数)で表されます。1回転は360度です。モーター位置レポーターブロックは、モーターまたはモーター群の現在の位置を報告します。
プロジェクト開始時、モーターの位置は0度に設定されます。モーターが正方向に1回転すると、位置は360度、つまり1回転となります。モーターが逆方向に回転すると、位置は負の値になります。
([Motor1 v] の位置([度 v]))
パラメータ |
説明 |
|---|---|
モーター |
位置情報を報告するモーターまたはモーターグループ。デバイスウィンドウで設定されているモーターから選択してください。 |
ユニット |
モーターの位置を報告する単位:度または回転数。 |
例
開始したとき
[Display the motor's position after spinning.]
([Motor1 v] の位置([度 v])) をコンソールに表示 ◀ カーソルを次の行へ移動する
[Motor1 v] を [前進 v] へ回転
(1) 秒待つ
([Motor1 v] の位置([度 v])) をコンソールに表示 ▶
[Motor1 v] を停止
モーター速度#
モーター速度レポーターブロックは、モーターまたはモーターグループが回転している速度を、-100%から100%までのパーセンテージ、または-127から127までの毎分回転数(rpm)で報告します。
([Motor1 v] の速度([% v]))
パラメータ |
説明 |
|---|---|
モーター |
速度を報告するモーターまたはモーターグループ。デバイスウィンドウで設定されているモーターから選択してください。 |
ユニット |
モーター速度を報告する単位は、% または rpm (1分あたりの回転数) です。 |
例
開始したとき
[Display the motor's velocity from spinning.]
([Motor1 v] の速度([rpm v])) をコンソールに表示 ◀ カーソルを次の行へ移動する
[Motor1 v] を [前進 v] へ回転
(1) 秒待つ
([Motor1 v] の速度([rpm v])) をコンソールに表示 ▶
[Motor1 v] を停止
モーター電流#
モーター電流レポーターブロックは、選択したモーターまたはモーターグループが使用している電流値を、0.0~1.2Aのアンペア単位で報告します。電流とは、モーターまたはモーターグループを流れる電気量のことです。
電流値が高いということは、モーターまたはモーター群がより多くの電流を使用していることを意味します。これは、モーターまたはモーター群が重い物を持ち上げているとき、物体を押しているとき、または動かなくなったときに動作しようとしているときに発生する可能性があります。
これは、動作中にモーターまたはモーター群が負荷がかかっていないかを確認するために使用できます。電流が高い状態が続くと、モーターが過熱したり、電力効率が低下したりする可能性があります。
([Motor1 v] の電流([amps v]))
パラメータ |
説明 |
|---|---|
モーター |
電流値を報告するモーターまたはモーターグループを指定します。デバイスウィンドウで設定されているモーターから選択してください。 |
ユニット |
電流の単位:アンペア。 |
例
開始したとき
[Display the motor's current from spinning.]
コンソールの表示精度を [0.01 v] に設定
([Motor1 v] の電流([amps v])) をコンソールに表示 ◀ カーソルを次の行へ移動する
[Motor1 v] を [前進 v] へ回転
(1) 秒待つ
([Motor1 v] の電流([amps v])) をコンソールに表示 ▶
[Motor1 v] を停止