传动系统#

初始化 DriveTrain 类#

使用以下构造函数创建 DriveTrain:

DriveTrain(lm,rm,车轮行程,轮距,轮距,单位,外部齿轮比)

此构造函数使用七个参数:

范围

描述

lm

左侧 电机电机组 的名称。

rm

右侧 电机电机组 的名称。

wheelTravel

**可选。**驱动轮的周长。默认值为 300 毫米。

trackWidth

**可选。**传动系统的轮距。默认值为 320 毫米。

轮距

**可选。**传动系统的轴距。默认值为 320 毫米。

单位

可选。 为 wheelTravel、trackWidth 和 wheelBase 指定的单位提供有效的 DistanceUnit。默认值为“MM”。

externalGearRatio

**可选。**如果使用齿轮传动,则使用齿轮比来补偿驱动距离。

必须先创建 Motors 和/或 Motor Groups,然后才能使用 DriveTrain 类构造函数创建对象。

# Create the Motors.
left_motor = Motor(Ports.PORT1, GearSetting.RATIO_18_1, False)
right_motor = Motor(Ports.PORT2, GearSetting.RATIO_18_1, True)
# Construct a 2-Motor Drivetrain "drivetrain" with the
# DriveTrain class.
drivetrain = DriveTrain(left_motor, right_motor, 319.19, 295, 40, MM, 1)

如果制作带有多个电机的传动系统,则需要先单独创建 电机,然后再将它们分组到 电机组中。

# Create the left Motors and group them under the
# MotorGroup "left_motors".
left_motor_a = Motor(Ports.PORT1, GearSetting.RATIO_18_1, False)
left_motor_b = Motor(Ports.PORT2, GearSetting.RATIO_18_1, False)
left_motors = MotorGroup(left_motor_a, left_motor_b)
# Create the right Motors and group them under the
# MotorGroup "right_motors".
right_motor_a = Motor(Ports.PORT3, GearSetting.RATIO_18_1, True)
right_motor_b = Motor(Ports.PORT4, GearSetting.RATIO_18_1, True)
right_motors = MotorGroup(right_motor_a, right_motor_b)
# Construct a 4-Motor Drivetrain "drivetrain" with the
# DriveTrain class.
drivetrain = DriveTrain(left_motors, right_motors, 319.19, 295, 40, MM, 1)

当引用 DriveTrain 类方法时,此“drivetrain”对象将在整个 API 文档的所有后续示例中使用。

要在您的传动系统中加入 惯性传感器陀螺仪传感器 以增强转弯功能,您可以在使用 SmartDrive 类构造函数创建对象时将其包含在内。

类方法#

drive()#

drive(direction, speed, units) 方法用于永远沿指定方向驱动传动系统,直到使用另一种传动系统方法或项目停止。

这是一种非等待方法,允许下一个方法无延迟运行。

参数

描述

方向

有效的 DirectionType

速度

**可选。**传动系统的移动速度。将使用 set_velocity() 方法设置的默认速度。

单位

**可选。**有效的 VelocityUnits 类型。默认值为 RPM

**返回:**无。

# Drive the Drivetrain forward.
drivetrain.drive(FORWARD)

# Drive the Drivetrain in reverse for 100 percent velocity.
drivetrain.drive(REVERSE, 100, PERCENT)

drive_for()#

drive_for(direction, distance, units, speed, units_v, wait) 方法用于驱动传动系统行驶给定的距离。

根据是否使用 wait 参数,这可以是 等待非等待 方法。

参数

描述

方向

有效的 DirectionType

距离

传动系统移动的距离。

单位

**可选。**有效的 DistanceUnits 类型。默认值为“INCHES”。

速度

**可选。**传动系统的移动速度。如果未提供,则使用 set_drive_velocity() 方法设置的默认速度。

单位

**可选。**有效的 VelocityUnits 类型。默认值为 RPM

等待

可选。 wait 参数决定该方法是否阻止后续方法(wait=True)或允许立即执行(wait=False)。如果未指定,则 wait 参数默认为 wait=True

**返回:**无。

# Drive forward for 10 inches.
drivetrain.drive_for(FORWARD, 10)

turn()#

turn(direction, speed, units) 方法用于使传动系统向左或向右转动。

这是一种非等待方法,允许下一个方法无延迟运行。

参数

描述

方向

有效的 TurnType

速度

**可选。**传动系统的转弯速度。如果未提供,则使用 set_turn_velocity() 方法设置的默认速度。

单位

**可选。**有效的 VelocityUnits 类型。默认值为 RPM

**返回:**无。

# Turn the Drivetrain to the right.
drivetrain.turn(RIGHT)

# Turn the Drivetrain to the left at 25 percent velocity.
drivetrain.turn(LEFT, 25, PERCENT)

turn_for()#

The turn_for(direction, angle, units, velocity, units_v, wait) turns the drivetrain left or right for a specified angle or rotations.

根据是否使用 wait 参数,这可以是 等待非等待 方法。

参数

描述

方向

有效的 TurnType

角度

