运动#
介绍#
电机控制机器人各部件的运动。电机可以用来抬起机械臂、转动机械爪、旋转车轮或移动机器人的其他部件。两个电机可以协同工作,组成一个驱动系统,从而驱动整个机器人移动和旋转。
每个电机都在“设备”窗口中进行配置。根据构建版本不同,电机的名称和方向可能会有所变化。例如,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% 的速度旋转。
**注意:**更高的速度会使电机转速更快,但精度可能会降低。更低的速度会使电机转速更慢,但精度可能会更高。
set [ArmMotor v] velocity to [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.]
set [ArmMotor v] velocity to [20] %
[ArmMotor v] [向下 v] 转 [180] [度 v] ▶
等待 [1] 秒
[Move fast.]
set [ArmMotor v] velocity to [100] %
[ArmMotor v] [向上 v] 转 [180] [度 v] ▶
设置电机停止#
设置电机停止 堆栈块设置电机停止运动的方式:通过制动、滑行或保持。
设定 [ArmMotor v] 停止模式为 [刹车 v]
参数 |
描述 |
|---|---|
发动机 |
要设置停止行为的电机。请从“设备”窗口中配置的电机中选择。 |
停止行为 |
电机停止方式:
|
例如,如果使用 Competition Advanced 2.0 版本并将 ArmMotor 设置为保持模式,则电机将保持机械臂当前位置,直到发生下一次机械臂运动。这意味着,如果电机在机械臂抬起时停止,电机将克服重力使机械臂保持在空中。
如果未使用此模块,电机在停止时将使用制动器。
例子
当开始 :: hat events
[Build Used: Competition Advanced 2.0]
[Move the ArmMotor, then coast to a stop.]
set [ArmMotor v] velocity to [20] %
设定 [ArmMotor v] 停止模式为 [滑行 v]
[ArmMotor v] [向上 v] 转
等待 [1] 秒
[ArmMotor v] 停止
设置电机最大扭矩#
扭矩是一种旋转力。它表示电机旋转时能够产生的推力或拉力的大小。
设置电机最大扭矩 模块设置电机允许使用的最大扭矩。
较高的百分比可以让电机输出更大的功率,例如在举起重物时。较低的百分比则会限制电机的输出功率。这有助于在电机卡住或达到运动极限时保护机器人。
每个项目开始时,每个电机的扭矩默认设置为 50%。
set [ArmMotor v] max torque to (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]
否则
设定辨色仪灯 [on 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] 正在转?> 那么
设定辨色仪灯 [on 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] 停止