SmartDrive#

Inicialización de la clase SmartDrive#

Un SmartDrive se crea utilizando el siguiente constructor:

SmartDrive(lm, rm, g, recorrido de rueda, ancho de vía, distancia entre ejes, unidades, relación de transmisión externa)

Este constructor utiliza ocho parámetros:

Parámetro

Descripción

lm

El nombre del Motor o Grupo Motor izquierdo.

rm

El nombre del Motor o Grupo Motor derecho.

g

El nombre del Sensor inercial o Sensor giroscópico.

Rueda de viaje

Opcional. La circunferencia de las ruedas motrices. El valor predeterminado es 300 mm.

ancho de pista

Opcional. Ancho de vía del tren motriz. El valor predeterminado es 320 mm.

distancia entre ejes

Opcional. La distancia entre ejes del tren motriz. El valor predeterminado es 320 mm.

unidades

Opcional. Una DistanceUnit válida para las unidades en las que se especifican wheelTravel, trackWidth y wheelBase. El valor predeterminado es MM.

relación de transmisión externa

Opcional. La relación de transmisión se utiliza para compensar las distancias de conducción si se utilizan engranajes.

Los Motores, Grupos de motores, Sensores inerciales y/o Sensores giroscópicos deben crearse primero antes de que puedan usarse para crear un objeto con el constructor de la clase SmartDrive.

# Create the Inertial Sensor.
brain_inertial = Inertial()
# Create the Motors.
left_motor = Motor(Ports.PORT1, GearSetting.RATIO_18_1, False)
right_motor = Motor(Ports.PORT2, GearSetting.RATIO_18_1, True)
# Construct a 2-Motor Smart Drivetrain "drivetrain" with the
# DriveTrain class.
smartdrive = SmartDrive(left_motor, right_motor, brain_inertial, 319.19, 295, 40, MM, 1)

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.

# Create the Inertial Sensor.
brain_inertial = Inertial()
# Create the left Motors and group them under the
# MotorGroup "left_motors".
left_motor_a = Motor(Ports.PORT1, GearSetting.RATIO_18_1, False)
left_motor_b = Motor(Ports.PORT2, GearSetting.RATIO_18_1, False)
left_motors = 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, GearSetting.RATIO_18_1, True)
right_motor_b = Motor(Ports.PORT4, GearSetting.RATIO_18_1, True)
right_motors = MotorGroup(right_motor_a, right_motor_b)
# Construct a 4-Motor Drivetrain "drivetrain" with the
# DriveTrain class.
smartdrive = SmartDrive(left_motors, right_motors, brain_inertial, 319.19, 295, 40, MM, 1)

Este objeto smartdrive se utilizará en todos los ejemplos posteriores a lo largo de esta documentación de API cuando se haga referencia a los métodos de la clase SmartDrive.

Para crear un objeto DriveTrain sin un Sensor inercial o Sensor giroscópico, utilice el constructor de clase DriveTrain.

Métodos de clase#

drive()#

El método drive(direction, velocity, units) se utiliza para impulsar el Smart Drivetrain en la dirección especificada para siempre, hasta que se utilice otro método Drivetrain o se detenga el proyecto.

Este es un método sin espera y permite que el siguiente método se ejecute sin demora.

Parámetros

Descripción

dirección

Un DirectionType válido.

velocidad

Opcional. La velocidad a la que se moverá el tren motriz. Se utilizará la velocidad predeterminada establecida por el método drivetrain.set_velocity().

unidades

Opcional. Un tipo VelocityUnits válido. El valor predeterminado es RPM.

Devoluciones: Ninguna.

# Drive the Smart Drivetrain forward.
smartdrive.drive(FORWARD)

# Drive the Smart Drivetrain in reverse for 100 percent velocity.
smartdrive.drive(REVERSE, 100, PERCENT)

drive_for()#

El método drive_for(dirección, distancia, unidades, velocidad, unidades_v, esperar) se utiliza para conducir el Smart Drivetrain una distancia determinada.

Este puede ser un método de espera o sin espera dependiendo de si se utiliza el parámetro wait.

Parámetros

Descripción

dirección

Un DirectionType válido.

distancia

La distancia que debe recorrer el tren motriz.

unidades

Opcional. Un tipo DistanceUnits válido. El valor predeterminado es PULGADAS.

