パワートレイン#
導入#
VEX IQ(第2世代)ロボットは、駆動系を使って走行および旋回します。駆動系は、モーターと車輪が連携してロボットを動かす仕組みです。
構成済みのドライブトレインは、接続されたジャイロセンサー、Brainに内蔵された慣性センサー、またはセンサーなしのいずれかを使用できます。センサーを使用する場合、ドライブトレインはそれを使用してロボットの正確な移動と旋回を支援します。各プロジェクトの開始時に、ドライブトレインはセンサーを自動的にキャリブレーションします。キャリブレーション中はロボットを約2秒間静止させて、ロボットが正しく移動および旋回できるようにしてください。
ドライブトレインをコーディングする方法は数多くあります。以下に、ドライブトレインのすべてのブロックの一覧を示します。
動作 — ロボットを移動および旋回させる。
drive — ロボットを永久に前進または後退させます。
drive for — ロボットを特定の距離だけ前進または後退させます。
turn — ロボットを永久に左または右に回転させます。
turn for — ロボットを特定の角度だけ左または右に回転させます。
方向転換 — ロボットを-359度から359度までの特定の方向に向けて旋回させます。ロボットは目標の方向に到達するために最短の方向に旋回します。
回転方向へ — ロボットを特定の回転方向に向けます。
運転停止 — ロボットの動きを停止します。
設定 — 駆動系設定を調整します。
走行速度を設定 — ロボットに走行速度を指示します。
旋回速度を設定 — ロボットに旋回速度を指示します。
set drive stopping — ロボットがどのように停止するかを指定します: ブレーキ、惰性走行、または保持。
set drive timeout — ロボットが動作を完了しようとする秒数を設定します。
駆動方向設定 — ロボットの現在の進行方向を新しい進行方向に変更します。
駆動回転の設定 — ロボットの現在の回転を新しい回転に変更します。
値 — 移動状況を確認してください。
走行完了 — ロボットの移動が完了したかどうかを報告します。
ドライブが動いている — ロボットが動いているかどうかを報告します。
駆動方向 — ロボットの現在の進行方向を0度から359度の範囲で報告します。
駆動回転 — ロボットの現在の回転を報告します。
drive velocity — ロボットの走行速度を報告します。
駆動電流 — 駆動系が使用している電流の量を示します。
行動#
ドライブ#
駆動スタックブロックは、ロボットを永久に前進または後退させます。ロボットは、旋回や停止などの別の動作が与えられるまで動き続けます。
[前進 v] へ走行
パラメータ |
説明 |
|---|---|
方向 |
ロボットの移動方向:前進または後退。 |
例
開始したとき
[Drive forward, then stop.]
[前進 v] へ走行
(2) 秒待つ
走行停止
ドライブ#
駆動スタックブロックは、ロボットを特定の距離だけ前進または後退させます。プロジェクトは、ロボットの移動が完了するまで待機し、その後スタック内の次のブロックが実行されます。
[前進 v] へ (200) [mm v] 走行 ▶
パラメータ |
説明 |
|---|---|
方向 |
ロボットの移動方向:前進または後退。 |
距離 |
ロボットが走行する距離。整数または小数で指定できます。 |
ユニット |
距離の単位:mm(ミリメートル)またはインチ。 |
そして待たない |
矢印(▶)を選択してブロックを展開すると、「待機しない」と表示されるので、スタック内の次のブロックがすぐに実行されます。 |
例
開始したとき
[Drive backward 500 mm (millimeters).]
[後退 v] へ (500) [mm v] 走行 ▶
振り向く#
turnスタックブロックは、ロボットを左右に永久に旋回させます。ロボットは、走行や停止などの別の動作が与えられるまで旋回を続けます。
[右 v] へ旋回
パラメータ |
説明 |
|---|---|
方向 |
ロボットが旋回する方向:左または右。 |
例
開始したとき
[Turn right, then stop.]
[右 v] へ旋回
(2) 秒待つ
走行停止
ターン#
turn forスタックブロックは、ロボットを指定された角度だけ左右に回転させます。回転角度はロボットの現在位置を基準としています。プロジェクトは、ロボットの回転が完了するまで待機し、その後スタック内の次のブロックが実行されます。
[右 v] へ (90) 度旋回 ▶
パラメータ |
説明 |
|---|---|
方向 |
ロボットが旋回する方向:左または右。 |
角度 |
ロボットが回転する角度(度)。整数または小数で指定できます。 |
そして待たない |
矢印(▶)を選択してブロックを展開すると、「待機しない」と表示されるので、スタック内の次のブロックがすぐに実行されます。 |
例
開始したとき
[Turn left, then turn around to the right.]
[左 v] へ (90) 度旋回 ▶
[右 v] へ (180) 度旋回 ▶
見出しに目を向ける#
方位とは、ロボットが向いている方向のことで、度数で表されます。方位へ旋回スタックブロックは、ロボットを-359度から359度までの特定の方位に向けます。ロボットは、目標の方位に到達するために最短の方向へ旋回します。
ロボットの初期進行方向は0度です。
プロジェクトでは、ロボットの旋回が完了するまで待機し、その後スタック内の次のブロックが実行されます。
ヘディング (90) 度へ旋回 ▶
パラメータ |
説明 |
|---|---|
見出し |
ロボットが向くべき方向(度数)。整数または-359から359までの小数を指定できます。 |
そして待たない |
矢印(▶)を選択してブロックを展開すると、「待機しない」と表示されるので、スタック内の次のブロックがすぐに実行されます。 |
例
開始したとき
[Turn to face the cardinal directions.]
ヘディング (90) 度へ旋回 ▶
(2) 秒待つ
ヘディング (180) 度へ旋回 ▶
(2) 秒待つ
ヘディング (270) 度へ旋回 ▶
(2) 秒待つ
ヘディング (0) 度へ旋回 ▶
(2) 秒待つ
回転する#
回転方向転換スタックブロックは、ロボットを特定の回転方向に向けます。
回転とは、ロボットがどれだけ回転したかを示すもので、度数で表されます。プロジェクトの開始時には、回転値は0度に設定されています。回転は、set drive rotation ブロックを使用して設定することもできます。
回転値は絶対値です。つまり、旋回方向はロボットの現在の回転角度によって決まります。右に旋回すると回転角度が大きくなり、左に旋回すると回転角度が小さくなります。
例えば、ロボットが0度の位置から始まり、720度回転させると、右に2回転します。次に360度回転させると、360度は720度より小さいため、左に1回転します。
回転 (90) 度へ旋回 ▶
パラメータ |
説明 |
|---|---|
回転 |
ロボットが回転する角度(度数)。整数または小数を指定できます。 |
そして待たない |
矢印(▶)を選択してブロックを展開すると、「待機しない」と表示されるので、スタック内の次のブロックがすぐに実行されます。 |
例
開始したとき
[Turn left, then spin in a circle clockwise and face right.]
回転 (-90) 度へ旋回 ▶
(2) 秒待つ
回転 (450) 度へ旋回 ▶
運転をやめる#
「運転停止」スタックブロックは、ロボットの動きを停止させます。
走行停止
パラメータ |
説明 |
|---|---|
このブロックにはパラメータがありません。 |
例
開始したとき
[Drive forward, then stop.]
[前進 v] へ走行
[4] 秒待つ
走行停止
設定#
ドライブ速度を設定する#
走行速度設定スタックブロックは、ロボットに走行速度を指示します。速度を高く設定するとロボットは速く走行し、速度を低く設定するとロボットは遅く走行します。
すべてのプロジェクトは、ロボットがデフォルトで50%の速度で走行するところから始まります。
注: 速度を速くするとロボットの走行速度は速くなりますが、精度が低下する可能性があります。速度を遅くするとロボットの走行速度は遅くなりますが、精度は向上する可能性があります。
走行速度を (50) [% v] に設定
パラメータ |
説明 |
|---|---|
速度 |
%を使用する場合、0%から100%までの速度で走行します。rpm(1分あたりの回転数)は0から120までの値を使用します。 |
ユニット |
測定単位:% または rpm(1分あたりの回転数)。 |
例
開始したとき
[Drive forward at the default velocity.]
[前進 v] へ (100) [mm v] 走行 ▶
(1) 秒待つ
[Move slower.]
走行速度を (20) [% v] に設定
[前進 v] へ (100) [mm v] 走行 ▶
(1) 秒待つ
[Move faster.]
走行速度を (100) [% v] に設定
[前進 v] へ (100) [mm v] 走行 ▶
(1) 秒待つ
旋回速度を設定#
旋回速度設定スタックブロックは、ロボットがどれくらいの速さで旋回するかを指示します。速度を高く設定するとロボットは速く旋回し、速度を低く設定するとロボットは遅く旋回します。
すべてのプロジェクトは、ロボットがデフォルトで50%の速度で旋回するところから始まります。
注: 速度が速いほどロボットの旋回速度は速くなりますが、精度が低下する可能性があります。速度が遅いほどロボットの旋回速度は遅くなりますが、精度は向上する可能性があります。
旋回速度を (50) [% v] に設定
パラメータ |
説明 |
|---|---|
速度 |
%を使用する場合、回転速度は0%から100%までです。rpm(1分あたりの回転数)は0から120までの値を使用します。 |
ユニット |
測定単位:% または rpm(1分あたりの回転数)。 |
例
開始したとき
[Turn at default velocity.]
[右 v] へ (100) 度旋回 ▶
(1) 秒待つ
[Turn slower.]
旋回速度を (20) [% v] に設定
[右 v] へ (100) 度旋回 ▶
(1) 秒待つ
[Turn faster.]
旋回速度を (100) [% v] に設定
[右 v] へ (100) 度旋回 ▶
(1) 秒待つ
ドライブ停止を設定する#
set drive stoppingスタックブロックは、ロボットがどのように停止するか(ブレーキ、惰性走行、または保持)を設定します。
走行停止モードを [ブレーキ v] に設定
パラメータ |
説明 |
|---|---|
停止動作 |
ロボットの停止方法:
|
このブロックを使用しない場合、ロボットは停止時にブレーキを使用します。
例
開始したとき
[Drive forward and coast to a stop.]
走行速度を (100) [% v] に設定
走行停止モードを [コースト v] に設定
[前進 v] へ走行
(2) 秒待つ
走行停止
ドライブのタイムアウトを設定する#
set drive timeoutスタックブロックは、ロボットが動作を完了するまでの試行時間を秒単位で設定します。ロボットがその時間内に動作を完了できない場合、試行を停止してスタック内の次のブロックに進みます。これにより、ロボットが動作中に停止してしまうのを防ぎます。
走行タイムアウトを (1) 秒に設定
パラメータ |
説明 |
|---|---|
時間 |
ロボットが動作を完了するために試行できる秒数。整数または小数を指定できます。 |
例
開始したとき
[Drive forward for 1 second, then turn.]
走行タイムアウトを (1) 秒に設定
[前進 v] へ (25) [インチ v] 走行 ▶
[右 v] へ (90) 度旋回 ▶
ドライブヘディングを設定する#
方位とは、ロボットが向いている方向のことで、度数で表されます。set drive headingスタックブロックは、ロボットの現在の方位を新しい方位値に変更します。
例えば、ロボットが右を向いた場合、方位を0度に設定すると、その右向きの位置が新たな0度になります。その後、ロボットはその新たな方位に基づいて他の位置に旋回することができます。
走行ヘディングを (0) 度に設定
パラメータ |
説明 |
|---|---|
見出し |
ロボットに設定する方位角の値(度数)。整数または0~359の小数を指定できます。 |
例
開始したとき
[Turn to the left.]
走行ヘディングを (90) 度に設定
ヘディング (0) 度へ旋回 ▶
ドライブの回転方向を設定します#
回転とは、ロボットがどれだけ回転したかを示すもので、度数で表されます。プロジェクトの開始時には、回転値は0度に設定されています。set drive rotationスタックブロックは、ロボットの現在の回転値を新しい値に変更します。
例えば、ロボットが右に2回転した場合、回転角度は720度になります。回転角度を0度に設定すると、720度から0度にリセットされます。その後、ロボットはその新しい値に基づいて回転することができます。
走行回転を (0) 度に設定
パラメータ |
説明 |
|---|---|
回転 |
ロボットに設定する回転角度(度数)。整数または小数を指定できます。 |
例
開始したとき
[Spin counterclockwise two times.]
走行回転を (720) 度に設定
回転 (0) 度へ旋回 ▶
価値観#
運転は終了しました#
走行完了ブール値ブロックは、ロボットの移動が完了したかどうかを報告します。これは、ロボットの動きに基づいて他の動作のタイミングを制御するために使用できます。
正解 — ロボットの移動が完了しました。
誤り — ロボットはまだ動いています。
このブロックは、and don’t wait パラメーターを持つ次の Drivetrain ブロックと連携して動作します: drive for、turn for、turn to heading、および turn to rotation。
<走行完了?>
パラメータ |
説明 |
|---|---|
このブロックにはパラメータがありません。 |
例
開始したとき
[Start spinning when the drive is complete.]
[前進 v] へ (200) [mm v] 走行 ◀ 待たない
ずっと
もし <走行完了?> なら
[右 v] へ (360) 度旋回 ▶
ブレーク
でなければ
スクリーンのカーソルを行 (1) 列 (1) に設定
[Still Moving...] をスクリーンに表示 ▶
(0.1) 秒待つ
スクリーンをクリア
ドライブが動いています#
駆動装置が動いているというブール値ブロックは、ロボットが動いているかどうかを報告します。これは、ロボットの動きに基づいて他の動作のタイミングを制御するために使用できます。
正解 — ロボットは動いています。
誤り — ロボットは動いていません。
このブロックは、and don’t wait パラメーターを持つ次の Drivetrain ブロックと連携して動作します: drive for、turn for、turn to heading、および turn to rotation。
<走行中?>
パラメータ |
説明 |
|---|---|
このブロックにはパラメータがありません。 |
例
開始したとき
[Print that the robot is moving while it is still driving.]
[前進 v] へ (200) [mm v] 走行 ◀ 待たない
<走行中?> の間繰り返す
スクリーンのカーソルを行 (1) 列 (1) に設定
[Still Moving...] をスクリーンに表示 ▶
(0.1) 秒待つ
スクリーンをクリア
終わり
スクリーンのカーソルを行 (1) 列 (1) に設定
[Done!] をスクリーンに表示 ▶
ドライブヘッジ#
方位とは、ロボットが向いている方向のことで、度数で表されます。ドライブ方位レポーターブロックは、ロボットの現在の方位を0度から359度の範囲で報告します。
ロボットの初期進行方向は0度です。
(走行ヘディング(度))
パラメータ |
説明 |
|---|---|
このブロックにはパラメータがありません。 |
例
開始したとき
[Display the heading after turning.]
[右 v] へ (450) 度旋回 ▶
(走行ヘディング(度)) をスクリーンに表示 ◀ カーソルを次の行へ移動する
駆動回転#
回転とは、ロボットがどれだけ回転したかを示すもので、単位は度です。プロジェクトの開始時には、回転値は0度に設定されます。ドライブ回転レポーターブロックは、ロボットの現在の回転角度を報告します。
右に回すと回転角度が大きくなり、左に回すと回転角度が小さくなります。例えば、右に2回転すると、720度の回転として表示されます。
(走行回転角(度))
パラメータ |
説明 |
|---|---|
このブロックにはパラメータがありません。 |
例
開始したとき
[Display the rotation after turning.]
[右 v] へ (450) 度旋回 ▶
(走行回転角(度)) をスクリーンに表示 ◀ カーソルを次の行へ移動する
駆動速度#
走行速度レポーターブロックは、ロボットがどれくらいの速さで走行しているかを報告します。
速度は、-100%から100%までのパーセンテージ、または-127から127までのrpm(毎分回転数)で報告できます。正の値はロボットが前進していることを意味し、負の値はロボットが後退していることを意味します。
(走行速度([% v]))
パラメータ |
説明 |
|---|---|
ユニット |
駆動速度を報告する単位は、%(-100%~100%)またはrpm(毎分回転数、-127~127)です。 |
例
開始したとき
[Display the velocity as the robot is moving.]
[前進 v] へ走行
(1) 秒待つ
(走行速度([% v])) をスクリーンに表示 ◀ カーソルを次の行へ移動する
走行停止
駆動電流#
駆動電流レポーターブロックは、駆動系が使用している電流値を0.0~1.2Aのアンペア(A)単位で報告します。電流とは、駆動系を流れる電気量のことです。
電流値が高いということは、駆動系がより多くの電流を使用していることを意味します。これは、ロボットが物体に押し付けられているときや、動けなくなったときに動かそうとしているときに発生する可能性があります。
これは、動作中に駆動系に負荷がかかっていないかを確認するために使用できます。電流値が高い状態が続くと、駆動系が過熱したり、電力効率が低下したりする可能性があります。
(走行電流([amps v]))
パラメータ |
説明 |
|---|---|
このブロックにはパラメータがありません。 |
例
開始したとき
[Display the current as the robot is moving.]
スクリーンの表示精度を [0.01 v] に設定
[前進 v] へ走行
(1) 秒待つ
(走行電流([amps v])) をスクリーンに表示 ◀ カーソルを次の行へ移動する
走行停止