Tren de transmisión#
Introducción#
El robot VEX IQ (2ª generación) utiliza un tren motriz para conducir y girar. Un tren motriz está hecho de motores y ruedas que trabajan juntos para mover el robot.
Una transmisión configurada puede usar un sensor giroscópico conectado, el sensor inercial incorporado en el cerebro o ningún sensor. Cuando se utiliza un sensor, el tren motriz lo utiliza para ayudar al robot a moverse y girar con precisión. Al inicio de cada proyecto, la transmisión calibra el sensor automáticamente. Mantenga el robot quieto durante unos 2 segundos durante la calibración, para que el robot pueda moverse y girar correctamente.
Esta página utiliza el drivetrain como el nombre del tren motriz de ejemplo. Reemplácelo con su propio nombre configurado según sea necesario.
Hay muchas maneras de codificar la transmisión. A continuación se muestra una lista de todos los métodos de transmisión:
Acciones: mueve y gira el robot.
drive— Mueve el robot hacia adelante o hacia atrás para siempre.drive_for— Mueve el robot hacia adelante o hacia atrás una distancia específica.turn— Gira el robot a la izquierda o a la derecha para siempre.turn_for— Gira el robot a la izquierda o a la derecha un número específico de grados.turn_to_heading— Gira el robot para enfrentar un rumbo específico de -359 a 359 grados. El robot girará en la dirección más corta para alcanzar el rumbo objetivo.turn_to_rotation— Gira el robot a una rotación específica.stop— Detiene el movimiento del robot.calibrate_drivetrain— Calibra el sensor configurado con la transmisión.
Mutadores: ajuste la configuración del tren motriz.
set_drive_velocity— Le dice al robot qué tan rápido debe conducir.set_turn_velocity— Le dice al robot qué tan rápido debe girar.set_stopping— Indica cómo dejará de moverse el robot: frenando, deslizándose o sosteniéndose.set_timeout— Establece cuánto tiempo intentará el robot terminar un movimiento.set_heading— Cambia el encabezado actual del robot a un nuevo encabezado.set_rotation— Cambia la rotación actual del robot a una nueva rotación.set_turn_threshold— Indica qué tan cerca debe estar el robot de un ángulo objetivo antes de que se complete un giro.set_turn_constant— Cambia la fuerza con la que el robot corrige sus giros.
Getters — Compruebe el estado del movimiento.
heading— Devuelve el rumbo actual del robot de 0 a 359 grados.rotation— Devuelve la rotación actual del robot.velocity: devuelve la velocidad a la que conduce el robot.current: Devuelve la cantidad de corriente eléctrica que utiliza el tren motriz.is_moving— Devuelve si el robot se está moviendo, como un valor booleano.is_done— Devuelve si el robot ha terminado de moverse, como un valor booleano.is_turning— Devuelve si el robot está girando, como un valor booleano.power: devuelve la rapidez con la que el tren motriz consume energía.torque— Devuelve la cantidad de torque que está utilizando el tren motriz.efficiency: devuelve la eficiencia con la que el tren motriz utiliza la energía.temperature: devuelve la temperatura del tren motriz.
Constructores: cree y configure manualmente el tren motriz.
DriveTrain: crea un tren motriz sin un sensor giroscópico o un sensor inercial.SmartDrive: crea un tren motriz con un sensor giroscópico o un sensor inercial.
Acciones#
drive#
drive mueve el robot hacia adelante o hacia atrás para siempre. El robot continuará moviéndose hasta que se le dé otra acción, como girar o detenerse.
Usage:
drivetrain.drive(direction, velocity, units)
Parámetros |
Descripción |
|---|---|
|
La dirección en la que se mueve el robot: |
|
Opcional. La velocidad para conducir con de 0% a 100% cuando se usa |
|
Opcional. La unidad de velocidad: |
# 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 robot hacia adelante o hacia atrás una distancia específica. El proyecto esperará hasta que el robot termine de moverse antes de que se ejecute la siguiente línea de código.
Usage:
drivetrain.drive_for(direction, distance, units, velocity, units_v, wait)
Parámetros |
Descripción |
|---|---|
|
La dirección en la que se mueve el robot: |
|
La distancia que recorre el robot. Esto puede ser un |
|
Opcional. La unidad de distancia: |
|
Opcional. La velocidad para conducir con de 0% a 100% cuando se usa |
|
Opcional. La unidad de velocidad: |
|
Opcional. |
# 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 hace que el robot gire a la izquierda o a la derecha indefinidamente. El robot seguirá girando hasta que se le dé otra acción, como conducir o detenerse.
Usage:
drivetrain.turn(direction, velocity, units)
Parámetros |
Descripción |
|---|---|
|
La dirección en la que gira el robot: |
|
Opcional. La velocidad para girar es de 0% a 100% cuando se usa |
|
Opcional. La unidad de velocidad: |
# 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 gira el robot a la izquierda o a la derecha durante un número específico de grados o giros. El giro es relativo a la posición actual del robot. El proyecto esperará hasta que el robot termine de girar antes de que se ejecute la siguiente línea de código.
Usage:
drivetrain.turn_for(direction, angle, units, velocity, units_v, wait)
Parámetros |
Descripción |
|---|---|
|
La dirección en la que gira el robot: |
|
La cantidad que gira el robot. Esto puede ser un |
|
Opcional. La unidad de giro: |
|
Opcional. La velocidad para girar es de 0% a 100% cuando se usa |
|
Opcional. La unidad de velocidad: |
|
Opcional. |
# 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#
Un rumbo es la dirección hacia la que se enfrenta el robot, medida en grados. turn_to_heading gira el robot para que se enfrente a un rumbo específico de -359 a 359 grados. El robot girará en la dirección más corta para alcanzar el rumbo objetivo.
El rumbo inicial del robot es de 0 grados.
El proyecto esperará hasta que el robot termine de girar antes de que se ejecute la siguiente línea de código.
Usage:
drivetrain.turn_to_heading(angle, units, velocity, units_v, wait)
Parámetros |
Descripción |
|---|---|
|
La dirección a la que debe mirar el robot, en grados. Esto puede ser un |
|
Opcional. La unidad de encabezado: |
|
Opcional. La velocidad para girar es de 0% a 100% cuando se usa |
|
Opcional. La unidad de velocidad: |
|
Opcional. |
# 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 hace girar el robot a una rotación específica.
La rotación es cuánto ha girado el robot, medida en grados o giros. Al comienzo de un proyecto, el valor de rotación se establece en 0 grados. La rotación también se puede configurar utilizando el método set_rotation.
Los valores de rotación son absolutos. Esto significa que la dirección del giro depende de la rotación actual del robot. Girar a la derecha aumenta la rotación y girar a la izquierda disminuye la rotación.
Por ejemplo, si el robot comienza a 0 grados y gira a una rotación de 720 grados, girará a la derecha dos veces. Si luego giras a una rotación de 360 grados, girará a la izquierda una vez, porque 360 es menos de 720.
El proyecto esperará hasta que el robot termine de girar antes de que se ejecute la siguiente línea de código.
Usage:
drivetrain.turn_to_rotation(angle, units, velocity, units_v, wait)
Parámetros |
Descripción |
|---|---|
|
El valor de rotación, en grados o giros, al que girará el robot. Esto puede ser un |
|
Opcional. La unidad de rotación: |
|
Opcional. La velocidad para girar es de 0% a 100% cuando se usa |
|
Opcional. La unidad de velocidad: |
|
Opcional. |
# 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 el movimiento del robot.
Usage:
drivetrain.stop(mode)
Parámetros |
Descripción |
|---|---|
|
Opcional. Cómo se detendrá el robot:
|
# 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 es una función incorporada que calibra el sensor giroscópico o el sensor inercial configurado con el tren motriz.
La calibración ayuda al sensor a medir el movimiento correctamente. Mantenga el robot quieto durante unos 2 segundos durante la calibración. Si el robot se mueve durante la calibración, es posible que el sensor no mida el movimiento correctamente.
El proyecto esperará hasta que se realice la calibración antes de que se ejecute la siguiente línea de código.
Nota: Esta función no se puede usar dentro del código VS.
Usage:
calibrate_drivetrain()
Parámetros |
Descripción |
|---|---|
Esta función no tiene parámetros. |
Mutadores#
set_drive_velocity#
set_drive_velocity le dice al robot qué tan rápido conducir. Un porcentaje más alto hace que el robot conduzca más rápido y un porcentaje más bajo hace que el robot conduzca más lento.
Cada proyecto comienza con el robot conduciendo al 50% de la velocidad por defecto.
Nota: Una velocidad más alta hace que el robot conduzca más rápido, pero puede ser menos preciso. Una velocidad más baja hace que el robot conduzca más lento, pero puede ser más preciso.
Usage:
drivetrain.set_drive_velocity(velocity, units)
Parámetros |
Descripción |
|---|---|
|
La velocidad para conducir con de 0% a 100% cuando se usa |
|
Opcional. La unidad de velocidad: |
# 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 le dice al robot qué tan rápido debe girar. Un porcentaje más alto hace que el robot gire más rápido y un porcentaje más bajo hace que el robot gire más lento.
Cada proyecto comienza con el robot girando a una velocidad del 50% por defecto.
Nota: Una velocidad más alta hace que el robot gire más rápido, pero puede ser menos preciso. Una velocidad más baja hace que el robot gire más lento, pero puede ser más preciso.
Usage:
drivetrain.set_turn_velocity(velocity, units)
Parámetros |
Descripción |
|---|---|
|
La velocidad para girar es de 0% a 100% cuando se usa |
|
Opcional. La unidad de velocidad: |
# 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 cómo el robot dejará de moverse: frenando, deslizándose o sosteniéndose.
Usage:
drivetrain.set_stopping(mode)
Parámetros |
Descripción |
|---|---|
|
Cómo se detendrá el robot:
|
Si no se utiliza este método, el robot utilizará el BRAKE al detenerse.
set_timeout#
set_timeout establece cuánto tiempo intentará el robot terminar un movimiento. Si el robot no puede terminar en ese tiempo, dejará de intentarlo y pasará a la siguiente línea de código. Esto evita que el robot se atasque en un movimiento.
Usage:
drivetrain.set_timeout(value, units)
Parámetros |
Descripción |
|---|---|
|
La cantidad de tiempo que el robot puede intentar terminar un movimiento. Esto puede ser un |
|
Opcional. La unidad de tiempo: |
# Turn right after driving forward
drivetrain.set_timeout(1, SECONDS)
drivetrain.drive_for(FORWARD, 25, INCHES)
drivetrain.turn_for(RIGHT, 90)
set_heading#
Un rumbo es la dirección hacia la que mira el robot, medida en grados. set_heading cambia el rumbo actual del robot a un nuevo valor de rumbo.
Por ejemplo, si el robot ha girado hacia la derecha, establecer el rumbo en 0 grados hace que esa posición orientada hacia la derecha sea la nueva de 0 grados. Luego, el robot puede pasar a otras posiciones en función de ese nuevo encabezado.
Usage:
drivetrain.set_heading(heading, units)
Parámetros |
Descripción |
|---|---|
|
El valor de rumbo, en grados o giros, a establecer para el robot. Esto puede ser un |
|
Opcional. La unidad de encabezado: |
# Face the new 0 degrees
drivetrain.set_heading(90, DEGREES)
drivetrain.turn_to_heading(0, DEGREES)
set_rotation#
La rotación es cuánto ha girado el robot, medida en grados o giros. Al comienzo de un proyecto, el valor de rotación se establece en 0 grados. set_rotation cambia la rotación actual del robot a un nuevo valor.
Por ejemplo, si el robot ha realizado dos giros completos a la derecha, su valor de rotación será de 720 grados. Ajustar la rotación a 0 grados restablecerá esa rotación de 720 a 0 grados. Luego, el robot puede pasar a las rotaciones en función de ese nuevo valor.
Usage:
drivetrain.set_rotation(rotation, units)
Parámetros |
Descripción |
|---|---|
|
El valor de rotación, en grados o giros, a establecer para el robot. Esto puede ser un |
|
Opcional. La unidad de rotación: |
# Spin counterclockwise two times
drivetrain.set_rotation(720, DEGREES)
drivetrain.turn_to_rotation(0, DEGREES)
set_turn_threshold#
set_turn_threshold establece qué tan cerca debe estar el robot de un ángulo objetivo antes de que se complete un giro.
Un umbral más pequeño puede hacer que los giros sean más precisos, pero el robot puede tardar más en terminar de girar. Un umbral más grande puede hacer que los giros terminen antes, pero pueden ser menos precisos.
Usage:
drivetrain.set_turn_threshold(value)
Parámetros |
Descripción |
|---|---|
|
El umbral de giro, en grados. Esto puede ser un |
# Set the turn threshold to 5 degrees
drivetrain.set_turn_threshold(5)
set_turn_constant#
set_turn_constant cambia la fuerza con la que el robot corrige sus giros.
Un valor más alto hace que los giros correctos del robot sean más fuertes. Un valor más bajo hace que los giros correctos del robot sean más suaves. El valor predeterminado es 1.0.
Usage:
drivetrain.set_turn_constant(value)
Parámetros |
Descripción |
|---|---|
|
La constante de giro. Esto puede ser un decimal ( |
# Increase the turn constant to 2.0
drivetrain.set_turn_constant(2.0)
Getters#
heading#
Un rumbo es la dirección hacia la que mira el robot, medida en grados. El heading devuelve el rumbo actual del robot de 0 a 359 grados.
El rumbo inicial del robot es de 0 grados.
Usage:
drivetrain.heading(units)
Parámetros |
Descripción |
|---|---|
|
Opcional. La unidad a devolver se dirige en: |
# Display the heading after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print("Heading: ")
brain.screen.print(drivetrain.heading())
rotation#
La rotación es cuánto ha girado el robot, medida en grados o giros. Al comienzo de un proyecto, el valor de rotación se establece en 0 grados. La rotation devuelve la rotación actual del robot.
Girar a la derecha aumenta la rotación y girar a la izquierda disminuye la rotación. Por ejemplo, hacer dos giros completos a la derecha devolverá una rotación de 720 grados.
Usage:
drivetrain.rotation(units)
Parámetros |
Descripción |
|---|---|
|
Opcional. La unidad para devolver la rotación en: |
# 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 a la que conduce el robot.
Puede devolver la velocidad como un porcentaje de -100% a 100%, en RPM de -127 rpm a 127 rpm, o en VelocityUnits.DPS. Un valor positivo significa que el robot está avanzando. Un valor negativo significa que el robot está conduciendo en reversa.
Usage:
drivetrain.velocity(units)
Parámetros |
Descripción |
|---|---|
|
Opcional. La unidad para devolver la velocidad en: |
current#
current devuelve la cantidad de corriente eléctrica que está utilizando el tren motriz, medida en amperios (amperios). La corriente es la cantidad de electricidad que fluye a través del tren motriz.
Un valor de corriente más alto significa que el tren motriz está utilizando más corriente eléctrica. Esto puede suceder cuando el robot está empujando contra un objeto o tratando de moverse cuando está atascado.
Esto se puede usar para verificar si el tren motriz tiene dificultades durante un movimiento. Si la corriente se mantiene alta, el tren motriz puede calentarse o usar la energía de manera menos eficiente.
Usage:
drivetrain.current(units)
Parámetros |
Descripción |
|---|---|
|
Opcional. La unidad para devolver la corriente en: |
is_moving#
is_moving devuelve si el robot se está moviendo, como un valor booleano. Esto se puede utilizar para controlar el tiempo de otros comportamientos basados en el movimiento del robot.
True: el robot se está moviendo.False— El robot no se mueve.
Este método funciona junto con los siguientes métodos de transmisión que tienen el parámetro wait: drive_for, turn_for, turn_to_heading y turn_to_rotation.
Usage:
drivetrain.is_moving()
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
is_done#
is_done devuelve si el robot ha terminado de moverse, como un valor booleano. Esto se puede utilizar para controlar el tiempo de otros comportamientos basados en el movimiento del robot.
True: el robot ha terminado de moverse.False: el robot todavía se está moviendo.
Este método funciona junto con los siguientes métodos de transmisión que tienen el parámetro wait: drive_for, turn_for, turn_to_heading y turn_to_rotation.
Usage:
drivetrain.is_done()
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
is_turning#
is_turning devuelve si el robot está girando, como un valor booleano. Esto se puede utilizar para controlar el tiempo de otros comportamientos basados en el movimiento del robot.
True: el robot está girando.False— El robot no está girando.
Este método funciona junto con los siguientes métodos de transmisión que tienen el parámetro wait: turn_for, turn_to_heading y turn_to_rotation.
Usage:
drivetrain.is_turning()
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
power#
la power devuelve la cantidad de potencia que está utilizando el tren motriz, medida en vatios. La potencia muestra la rapidez con la que el tren motriz está utilizando la energía.
Un valor de potencia más alto significa que el tren motriz está utilizando la energía más rápido. Esto puede suceder cuando el robot está empujando contra un objeto o tratando de moverse cuando está atascado.
Esto se puede usar para comparar movimientos o verificar si el tren motriz tiene dificultades. Si la potencia se mantiene alta, el tren motriz puede calentarse o usar la energía de manera menos eficiente.
Usage:
drivetrain.power()
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
torque#
El par de torsión muestra la fuerza con la que la transmisión puede empujar o tirar mientras las ruedas giran.
torque devuelve la cantidad de torque que está utilizando el tren motriz, medido en Newton-metros (Nm) o pulgadas-libras (InLb).
Un valor de par más alto significa que el tren motriz está empujando o tirando con más fuerza. Esto puede suceder cuando el robot está empujando contra un objeto o tratando de moverse cuando está atascado.
Esto se puede usar para verificar si la transmisión tiene dificultades o para comparar cuánto empuje necesitan los diferentes movimientos.
Usage:
drivetrain.torque(units)
Parámetros |
Descripción |
|---|---|
|
Opcional. La unidad para devolver el torque en: |
efficiency#
efficiency devuelve la eficiencia con la que el tren motriz está utilizando la energía, como un porcentaje del 0% al 100%.
La eficiencia muestra qué parte de la potencia de la transmisión se está utilizando para el movimiento. Un valor de eficiencia más alto significa que se está utilizando más potencia del tren motriz para moverse. Un valor de eficiencia más bajo puede ocurrir cuando el tren motriz está trabajando duro pero no se mueve mucho, como cuando el robot está atascado o empujando contra un objeto.
Esto se puede usar para comparar movimientos o verificar si el tren motriz está desperdiciando energía en lugar de usarla para el movimiento.
Usage:
drivetrain.efficiency()
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
temperature#
temperature devuelve la temperatura promedio del tren motriz en la unidad de temperatura seleccionada.
La temperatura muestra qué tan calientes están los motores del tren motriz. Una temperatura más alta significa que los motores se calientan mientras funcionan. Los motores deben permanecer por debajo de 55° C para seguir funcionando a pleno rendimiento.
Si los motores se calientan demasiado, bajarán su corriente máxima para protegerse. A 70 °C, los motores dejarán de funcionar hasta que se enfríen.
Esto se puede usar para verificar si el tren motriz se está calentando demasiado durante movimientos repetidos, carreras largas o cuando está empujando contra un objeto.
Usage:
drivetrain.temperature(units)
Parámetros |
Descripción |
|---|---|
|
Opcional. La unidad para devolver la temperatura en: |
Constructores#
Los constructores se utilizan para crear objetos DriveTrain y SmartDrive en código. Esto es útil cuando se configura un tren motriz sin usar la ventana Dispositivos.
Se deben crear al menos dos objetos Motor o MotorGroup antes de crear un tren de transmisión.
DriveTrain#
DriveTrain crea un tren motriz sin un sensor inercial o un sensor giroscópico.
Usage:
DriveTrain(lm, rm, wheelTravel, trackWidth, wheelBase, units, externalGearRatio)
Parámetro |
Descripción |
|---|---|
|
El motor o grupo motor izquierdo. |
|
El motor derecho o el grupo motor. |
|
Opcional. La circunferencia de las ruedas del tren motriz. El valor predeterminado es 300 milímetros. |
|
Opcional. El ancho entre las ruedas izquierda y derecha. El valor predeterminado es 320 milímetros. |
|
Opcional. Distancia entre las ruedas delanteras y traseras. El valor predeterminado es 320 milímetros. |
|
Opcional. La unidad para |
|
Opcional. Relación de transmisión utilizada para ajustar las distancias de transmisión si se utilizan engranajes. Esto puede ser un |
# Create left and right drive motor objects
left_drive_smart = Motor(Ports.PORT1, 1.0, False)
right_drive_smart = Motor(Ports.PORT2, 1.0, True)
'''
Create a Drivetrain with the following values:
wheelTravel: 200
trackWidth: 173
wheelBase: 76
units: MM
externalGearRatio: 1
'''
drivetrain = DriveTrain(left_drive_smart, right_drive_smart, 200, 173, 76, MM, 1)
# Create two motor group objects for left and right 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)
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)
'''
Create a Drivetrain with the following values:
wheelTravel: 200
trackWidth: 173
wheelBase: 76
units: MM
externalGearRatio: 1
'''
drivetrain = DriveTrain(left_drive_smart, right_drive_smart, 200, 173, 76, MM, 1)
SmartDrive#
SmartDrive crea un tren motriz configurado con un Sensor inercial o Sensor giroscópico.
Usage:
SmartDrive(lm, rm, g, wheelTravel, trackWidth, wheelBase, units, externalGearRatio)
Parámetro |
Descripción |
|---|---|
|
El motor o grupo motor izquierdo. |
|
El motor derecho o el grupo motor. |
|
El Sensor inercial o Sensor giroscópico utilizado por la transmisión. |
|
Opcional. La circunferencia de las ruedas del tren motriz. El valor predeterminado es 300 milímetros. |
|
Opcional. El ancho entre las ruedas izquierda y derecha. El valor predeterminado es 320 milímetros. |
|
Opcional. Distancia entre las ruedas delanteras y traseras. El valor predeterminado es 320 milímetros. |
|
Opcional. La unidad para |
|
Opcional. Relación de transmisión utilizada para ajustar las distancias de transmisión si se utilizan engranajes. Esto puede ser un |
# Create the Inertial Sensor
brain_inertial = Inertial()
# Make left and right drive motors
left_drive_smart = Motor(Ports.PORT1, 1.0, False)
right_drive_smart = Motor(Ports.PORT6, 1.0, True)
# Create a SmartDrive object with wheelTravel 200
drivetrain = SmartDrive(left_drive_smart, right_drive_smart, brain_inertial, 200)
Si fabrica un tren motriz inteligente con varios motores, debe crear los motores por separado antes de agruparlos en un grupo de motores.
# Create the Inertial Sensor
brain_inertial = Inertial()
# Create two motor groups for left and right 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)
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)
# Create a SmartDrive object with wheelTravel 200 mm
drivetrain = SmartDrive(left_drive_smart, right_drive_smart, brain_inertial, 200)