傳動系統#

介紹#

VEX IQ(第二代)機器人使用傳動系統來驅動和轉向。傳動系統由馬達和輪子組成,它們協同工作以移動機器人。

A configured drivetrain can use a connected Gyro Sensor, the Brain’s built-in Inertial Sensor, or no sensor. When a sensor is used, the drivetrain uses it to help the robot move and turn precisely. At the start of each project, the drivetrain calibrates the sensor automatically. Keep the robot still for about 2 seconds during calibration, so the robot can move and turn correctly.

傳動系統程式設計方式有很多種。以下是所有傳動系統模組的清單:

動作-移動和轉向機器人。

  • drive — 使機器人無限向前或向後移動。

  • 驅動 — 使機器人向前或向後移動指定的距離。

  • turn — 使機器人永遠向左或向右轉。

  • turn for — 使機器人向左或向右旋轉指定的角度數。

  • 轉向航向 — 將機器人轉向 -359 度到 359 度之間的特定航向。機器人將沿著最短路徑轉向以達到目標航向。

  • 轉向旋轉 — 將機器人轉向指定的旋轉方向。

  • 停止駕駛 — 停止機器人的移動。

設定 — 調整傳動系統設定。

數值 — 檢查移動狀態。

行動#

駕駛#

驅動 模組使機器人能夠無限向前或向後移動。機器人將持續移動,直到收到其他指令,例如轉向或停止。

行駛 [前方 v]

參數

描述

方向

機器人移動方向:前進或後退。

例子

當開始時
[Drive forward, then stop.]
行駛 [前方 v]
等待 (2) 秒
停止行駛

驅動#

驅動堆疊模組控制機器人前進或後退一段特定距離。程式會等待機器人完成移動後,才會執行堆疊中的下一個模組。

行駛 [前方 v] (200) [mm v] ▶

參數

描述

方向

機器人移動方向:前進或後退。

距離

機器人行駛的距離。可以是整數,也可以是小數。

單元

距離單位:mm(毫米)或英吋。

不要等待

選擇箭頭(▶)展開程式碼區塊,顯示“不要等待”,這樣堆疊中的下一個程式碼區塊就會立即運作。

例子

當開始時
[Drive backward 500 mm (millimeters).]
行駛 [反向 v] (500) [mm v] ▶

轉動#

轉向 積木塊會讓機器人無限向左或向右轉向。機器人會一直轉向,直到收到其他動作指令,例如行駛或停止。

向 [右 v] 轉

參數

描述

方向

機器人轉向的方向:向左或向右。

例子

當開始時
[Turn right, then stop.]
向 [右 v] 轉
等待 (2) 秒
停止行駛

轉向#

「轉向」堆疊模組會使機器人向左或向右旋轉指定的角度。旋轉角度是相對於機器人的當前位置而言的。程式會等待機器人完成旋轉後,才會執行堆疊中的下一個模組。