传动系统转动的角度。

单位

**可选。**有效的 RotationUnits 类型。默认值为 DEGREES

速度

**可选。**传动系统的转弯速度。如果未提供,则使用 set_turn_velocity() 方法设置的默认速度。

单位

**可选。**有效的 VelocityUnits 类型。默认值为 RPM

等待

可选。 wait 参数决定该方法是否阻止后续方法(wait=True)或允许立即执行(wait=False)。如果未指定,则 wait 参数默认为 wait=True

**返回:**无。

# Turn right for 90 degrees.
drivetrain.turn_for(RIGHT, 90)

stop()#

stop() 方法用于停止传动系统,将其设置为 0 速度并配置当前停止模式。

**返回:**无。

# Stop the Drivetrain.
drivetrain.stop()

is_moving()#

is_moving() 方法检查传动系统当前是否正在移动。

返回: 如果传动系统当前正在移动,则返回 True。如果传动系统当前未移动,则返回 False

is_done()#

is_done() 方法检查传动系统当前是否没有移动。

这是一种非等待方法,允许下一个方法无延迟运行。

返回: 如果传动系统当前未移动,则返回 True。如果传动系统当前正在移动,则返回 False

set_drive_velocity()#

set_drive_velocity(velocity, units) 方法用于设置 Drivetrain 的默认速度。此速度设置会影响所有后续的 Drivetrain 方法,除非这些方法中提供了具体的速度。

参数

描述

速度

为传动系统设置的新速度为默认速度。

单位

**可选。**有效的 VelocityUnits 类型。默认值为 RPM

**返回:**无。

# Set the Drivetrain to drive at a velocity of 200 RPM.
drivetrain.set_drive_velocity(200)

# Set the Drivetrain to drive at a velocity of 100 PERCENT.
drivetrain.set_drive_velocity(100, PERCENT)

set_turn_velocity()#

set_turn_velocity(velocity, units) 方法用于设置传动系统中转弯操作的默认速度。此设置指定传动系统执行转弯方法的速度,除非该方法中设置了特定速度。

参数

描述

速度

设置为转弯操作默认的新速度。

单位

**可选。**有效的 VelocityUnits 类型。默认值为 RPM,除非之前使用 drivetrain.set_turn_velocity() 方法进行了更改。

**返回:**无。

# Set the Drivetrain to turn at a velocity of 200 RPM.
drivetrain.set_turn_velocity(200)

# Set the Drivetrain to turn at a velocity of 100 PERCENT.
drivetrain.set_turn_velocity(100, PERCENT)

set_stopping()#

set_stopping(mode) 方法用于设置传动系统上所有电机的停止模式。此设置决定了电机在收到停止方法或速度设置为零时的行为。

参数

描述

模式

有效的 BrakeType。默认值为 COAST,除非之前使用 drivetrain.set_stopping() 方法进行了更改。

**返回:**无。

# Set the stopping mode to BRAKE.
drivetrain.set_stopping(BRAKE)

set_timeout()#

set_timeout(timeout, units) 方法用于设置传动系统上所有电机的超时值。此设置决定了如果电机尚未完成运动,传动系统将在超时前尝试执行 drive_forturn_for 方法多长时间。

参数

描述

暂停

设置为传动系统操作默认的超时持续时间。

单位

**可选。**有效的 TimeUnits 类型。默认值为 MSEC,除非之前使用 set_timeout() 方法进行了更改。

**返回:**无。

# Set the timeout for the Drivetrain to 1000 milliseconds.
drivetrain.set_timeout(1000)

# Set the timeout for the Drivetrain to 2 seconds.
drivetrain.set_timeout(2, SECONDS)

get_timeout()#

get_timeout() 方法获取当前超时设置。

返回: Drivetrain 方法超时后的当前时间。

velocity()#

velocity() 方法返回左右电机的平均速度。

参数

描述

单位

**可选。**有效的 VelocityUnits 类型。默认值为 RPM

**返回:**以提供的单位表示的传动系统速度。

current()#

current() 方法返回左右电机的平均电流。

参数

描述

单位

可选。 当前唯一有效的单位是“AMP”。

**返回:**以提供的单位表示的动力传动系统电流。

power()#

power() 方法返回所有传动系统电机使用的总功率。

参数

描述

单位

可选。 功率的唯一有效单位是“瓦特”。

**返回:**以提供的单位表示的传动系统功率。

torque()#

torque() 方法返回所有传动系统电机的总扭矩。

参数

描述

单位

**可选。**有效的 TorqueUnits 类型。默认值为 NM

**返回:**以提供的单位表示的传动系统扭矩。

efficiency()#

efficiency() 方法返回左右电机的平均效率。

参数

描述

单位

**可选。**效率的唯一有效单位是“百分比”。

**返回:**以提供的单位表示的传动系统效率。

temperature()#

temp() 方法返回左右电机的平均温度。

参数

描述

单位

**可选。**有效的 TemperatureUnits 类型。默认值为 CELSIUS

**返回:**以提供的单位表示的传动系统温度。