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 |
---|---|
|
El nombre del Motor o Grupo Motor izquierdo. |
|
El nombre del Motor o Grupo Motor derecho. |
|
El nombre del Sensor inercial o Sensor giroscópico. |
|
Opcional. La circunferencia de las ruedas motrices. El valor predeterminado es 300 mm. |
|
Opcional. Ancho de vía del tren motriz. El valor predeterminado es 320 mm. |
|
Opcional. La distancia entre ejes del tren motriz. El valor predeterminado es 320 mm. |
|
Opcional. Una DistanceUnit válida para las unidades en las que se especifican wheelTravel, trackWidth y wheelBase. El valor predeterminado es |
|
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 |
unidades |
Opcional. Un tipo VelocityUnits válido. El valor predeterminado es |
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 |
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 |
unidades_v |
Opcional. Un tipo VelocityUnits válido. El valor predeterminado es |
esperar |
Opcional. El parámetro wait determina si el método bloqueará los métodos subsiguientes ( |
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 |
unidades |
Opcional. Un tipo VelocityUnits válido. El valor predeterminado es |
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 |
velocidad |
Opcional. Gire los motores del smartdrive usando esta velocidad. |
unidades_v |
Opcional. Un tipo VelocityUnits válido. El valor predeterminado es |
esperar |
Opcional. El parámetro wait determina si el método bloqueará el método subsiguiente ( |
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 |
velocidad |
Opcional. Gire los motores del Smart Drivetrain usando esta velocidad. |
unidades_v |
Opcional. Un tipo VelocityUnits válido. El valor predeterminado es |
esperar |
Opcional. El parámetro wait determina si el método bloqueará el método subsiguiente ( |
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 |
velocidad |
Opcional. Gire los motores del Smart Drivetrain usando esta velocidad. |
unidades_v |
Opcional. Un tipo VelocityUnits válido. El valor predeterminado es |
esperar |
Opcional. El parámetro wait determina si el método bloqueará el método subsiguiente ( |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
Devoluciones: La temperatura del Smart Drivetrain en las unidades proporcionadas.