velocidad

Opcional. La velocidad a la que se moverá el tren motriz. Si no se proporciona, se utilizará la velocidad predeterminada establecida por el método drivetrain.set_drive_velocity().

unidades_v

Opcional. Un tipo VelocityUnits válido. El valor predeterminado es RPM.

esperar

Opcional. El parámetro wait determina si el método bloqueará los métodos subsiguientes (wait=True) o permitirá su ejecución inmediata (wait=False). Si no se especifica, el valor predeterminado para el parámetro wait es wait=True.

Devoluciones: Ninguna.

# Drive forward for 10 inches.
smartdrive.drive_for(FORWARD, 10)

turn()#

El método turn(direction, velocity, units) se utiliza para girar el Smart Drivetrain hacia la izquierda o hacia la derecha.

Este es un método sin espera y permite que el siguiente método se ejecute sin demora.

Parámetros

Descripción

dirección

Un TurnType válido.

velocidad

Opcional. La velocidad a la que girará el tren motriz. Si no se proporciona, se utilizará la velocidad predeterminada establecida por el método drivetrain.set_turn_velocity().

unidades

Opcional. Un tipo VelocityUnits válido. El valor predeterminado es RPM.

Devoluciones: Ninguna.

# Turn the Smart Drivetrain to the right.
smartdrive.turn(RIGHT)

# Turn the Smart Drivetrain to the left at 25% velocity.
smartdrive.turn(LEFT, 25, PERCENT)

turn_to_heading()#

El método turn_to_heading(angle, units, velocity, units_v, wait) gira el Smart Drivetrain hacia un rumbo específico.

Este puede ser un método de espera o sin espera dependiendo de si se utiliza el parámetro wait.

Parámetros

Descripción

ángulo

El ángulo de rumbo hacia el cual girar.

unidades

Opcional. Un tipo RotationUnits válido. El valor predeterminado es DEGREES.

velocidad

Opcional. Gire los motores del smartdrive usando esta velocidad.

unidades_v

Opcional. Un tipo VelocityUnits válido. El valor predeterminado es RPM.

esperar

Opcional. El parámetro wait determina si el método bloqueará el método subsiguiente (wait=True) o permitirá la ejecución inmediata (wait=False). Si no se especifica, el valor predeterminado para el parámetro wait es wait=True.

Devoluciones: Ninguna.

# Turn to heading 180 degrees.
smartdrive.turn_to_heading(180)

turn_to_rotation()#

El método turn_to_rotation(angle, units, velocity, units_v, wait) gira el Smart Drivetrain a una rotación específica.

Este puede ser un método de espera o sin espera dependiendo de si se utiliza el parámetro wait.

Parámetros

Descripción

ángulo

El ángulo de rotación al que girar.

unidades

Opcional. Un tipo RotationUnits válido. El valor predeterminado es DEGREES.

velocidad

Opcional. Gire los motores del Smart Drivetrain usando esta velocidad.

unidades_v

Opcional. Un tipo VelocityUnits válido. El valor predeterminado es RPM.

esperar

Opcional. El parámetro wait determina si el método bloqueará el método subsiguiente (wait=True) o permitirá la ejecución inmediata (wait=False). Si no se especifica, el valor predeterminado para el parámetro wait es wait=True.

Devoluciones: Ninguna.

# Turn to rotation 180 degrees.
smartdrive.turn_to_rotation(180)

turn_for()#

El método turn_for(angle, units, velocity, units_v, wait) gira el Smart Drivetrain en un ángulo específico.

Este puede ser un método de espera o sin espera dependiendo de si se utiliza el parámetro wait.

Parámetros

Descripción

ángulo

El ángulo hacia el que girar.

unidades

Opcional. Un tipo RotationUnits válido. El valor predeterminado es DEGREES.

velocidad

Opcional. Gire los motores del Smart Drivetrain usando esta velocidad.

unidades_v

Opcional. Un tipo VelocityUnits válido. El valor predeterminado es RPM.

esperar

Opcional. El parámetro wait determina si el método bloqueará el método subsiguiente (wait=True) o permitirá la ejecución inmediata (wait=False). Si no se especifica, el valor predeterminado para el parámetro wait es wait=True.

Devoluciones: Ninguna.

