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.

For the examples below, the configured drivetrain will be named drivetrain and will be used in all subsequent examples throughout this API documentation when referring to DriveTrain and SmartDrive class methods.

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

Actions – Move and turn the robot.

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

  • drive_for – Moves the drivetrain for a set distance.

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

  • turn_for – Turns the drivetrain for a set distance.

  • turn_to_heading – Turns the smart drivetrain to a specified heading using sensors.

  • turn_to_rotation – Turns the smart drivetrain to a specific rotational value.

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

  • calibrate_drivetrain – Calibrate the Inertial Sensor.

Mutators – Set default movement and turn speeds.

Getters – Return robot state and position.

  • 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.

  • current – Returns the current of the drivetrain.

  • is_moving – Returns whether a drivetrain is currently moving.

  • is_done – Returns whether a drivetrain is currently not moving.

  • is_turning – Returns whether a drivetrain is currently turning.

  • 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.

  • temperature – Returns the temperature of the drivetrain.

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.

Actions#

drive#

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

Usage:
drivetrain.drive(direction, velocity, units)

Parámetros

Descripción

direction

La dirección en la que se debe conducir:

  • ADELANTE
  • ATRÁS

velocity

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:

  • PERCENT
  • 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()

drive_for#

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

Usage:
drivetrain.drive_for(direction, distance, units, velocity, units_v, wait)

Parámetros

Descripción

direction

La dirección en la que se debe conducir:

  • ADELANTE
  • ATRÁS

distance

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

velocity

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 %.

units_v

Opcional. Unidad que representa la velocidad:

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

wait

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)

turn#

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

Usage:
drivetrain.turn(direction, velocity, units)

Parámetros

Descripción

direction

La dirección en la que girar:

  • IZQUIERDA
  • DERECHA

velocity

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

turn_for#

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

Usage:
drivetrain.turn_for(direction, angle, units, velocity, units_v, wait)

Parámetros

Descripción

direction

La dirección en la que girar:

  • IZQUIERDA
  • DERECHA

angle

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

velocity

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 %.

units_v

Opcional. Unidad que representa la velocidad:

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

wait

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)

turn_to_heading#

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.

Usage:
drivetrain.turn_to_heading(angle, units, velocity, units_v, wait)

Parámetros

Descripción

angle

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

velocity

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 %.

units_v

Opcional. Unidad que representa la velocidad:

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

wait

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)

turn_to_rotation#

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.

Usage:
drivetrain.turn_to_rotation(angle, units, velocity, units_v, wait)

Parámetros

Descripción

angle

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

velocity

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 %.

units_v

Opcional. Unidad que representa la velocidad:

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

wait

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)

stop#

stop detiene una transmisión.

Usage:
drivetrain.stop(mode)

Parámetros

Descripción

mode

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)

calibrate_drivetrain#

calibrate_drivetrain calibrates the Gyro Sensor or Brain Inertial Sensor that is configured with the drivetrain. Calibration should be done when the drivetrain is not moving.

Note: The Brain will automatically calibrate at the start of each project.

Usage:
calibrate_drivetrain()

Parámetros

Descripción

Este método no tiene parámetros.

# Calibrate the DriveTrain after turning
drivetrain.turn_for(RIGHT, 90, DEGREES)
calibrate_drivetrain()
brain.screen.print("Done!")

Mutators#

set_drive_velocity#

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.

Usage:
drivetrain.set_drive_velocity(velocity, units)

Parámetros

Descripción

velocity

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

unidades

Opcional. Unidad que representa la velocidad:

  • PERCENT
  • 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)

set_turn_velocity#

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.

Usage:
drivetrain.set_turn_velocity(velocity, units)

Parámetros

Descripción

velocity

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

unidades

Opcional. Unidad que representa la velocidad:

  • PERCENT
  • 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)

set_stopping#

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

Usage:
drivetrain.set_stopping(mode)

Parámetros

Descripción

mode

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

set_timeout#

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.

Usage:
drivetrain.set_timeout(value, units)

Parámetros

Descripción

value

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)

set_heading#

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.

Usage:
drivetrain.set_heading(heading, units)

Parámetros

Descripción

heading

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)

set_rotation#

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.

Usage:
drivetrain.set_rotation(rotation, units)

Parámetros

Descripción

rotation

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)

set_turn_threshold#

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.

Usage:
drivetrain.set_turn_threshold(value)

Parámetros

Descripción

value

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

set_turn_constant#

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.

Usage:
drivetrain.set_turn_constant(value)

Parámetros

Descripción

value

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

set_turn_direction_reverse#

set_turn_direction_reverse(value) sets the smart drivetrain to be reversed. This method works the same as setting the reverse parameter to True when constructing a SmartDrive.

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

Usage:
drivetrain.set_turn_direction_reverse(value)

Parámetros

Descripción

value

Boolean value to set the direction reversed or not:

  • True – Reverse the smart drivetrain’s direction
  • False – Return the smart drivetrain’s direction to its default

# Example coming soon

Getters#

heading#

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.

Usage:
drivetrain.heading(units)

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

rotation#

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.

Usage:
drivetrain.rotation(units)

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

velocity#

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

Usage:
drivetrain.velocity(units)

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

current#

current returns the current of the drivetrain in amps.

Usage:
drivetrain.current(units)

Parámetros

Descripción

unidades

Optional. The unit that represents the current:

  • CurrentUnits.AMP – Amps
# Example coming soon

is_moving#

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.

Usage:
drivetrain.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!")

is_done()#

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.

Usage:
drivetrain.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()

is_turning#

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.

Usage:
drivetrain.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!")

power#

power returns the average power of the drivetrain in watts.

Usage:
drivetrain.power()

Parámetros

Descripción

Este método no tiene parámetros.

# Example coming soon

torque#

torque returns the average torque of the drivetrain.

Usage:
drivetrain.torque(units)

Parámetros

Descripción

unidades

The unit that represents the torque:

  • TorqueUnits.NM (default) – Newton meters
  • TorqueUnits.INLB – Inch pounds
# Example coming soon

efficiency#

efficiency returns the average efficiency of the drivetrain in percent.

Usage:
drivetrain.efficiency()

Parámetros

Descripción

Este método no tiene parámetros.

# Example coming soon

temperature#

temperature returns the average temperature of the drivetrain.

Usage:
drivetrain.temperature(units)

Parámetros

Descripción

unidades

Optional. The units that represent the temperature:

  • TemperatureUnits.CELSIUS (default)
  • TemperatureUnits.FAHRENHEIT
# Example coming soon

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.

Note: In order to create a drivetrain, at least two Motor or MotorGroup objects must already have been created.

Drivetrain#

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

The name of a previously created left motor or motor group.

rm

The name of a previously created right motor or motor group.

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)

Smart Drivetrain#

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

The name of a previously created left motor or motor group.

rm

The name of a previously created right motor or motor group.

g

The name of a previously created Inertial Sensor or Gyro Sensor.

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)

If making a smart drivetrain with multiple motors, you need to create the Motors separately before grouping them into a Motor Group.

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