Transmisión#

Introducción#

El tren motriz controla el movimiento de un robot, permitiéndole avanzar, girar y detenerse con precisión.

También puede funcionar como un sistema de transmisión inteligente cuando se configura con un sensor giroscópico o un sensor inercial cerebral.

A continuación se muestra una lista de todos los métodos:

Métodos – Controlar el movimiento y el comportamiento de la transmisión.

  • drive – Mueve el tren motriz en una dirección específica indefinidamente.

  • drive_for – Mueve el sistema de transmisión durante una distancia determinada.

  • turn – Gira la transmisión hacia la izquierda o hacia la derecha indefinidamente.

  • turn_for – Gira la transmisión durante una distancia determinada.

  • turn_to_heading – Gira el sistema de transmisión inteligente hacia un rumbo específico mediante sensores.

  • turn_to_rotation – Gira la transmisión inteligente a un valor de rotación específico.

  • stop – Detiene una transmisión con un comportamiento configurable.

  • set_drive_velocity – Establece la velocidad de movimiento predeterminada para el tren motriz.

  • set_turn_velocity – Establece la velocidad de movimiento de giro para el tren motriz.

  • set_stopping – Establece el comportamiento de detención (frenado, inercia o retención).

  • set_timeout – Limita el tiempo que una función de transmisión espera antes de darse por vencida si se bloquea el movimiento.

  • get_timeout – Devuelve la duración del tiempo de espera actual de una transmisión.

  • set_heading – Establece el rumbo de una transmisión inteligente en un valor específico.

  • set_rotation – Establece el valor de rotación de una transmisión inteligente en un valor específico.

  • calibrar – Calibra el sensor giroscópico o el sensor inercial cerebral configurado de un sistema de transmisión inteligente.

  • is_moving – Devuelve si un tren motriz se está moviendo actualmente.

  • is_turning – Devuelve si un tren motriz está girando actualmente.

  • is_done – Devuelve si un tren motriz no se está moviendo actualmente.

  • heading – Devuelve el rumbo actual de un sistema de transmisión inteligente.

  • rotación – Devuelve el valor de rotación actual de una transmisión inteligente.

  • velocidad – Devuelve la velocidad actual de un sistema de transmisión.

  • potencia – Devuelve la cantidad de energía utilizada por un sistema de transmisión.

  • torque – Devuelve el torque generado por un sistema de transmisión.

  • eficiencia – Devuelve la eficiencia de un sistema de transmisión.

  • set_turn_threshold – Establece el umbral de giro para una transmisión inteligente.

  • set_turn_constant – Establece la constante de giro para una transmisión inteligente.

  • set_turn_direction_reverse – Establece una transmisión inteligente para que su dirección se invierta.

Constructores: inicializan y configuran manualmente la transmisión.

  • DriveTrain – Crea un tren de transmisión básico.

  • SmartDrive – Crea un sistema de transmisión configurado con un sensor giroscópico o un sensor inercial cerebral.

conducir#

drive mueve el tren motriz en una dirección específica indefinidamente.

Uso:
drive(dirección, velocidad, unidades)

Parámetros

Descripción

dirección

La dirección en la que se debe conducir:

  • ADELANTE
  • ATRÁS

velocidad

Opcional. La velocidad a la que se moverá la transmisión, 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:

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

# Drive forward then stop
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop()

# Drive slowly in reverse then stop
drivetrain.drive(REVERSE, 20, PERCENT)
wait(2, SECONDS)
drivetrain.stop()

conducir_para#

drive_for mueve el sistema de transmisión en una dirección específica durante una distancia establecida.

Uso:
drive_for(dirección, distancia, unidades, velocidad, unidades_v, esperar)

Parámetros

Descripción

dirección

La dirección en la que se debe conducir:

  • ADELANTE
  • ATRÁS

distancia

La distancia que debe recorrer el tren motriz, expresada en forma de número flotante o entero.

unidades

La unidad que representa la distancia:

  • MM – Milímetros
  • PULGADAS (predeterminado)
  • DistanceUnits.CM – Centímetros

velocidad

