Motor#
Introducción#
El motor inteligente IQ puede girar, mantener la posición y controlar la velocidad y el par con precisión. Puede usarse individualmente o como parte de un grupo de motores.
A continuación se muestra una lista de todos los métodos:
Métodos – Controlar el movimiento y comportamiento de los motores.
spin – Hace girar un motor o un grupo de motores en una dirección específica indefinidamente.
spin_for – Hace girar un motor o un grupo de motores durante una distancia específica.
spin_to_position – Gira un motor a una posición absoluta.
stop – Detiene un motor o un grupo de motores con un comportamiento configurable.
set_position – Establece la posición del motor o del grupo de motores en un valor específico.
reset_position – Establece solo la posición de un motor en 0.
set_velocity – Establece la velocidad predeterminada para el motor o el grupo de motores.
set_stopping – Establece el comportamiento de detención (frenado, inercia o retención).
set_max_torque – Establece el torque máximo para un motor o grupo de motores.
set_timeout – Limita el tiempo que una función motora espera antes de darse por vencida si el movimiento está bloqueado.
get_timeout – Devuelve solo la duración del tiempo de espera actual de un motor.
is_done – Devuelve si un motor o un grupo de motores no está girando actualmente.
is_spinning – Devuelve si un motor o un grupo de motores está girando actualmente.
posición – Devuelve la posición actual de un motor o grupo de motores.
velocidad – Devuelve la velocidad actual de un motor o grupo de motores.
current – Devuelve la corriente utilizada por un motor o un grupo de motores.
dirección – Devuelve la dirección de giro de un motor o grupo de motores.
potencia – Devuelve la cantidad de energía utilizada por un motor o un grupo de motores.
torque – Devuelve el torque generado por un motor o un grupo de motores.
eficiencia – Devuelve la eficiencia de un motor o grupo de motores.
temperatura – Devuelve la temperatura de un motor o grupo de motores.
count – Devuelve la cantidad de motores en un grupo de motores.
set_reversed – Establece que solo se invierta la dirección de un motor.
Constructores: inicializan y configuran manualmente motores y grupos de motores.
Motor – Crea un motor.
MotorGroup – Crea un grupo de motores.
Métodos de clase#
girar#
spin
hace girar un motor o un grupo de motores en la dirección especificada indefinidamente.
Uso:
motor_1.spin(dirección, velocidad, unidades)
Parámetros |
Descripción |
---|---|
dirección |
La dirección en la que debe girar el motor o el grupo de motores:
|
velocidad |
Opcional. La velocidad a la que girará el motor o el grupo de motores, como valor de punto flotante o entero. Si no se especifica la velocidad, la predeterminada es el 50 %. |
unidades |
Opcional. Unidad que representa la velocidad:
|
# Spin the motor forward, then stop
motor_1.spin(FORWARD)
wait(1, SECONDS)
motor_1.stop()
girar_para#
spin_for
hace girar un motor o un grupo de motores en una dirección específica durante una distancia establecida en relación con su posición actual.
Uso:
spin_for(dirección, ángulo, unidades, velocidad, unidades_v, esperar)
Parámetros |
Descripción |
---|---|
dirección |
La dirección en la que debe girar el motor o el grupo de motores:
|
ángulo |
La cantidad de grados que girará el motor o el grupo de motores como un valor flotante o entero. |
unidades |
Opcional. Unidad que representa el valor de rotación:
|
velocidad |
Opcional. La velocidad a la que girará el motor o el grupo de motores, como valor de punto flotante o entero. Si no se especifica la velocidad, la predeterminada es el 50 %. |
unidades_v |
Opcional. Unidad que representa la velocidad:
|
esperar |
Opcional.
|
# 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)
girar a la posición#
spin_to_position
gira un motor y un grupo de motores a una posición absoluta.
Uso:
spin_to_position(rotación, unidades, velocidad, unidades_v, esperar)
Parámetros |
Descripción |
---|---|
rotación |
La posición para girar el motor o el grupo de motores como un flotante o un entero. |
unidades |
La unidad que representa el valor rotacional:
|
velocidad |
Opcional. La velocidad a la que girará el motor o el grupo de motores, como valor de punto flotante o entero. Si no se especifica la velocidad, la predeterminada es el 50 %. |
unidades_v |
Opcional. Unidad que representa la velocidad:
|
esperar |
Opcional.
|
# 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)
detener#
stop
detiene un motor o un grupo de motores.
Uso:
stop(mode)
Parámetros |
Descripción |
---|---|
modo |
Opcional. Cómo se detendrá el motor o grupo de motores:
|
# 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)
posición_establecida#
set_position
establece la posición de un motor o grupo de motores.
Uso:
set_position(posición, unidades)
Parámetros |
Descripción |
---|---|
posición |
La nueva posición como un entero. |
unidades |
La unidad que representa el valor rotacional:
|
# Position the motor at the new 0 degrees
motor_1.set_position(180, DEGREES)
motor_1.spin_to_position(0)
restablecer_posición#
reset_position
establece la posición del motor o del grupo de motores en 0.
Uso:
reset_position()
Parámetros |
Descripción |
---|---|
Este método no tiene parámetros. |
# 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())
establecer_velocidad#
set_velocity
establece la velocidad predeterminada de un motor o grupo de motores. Esta configuración de velocidad se utilizará en llamadas posteriores a cualquier función de motor si no se proporciona una velocidad específica.
Uso:
set_velocity(velocidad, unidades)
Parámetros |
Descripción |
---|---|
velocidad |
La velocidad a la que el motor o el grupo de motores girará como un flotante o un entero. |
unidades |
Opcional. Unidad que representa la velocidad:
|
# 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)
establecer_detención#
set_stopping
establece el modo de detención de un motor o grupo de motores.
Uso:
set_stopping(mode)
Parámetros |
Descripción |
---|---|
modo |
Cómo se detendrá el motor o el grupo de motores:
|
# 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()
establecer_par_máximo#
set_max_torque
establece el par máximo de un motor o grupo de motores. El par puede configurarse como par, corriente o un porcentaje del par máximo.
Uso:
set_max_torque(valor, unidades)
Parámetros |
Descripción |
---|---|
valor |
El nuevo par máximo para un motor o grupo de motores en forma de valor flotante o entero. |
unidades |
La unidad que representa el 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)
establecer_tiempo_de_espera#
set_timeout
establece un límite de tiempo que una función del motor esperará para alcanzar su objetivo. Si el motor o el grupo de motores no puede completar el movimiento dentro del tiempo establecido, se detendrá automáticamente y continuará con la siguiente función.
Nota: El límite de tiempo del motor o del grupo de motores se utiliza para evitar que las funciones del motor que no alcanzan su posición objetivo detengan la ejecución del resto del proyecto.
Uso:
set_timeout(valor, unidades)
Parámetros |
Descripción |
---|---|
valor |
El número máximo de segundos que una función de motor se ejecutará antes de detenerse y pasar a la siguiente función como un entero o un punto flotante. |
unidades |
Opcional. Unidad que representa el tiempo:
|
# 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)
obtener_tiempo_de_espera#
get_timeout
devuelve el tiempo de espera actual de un motor en milisegundos.
Nota: Este método solo funcionará con un motor y no con un grupo de motores.
Uso:
get_timeout()
Parámetros |
Descripción |
---|---|
Este método no tiene parámetros. |
# 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())
está_hecho#
is_done
devuelve un valor booleano que indica si un motor o un grupo de motores no está girando actualmente.
Verdadero
: El motor o el grupo de motores no está girando.Falso
– El motor o el grupo de motores está girando.
Uso:
is_done()
Parámetros |
Descripción |
---|---|
Este método no tiene parámetros. |
# 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)
está girando#
is_spinning
devuelve un valor booleano que indica si un motor o un grupo de motores está girando actualmente.
Verdadero
– El motor o el grupo de motores está girando.Falso
: El motor o el grupo de motores no está girando.
Uso:
is_spinning()
Parámetros |
Descripción |
---|---|
Este método no tiene parámetros. |
# 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()
posición#
position
devuelve la posición actual de un motor o grupo de motores como un entero o como un punto flotante.
Uso:
posición(unidades)
Parámetros |
Descripción |
---|---|
unidades |
Opcional. Unidad que representa el valor de rotación:
|
# Spin the motor and display the ending position
motor_1.spin(FORWARD)
wait(1, SECONDS)
motor_1.stop()
brain.screen.print(motor_1.position())
velocidad#
velocity
devuelve la velocidad actual de un motor o grupo de motores como un entero o como un punto flotante.
Uso:
velocidad(unidades)
Parámetros |
Descripción |
---|---|
unidades |
Opcional. Unidad que representa la velocidad:
|
# 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()
dirección#
direction
devuelve la dirección actual en la que está girando un motor o un grupo de motores.
ADELANTE
REVERSA
Uso:
dirección()
Parámetros |
Descripción |
---|---|
Este método no tiene parámetros. |
# 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.")
contar#
count
devuelve el número de motores en un grupo de motores como un entero.
Nota: Este método solo funcionará con un grupo de motores y no con un motor.
Uso:
count()
Parámetros |
Descripción |
---|---|
Este método no tiene parámetros. |
# Display the amount of motors in the group
brain.screen.print(motor_group_1.count())
conjunto_invertido#
set_reversed
establece la inversión del motor. Este método funciona igual que establecer el parámetro reverse
en True
al construir un Motor
.
Nota: Este método solo funcionará con un motor y no con un grupo de motores.
Uso:
set_reversed(valor)
Parámetros |
Descripción |
---|---|
valor |
Valor booleano para establecer si la dirección se invierte o no:
|
# Change the reverse direction while spinning
motor_1.spin_for(FORWARD, 45)
motor_1.set_reversed(True)
motor_1.spin_for(FORWARD, 45)
Constructores#
Los constructores se utilizan para crear manualmente objetos Motor
y MotorGroup
, que son necesarios para configurar un motor o un grupo de motores fuera de VEXcode.
Para los ejemplos siguientes, los motores configurados se denominarán motor_1
y motor_2
, y el grupo de motores configurado se denominará motor_group_a
, y se utilizarán en todos los ejemplos posteriores en esta documentación de API cuando se haga referencia a los métodos de clase Motor
y MotorGroup
.
Motor#
Motor
crea un motor.
Uso:
Motor(puerto, engranajes, reversa)
Parámetro |
Descripción |
---|---|
|
A qué puerto inteligente está conectado el motor, del 1 al 12. |
|
Opcional. Relación de transmisión del motor:
|
|
Opcional. Establece si se debe invertir el giro del motor.
|
# 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()
Grupo Motor#
MotorGroup
crea un grupo de motores.
Uso:
MotorGroup(motores)
Parámetro |
Descripción |
---|---|
|
Los nombres de los objetos |
# 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()