发动机#
介绍#
IQ 智能电机能够旋转、保持位置,并精确控制速度和扭矩。它可以单独使用,也可以作为电机组的一部分使用。
以下是所有方法的列表:
方法——控制电机的运动和行为。
spin – 使电机或电机组无限期地沿指定方向旋转。
spin_for – 使电机或电机组旋转指定距离。
spin_to_position – 将电机旋转到绝对位置。
stop – 以可配置的行为停止电机或电机组。
set_position – 将电机或电机组的位置设置为特定值。
reset_position – 仅将电机的位置设置为 0。
set_velocity – 设置电机或电机组的默认速度。
set_stopping – 设置停止行为(制动、滑行或保持)。
set_max_torque – 设置电机或电机组的最大扭矩。
set_timeout – 限制运动受阻时运动功能在放弃之前等待的时间。
get_timeout – 仅返回电机当前的超时持续时间。
is_done – 返回电机或电机组当前是否未旋转。
is_spinning – 返回电机或电机组当前是否正在旋转。
位置 – 返回电机或电机组的当前位置。
velocity – 返回电机或电机组的当前速度。
current – 返回电机或电机组正在使用的电流。
direction – 返回电机或电机组的旋转方向。
power – 返回电机或电机组使用的电量。
torque – 返回电机或电机组产生的扭矩。
效率 – 返回电机或电机组的效率。
温度 – 返回电机或电机组的温度。
count – 返回电机组中的电机数量。
set_reversed – 仅设置电机反转方向。
构造函数——手动初始化和配置电机和电机组。
Motor – 创建一个电机。
MotorGroup – 创建一个电机组。
类方法#
旋转#
spin
使电机或电机组无限期地沿指定方向旋转。
用法:
motor_1.spin(方向、速度、单位)
参数 |
描述 |
---|---|
方向 |
电机或电机组的旋转方向:
|
速度 |
可选。电机或电机组的旋转速度,以浮点数或整数表示。如果未指定速度,则默认速度为 50%。 |
单位 |
可选。表示速度的单位:
|
# Spin the motor forward, then stop
motor_1.spin(FORWARD)
wait(1, SECONDS)
motor_1.stop()
spin_for#
spin_for
使电机或电机组沿指定方向旋转相对于其当前位置的设定距离。
用法:
spin_for(方向、角度、单位、速度、units_v、等待)
参数 |
描述 |
---|---|
方向 |
电机或电机组的旋转方向:
|
角度 |
电机或电机组旋转的度数,以浮点数或整数表示。 |
单位 |
可选。表示旋转值的单位:
|
速度 |
可选。电机或电机组的旋转速度,以浮点数或整数表示。如果未指定速度,则默认速度为 50%。 |
单位 |
可选。表示速度的单位:
|
等待 |
可选
|
# Spin the motor forward, then put it at 90 degrees
motor_1.spin(FORWARD)
wait(2, SECONDS)
motor_1.spin_to_position(90, DEGREES)
# Spin the motor and different velocities
# Default velocity
motor_1.spin_for(FORWARD, 150, MM)
wait(1, SECONDS)
# Spin slower
motor_1.spin_for(REVERSE, 150, MM, 20, PERCENT)
wait(1, SECONDS)
# Spin faster
motor_1.spin_for(FORWARD, 150, MM, 100, PERCENT)
旋转到位置#
spin_to_position
将电机和电机组旋转到绝对位置。
用法:
spin_to_position(旋转,单位,速度,units_v,等待)
参数 |
描述 |
---|---|
旋转 |
以浮点数或整数形式指定电机或电机组旋转的位置。 |
单位 |
表示旋转值的单位:
|
速度 |
可选。电机或电机组的旋转速度,以浮点数或整数表示。如果未指定速度,则默认速度为 50%。 |
单位 |
可选。表示速度的单位:
|
等待 |
可选
|
# Spin the motor forward, then
# put it at 90 degrees
motor_1.spin(FORWARD)
wait(2, SECONDS)
motor_1.spin_to_position(90, DEGREES)
# Spin forward then quickly reverse to 0 degrees
motor_1.spin(FORWARD)
wait(2, SECONDS)
motor_1.spin_to_position(0, DEGREES, 100, PERCENT, wait=True)
停止#
stop
停止一个电机或电机组。
用法:
stop(mode)
参数 |
描述 |
---|---|
模式 |
可选。电机或电机组停止方式:
|
# Spin the motor forward, then stop
motor_1.spin(FORWARD)
wait(1, SECONDS)
motor_1.stop()
# Spin the motor and coast to a stop
motor_1.set_velocity(100, PERCENT)
motor_1.spin(FORWARD)
wait(2, SECONDS)
motor_1.stop(COAST)
设置位置#
set_position
设置电机或电机组的位置。
用法:
set_position(position, unit)
参数 |
描述 |
---|---|
位置 |
新位置为整数。 |
单位 |
表示旋转值的单位:
|
# Position the motor at the new 0 degrees
motor_1.set_position(180, DEGREES)
motor_1.spin_to_position(0)
重置位置#
reset_position
将电机或电机组的位置设置为 0。
用法:
reset_position()
参数 |
描述 |
---|---|
该方法没有参数。 |
# Reset the motor position after spinning
motor_1.spin(FORWARD)
wait(2, SECONDS)
motor_1.stop()
brain.screen.print(motor_1.position())
brain.screen.next_row()
wait(1, SECONDS)
motor_1.reset_position()
brain.screen.print(motor_1.position())
设置速度#
set_velocity
设置电机或电机组的默认速度。如果未提供具体速度,则此速度设置将用于后续调用任何电机函数。
用法:
set_velocity(速度,单位)
参数 |
描述 |
---|---|
速度 |
电机或电机组旋转的速度,以浮点数或整数表示。 |
单位 |
可选。表示速度的单位:
|
# Spin the motor and different velocities
# Default velocity
motor_1.spin_for(FORWARD, 150, MM)
wait(1, SECONDS)
# Spin slower
motor_1.set_velocity(20, PERCENT)
motor_1.spin_for(REVERSE, 150, MM)
wait(1, SECONDS)
# Spin faster
motor_1.set_velocity(100, PERCENT)
motor_1.spin_for(FORWARD, 150, MM)
设置停止#
set_stopping
设置电机或电机组的停止模式。
用法:
set_stopping(mode)
参数 |
描述 |
---|---|
模式 |
电机或电机组停止方式:
|
# Spin the motor and coast to a stop
motor_1.set_velocity(100, PERCENT)
motor_1.set_stopping(COAST)
motor_1.spin(FORWARD)
wait(2, SECONDS)
motor_1.stop()
设置最大扭矩#
set_max_torque
设置电机或电机组的最大扭矩。扭矩可以设置为扭矩、电流或最大扭矩的百分比。
用法:
set_max_torque(值,单位)
参数 |
描述 |
---|---|
价值 |
电机或电机组的新最大扭矩,以浮点数或整数表示。 |
单位 |
表示扭矩的单位:
|
# Spin the motor at different torque values
# Default
motor_1.spin_to_position(45, DEGREES)
# Spin at a lower torque
motor_1.set_max_torque(20, PERCENT)
motor_1.spin_to_position(0, DEGREES)
# Spin at te max torque
motor_1.set_max_torque(100, PERCENT)
motor_1.spin_to_position(45, DEGREES)
设置超时#
set_timeout
设置了电机功能等待达到目标的时间限制。如果电机或电机组无法在设定的时间内完成运动,它将自动停止并继续执行下一个功能。
**注意:**电机或电机组的时间限制用于防止未达到目标位置的电机功能停止项目其余部分的执行。
用法:
set_timeout(值,单位)
参数 |
描述 |
---|---|
价值 |
运动功能在停止并移动到下一个功能之前运行的最大秒数(整数或浮点数)。 |
单位 |
可选。表示时间的单位:
|
# Spin the motor half a second and reset
motor_1.set_timeout(0.5, SECONDS)
motor_1.spin_for(FORWARD, 10, TURNS)
motor_1.spin_to_position(0)
获取超时#
get_timeout
以毫秒为单位返回电机的当前超时时间。
注意:此方法仅适用于电机,而不适用于电机组。
用法:
get_timeout()
参数 |
描述 |
---|---|
该方法没有参数。 |
# Spin the motor half a second and reset, then display the timeout
motor_1.set_timeout(0.5, SECONDS)
motor_1.spin_for(FORWARD, 10, TURNS)
motor_1.spin_to_position(0)
brain.screen.print(motor_1.get_timeout())
完成#
is_done
返回一个布尔值,指示电机或电机组当前是否没有旋转。
“True”——电机或电机组没有旋转。
“False”——电机或电机组正在旋转。
用法:
is_done()
参数 |
描述 |
---|---|
该方法没有参数。 |
# Drive forward while the motor is spinning
motor_1.spin_for(FORWARD, 200, DEGREES, wait=False)
while True:
if motor_1.is_done():
drivetrain.stop()
else:
drivetrain.drive(FORWARD)
正在旋转#
is_spinning
返回一个布尔值,指示电机或电机组当前是否正在旋转。
“True”——电机或电机组正在旋转。
“False”——电机或电机组没有旋转。
用法:
is_spinning()
参数 |
描述 |
---|---|
该方法没有参数。 |
# Drive forward while the motor is spinning
motor_1.spin_for(FORWARD, 200, DEGREES, wait=False)
while motor_1.is_spinning():
drivetrain.drive(FORWARD)
drivetrain.stop()
位置#
“position”以整数或浮点数返回电机或电机组的当前位置。
用法:
位置(单位)
参数 |
描述 |
---|---|
单位 |
可选。表示旋转值的单位:
|
# Spin the motor and display the ending position
motor_1.spin(FORWARD)
wait(1, SECONDS)
motor_1.stop()
brain.screen.print(motor_1.position())
速度#
velocity
以整数或浮点数返回电机或电机组的当前速度。
用法:
速度(单位)
参数 |
描述 |
---|---|
单位 |
可选。表示速度的单位:
|
# Display the motor's velocity before and after spinning
brain.screen.print(motor_1.velocity())
brain.screen.next_row()
motor_1.spin(FORWARD)
wait(1, SECONDS)
brain.screen.print(motor_1.velocity())
motor_1.stop()
方向#
“direction” 返回电机或电机组当前旋转的方向。
前进
反转
用法:
direction()
参数 |
描述 |
---|---|
该方法没有参数。 |
# Spin the motor and print the spin direction
motor_1.set_position(50, DEGREES)
motor_1.spin_to_position(0, DEGREES)
if motor_1.direction() == DirectionType.FORWARD:
brain.screen.print('FORWARD')
elif motor_1.direction() == DirectionType.REVERSE:
brain.screen.print('REVERSE')
else:
brain.screen.print("Not Spinning.")
数数#
count
以整数形式返回电机组中电机的数量。
注意:此方法仅适用于电机组,而不适用于电机。
用法:
count()
参数 |
描述 |
---|---|
该方法没有参数。 |
# Display the amount of motors in the group
brain.screen.print(motor_group_1.count())
设置反转#
set_reversed
设置电机反转。此方法的作用与构造 Motor
时将 reverse
参数设置为 True
相同。
注意:此方法仅适用于电机,而不适用于电机组。
用法:
set_reversed(value)
参数 |
描述 |
---|---|
价值 |
用于设置是否反转方向的布尔值:
|
# Change the reverse direction while spinning
motor_1.spin_for(FORWARD, 45)
motor_1.set_reversed(True)
motor_1.spin_for(FORWARD, 45)
构造函数#
构造函数用于手动创建“Motor”和“MotorGroup”对象,这些对象对于在 VEXcode 之外配置电机或电机组是必需的。
对于下面的示例,配置的电机将被命名为“motor_1”和“motor_2”,配置的电机组将被命名为“motor_group_a”,并且在整个 API 文档的所有后续示例中,在引用“Motor”和“MotorGroup”类方法时将使用这些电机组。
发动机#
Motor
创建一个马达。
用法:
电机(左舷,齿轮,倒车)
范围 |
描述 |
---|---|
|
电机连接到哪个智能端口,从 1 到 12。 |
|
可选。电机的齿轮比:
|
|
可选。设置电机旋转是否反转。0
|
# Construct a Motor object named motor_1 in Port 1 on
# the IQ (2nd gen) Brain which has the reverse flag set to True
motor_1 = Motor(Ports.PORT1, 1.0, True)
# Spin the motor forward for some time
motor_1.spin(FORWARD)
wait(1, SECONDS)
motor_1.stop()
汽车集团#
MotorGroup
创建一个电机组。
用法:
MotorGroup(motors)
范围 |
描述 |
---|---|
|
先前创建的要放入电机组的“电机”对象的名称。 |
# Construct a motor group with 2 motors
motor_group_1_motor_a = Motor(Ports.PORT1, False)
motor_group_1_motor_b = Motor(Ports.PORT6, True)
motor_group_1 = MotorGroup(motor_group_1_motor_a, motor_group_1_motor_b)
# Spin the motor forward, then stop
motor_group_1.spin(FORWARD)
wait(1, SECONDS)
motor_group_1.stop()