向 [右 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度,它會向右轉兩次。如果你再將其旋轉360度,它會向左轉一次,因為360小於720。

轉至旋轉 (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(每分鐘轉數)的值範圍為 0 到 120。

單元

計量單位:% 或 rpm(每分鐘轉數)。

例子

當開始時
[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) 的值範圍為 0 到 120。

單元

計量單位:% 或 rpm(每分鐘轉數)。

例子

當開始時
[Turn at default velocity.]
向 [右 v] 轉 (100) 度 ▶
等待 (1) 秒
[Turn slower.]
設定轉向速度為 (20) [% v]
向 [右 v] 轉 (100) 度 ▶
等待 (1) 秒
[Turn faster.]
設定轉向速度為 (100) [% v]
向 [右 v] 轉 (100) 度 ▶
等待 (1) 秒

設定驅動停止#

設定驅動停止堆疊塊設定機器人停止移動的方式:透過煞車、滑行或保持。

設定行駛停止方式為 [剎車 v]

參數

描述

停止行為

How the robot will stop:

  • brake — Stops immediately.
  • coast — Slows to a stop.
  • hold — Stops immediately and holds the wheels’ position.

如果不使用此模組,機器人停止時將使用煞車。

例子

當開始時
[Drive forward and coast to a stop.]
設定行駛速度為 (100) [% v]
設定行駛停止方式為 [滑行 v]
行駛 [前方 v]
等待 (2) 秒
停止行駛

設定驅動超時#

設定驅動超時 程式碼區塊用於設定機器人嘗試完成一次動作的秒數。如果機器人無法在規定時間內完成,它將停止嘗試並執行程式碼區塊中的下一個。這樣可以防止機器人卡在某個動作上。

設定行駛超時為 (1) 秒

參數

描述

時間

機器人嘗試完成一次動作的秒數。該值可以是整數或小數。

例子

當開始時
[Drive forward for 1 second, then turn.]
設定行駛超時為 (1) 秒
行駛 [前方 v] (25) [英吋 v] ▶
向 [右 v] 轉 (90) 度 ▶

設定驅動航向#

航向角是指機器人朝向的方向,以度為單位。 設定驅動航向堆疊區塊會將機器人的目前航向角變更為新的航向角值。

例如,如果機器人轉向右側,將航向設定為 0 度,則該右側位置將成為新的 0 度航向。然後,機器人可以根據新的航向轉向其他位置。

設定行駛航向為 (0) 度

參數

描述

標題

要設定的機器人航向角值,單位為度。該值可以是整數,也可以是 0 到 359 之間的十進位數。

例子

當開始時
[Turn to the left.]
設定行駛航向為 (90) 度
轉向航向 (0) 度 ▶

設定驅動旋轉#

旋轉角度是指機器人轉動的程度,以度為單位。在專案開始時,旋轉角度值設定為 0 度。 設定驅動旋轉角度 程式碼區塊會將機器人的當前旋轉角度變更為新值。

例如,如果機器人向右轉了兩圈,它的旋轉角度將為 720 度。將旋轉角度設為 0 度會將旋轉角度從 720 度重設為 0 度。然後,機器人可以根據這個新的旋轉角度進行旋轉。

設定行駛旋轉為 (0) 度

參數

描述

旋轉

機器人旋轉角度的設定值,單位為度數。可以是整數或小數。

例子

當開始時
[Spin counterclockwise two times.]
設定行駛旋轉為 (720) 度
轉至旋轉 (0) 度 ▶

價值觀#

駕駛已完成#

「驅動完成」布林模組用於報告機器人是否已停止移動。這可用於根據機器人的移動狀態來控制其他行為的執行時間。

  • 正確 — 機器人已停止移動。

  • 錯誤 — 機器人仍在移動。

此模組與下列具有and don’t wait參數的傳動系統模組搭配使用: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參數的傳動系統模組搭配使用: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 度。 「驅動旋轉」報告模組會報告機器人目前的旋轉角度。

向右轉會增加旋轉角度,向左轉會減少旋轉角度。例如,向右轉兩圈,旋轉角度將達到 720 度。

(行駛旋轉(度))

參數

描述

此程式碼區塊沒有參數。

例子

當開始時
[Display the rotation after turning.]
向 [右 v] 轉 (450) 度 ▶
在螢幕上列印 (行駛旋轉(度)) ◀ 並將游標移至下一列

驅動速度#

驅動速度報告模組會報告機器人的行駛速度。

它可以以百分比(-100% 到 100%)或轉速(rpm,即每分鐘轉速,-127 到 127)的形式報告速度。正值表示機器人向前行駛,負值表示機器人向後行駛。

(行駛速度([% v]))

參數

描述

單元

報告驅動速度的單位為:%(從 -100% 到 100%)或 rpm(每分鐘轉數,從 -127 到 127)。

例子

當開始時
[Display the velocity as the robot is moving.]
行駛 [前方 v]
等待 (1) 秒
在螢幕上列印 (行駛速度([% v])) ◀ 並將游標移至下一列
停止行駛

驅動電流#

驅動電流報告模組報告驅動系統正在使用的電流大小,以安培(A)為單位,範圍從 0.0 到 1.2 A。電流是指流經驅動系統的電量。

電流值越高,代表驅動系統消耗的電流越大。這種情況可能發生在機器人推擠物體或卡住後試圖移動時。

這可以用來檢查傳動系統在運動過程中是否運作吃力。如果電流持續偏高,傳動系統可能會發熱或動力利用效率降低。

(行駛電流([amps v]))

參數

描述

此程式碼區塊沒有參數。

例子

當開始時
[Display the current as the robot is moving.]
在螢幕上設定列印精度為 [0.01 v]
行駛 [前方 v]
等待 (1) 秒
在螢幕上列印 (行駛電流([amps v])) ◀ 並將游標移至下一列
停止行駛