汽车和汽车集团#
介绍#
电机和电机组控制机器人各部件的运动。一个电机控制一个已配置的智能电机,而一个电机组则控制两个已配置的智能电机,使它们同步运动。电机和电机组可用于抬起机械臂、转动机械爪、旋转车轮或移动机器人的其他部件。两个电机可以协同工作,组成一个驱动系统,从而驱动整个机器人运动和转向。
每个电机都在“设备”窗口中进行配置。根据构建版本,电机的名称和方向可能会有所不同。自定义机器人可能会使用不同的电机名称或方向。
默认情况下,“正转”会使电机逆时针旋转,“反转”会使电机顺时针旋转。如果在“设备”窗口中将电机设置为反转,则旋转方向将会互换。
电机和电机组的编码方式有很多种。以下是所有电机和电机组代码块的列表:
操作——停止和旋转电机及电机组。
spin motor — 使电机或电机组无限正转或反转。
spin motor for — 使电机或电机组旋转指定的距离。
旋转电机到位置 — 将电机或电机组旋转到特定位置。
停止电机 — 停止电机或电机组旋转。
设置 — 调整电机和电机组的设置。
设置电机位置 — 将电机或电机组的当前位置更改为新值。
设置电机速度 — 告诉电机或电机组旋转的速度。
设置电机停止 — 设置电机或电机组停止运动的方式:通过制动、滑行或保持。
设置电机最大扭矩 — 设置电机或电机组在旋转时允许施加的最大扭矩。
设置电机超时 — 设置电机或电机组尝试完成运动的秒数。
数值 — 检查电机和电机组状态。
行动#
旋转马达#
旋转电机 模块可以使电机或电机组持续正转或反转。电机或电机组会一直旋转,直到收到其他指令,例如改变旋转方向或停止。
spin [Motor1 v] [forward v]
参数 |
描述 |
|---|---|
发动机 |
要旋转的电机或电机组。请从“设备”窗口中配置的电机中选择。 |
方向 |
电机或电机组的旋转方向。默认情况下,选项为正转和反转。旋转方向的选择可能因电机配置而异。 |
例子
when started
[Spin the motor forward, then stop.]
spin [Motor1 v] [forward v]
wait (1) seconds
stop [Motor1 v]
用于旋转马达#
“旋转电机”堆栈模块会使电机或电机组旋转指定的距离。旋转距离是相对于电机或电机组的当前位置而言的。程序会等待电机或电机组旋转完毕后,才会运行堆栈中的下一个模块。
spin [Motor1 v] [forward v] for (90) [degrees v] ▶
参数 |
描述 |
|---|---|
发动机 |
要旋转的电机或电机组。请从“设备”窗口中配置的电机中选择。 |
方向 |
电机或电机组的旋转方向。默认情况下,选项为正转和反转。旋转方向的选择可能因电机配置而异。 |
距离 |
电机或电机组的旋转距离。度数使用整数。圈数可以使用整数或小数。 |
单元 |
距离单位:度或圈。 |
不要等待 |
选择箭头(▶)展开代码块,显示“不要等待”,这样堆栈中的下一个代码块就会立即运行。 |
例子
when started
[Spin the motor forward once, then reset.]
spin [Motor1 v] [forward v] for (90) [degrees v] ▶
spin [Motor1 v] [reverse v] for (90) [degrees v] ▶
旋转电机定位#
旋转电机定位 堆栈块将电机或电机组旋转到特定位置。
电机或电机组的位置是指其旋转的距离,以度或圈数衡量。一圈等于360度。在项目开始时,电机位置设置为0度。也可以使用set motor position代码块来设置电机位置。
位置值是绝对值。这意味着旋转方向取决于电机或电机组的当前位置。
spin [Motor1 v] to position (90) [degrees v] ▶
参数 |
描述 |
|---|---|
发动机 |
要旋转的电机或电机组。请从“设备”窗口中配置的电机中选择。 |
位置 |
电机或电机组将旋转到的位置值。角度使用整数。圈数可以使用整数或小数。 |
单元 |
位置单位:度或圈。 |
不要等待 |
选择箭头(▶)展开代码块,显示“不要等待”,这样堆栈中的下一个代码块就会立即运行。 |
例子
when started
[Spin the motor, then put the motor at half of a rotation.]
spin [Motor1 v] [forward v]
wait (2) seconds
spin [Motor1 v] to position (180) [degrees v] ▶
停止电机#
停止电机 堆栈块立即停止选定的电机或电机组。
stop [Motor1 v]
参数 |
描述 |
|---|---|
发动机 |
要停止的电机或电机组。请从“设备”窗口中配置的电机中选择。 |
例子
when started
[Stop the motor after 1 second.]
spin [Motor1 v] [forward v]
wait (1) seconds
stop [Motor1 v]
设置#
设置电机位置#
电机或电机组的位置是指其旋转的距离,以度或圈数衡量。一圈等于 360 度。设置电机位置堆栈块会将电机或电机组的当前位置更改为新值。
例如,如果电机旋转了 180 度,将其位置设置为 0 度会将该位置从 180 度重置为 0 度。然后,电机可以根据这个新值旋转到其他位置。
set [Motor1 v] position to (0) [degrees v]
参数 |
描述 |
|---|---|
发动机 |
要设置位置的电机或电机组。请从“设备”窗口中配置的电机中进行选择。 |
位置 |
要设置的电机或电机组的位置值。角度使用整数。圈数可以使用整数或小数。 |
单元 |
位置单位:度或圈。 |
例子
when started
[Spin the motor to the new 0 position.]
set [Motor1 v] position to [180] [degrees v]
spin [Motor1 v] to position [0] [degrees v] ▶
设定电机速度#
设置电机转速 代码块用于告诉电机或电机组的转速。百分比越高,电机或电机组的转速越快;百分比越低,电机或电机组的转速越慢。
每个项目开始时,每个电机默认以 50% 的速度旋转。
**注意:**更高的速度会使电机转速更快,但精度可能会降低。更低的速度会使电机转速更慢,但精度可能会更高。
set [Motor1 v] velocity to (50) [% v]
参数 |
描述 |
|---|---|
发动机 |
要设置速度的电机或电机组。请从“设备”窗口中配置的电机中进行选择。 |
速度 |
电机或电机组的旋转速度。百分比使用 0% 到 100% 的整数。RPM使用 0 到 127 的整数。 |
单元 |
速度单位:% 或 rpm(每分钟转数)。 |
例子
when started
[Spin forward at the default velocity.]
spin [Motor1 v] [forward v] for (90) [turns v] ▶
[Spin slower.]
set [Motor1 v] velocity to (20) [% v]
spin [Motor1 v] [reverse v] for (90) [turns v] ▶
[Spin faster.]
set [Motor1 v] velocity to (100) [% v]
spin [Motor1 v] [forward v] for (90) [turns v] ▶
设置电机停止#
设置电机停止 堆栈块设置电机或电机组停止运动的方式:通过制动、滑行或保持。
set [Motor1 v] stopping to [brake v]
参数 |
描述 |
|---|---|
发动机 |
要设置停止行为的电机或电机组。请从“设备”窗口中配置的电机中进行选择。 |
停止行为 |
电机或电机组的停止方式:
|
如果未使用此模块,电机在停止时将使用制动器。
设置电机最大扭矩#
扭矩是一种旋转力。它表示电机旋转时能够产生的推力或拉力的大小。
设置电机最大扭矩 堆叠块设置电机或电机组可以使用的最大扭矩。
较高的百分比可以让电机或电机组施加更大的推力,例如在举起重物时。较低的百分比则会限制电机或电机组的推力。这有助于在电机卡住或达到其运动极限时保护机器人。
每个项目开始时,每个电机的扭矩默认设置为 50%。
set [Motor1 v] max torque to [50] %
参数 |
描述 |
|---|---|
发动机 |
要设置最大扭矩的电机或电机组。请从“设备”窗口中配置的电机中选择。 |
扭矩 |
电机或电机组可使用的最大扭矩,范围从 0% 到 100%。 |
例子
when started
[Spin the motor at the default torque.]
spin [Motor1 v] to position (200) [degrees v] ▶
wait (0.5) seconds
[Spin at a lower torque.]
set [Motor1 v] max torque to (20)%
spin [Motor1 v] to position (0) [degrees v] ▶
wait (0.5) seconds
[Spin at the maximum torque.]
set [Motor1 v] max torque to (100)%
spin [Motor1 v] to position (200) [degrees v] ▶
设置电机超时#
设置电机超时 代码块用于设置电机或电机组尝试完成一次运动的秒数。如果电机或电机组无法在该时间内完成,它将停止尝试并执行代码块堆栈中的下一个代码块。这可以防止电机或电机组卡在某个运动中。
set [Motor1 v] timeout to (1) seconds
参数 |
描述 |
|---|---|
发动机 |
要设置超时时间的电机或电机组。请从“设备”窗口中配置的电机中选择。 |
时间 |
电机或电机组尝试完成一次动作的秒数。该值可以是整数或小数。 |
例子
when started
[Spin the motor forward for 1 second, then reset it.]
set [Motor1 v] timeout to (1) seconds
spin [Motor1 v] [forward v] for (5) [turns v] ▶
spin [Motor1 v] to position (0) [degrees v] ▶
价值观#
电机已完成#
“电机已完成”布尔模块用于报告电机或电机组是否已停止运动。这可用于根据电机或电机组的运动状态来控制其他行为的执行时间。
正确 — 电机或电机组已停止运转。
错误 — 电机或电机组仍在运转。
该模块与以下具有and don’t wait参数的运动模块配合使用:spin motor for 和 spin motor to position。
<[Motor1 v] is done?>
参数 |
描述 |
|---|---|
发动机 |
要报告电机或电机组是否已停止运转的电机或电机组。请从“设备”窗口中配置的电机中进行选择。 |
例子
when started
[Drive forward until the motor is done spinning.]
spin [Motor1 v] [forward v] for (200) [degrees v] ◀ and don't wait
forever
if <[Motor1 v] is done?> then
stop driving
else
drive [forward v]
电机正在旋转#
“电机是否旋转”布尔模块用于报告电机或电机组是否正在旋转。这可用于根据电机或电机组的运动状态来控制其他行为的执行时间。
正确 — 电机或电机组正在旋转。
错误 — 电机或电机组没有旋转。
该模块与以下具有and don’t wait参数的运动模块配合使用:spin motor for 和 spin motor to position。
<[Motor1 v] is spinning?>
参数 |
描述 |
|---|---|
发动机 |
要报告电机或电机组是否正在旋转的选项。请从“设备”窗口中配置的电机中进行选择。 |
例子
when started
[Move forward while the motor is spinning.]
spin [Motor1 v] [forward v] for (200) [degrees v] ◀ and don't wait
while <[Motor1 v] is spinning?>
drive [forward v]
结束
stop driving
电机位置#
电机或电机组的位置是指其旋转的距离,以度或圈数衡量。一圈等于 360 度。电机位置报告模块用于报告电机或电机组的当前位置。
项目开始时,电机位置设置为 0 度。如果电机正向旋转一周,则位置为 360 度或 1 圈。如果电机反向旋转,则位置为负值。
([Motor1 v] position in [degrees v])
参数 |
描述 |
|---|---|
发动机 |
要报告位置的电机或电机组。请从“设备”窗口中配置的电机中选择。 |
单元 |
报告电机位置的单位:度或圈。 |
例子
when started
[Display the motor's position after spinning.]
print ([Motor1 v] position in [degrees v]) on [Brain v] ◀ and set cursor to next row
spin [Motor1 v] [forward v]
wait (1) seconds
print ([Motor1 v] position in [degrees v]) on [Brain v] ▶
stop [Motor1 v]
电机速度#
电机速度报告模块报告电机或电机组的旋转速度,以百分比(-100% 到 100%)或每分钟转数 (rpm)(-127 到 127)表示。
([Motor1 v] velocity in [% v])
参数 |
描述 |
|---|---|
发动机 |
要报告速度的电机或电机组。请从“设备”窗口中配置的电机中选择。 |
单元 |
电机转速的单位为:% 或 rpm(每分钟转数)。 |
例子
when started
[Display the motor's velocity from spinning.]
print ([Motor1 v] velocity in [rpm v]) on [Brain v] ◀ and set cursor to next row
spin [Motor1 v] [forward v]
wait (1) seconds
print ([Motor1 v] velocity in [rpm v]) on [Brain v] ▶
stop [Motor1 v]
电机电流#
电机电流报告模块报告所选电机或电机组正在使用的电流大小,以安培为单位,范围从 0.0 到 1.2 A。电流是指流过电机或电机组的电量。
电流值越高,表示电机或电机组消耗的电流越大。这种情况可能发生在电机或电机组提升重物、推动物体或试图移动卡住的物体时。
这可以用来检查电机或电机组在运动过程中是否运转吃力。如果电流持续过高,电机可能会发热或功率利用率降低。
([Motor1 v] current in [amps v])
参数 |
描述 |
|---|---|
发动机 |
要报告电流的电机或电机组。请从“设备”窗口中配置的电机中选择。 |
单元 |
电流单位:安培。 |
例子
when started
[Display the motor's current from spinning.]
set print precision to [0.01 v] on [Brain v]
print ([Motor1 v] current in [amps v]) on [Brain v] ◀ and set cursor to next row
spin [Motor1 v] [forward v]
wait (1) seconds
print ([Motor1 v] current in [amps v]) on [Brain v] ▶
stop [Motor1 v]