運動#
介紹#
馬達控制機器人各部件的運動。馬達可以用來抬起機械手臂、轉動機械爪、旋轉車輪或移動機器人的其他部件。兩個馬達可以協同工作,組成一個驅動系統,從而驅動整個機器人移動和旋轉。
每個馬達都在“設備”視窗中進行配置。根據建造版本不同,馬達的名稱和方向可能會有所變化。例如,Competition Advanced 2.0 版本中有一個名為 ArmMotor 的電機,其方向為 向上 和 向下。自訂機器人可能會使用不同的馬達名稱或方向。
預設情況下,「正轉」會使馬達逆時針旋轉,而「反轉」會使馬達順時針旋轉。如果在「設備」視窗中將馬達設定為反轉,則正反轉方向將會互換。
馬達編程的方法有很多種。以下是所有運動控制模組的清單:
操作-停止並旋轉馬達。
spin motor — 使馬達正轉或反轉永不停息。
spin motor for — 使馬達旋轉指定的距離。
旋轉馬達到位置 — 將馬達旋轉到指定位置。
停止馬達 — 停止馬達旋轉。
設定 — 調整馬達設定。
設定馬達位置 — 將馬達的目前位置變更為新值。
設定馬達速度 — 告訴馬達旋轉的速度。
設定馬達停止 — 設定馬達停止運動的方式:透過煞車、滑行或保持。
設定馬達最大扭力 — 設定馬達在旋轉時允許的最大推力。
設定馬達逾時 — 設定馬達嘗試完成一次動作的秒數。
數值 — 檢查馬達狀態。
行動#
旋轉馬達#
旋轉馬達 模組可以使馬達持續正轉或反轉。馬達將一直旋轉,直到收到其他指令,例如改變旋轉方向或停止。
旋轉 [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:
|
例如,如果使用 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]