Opcional. La velocidad a la que se moverá la transmisión, 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 (predeterminado) – Rotaciones por minuto
  • VelocityUnits.DPS – Grados por segundo

esperar

Opcional.

  • wait=True (predeterminado) – El proyecto espera hasta que drive_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 drive_for termine.

# Drive forward and backward
drivetrain.drive_for(FORWARD, 10)
drivetrain.drive_for(REVERSE, 10)

# Quickly drive forward and backward
drivetrain.drive_for(FORWARD, 200, MM, 100, PERCENT)
drivetrain.drive_for(REVERSE, 200, MM, 100, PERCENT)

doblar#

turn gira la transmisión hacia la izquierda o hacia la derecha indefinidamente.

Uso:
turn(dirección, velocidad, unidades)

Parámetros

Descripción

dirección

La dirección en la que girar:

  • IZQUIERDA
  • DERECHA

velocidad

Opcional. La velocidad a la que girará la transmisión, 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 (predeterminado) – Rotaciones por minuto
  • VelocityUnits.DPS – Grados por segundo

# Turn right and left, then stop
drivetrain.turn(RIGHT)
wait(2, SECONDS)
drivetrain.turn(LEFT)
wait(2, SECONDS)
drivetrain.stop()

# Quickly turn right and left, then stop
drivetrain.turn(RIGHT, 100, PERCENT)
wait(2, SECONDS)
drivetrain.turn(LEFT, 100, PERCENT)
wait(2, SECONDS)
drivetrain.stop()

turno_para#

turn_for turns the drivetrain left or right for a specified angle or rotations.

Uso:
turn_for(dirección, ángulo, unidades, velocidad, unidades_v, esperar)

Parámetros

Descripción

dirección

La dirección en la que girar:

  • IZQUIERDA
  • DERECHA

ángulo

La cantidad de grados que girará la transmisión como un número flotante o entero.

unidades

La unidad que representa el valor rotacional:

  • GRADOS (predeterminado)
  • VUELTAS

velocidad

Opcional. La velocidad a la que girará la transmisión, 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 (predeterminado) – Rotaciones por minuto
  • VelocityUnits.DPS – Grados por segundo

esperar

Opcional.

  • wait=True (predeterminado) – El proyecto espera hasta que turn_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 turn_for termine.

# Turn the robot right and left
drivetrain.turn_for(RIGHT, 90, DEGREES)
wait(1, SECONDS)
drivetrain.turn_for(LEFT, 90, DEGREES)

# Quickly turn the robot right and left
drivetrain.turn_for(RIGHT, 90, DEGREES, 100, PERCENT)
wait(1, SECONDS)
drivetrain.turn_for(LEFT, 90, DEGREES, 100, PERCENT)

girar al rumbo#

turn_to_heading gira un tren de potencia inteligente hacia un rumbo específico.

Nota: Este método solo funcionará con una transmisión que haya sido configurada con un sensor giroscópico o un sensor inercial cerebral.

Uso:
turn_to_heading(ángulo, unidades, velocidad, unidades_v, esperar)

Parámetros

Descripción

ángulo

El encabezado para girar la transmisión para que quede como un flotante o un entero.

unidades

La unidad que representa el valor rotacional:

  • GRADOS

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 turn_to_heading 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 turn_to_heading termine.