# Turn for 180 degrees.
smartdrive.turn_for(180)

stop()#

El método stop() se utiliza para detener el Smart Drivetrain, estableciéndolo a velocidad 0 y configurando el modo de detención actual.

Devoluciones: Ninguna.

# Stop the Smart Drivetrain.
smartdrive.stop()

set_drive_velocity()#

El método set_drive_velocity(velocity, units) se utiliza para establecer la velocidad predeterminada del tren de potencia inteligente. Esta configuración de velocidad afecta a todos los métodos de tren de potencia posteriores, a menos que se especifique una velocidad específica en esos métodos.

Parámetros

Descripción

velocidad

La nueva velocidad que se establecerá como predeterminada para el Smart Drivetrain.

unidades

Opcional. Un tipo VelocityUnits válido. El valor predeterminado es RPM.

Devoluciones: Ninguna.

# Set the Smart Drivetrain to drive at a velocity of
# 200 RPM.
smartdrive.set_drive_velocity(200)

# Set the Smart Drivetrain to drive at a velocity of
# 100 PERCENT.
smartdrive.set_drive_velocity(100, PERCENT)

set_turn_velocity()#

El método set_turn_velocity(velocity, units) se utiliza para establecer la velocidad predeterminada para las maniobras de giro en el Smart Drivetrain. Esta configuración especifica la velocidad a la que el Smart Drivetrain ejecutará el método de giro a menos que se sobrescriba con una velocidad específica en dicho método.

Parámetros

Descripción

velocidad

La nueva velocidad que se establecerá como predeterminada para las maniobras de giro.

unidades

Opcional. Un tipo VelocityUnits válido. El valor predeterminado es RPM, a menos que se haya modificado previamente mediante el método drivetrain.set_turn_velocity().

Devoluciones: Ninguna.

# Set the Smart Drivetrain to turn at a velocity of
# 200 RPM.
smartdrive.set_turn_velocity(200)

# Set the Smart Drivetrain to turn at a velocity of
# 100 PERCENT.
smartdrive.set_turn_velocity(100, PERCENT)

set_stopping()#

El método set_stopping(mode) se utiliza para establecer el modo de parada de todos los motores del sistema de transmisión inteligente. Esta configuración determina el comportamiento de los motores cuando reciben un método de parada o cuando la velocidad se establece en cero.

Parámetros

Descripción

modo

Un BrakeType válido. El valor predeterminado es COAST, a menos que se haya modificado previamente mediante el método drivetrain.set_stopping().

Devoluciones: Ninguna.

# Set the stopping mode to BRAKE.
smartdrive.set_stopping(BRAKE)

set_turn_threshold()#

El método set_turn_threshold(value) establece el umbral de giro para el sistema de 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.

Parámetros

Descripción

valor

El nuevo umbral de giro en “GRADOS”. El valor predeterminado para un sistema de transmisión inteligente es 1 grado.

Devoluciones: Ninguna.

set_turn_constant()#

El método set_turn_constant(value) establece la constante de giro del Smart Drivetrain. Este utiliza un controlador P simple al realizar los giros. Esta constante, generalmente conocida como kp, es la ganancia utilizada en la ecuación que convierte el error angular en velocidad del motor.

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.

Devoluciones: Ninguna.

set_turn_direction_reverse()#

El método set_turn_direction_reverse(value) establece la dirección de giro esperada para un cambio de rumbo positivo.

Parámetros

Descripción

valor

Un valor booleano para establecer si la dirección se invierte o no.

Devoluciones: Ninguna.

set_heading()#

El método set_heading(value, units) establece el rumbo para el Smart Drivetrain.

Parámetros

Descripción

valor

El nuevo valor a utilizar para el encabezado.

unidades

Opcional. Un tipo RotationUnits válido. El valor predeterminado es DEGREES.

Devoluciones: Ninguna.

# Set the value of heading to 180 degrees.
smartdrive.set_heading(180)

heading()#

El método heading(units) devuelve el rumbo actual del Smart Drivetrain.

Parámetros

Descripción

unidades

Opcional. Un tipo RotationUnits válido. El valor predeterminado es DEGREES.

Devuelve: El rumbo actual del Smart Drivetrain en las unidades especificadas.

# Get the current heading for the Smart Drivetrain.
value = smartdrive.heading()

