发动机#

介绍#

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 – 仅设置电机反转方向。

构造函数——手动初始化和配置电机和电机组。

类方法#

旋转#

spin 使电机或电机组无限期地沿指定方向旋转。

用法:
motor_1.spin(方向、速度、单位)

参数

描述

方向

电机或电机组的旋转方向:

  • FORWARD
  • REVERSE

速度

可选。电机或电机组的旋转速度,以浮点数或整数表示。如果未指定速度,则默认速度为 50%。

单位

可选。表示速度的单位:

  • PERCENT
  • RPM – 每分钟转数
  • VelocityUnits.DPS – 每秒度数

# Spin the motor forward, then stop
motor_1.spin(FORWARD)
wait(1, SECONDS)
motor_1.stop()

spin_for#

spin_for 使电机或电机组沿指定方向旋转相对于其当前位置的设定距离。

用法:
spin_for(方向、角度、单位、速度、units_v、等待)

参数

描述

方向

电机或电机组的旋转方向:

  • FORWARD
  • REVERSE

角度

电机或电机组旋转的度数,以浮点数或整数表示。

单位

可选。表示旋转值的单位:

  • DEGREES(默认)
  • TURNS

速度

可选。电机或电机组的旋转速度,以浮点数或整数表示。如果未指定速度,则默认速度为 50%。

单位

可选。表示速度的单位:

  • PERCENT
  • RPM(默认)- 每分钟转数

等待

可选

  • wait=True(默认)– 项目等待 spin_for 完成后再执行
  • 行代码。2
  • wait=False - 项目启动操作并立即转到下一行代码,而不等待 spin_for 完成

# 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,等待)

参数

描述

旋转

以浮点数或整数形式指定电机或电机组旋转的位置。

单位

表示旋转值的单位:

  • DEGREES
  • TURNS

速度

可选。电机或电机组的旋转速度,以浮点数或整数表示。如果未指定速度,则默认速度为 50%。

单位

可选。表示速度的单位:

  • PERCENT
  • RPM – 每分钟转数
  • VelocityUnits.DPS – 每秒度数

等待

可选

  • wait=True(默认)– 项目等待 spin_to_position 完成后再执行
  • 行代码。2
  • wait=False - 项目启动操作并立即转到下一行代码,而不等待 spin_to_position 完成

# 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)

参数

描述

模式

可选。电机或电机组停止方式:

  • COAST – 逐渐减速直至停止。2
  • BRAKE</ul>默认)– 立即停止。4</li><li>HOLD – 停止并使用电机反馈阻止运动。6
# 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)

参数

描述

位置

新位置为整数。

单位

表示旋转值的单位:

  • DEGREES
  • TURNS

# 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(速度,单位)

参数

描述

速度

电机或电机组旋转的速度,以浮点数或整数表示。

单位

可选。表示速度的单位:

  • PERCENT
  • RPM(每分钟转数)
  • VelocityUnits.DPS(每秒度数)

# 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)

参数

描述

模式

电机或电机组停止方式:

  • BRAKE – 立即停止。2
  • COAST 逐渐减速直至停止。4</li><li>HOLD – 停止并使用电机反馈
运动。6

# 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(值,单位)

参数

描述

价值

电机或电机组的新最大扭矩,以浮点数或整数表示。

单位

表示扭矩的单位:

  • PERCENT
  • TorqueUnits.NM(牛顿米)
  • TorqueUnits.INLB(英寸磅)

# 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(值,单位)

参数

描述

价值

运动功能在停止并移动到下一个功能之前运行的最大秒数(整数或浮点数)。

单位

可选。表示时间的单位:

  • SECONDS
  • MSEC(默认) – 毫秒

# 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”以整数或浮点数返回电机或电机组的当前位置。

用法:
位置(单位)

参数

描述

单位

可选。表示旋转值的单位:

  • DEGREES(默认)
  • TURNS

# 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 以整数或浮点数返回电机或电机组的当前速度。

用法:
速度(单位)

参数

描述

单位

可选。表示速度的单位:

  • PERCENT
  • RPM(默认)- 每分钟转数
  • VelocityUnits.DPS(度/秒)

# 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)

参数

描述

价值

用于设置是否反转方向的布尔值:

  • True – 反转电机方向
  • False – 将电机方向恢复为默认值

# 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。

齿轮

可选。电机的齿轮比:

  • GearSetting.RATIO_1_1(默认) – 1:1 比率
  • GearSetting.RATIO_2_1 – 2:1 比率
  • GearSetting.RATIO_3_1 – 3:1 比率

反向

可选。设置电机旋转是否反转。0

  • True 电机反转</li><li>False`(默认)– 电机不反转

# 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()