汽车和汽车集团#

介绍#

电机和电机组控制机器人各部件的运动。一个电机控制一个已配置的智能电机,而一个电机组则控制两个已配置的智能电机,使它们同步运动。电机和电机组可用于抬起机械臂、转动机械爪、旋转车轮或移动机器人的其他部件。两个电机可以协同工作,组成一个驱动系统,从而驱动整个机器人运动和转向。

每个电机都在“设备”窗口中进行配置。根据构建版本,电机的名称和方向可能会有所不同。自定义机器人可能会使用不同的电机名称或方向。

VEX IQ(第二代)电机,前进方向用加号表示,箭头表示向左(或逆时针)旋转。 VEX IQ(第二代)电机显示反向旋转,用减号和箭头表示其向右(顺时针)旋转。

默认情况下,“正转”会使电机逆时针旋转,“反转”会使电机顺时针旋转。如果在“设备”窗口中将电机设置为反转,则旋转方向将会互换。

电机和电机组的编码方式有很多种。以下是所有电机和电机组代码块的列表:

操作——停止和旋转电机及电机组。

设置 — 调整电机和电机组的设置。

数值 — 检查电机和电机组状态。

行动#

旋转马达#

旋转电机 模块可以使电机或电机组持续正转或反转。电机或电机组会一直旋转,直到收到其他指令,例如改变旋转方向或停止。

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]

参数

描述

发动机

要设置停止行为的电机或电机组。请从“设备”窗口中配置的电机中进行选择。

停止行为

电机或电机组的停止方式:

  • 制动 — 立即停止。2
  • 滑行** — 减速直至停止。4
  • 保持** — 立即停止并保持电机位置

如果未使用此模块,电机在停止时将使用制动器

设置电机最大扭矩#

扭矩是一种旋转力。它表示电机旋转时能够产生的推力或拉力的大小。

设置电机最大扭矩 堆叠块设置电机或电机组可以使用的最大扭矩。

较高的百分比可以让电机或电机组施加更大的推力,例如在举起重物时。较低的百分比则会限制电机或电机组的推力。这有助于在电机卡住或达到其运动极限时保护机器人。

每个项目开始时,每个电机的扭矩默认设置为 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 forspin 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 forspin 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]