運動#

介紹#

馬達控制機器人各部件的運動。馬達可以用來抬起機械手臂、轉動機械爪、旋轉車輪或移動機器人的其他部件。兩個馬達可以協同工作,組成一個驅動系統,從而驅動整個機器人移動和旋轉。

每個馬達都在“設備”視窗中進行配置。根據建造版本不同,馬達的名稱和方向可能會有所變化。例如,Competition Advanced 2.0 版本中有一個名為 ArmMotor 的電機,其方向為 向上 和 向下。自訂機器人可能會使用不同的馬達名稱或方向。

預設情況下,「正轉」會使馬達逆時針旋轉,而「反轉」會使馬達順時針旋轉。如果在「設備」視窗中將馬達設定為反轉,則正反轉方向將會互換。

VEX GO 電機,前進方向以加號表示,箭頭表示向左(或逆時針)旋轉。 VEX GO 馬達顯示反向,用減號和箭頭表示它向右(順時針)旋轉。

馬達編程的方法有很多種。以下是所有運動控制模組的清單:

操作-停止並旋轉馬達。

設定 — 調整馬達設定。

數值 — 檢查馬達狀態。

行動#

旋轉馬達#

旋轉馬達 模組可以使馬達持續正轉或反轉。馬達將一直旋轉,直到收到其他指令,例如改變旋轉方向或停止。

旋轉 [ArmMotor v] [上升 v]

參數

描述

引擎

要旋轉的馬達。請從“設備”視窗中配置的馬達中選擇。

方向

馬達旋轉方向。預設情況下,選項為正轉和反轉。旋轉方向的選擇可能因馬達配置而異。

例子

當開始時 :: hat events
[Build Used: Competition Advanced 2.0]
[Raise the ArmMotor, then stop.]
旋轉 [ArmMotor v] [上升 v]
等待 [1] 秒
停止 [ArmMotor v]

用於旋轉馬達#

「旋轉馬達」堆疊模組會使馬達旋轉一段特定距離。旋轉距離是相對於馬達目前位置的。程式會等待馬達旋轉完畢後,才會運作堆疊中的下一個模組。

旋轉 [ArmMotor v] [上升 v] [90] [度 v] ▶

參數

描述

引擎

要旋轉的馬達。請從“設備”視窗中配置的馬達中選擇。

方向

馬達旋轉方向。預設情況下,選項為正轉和反轉。旋轉方向的選擇可能因馬達配置而異。

距離

馬達旋轉的距離。 角度使用整數。 圈數可以使用整數或小數。

單元

距離單位:度或圈。

不要等待

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

例子

當開始時 :: hat events
[Build Used: Competition Advanced 2.0]
[Raise and lower the ArmMotor.]
旋轉 [ArmMotor v] [上升 v] [180] [度 v] ▶
等待 [1] 秒
旋轉 [ArmMotor v] [下降 v] [180] [度 v] ▶

旋轉馬達定位#

旋轉馬達定位 堆疊模組使馬達旋轉到特定位置。

馬達的位置是指它旋轉的距離,以度或圈數來衡量。一圈等於360度。在專案開始時,馬達位置設定為0度。也可以使用set motor position代碼塊來設定馬達位置。

位置值是絕對值。這意味著旋轉方向取決於馬達的當前位置。

旋轉 [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]

設定#

設定馬達位置#

馬達的位置是指它旋轉的距離,以度或圈數來衡量。一圈等於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] ▶

設定馬達停止#

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

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

參數

描述

引擎

要設定停止行為的馬達。請從“設備”視窗中配置的馬達中選擇。

停止行為

How the motor will stop:

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

例如,如果使用 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]

設定馬達最大扭矩#

扭矩是一種旋轉力。它表示馬達旋轉時能夠產生的推力或拉力的大小。

設定馬達最大扭力 模組設定馬達允許使用的最大扭力。

較高的百分比可以讓馬達輸出更大的功率,例如在舉起重物時。較低的百分比則會限制馬達的輸出功率。這有助於在馬達卡住或達到運動極限時保護機器人。

每個項目開始時,每個馬達的扭力預設為 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] ▶

設定馬達超時#

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

設定 [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 度。如果馬達正向旋轉一周,則位置為 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]