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.

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:

  • ADELANTE
  • ATRÁS

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:

  • PERCENT
  • RPM – Rotaciones por minuto
  • VelocityUnits.DPS – Grados por segundo

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

  • ADELANTE
  • ATRÁS

á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:

  • GRADOS (predeterminado)
  • VUELTAS

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:

  • PORCENTAJE
  • RPM (predeterminado) – Rotaciones por minuto

esperar

Opcional.

  • wait=True (predeterminado) – El proyecto espera hasta que spin_for se complete antes de ejecutar la siguiente línea de código.
  • wait=False - El proyecto inicia la acción y pasa a la siguiente línea de código de inmediato, sin esperar a que spin_for termine.

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

  • GRADOS
  • VUELTAS

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:

  • PERCENT
  • RPM – Rotaciones por minuto
  • VelocityUnits.DPS – Grados por segundo

esperar

Opcional.

  • wait=True (predeterminado) – El proyecto espera hasta que spin_to_position se complete antes de ejecutar la siguiente línea de código.
  • wait=False - El proyecto inicia la acción y pasa a la siguiente línea de código de inmediato, sin esperar a que spin_to_position termine.

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

  • «PESO LIBRE»: Disminuye la velocidad gradualmente hasta detenerse.
  • «FRENO» (predeterminado): Se detiene inmediatamente.
  • «MANTENER»: Detiene y resiste el movimiento mediante la retroalimentación del motor.

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

  • GRADOS
  • VUELTAS

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

  • PORCENTAJE
  • RPM (Rotaciones por minuto)
  • VelocityUnits.DPS (Grados por segundo)

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

  • FRENO – Se detiene inmediatamente.
  • COAST – Disminuye la velocidad gradualmente hasta detenerse.
  • HOLD – Se detiene y resiste el movimiento usando la retroalimentación del motor.

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

  • PERCENT
  • TorqueUnits.NM (Newton Metros)
  • TorqueUnits.INLB (Pulgadas Libras)

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

  • SEGUNDOS
  • MSEC (predeterminado) – Milisegundos

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

  • GRADOS (predeterminado)
  • VUELTAS

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

  • PERCENT
  • RPM (predeterminado) – Rotaciones por minuto
  • VelocityUnits.DPS (Grados por segundo)

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

  • Verdadero – Invierte la dirección del motor
  • Falso – Devuelve la dirección del motor a su valor predeterminado

# 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

puerto

A qué puerto inteligente está conectado el motor, del 1 al 12.

engranajes

Opcional. Relación de transmisión del motor:

  • GearSetting.RATIO_1_1 (predeterminado) – Relación 1:1
  • GearSetting.RATIO_2_1 – Relación 2:1
  • GearSetting.RATIO_3_1 – Relación 3:1

revertir

Opcional. Establece si se debe invertir el giro del motor.

  • «Verdadero»: el motor está invertido.
  • «Falso» (predeterminado): el motor no está invertido.

# 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

motores

Los nombres de los objetos Motor creados previamente que se colocarán en el grupo motor.

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