传动系统#
初始化 DriveTrain 类#
使用以下构造函数创建 DriveTrain:
DriveTrain(lm,rm,车轮行程,轮距,轮距,单位,外部齿轮比)
此构造函数使用七个参数:
范围 |
描述 |
---|---|
|
|
|
|
|
**可选。**驱动轮的周长。默认值为 300 毫米。 |
|
**可选。**传动系统的轮距。默认值为 320 毫米。 |
|
**可选。**传动系统的轴距。默认值为 320 毫米。 |
|
可选。 为 wheelTravel、trackWidth 和 wheelBase 指定的单位提供有效的 DistanceUnit。默认值为“MM”。 |
|
**可选。**如果使用齿轮传动,则使用齿轮比来补偿驱动距离。 |
必须先创建 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。 |
速度 |
**可选。**传动系统的移动速度。将使用 |
单位 |
**可选。**有效的 VelocityUnits 类型。默认值为 |
**返回:**无。
# 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”。 |
速度 |
**可选。**传动系统的移动速度。如果未提供,则使用 |
单位 |
**可选。**有效的 VelocityUnits 类型。默认值为 |
等待 |
可选。 wait 参数决定该方法是否阻止后续方法( |
**返回:**无。
# Drive forward for 10 inches.
drivetrain.drive_for(FORWARD, 10)
turn()#
turn(direction, speed, units)
方法用于使传动系统向左或向右转动。
这是一种非等待方法,允许下一个方法无延迟运行。
参数 |
描述 |
---|---|
方向 |
有效的 TurnType。 |
速度 |
**可选。**传动系统的转弯速度。如果未提供,则使用 |
单位 |
**可选。**有效的 VelocityUnits 类型。默认值为 |
**返回:**无。
# 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 类型。默认值为 |
速度 |
**可选。**传动系统的转弯速度。如果未提供,则使用 |
单位 |
**可选。**有效的 VelocityUnits 类型。默认值为 |
等待 |
可选。 wait 参数决定该方法是否阻止后续方法( |
**返回:**无。
# 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 类型。默认值为 |
**返回:**无。
# 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 类型。默认值为 |
**返回:**无。
# 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。默认值为 |
**返回:**无。
# Set the stopping mode to BRAKE.
drivetrain.set_stopping(BRAKE)
set_timeout()#
set_timeout(timeout, units)
方法用于设置传动系统上所有电机的超时值。此设置决定了如果电机尚未完成运动,传动系统将在超时前尝试执行 drive_for
和 turn_for
方法多长时间。
参数 |
描述 |
---|---|
暂停 |
设置为传动系统操作默认的超时持续时间。 |
单位 |
**可选。**有效的 TimeUnits 类型。默认值为 |
**返回:**无。
# 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 类型。默认值为 |
**返回:**以提供的单位表示的传动系统速度。
current()#
current()
方法返回左右电机的平均电流。
参数 |
描述 |
---|---|
单位 |
可选。 当前唯一有效的单位是“AMP”。 |
**返回:**以提供的单位表示的动力传动系统电流。
power()#
power()
方法返回所有传动系统电机使用的总功率。
参数 |
描述 |
---|---|
单位 |
可选。 功率的唯一有效单位是“瓦特”。 |
**返回:**以提供的单位表示的传动系统功率。
torque()#
torque()
方法返回所有传动系统电机的总扭矩。
参数 |
描述 |
---|---|
单位 |
**可选。**有效的 TorqueUnits 类型。默认值为 |
**返回:**以提供的单位表示的传动系统扭矩。
efficiency()#
efficiency()
方法返回左右电机的平均效率。
参数 |
描述 |
---|---|
单位 |
**可选。**效率的唯一有效单位是“百分比”。 |
**返回:**以提供的单位表示的传动系统效率。
temperature()#
temp()
方法返回左右电机的平均温度。
参数 |
描述 |
---|---|
单位 |
**可选。**有效的 TemperatureUnits 类型。默认值为 |
**返回:**以提供的单位表示的传动系统温度。