set_rotation()#

El método set_rotation() establece la rotación del Smart Drivetrain.

Parámetros

Descripción

valor

El nuevo valor a utilizar para la rotación.

unidades

Opcional. Un tipo RotationUnits válido. El valor predeterminado es DEGREES.

Devoluciones: Ninguna.

# Set the value of rotation to 180 degrees.
smartdrive.set_rotation(180)

rotation()#

El método rotation(units) devuelve la rotación actual del Smart Drivetrain.

Parámetros

Descripción

unidades

Opcional. Un tipo RotationUnits válido. El valor predeterminado es DEGREES.

Devuelve: La rotación actual del Smart Drivetrain en las unidades especificadas.

# Get the current rotation for the Smart Drivetrain.
value = smartdrive.rotation()

is_turning()#

El método is_turning() verifica si el tren motriz inteligente está girando actualmente.

Devuelve: Verdadero si el tren motriz inteligente está girando actualmente. Falso si no está girando actualmente.

is_moving()#

El método is_moving() verifica si el Smart Drivetrain se está moviendo actualmente.

Devuelve: Verdadero si el tren motriz inteligente se está moviendo actualmente. Falso si no se está moviendo actualmente.

is_done()#

El método is_done() verifica si el Smart Drivetrain no está en movimiento actualmente.

Devuelve: Verdadero si el tren motriz inteligente no se está moviendo actualmente. Falso si se está moviendo actualmente.

set_timeout()#

El método set_timeout(timeout, units) se utiliza para establecer el tiempo de espera para todos los motores del Smart Drivetrain. Este ajuste determina durante cuánto tiempo el Smart Drivetrain intentará ejecutar los métodos drive_for y turn_for antes de agotar el tiempo de espera si los motores no han completado sus movimientos.

Parámetros

Descripción

se acabó el tiempo

La duración del tiempo de espera que se establecerá como predeterminada para las operaciones de Smart Drivetrain.

unidades

Opcional. Un tipo TimeUnits válido. El valor predeterminado es MSEC, a menos que se haya modificado previamente con el método set_timeout().

Devoluciones: Ninguna.

# Set the timeout for the Smart Drivetrain to
# 1000 milliseconds.
drivetrain.set_timeout(1000)

obtener_tiempo_de_espera()#

El método smartdrive.get_timeout() obtiene la configuración de tiempo de espera actual.

Devuelve: El tiempo actual después del cual expirará el tiempo de espera de un método Smart Drivetrain.

velocity()#

El método velocity() devuelve la velocidad promedio de los motores izquierdo y derecho.

Parámetros

Descripción

unidades

Opcional. Un tipo VelocityUnits válido. El valor predeterminado es RPM.

Devoluciones: La velocidad del Smart Drivetrain en las unidades proporcionadas.

current()#

El método current() devuelve la corriente promedio de los motores izquierdo y derecho.

Parámetros

Descripción

unidades

Opcional. La única unidad válida para la corriente es “AMP”.

Devoluciones: La corriente del Smart Drivetrain en las unidades proporcionadas.

power()#

El método power() devuelve la potencia total que utilizan todos los motores del sistema de transmisión inteligente.

Parámetros

Descripción

unidades

Opcional. La única unidad válida para potencia es “WATT”.

Devoluciones: La potencia del Smart Drivetrain en las unidades proporcionadas.

torque()#

El método torque() devuelve el torque total de todos los motores del Smart Drivetrain.

Parámetros

Descripción

unidades

Opcional. Un tipo TorqueUnits válido. El valor predeterminado es NM.

Devoluciones: El torque del Smart Drivetrain en las unidades proporcionadas.

efficiency()#

El método efficiency() devuelve la eficiencia promedio de los motores izquierdo y derecho.

Parámetros

Descripción

unidades

Opcional. La única unidad válida para la eficiencia es “PORCENTAJE”.

Devoluciones: La eficiencia del Smart Drivetrain en las unidades proporcionadas.

temperature()#

El método temperature() devuelve la temperatura promedio de los motores izquierdo y derecho.

Parámetros

Descripción

unidades

Opcional. Un tipo TemperatureUnits válido. El valor predeterminado es CELSIUS.

Devoluciones: La temperatura del Smart Drivetrain en las unidades proporcionadas.