汽车和汽车集团#
介绍#
Motors and motor groups control how parts of a robot move. A Motor controls one configured Smart Motor, while a MotorGroup controls multiple configured Smart Motors together so they move in tandem. Motors and motor groups can be used to raise an arm, turn a claw, spin a wheel, or move another part of a build. Two or four motors can work together as a drivetrain to move and turn the whole robot.
Each motor or motor group is configured in the Devices window. Depending on the build, motor and motor group names can change. This page uses motor_1 and motor_group_1 as example names. Replace them with your own configured names as needed.
By default, FORWARD spins a motor counterclockwise, and REVERSE spins a motor clockwise. If a motor is set to reverse, those directions will be switched.
电机和电机组的编码方式有很多种。以下列出了所有电机和电机组的编码方法:
操作——停止和旋转电机及电机组。
spin— Spins a motor or motor group forward or reverse forever.spin_for— Spins a motor or motor group for a specific distance.spin_to_position— Spins a motor or motor group to a specific position.stop— Stops a motor or motor group from spinning.
变异器 — 调整电机和电机组的设置。
set_position— Changes the motor or motor group’s current position to a new value.set_velocity— Tells a motor or motor group how fast to spin.set_stopping— Sets how a motor or motor group will stop moving: by braking, coasting, or holding.set_max_torque— Sets how hard a motor or motor group is allowed to push while spinning.set_timeout— Sets how much time a motor or motor group will try to finish a movement.set_reversed— Changes whether a motor’s spin direction is reversed.reset_position— Changes a motor or motor group’s current position to 0.
Getters — 检查电机和电机组状态。
is_done— Returns whether the motor or motor group is finished moving, as a Boolean value.is_spinning— Returns whether the motor or motor group is spinning, as a Boolean value.position— Returns the motor or motor group’s current position.velocity— Returns how fast the motor or motor group is spinning.current— Returns how much electrical current the motor or motor group is using.power— Returns how much power the motor or motor group is using.torque— Returns how much torque the motor or motor group is using.efficiency— Returns how efficiently the motor or motor group is using power.temperature— Returns the temperature of the motor or motor group.count— Returns the number of motors in a motor group.get_timeout— Returns the motor or motor group’s current timeout duration.
构造函数 — 手动初始化和配置电机及电机组。
Motor— Creates a motor.MotorGroup— Creates a motor group.
行动#
spin#
spin spins a motor or motor group forward or reverse forever. The motor or motor group will continue to spin until it is given another action, like spinning in a different direction or stopping.
Usage:
motor_1.spin(direction, velocity, units)
参数 |
描述 |
|---|---|
|
The direction the motor or motor group spins: |
|
Optional. The velocity to spin with from 0% to 100% when using |
|
Optional. The velocity unit:
|
# Spin the motor, then stop
motor_1.spin(FORWARD)
wait(1, SECONDS)
motor_1.stop()
spin_for#
spin_for spins a motor or motor group for a specific distance. The spin is relative to the current position of the motor or motor group. The project will wait until the motor or motor group is done spinning before the next line of code runs.
Usage:
motor_1.spin_for(direction, angle, units, velocity, units_v, wait)
参数 |
描述 |
|---|---|
|
The direction the motor or motor group spins: |
|
The distance the motor or motor group spins. This can be an |
|
Optional. The distance unit: |
|
Optional. The velocity to spin with from 0% to 100% when using |
|
Optional. The velocity unit:
|
|
Optional.
|
# Spin the motor forward once, then reset
motor_1.spin_for(FORWARD, 90, DEGREES)
wait(1, SECONDS)
motor_1.spin_for(REVERSE, 90, DEGREES)
spin_to_position#
spin_to_position spins a motor or motor group to a specific position.
A motor or motor group’s position is how far it has spun, measured in DEGREES or TURNS. One turn is equal to 360 degrees. At the beginning of a project, the motor or motor group position is set to 0 degrees. The motor or motor group position can also be set using the set_position method.
位置值是绝对值。这意味着旋转方向取决于电机或电机组的当前位置。
Usage:
motor_1.spin_to_position(rotation, units, velocity, units_v, wait)
参数 |
描述 |
|---|---|
|
The position value the motor or motor group will spin to. This can be an |
|
The position unit: |
|
Optional. The velocity to spin with from 0% to 100% when using |
|
Optional. The velocity unit:
|
|
Optional.
|
# Spin the motor to the new 0 position
motor_1.set_position(180, DEGREES)
motor_1.spin_to_position(0, DEGREES)
stop#
stop stops a motor or motor group from spinning.
Usage:
motor_1.stop(mode)
参数 |
描述 |
|---|---|
|
Optional. How the motor or motor group will stop:
|
# Spin the motor, then stop
motor_1.spin(FORWARD)
wait(1, SECONDS)
motor_1.stop()
变异体#
set_position#
A motor or motor group’s position is how far it has spun, measured in DEGREES or TURNS. One turn is equal to 360 degrees. set_position changes the motor or motor group’s current position to a new value.
例如,如果电机或电机组旋转了 180 度,将其位置设置为 0 度会将该位置从 180 度重置为 0 度。然后,电机或电机组可以根据该新值旋转到相应位置。
Usage:
motor_1.set_position(position, units)
参数 |
描述 |
|---|---|
|
The position value to set for the motor or motor group. This can be an |
|
Optional. The position unit: |
# Spin the motor to the new 0 position
motor_1.set_position(180, DEGREES)
motor_1.spin_to_position(0, DEGREES)
set_velocity#
set_velocity tells a motor or motor group how fast to spin. A higher percentage makes the motor or motor group spin faster and a lower percentage makes the motor or motor group spin slower.
每个项目开始时,每个电机或电机组默认以 50% 的速度旋转。
**注意:**更高的速度会使电机或电机组旋转得更快,但精度可能会降低。更低的速度会使电机或电机组旋转得更慢,但精度可能会更高。
Usage:
motor_1.set_velocity(velocity, units)
参数 |
描述 |
|---|---|
|
The speed the motor or motor group will spin at. |
|
Optional. The velocity unit:
|
# Spin forward at the default velocity
motor_1.spin_for(FORWARD, 100)
wait(1, SECONDS)
# Spin slower
motor_1.set_velocity(20, PERCENT)
motor_1.spin_for(FORWARD, 100)
wait(1, SECONDS)
# Spin faster
motor_1.set_velocity(100, PERCENT)
motor_1.spin_for(FORWARD, 100)
wait(1, SECONDS)
set_stopping#
set_stopping sets how a motor or motor group will stop moving: by braking, coasting, or holding.
Usage:
motor_1.set_stopping(mode)
参数 |
描述 |
|---|---|
|
How the motor or motor group will stop:
|
set_max_torque#
扭矩表示电机或电机组在旋转时能够产生的推力或拉力的大小。
set_max_torque sets the most torque a motor or motor group is allowed to use.
较高的百分比可以让电机或电机组施加更大的推力,例如在举起重物时。较低的百分比则会限制电机或电机组的推力。这有助于在电机或电机组卡住或达到其运动极限时保护机器人。
每个项目开始时,每个电机或电机组的扭矩默认设置为 50%。
Usage:
motor_1.set_max_torque(value, units)
参数 |
描述 |
|---|---|
|
The max torque the motor or motor group can use. |
|
Optional. The torque unit:
|
set_timeout#
set_timeout sets how much time a motor or motor group will try to finish a movement. If the motor or motor group cannot finish in that time, it will stop trying and move on to the next line of code. This keeps the motor or motor group from getting stuck on a movement.
Usage:
motor_1.set_timeout(value, units)
参数 |
描述 |
|---|---|
|
The amount of time the motor or motor group can try to finish a movement. This can be a positive |
|
Optional. The unit of time:
|
set_reversed#
set_reversed changes whether a motor’s spin direction is reversed. This method works the same as setting the reverse parameter to True when constructing a Motor.
注意:此方法仅适用于单个电机,不适用于电机组。
Usage:
motor_1.set_reversed(value)
参数 |
描述 |
|---|---|
|
Whether the motor’s direction is reversed:
|
reset_position#
reset_position changes the motor or motor group’s current position to 0.
Usage:
motor_1.reset_position()
参数 |
描述 |
|---|---|
此方法没有参数。 |
获取器#
is_done#
is_done returns whether the motor or motor group is finished moving, as a Boolean value. This can be used to control the timing of other behaviors based on the motor’s movement.
True— The motor or motor group is finished moving.False— The motor or motor group is still moving.
This method works together with the following Motion methods that have the wait parameter: spin_for and spin_to_position.
Usage:
motor_1.is_done()
参数 |
描述 |
|---|---|
此方法没有参数。 |
# Drive forward until the motor is done spinning
motor_1.spin_for(FORWARD, 200, wait=False)
while True:
if motor_1.is_done():
drivetrain.stop()
else:
drivetrain.drive(FORWARD)
is_spinning#
is_spinning returns whether the motor or motor group is spinning, as a Boolean value. This can be used to control the timing of other behaviors based on the motor’s movement.
True— The motor or motor group is spinning.False— The motor or motor group is not spinning.
This method works together with the following Motion methods that have the wait parameter: spin_for and spin_to_position.
Usage:
motor_1.is_spinning()
参数 |
描述 |
|---|---|
此方法没有参数。 |
# Drive forward until the motor is done spinning
motor_1.spin_for(FORWARD, 200, wait=False)
while True:
if motor_1.is_spinning():
drivetrain.drive(FORWARD)
else:
drivetrain.stop()
position#
A motor or motor group’s position is how far it has spun, measured in DEGREES or TURNS. One turn is equal to 360 degrees. position returns the motor or motor group’s current position.
项目开始时,电机或电机组的位置设置为 0 度。如果电机或电机组正转一圈,则位置为 360 度或 1 圈。如果电机或电机组反向旋转,则位置为负值。
Usage:
motor_1.position(units)
参数 |
描述 |
|---|---|
|
Optional. The unit to return the motor or motor group position in: |
# Display the motor's position after spinning
brain.screen.print(motor_1.position())
brain.screen.next_row()
motor_1.spin(FORWARD)
wait(1, SECONDS)
brain.screen.print(motor_1.position())
motor_1.stop()
velocity#
velocity returns how fast the motor or motor group is spinning, as a percentage from -100% to 100% or as rotations per minute from -127 rpm to 127 rpm.
正值表示电机或电机组正转,负值表示电机或电机组反转。
Usage:
motor_1.velocity(units)
参数 |
描述 |
|---|---|
|
Optional. The velocity unit to return:
|
current#
current returns how much electrical current the motor or motor group is using, measured in amps from 0.0 to 1.2 A. Current is the amount of electricity flowing through the motor or motor group.
电流值越高,表示电机或电机组消耗的电流越大。这种情况可能发生在电机或电机组提升重物、推动物体或试图移动卡住的物体时。
这可以用来检查电机或电机组在运动过程中是否运转吃力。如果电流持续过高,电机可能会发热或功率利用率降低。
Usage:
motor_1.current(units)
参数 |
描述 |
|---|---|
|
Optional. The current unit to return:
|
power#
power returns how much power the motor or motor group is using, measured in watts from 0.0 to 11.0 W. Power shows how quickly the motor or motor group is using energy.
功率值越高,意味着电机或电机组的能耗速度越快。这种情况可能发生在电机或电机组提升重物、推动物体或试图在卡住时移动时。
这可以用来比较运动情况,或者检查电机或电机组是否运转吃力。如果功率持续偏高,电机可能会发热或能量利用效率降低。
Usage:
motor_1.power(units)
参数 |
描述 |
|---|---|
|
Optional. The power unit to return:
|
torque#
扭矩表示电机或电机组在旋转时扭转、推动或拉动的力度。
torque returns how much torque the motor or motor group is using, measured in inch-pounds (InLb) from 0.0 to 22.0 or Newton-meters (Nm) from 0.0 to 2.1.
扭矩值越高,意味着电机或电机组的推拉力越大。这种情况可能发生在电机或电机组提升重物、推动物体或试图移动卡住的物体时。
这可以用来检查运动系统或运动系统是否出现困难,或者比较不同动作需要多少推力。
To set the torque of a motor or motor group, use set_max_torque.
Usage:
motor_1.torque(units)
参数 |
描述 |
|---|---|
|
The torque unit to return:
|
efficiency#
efficiency returns how efficiently the motor or motor group is using power, as a percentage from 0% to 100%.
效率值表示电机或电机组的功率有多少用于运动。效率值越高,意味着电机或电机组用于运动的功率越多。当电机或电机组高负荷运转但运动量很小时,例如被卡住或抵住障碍物时,效率值就会降低。
这可以用来比较运动情况,或者检查电机或电机组是否浪费电力而不是将其用于运动。
Usage:
motor_1.efficiency(units)
参数 |
描述 |
|---|---|
|
Optional. The efficiency unit to return:
|
temperature#
temperature returns the temperature of the motor or motor group.
电机温度显示电机或电机组的温度。温度越高,表示电机或电机组在工作过程中温度越高。为确保电机始终以最佳性能运行,温度应保持在 55°C 以下。
如果电机或电机组过热,它会降低最大电流以保护自身。当温度达到 70°C 时,电机将停止运转,直到冷却下来。
这可以用来检查电机或电机组在重复运动、长时间运行或推动物体时是否过热。
Usage:
motor_1.temperature(units)
参数 |
描述 |
|---|---|
|
Optional. The temperature unit to return:
|
count#
count returns the number of motors in a motor group.
注意:此方法仅适用于电机组。
Usage:
motor_group_1.count()
参数 |
描述 |
|---|---|
此方法没有参数。 |
get_timeout#
get_timeout returns the motor or motor group’s current timeout in milliseconds.
Usage:
motor_1.get_timeout()
参数 |
描述 |
|---|---|
此方法没有参数。 |
构造函数#
Constructors are used to manually create Motor and MotorGroup objects outside of the Devices window.
Motor#
Motor creates a motor.
Usage:
Motor(port, gears, reverse)
范围 |
描述 |
|---|---|
|
The Smart Port that the motor is connected to, written as |
|
Optional. The motor’s gear ratio:
|
|
Optional. Sets whether the motor’s spin direction is reversed:
|
# Create a Motor in Port 1 with default values
motor_1 = Motor(Ports.PORT1)
"""
Create a motor with the following values:
- In Port 1
- 36:1 ratio
- Reversed
"""
motor_1 = Motor(Ports.PORT1, GearSetting.RATIO_36_1, True)
MotorGroup#
MotorGroup creates a motor group.
Usage:
MotorGroup(motors)
范围 |
描述 |
|---|---|
|
The names of previously created |
# Create the Motors
motor_1 = Motor(Ports.PORT1)
motor_2 = Motor(Ports.PORT2)
# Create a Motor Group
motor_group_1 = MotorGroup(motor_1, motor_2)