# Turn to face the cardinal directions
drivetrain.turn_to_heading(90, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_heading(180, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_heading(270, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_heading(0, DEGREES)

# Turn twice slowly
drivetrain.turn_to_heading(90, DEGREES, 20, PERCENT)
wait(1, SECONDS)
drivetrain.turn_to_heading(180, DEGREES, 20, PERCENT)

giro a rotación#

turn_to_rotation gira una transmisión inteligente a un valor de rotación especificado.

Nota: Este método solo funcionará con una transmisión que haya sido configurada con un sensor giroscópico o un sensor inercial cerebral.

Uso:
turn_to_rotation(ángulo, unidades, velocidad, unidades_v, esperar)

Parámetros

Descripción

ángulo

El valor rotacional para girar la transmisión para que quede 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 turn_to_rotation 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 turn_to_rotation termine.

# Turn left, then spin in a circle clockwise and face right
drivetrain.turn_to_rotation(-90, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_rotation(450, DEGREES)

# Turn left then slowly spin in a circle clockwise
drivetrain.turn_to_rotation(-90, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_rotation(450, DEGREES, 20, PERCENT)

detener#

stop detiene una transmisión.

Uso:
stop(mode)

Parámetros

Descripción

modo

Opcional. Cómo se detendrá la transmisión:

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

# Drive forward then stop
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop()

# Drive forward and coast to a stop
drivetrain.set_drive_velocity(100, PERCENT)
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop(COAST)

establecer_velocidad_de_transmisión#

set_drive_velocity establece la velocidad de movimiento predeterminada de un tren de potencia. Este ajuste de velocidad se utilizará en llamadas posteriores a cualquier función de tren de potencia si no se proporciona una velocidad específica.

Uso:
set_drive_velocity(velocidad, unidades)

Parámetros

Descripción

velocidad

La velocidad a la que se moverá la transmisión, como un valor flotante o entero.

unidades

Opcional. Unidad que representa la velocidad:

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

# Drive forward at different velocities
# Default velocity
drivetrain.drive_for(FORWARD, 150, MM)
wait(1, SECONDS)
# Drive slower
drivetrain.set_drive_velocity(20, PERCENT)
drivetrain.drive_for(FORWARD, 150, MM)
wait(1, SECONDS)
# Drive faster
drivetrain.set_drive_velocity(100, PERCENT)
drivetrain.drive_for(FORWARD, 150, MM)

establecer_velocidad_de_giro#

set_turn_velocity establece la velocidad de giro predeterminada de una transmisión. Esta configuración de velocidad se utilizará en llamadas posteriores a cualquier función de transmisión si no se proporciona una velocidad específica.

Uso:
set_turn_velocity(velocidad, unidades)

Parámetros

Descripción

velocidad

La velocidad a la que girará la transmisión, expresada como un valor flotante o entero.

unidades

Opcional. Unidad que representa la velocidad:

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

# Turn at different velocities
# Default velocity
drivetrain.turn_for(RIGHT, 360)
wait(1, SECONDS)
# Turn slower
drivetrain.set_turn_velocity(20, PERCENT)
drivetrain.turn_for(RIGHT, 360)
wait(1, SECONDS)
# Turn faster
drivetrain.set_turn_velocity(100, PERCENT)
drivetrain.turn_for(RIGHT, 360)

establecer_detención#

set_stopping establece el modo de detención de un sistema de transmisión.

Uso:
set_stopping(mode)

Parámetros

Descripción

modo

Cómo se detendrá la transmisión:

  • FRENO – Se detiene inmediatamente.
  • PESO LIBRE – Reduce la velocidad gradualmente hasta detenerse.
  • MANTENER – Se detiene y resiste el movimiento usando la retroalimentación del motor.

# Drive forward and coast to a stop
drivetrain.set_drive_velocity(100, PERCENT)
drivetrain.set_stopping(COAST)
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop()

establecer_tiempo_de_espera#

set_timeout establece un límite de tiempo que una función de transmisión esperará para alcanzar su objetivo. Si la transmisión 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 tren motriz se utiliza para evitar que las funciones del tren motriz 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

# Turn right after driving forward
drivetrain.set_timeout(1, SECONDS)
drivetrain.drive_for(FORWARD, 25, INCHES)
drivetrain.turn_for(RIGHT, 90)

obtener_tiempo_de_espera#

get_timeout devuelve el tiempo de espera actual para una transmisión en milisegundos.

Uso:
get_timeout()

Parámetros

Descripción

Este método no tiene parámetros.

# Display the timeout period after moving forward
drivetrain.set_timeout(1000, MSEC)
drivetrain.drive_for(FORWARD, 25, INCHES)
brain.screen.print("Waited " + "{:.0f}".format(drivetrain.get_timeout()) + " msec")
drivetrain.turn_for(RIGHT, 90)

establecer_encabezado#

set_heading establece el rumbo de una transmisión inteligente.

Nota: Este método solo funcionará con una transmisión que haya sido configurada con un sensor giroscópico o un sensor inercial cerebral.

Uso:
set_heading(heading, unidades)

Parámetros

Descripción

título

El nuevo encabezado como un valor flotante o entero.

unidades

Opcional. Unidad que representa el rumbo:

  • «GRADOS» (predeterminado)
  • «VUELTAS»

# Face the new 0 degrees
drivetrain.set_heading(90, DEGREES)
drivetrain.turn_to_heading(0, DEGREES)

rotación_del_conjunto#

El método set_rotation establece la rotación de la transmisión inteligente.

Nota: Este método solo funcionará con una transmisión que haya sido configurada con un sensor giroscópico o un sensor inercial cerebral.

Uso:
set_rotation(rotación, unidades)

Parámetros

Descripción

rotación

El nuevo valor rotacional como flotante o entero.

unidades

Opcional. Unidad que representa el rumbo:

  • «GRADOS» (predeterminado)
  • «VUELTAS»

# Spin counterclockwise two times
drivetrain.set_rotation(720, DEGREES)
drivetrain.turn_to_rotation(0, DEGREES)

se está moviendo#

is_moving devuelve un valor booleano que indica si un tren motriz se está moviendo actualmente.

  • Verdadero – La transmisión se está moviendo.

  • Falso – La transmisión no se mueve.

Uso:
is_moving()

Parámetros

Descripción

Este método no tiene parámetros.

# Stop the Drivetrain after moving forward for some time
drivetrain.drive_for(FORWARD, 200, MM, wait=False)
while drivetrain.is_moving():
    brain.screen.set_cursor(1, 1)
    brain.screen.print("Still Moving...")
    wait (0.1, SECONDS)
    brain.screen.clear_screen()
brain.screen.set_cursor(1, 1)
brain.screen.print("Done!")

está girando#

is_moving devuelve un valor booleano que indica si un sistema de transmisión inteligente está girando actualmente.

  • «Verdadero»: El sistema de transmisión inteligente está girando.

  • Falso: La transmisión inteligente no gira.

Nota: Este método solo funcionará con una transmisión que haya sido configurada con un sensor giroscópico o un sensor inercial cerebral.

Uso:
is_turning()

Parámetros

Descripción

Este método no tiene parámetros.

# Detect when the Drivetrain is still turning
drivetrain.turn_for(RIGHT, 180, DEGREES, wait=False)
while drivetrain.is_turning():
    brain.screen.clear_screen()
    brain.screen.set_cursor(1, 1)
    brain.screen.print("Turning...")
    wait (0.1, SECONDS)
brain.screen.set_cursor(1, 1)
brain.screen.print("Done!")

está_hecho()#

is_done devuelve un valor booleano que indica si un tren motriz no se está moviendo actualmente.

  • Verdadero – La transmisión no se mueve.

  • Falso – La transmisión se está moviendo.

Uso:
is_done()

Parámetros

Descripción

Este método no tiene parámetros.

# Stop the Drivetrain and turn right after moving 
# forward for some time
drivetrain.drive_for(FORWARD, 200, MM, wait=False)
while True:
    if drivetrain.is_done():
        drivetrain.turn_for(RIGHT, 360)
        break
    else:
        brain.screen.set_cursor(1, 1)
        brain.screen.print("Still Moving...")
        wait (0.1, SECONDS)
        brain.screen.clear_screen()

título#

heading devuelve el encabezado actual de un sistema de transmisión inteligente como un flotante.

Nota: Este método solo funcionará con una transmisión que haya sido configurada con un sensor giroscópico o un sensor inercial cerebral.

Uso:
heading(unidades)

Parámetros

Descripción

unidades

Opcional. Unidad que representa el valor de rotación:

  • GRADOS (predeterminado)
  • VUELTAS

# Display the heading after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print("Heading: ")
brain.screen.print(drivetrain.heading())

rotación#

rotation devuelve el valor rotacional actual de una transmisión inteligente como un flotante.

Nota: Este método solo funcionará con una transmisión que haya sido configurada con un sensor giroscópico o un sensor inercial cerebral.

Parámetros

Descripción

unidades

Opcional. Unidad que representa el valor de rotación:

  • GRADOS (predeterminado)
  • VUELTAS

# Display the rotation after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print("Rotation: ")
brain.screen.print(drivetrain.rotation())

velocidad#

velocity devuelve la velocidad actual de una transmisión como un valor flotante.

Parámetros

Descripción

unidades

Opcional. Unidad que representa la velocidad:

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

# Display the robot's velocity before and after moving
brain.screen.print(drivetrain.velocity())
brain.screen.next_row()
drivetrain.drive(FORWARD)
wait(1, SECONDS)
brain.screen.print(drivetrain.velocity())
drivetrain.stop()

establecer umbral de giro#

El método set_turn_threshold establece el umbral de giro para una transmisión inteligente. Este valor se utiliza para determinar si los giros se han completado. Si es demasiado alto, los giros no serán precisos. Si es demasiado bajo, es posible que los giros no se completen.

Nota: Este método solo funcionará con una transmisión que haya sido configurada con un sensor giroscópico o un sensor inercial cerebral.

Uso:
set_turn_threshold(valor)

Parámetros

Descripción

valor

El umbral de giro se establece en grados, como un valor decimal o entero. El umbral de giro predeterminado es 1 grado.

# Turn and display the heading with different turn thresholds
brain.screen.set_font(FontType.PROP20)
brain.screen.print("Default threshold: ")
drivetrain.turn_for(RIGHT, 90, DEGREES)
brain.screen.print(drivetrain.heading())
brain.screen.next_row()
wait(2, SECONDS)
brain_inertial.reset_heading()
brain.screen.print("20 degree Threshold: ")
drivetrain.set_turn_threshold(20)
drivetrain.turn_for(RIGHT, 90, DEGREES)
brain.screen.print(drivetrain.heading())

establecer constante de giro#

set_turn_constant establece la constante de giro para una transmisión inteligente. Las transmisiones inteligentes utilizan un controlador P simple al girar. Esta constante, generalmente conocida como kp, es la ganancia utilizada en la ecuación que convierte el error angular en velocidad del motor.

Nota: Este método solo funcionará con una transmisión que haya sido configurada con un sensor giroscópico o un sensor inercial cerebral.

Uso:
set_turn_constant(valor)

Parámetros

Descripción

valor

La nueva constante de giro está en el rango de 0,1 a 4,0. El valor predeterminado es 1,0.

# Turn and display the heading with different turn constants
brain.screen.set_font(FontType.PROP20)
brain.screen.print("Default Constant: ")
drivetrain.turn_for(RIGHT, 90, DEGREES)
brain.screen.print(drivetrain.heading())
brain.screen.next_row()
wait(2, SECONDS)
brain_inertial.reset_heading()
brain.screen.print("0.2 Turn Constant: ")
drivetrain.set_turn_constant(0.2)
drivetrain.turn_for(RIGHT, 90, DEGREES)
brain.screen.print(drivetrain.heading())

Constructores#

Los constructores se utilizan para crear manualmente objetos DriveTrain y SmartDrive, que son necesarios para configurar un sistema de transmisión fuera de VEXcode.

Para los ejemplos siguientes, el sistema de transmisión configurado se llamará drivetrain_1 y se utilizará en todos los ejemplos posteriores en esta documentación de API cuando se haga referencia a los métodos de clase DriveTrain y SmartDrive.

Nota: Para crear un sistema de transmisión, ya se deben haber creado al menos dos objetos Motor o MotorGroup.

Transmisión#

DriveTrain crea un sistema de transmisión sin sensor giroscópico ni sensor inercial cerebral.

Uso:
DriveTrain(lm, rm, wheelTravel, trackWidth, wheelBase, unidades, externalGearRatio)

Parámetro

Descripción

lm

El nombre de un motor o grupo de motores izquierdo creado previamente.

rm

El nombre de un motor o grupo de motores derecho creado previamente.

Rueda de viaje

Opcional. La circunferencia de las ruedas del tren de potencia. El valor predeterminado es 300 milímetros.

ancho de pista

Opcional. Ancho de vía de la transmisión. El valor predeterminado es 320 milímetros.

distancia entre ejes

Opcional. Distancia entre ejes del tren motriz. La distancia predeterminada es de 320 milímetros.

unidades

Opcional. Unidad que representa los valores de wheelTravel, trackWidth y wheelBase:

  • MM (predeterminado) – Milímetros
  • INCHES
  • DistanceUnits.CM – Centímetros

relación de transmisión externa

Opcional. La relación de transmisión se utiliza para compensar las distancias de conducción si el engranaje se utiliza como un número entero.

# Create the Motors
left_drive_smart = Motor(Ports.PORT1, 1.0, False)
right_drive_smart = Motor(Ports.PORT2, 1.0, True)
# Construct a 2-Motor Drivetrain "drivetrain" with the
# DriveTrain class
drivetrain = DriveTrain(left_drive_smart, right_drive_smart, 200, 173, 76, MM, 1)

drivetrain.drive_for(FORWARD, 200, MM)
drivetrain.drive_for(REVERSE, 200, MM)

# Create the left Motors and group them under the
# MotorGroup "left_motors"
left_motor_a = Motor(Ports.PORT1, 1.0, False)
left_motor_b = Motor(Ports.PORT2, 1.0, False)
left_drive_smart = 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, 1.0, True)
right_motor_b = Motor(Ports.PORT4, 1.0, True)
right_drive_smart = MotorGroup(right_motor_a, right_motor_b)
# Construct a 4-Motor Drivetrain "drivetrain" with the
# DriveTrain class
drivetrain = DriveTrain(left_drive_smart, right_drive_smart, 200, 173, 76, MM, 1)

drivetrain.drive_for(FORWARD, 200, MM)
drivetrain.drive_for(REVERSE, 200, MM)

Transmisión inteligente#

SmartDrive crea una transmisión con un sensor giroscópico o un sensor inercial cerebral.

Uso:
SmartDrive(lm, rm, g, recorrido de la rueda, ancho de vía, base de la rueda, unidades, relación de transmisión externa)

Parámetro

Descripción

lm

El nombre de un motor o grupo de motores izquierdo creado previamente.

rm

El nombre de un motor o grupo de motores derecho creado previamente.

g

El nombre de un Sensor inercial o Sensor giroscópico creado previamente.

Rueda de viaje

Opcional. La circunferencia de las ruedas del tren de potencia. El valor predeterminado es 300 milímetros.

ancho de pista

Opcional. Ancho de vía de la transmisión. El valor predeterminado es 320 milímetros.

distancia entre ejes

Opcional. Distancia entre ejes del tren motriz. La distancia predeterminada es de 320 milímetros.

unidades

Opcional. Unidad que representa los valores de wheelTravel, trackWidth y wheelBase:

  • MM (predeterminado) – Milímetros
  • INCHES
  • DistanceUnits.CM – Centímetros

relación de transmisión externa

Opcional. La relación de transmisión se utiliza para compensar las distancias de conducción si el engranaje se utiliza como un número entero.

# Construct a SmartDrive Drivetrain with 2 motors
brain_inertial = Inertial()
left_drive_smart = Motor(Ports.PORT1, 1.0, False)
right_drive_smart = Motor(Ports.PORT6, 1.0, True)

drivetrain = SmartDrive(left_drive_smart, right_drive_smart, brain_inertial, 200)

drivetrain.drive_for(FORWARD, 200, MM)
drivetrain.drive_for(REVERSE, 200, MM)

Si va a crear un sistema de transmisión inteligente con varios motores, deberá crear los Motores por separado antes de agruparlos en un Grupo de motores.

# Construct a SmartDrive Drivetrain with 4 motors
brain_inertial = Inertial()
left_motor_a = Motor(Ports.PORT1, 1.0, False)
left_motor_b = Motor(Ports.PORT2, 1.0, False)
left_drive_smart = MotorGroup(left_motor_a, left_motor_b)

right_motor_a = Motor(Ports.PORT5, 1.0, True)
right_motor_b = Motor(Ports.PORT6, 1.0, True)
right_drive_smart = MotorGroup(right_motor_a, right_motor_b)

drivetrain = SmartDrive(left_drive_smart, right_drive_smart, brain_inertial, 200)

drivetrain.drive_for(FORWARD, 200, MM)
drivetrain.drive_for(REVERSE, 200, MM)