unidad inteligente#
Inicializando la clase smartdrive#
Un sistema de transmisión inteligente se crea utilizando el siguiente constructor:
El constructor smartdrive
crea un objeto smartdrive. Este objeto puede realizar todas las funciones de un sistema de transmisión, pero incluye métodos adicionales que incluyen el uso de un sensor inercial o un giroscopio para realizar giros más precisos.
Parámetro |
Descripción |
---|---|
|
El nombre del Motor o Grupo Motor izquierdo. |
|
El nombre del Motor o Grupo Motor derecho. |
|
El nombre del dispositivo que se utiliza para detectar el ángulo o la orientación del robot. Puede ser cualquier Sensor inercial o Sensor giroscópico. |
|
Circunferencia de las ruedas motrices. El valor predeterminado es 300 mm. |
|
Ancho de vía del sistema de propulsión inteligente. El valor predeterminado es 320 mm. |
|
Distancia entre ejes del Smart Drivetrain. La distancia predeterminada es de 320 mm. |
|
Una distanceUnit válida para las unidades en las que se especifican wheelTravel, trackWidth y wheelBase. El valor predeterminado es |
|
La relación de transmisión utilizada para compensar las distancias de conducción si se utilizan engranajes. |
Los Motores y/o los Grupos de motores deben crearse primero antes de poder usarse para crear un objeto con el constructor de clase smartdrive.
// Create the Motors.
motor left_motor = motor(PORT1,false);
motor right_motor = motor(PORT2, true);
// Create the Inertial Sensor
inertial Inertial = inertial(PORT3);
// Construct a 2-Motor Smart Drivetrain "Smartdrive" with the
// smartdrive class.
smartdrive Smartdrive = smartdrive(left_motor, right_motor, Inertial, 259.34, 320, 40, mm, 1);
Si va a fabricar un sistema de transmisión inteligente de 4 motores, deberá crear los Motores por separado antes de agruparlos en un Grupo de motores.
// Create the left Motors and group them under the
// motor_group "leftMotors".
motor leftMotorA = motor(PORT1, false);
motor leftMotorB = motor(PORT2, false);
motor_group leftMotors = motor_group(leftMotorA, leftMotorB);
// Create the right Motors and group them under the
// MotorGroup "rightMotors".
motor rightMotorA = motor(PORT3, true);
motor rightMotorB = motor(PORT4, true);
motor_group rightMotors = motor_group(rightMotorA, rightMotorB);
// Create the Inertial Sensor
inertial Inertial = inertial(PORT5);
// Construct a 4-Motor smartdrive "Smartdrive" with the
// smartdrive class.
smartdrive Smartdrive = smartdrive(leftMotors, rightMotors, Inertial, 259.34, 320, 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 sin una funcionalidad Sensor inercial o Sensor giroscópico, cree un objeto utilizando el constructor de clase tren motriz.
Métodos de clase#
conducir()#
Este es un método sin espera y permite que el siguiente método se ejecute sin demora.
Este método se llama de las siguientes maneras:
El método drive(dir)
se utiliza para conducir el SmartDrive en la dirección especificada para siempre a la velocidad predeterminada especificada por el método setDriveVelocity()
, hasta que se use otro método de movimiento Smart Drivetrain o se detenga el proyecto.
Parámetros |
Descripción |
---|---|
director |
Un directionType válido. |
Devoluciones: Ninguna.
// Drive the smartdrive forward.
Smartdrive.drive(forward);
El método drive(dir, velocity, units)
se utiliza para impulsar el Smart Drivetrain en la dirección especificada para siempre a una velocidad especificada, hasta que se utilice otro método de movimiento Smart Drivetrain o se detenga el proyecto.
Parámetros |
Descripción |
---|---|
director |
Un directionType válido. |
velocidad |
La velocidad a la que se moverá el smartdrive. |
unidades |
Una velocityUnit válida. |
Devoluciones: Ninguna.
// Drive the smartdrive forward at 100 rpm.
Smartdrive.drive(forward, 100, rpm);
conducirPara()#
Este puede ser un método de espera o sin espera dependiendo de si se utiliza el parámetro wait
.
Este método se llama de las siguientes maneras:
El método driveFor(distance, units, waitForCompletion)
se utiliza para conducir el Smart Drivetrain durante una distancia específica a la velocidad predeterminada.
Parámetros |
Descripción |
---|---|
distancia |
La distancia que debe recorrer el smartdrive. |
unidades |
Una unidad de distancia válida. El valor predeterminado es pulgadas. |
esperar a que se complete |
Determina si el comando bloqueará los comandos subsiguientes ( |
Devuelve: Un valor booleano que representa si el smartdrive ha alcanzado la distancia objetivo.
// Drive the Smart Drivetrain for 10 inches.
Smartdrive.driveFor(10, inches);
El método driveFor(dir, distance, units, waitForCompletion)
se utiliza para conducir el Smart Drivetrain en una dirección específica durante una distancia específica a la velocidad predeterminada.
Parámetros |
Descripción |
---|---|
director |
Un directionType válido. |
distancia |
La distancia que debe recorrer el Smart Drivetrain. |
unidades |
Una unidad de distancia válida. El valor predeterminado es pulgadas. |
esperar a que se complete |
Determina si el comando bloqueará los comandos subsiguientes ( |
Devuelve: Un valor booleano que representa si el Smart Drivetrain ha alcanzado la distancia objetivo.
// Drive the Smart Drivetrain forward for 10 inches.
Smartdrive.driveFor(forward, 10, inches);
El método driveFor(distancia, unidades, velocidad, unidades_v, waitForCompletion)
se utiliza para conducir el Smart Drivetrain durante una distancia específica a la velocidad predeterminada.
Parámetros |
Descripción |
---|---|
distancia |
La distancia que debe recorrer el Smart Drivetrain. |
unidades |
Una unidad de distancia válida. El valor predeterminado es pulgadas. |
velocidad |
La velocidad a la que se moverá el sistema de transmisión inteligente. Si no se proporciona, se utilizará la velocidad predeterminada establecida por el método |
unidades_v |
Una velocityUnit válida. El valor predeterminado es |
esperar a que se complete |
Determina si el comando bloqueará los comandos subsiguientes ( |
Devuelve: Un valor booleano que representa si el Smart Drivetrain ha alcanzado la distancia objetivo.
// Drive the Smart Drivetrain for 10 inches at 100 rpm.
Smartdrive.driveFor(10, inches, 100, rpm);
El método driveFor(dir, distance, units, velocity, units_v, waitForCompletion)
se utiliza para conducir el Smart Drivetrain durante una distancia específica a la velocidad predeterminada.
Parámetros |
Descripción |
---|---|
director |
Un directionType válido. |
distancia |
La distancia que debe recorrer el Smart Drivetrain. |
unidades |
Una unidad de distancia válida. El valor predeterminado es pulgadas. |
velocidad |
La velocidad a la que se moverá el sistema de transmisión inteligente. Si no se proporciona, se utilizará la velocidad predeterminada establecida por el método |
unidades_v |
Una velocityUnit válida. El valor predeterminado es |
esperar a que se complete |
Determina si el comando bloqueará los comandos subsiguientes ( |
Devuelve: Un valor booleano que representa si el Smart Drivetrain ha alcanzado la distancia objetivo.
// Drive the Smart Drivetrain forward for 10 inches at 100 rpm.
Smartdrive.driveFor(forward, 10, inches, 100, rpm);
doblar()#
Este es un método sin espera y permite que el siguiente método se ejecute sin demora.
Este método se llama de las siguientes maneras:
El método turn(dir)
se utiliza para girar el robot en una dirección específica a la velocidad predeterminada especificada por el método setTurnVelocity()
, hasta que se utilice otro método de movimiento Smart Drivetrain o se detenga el proyecto.
Parámetros |
Descripción |
---|---|
director |
Un directionType válido. |
Devoluciones: Ninguna.
// Turn the Smart Drivetrain right.
Smartdrive.turn(right);
El método turn(dir, velocity, units)
se utiliza para girar el robot en una dirección específica a una velocidad específica, hasta que se utilice otro método de movimiento Smart Drivetrain o se detenga el proyecto.
Parámetros |
Descripción |
---|---|
director |
Un directionType válido. |
velocidad |
La velocidad a la que girará el sistema de transmisión inteligente. Si no se proporciona, se utilizará la velocidad predeterminada establecida por el método |
unidades |
Una velocityUnit válida. El valor predeterminado es |
Devoluciones: Ninguna.
// Turn the Smart Drivetrain right at 100 rpm.
Smartdrive.turn(right, 100, rpm);
girarPara()#
Este puede ser un método de espera o sin espera dependiendo de si se utiliza el parámetro wait
.
El método turnFor()
en la clase smartdrive funciona de manera diferente que en la clase drivetrain porque se utiliza el sensor inercial o el sensor giroscópico, en lugar de los codificadores internos del motor, para realizar giros más precisos.
Este método se llama de las siguientes maneras:
El método turnFor(angle, units, waitForCompletion)
se utiliza para girar el Smart Drivetrain en un ángulo específico a la velocidad predeterminada especificada por el método setTurnVelocity()
.
Parámetros |
Descripción |
---|---|
ángulo |
El ángulo en el que debe girar el Smart Drivetrain. |
unidades |
Una rotationUnit válida. El valor predeterminado es |
esperar a que se complete |
Determina si el comando bloqueará los comandos subsiguientes ( |
Devuelve: Un valor booleano que representa si el tren motriz inteligente ha girado al ángulo objetivo.
// Turn the Smart Drivetrain for 90 degrees.
Smartdrive.turnFor(90, degrees);
El método turnFor(dir, angle, units, waitForCompletion)
se utiliza para girar el Smart Drivetrain en un ángulo específico a la velocidad predeterminada especificada por el método setTurnVelocity()
.
Parámetros |
Descripción |
---|---|
director |
Un directionType válido. |
ángulo |
El ángulo en el que debe girar el Smart Drivetrain. |
unidades |
Una rotationUnit válida. El valor predeterminado es |
esperar a que se complete |
Determina si el comando bloqueará los comandos subsiguientes ( |
Devuelve: Un valor booleano que representa si el tren motriz inteligente ha girado al ángulo objetivo.
// Turn the Smart Drivetrain right for 90 degrees.
Smartdrive.turnFor(right, 90, degrees);
El método turnFor(angle, units, velocity, units_v, waitForCompletion)
se utiliza para girar el Smart Drivetrain en un ángulo específico a una velocidad especificada.
Parámetros |
Descripción |
---|---|
ángulo |
El ángulo en el que debe girar el Smart Drivetrain. |
unidades |
Una rotationUnit válida. El valor predeterminado es |
velocidad |
La velocidad a la que girará el sistema de transmisión inteligente. Si no se proporciona, se utilizará la velocidad predeterminada establecida por el método |
unidades_v |
Una velocityUnit válida. El valor predeterminado es |
esperar a que se complete |
Determina si el comando bloqueará los comandos subsiguientes ( |
Devuelve: Un valor booleano que representa si el tren motriz inteligente ha girado al ángulo objetivo.
// Turn the Smart Drivetrain for 90 degrees at 100 rpm.
Smartdrive.turnFor(90, degrees, 100, rpm);
El método turnFor(dir, angle, units, velocity, units_v, waitForCompletion)
se utiliza para girar el Smart Drivetrain en un ángulo específico a una velocidad especificada.
Parámetros |
Descripción |
---|---|
director |
Un directionType válido. |
ángulo |
El ángulo en el que debe girar el Smart Drivetrain. |
unidades |
Una rotationUnit válida. El valor predeterminado es |
velocidad |
La velocidad a la que girará el sistema de transmisión inteligente. Si no se proporciona, se utilizará la velocidad predeterminada establecida por el método |
unidades_v |
Una velocityUnit válida. El valor predeterminado es |
esperar a que se complete |
Determina si el comando bloqueará los comandos subsiguientes ( |
Devuelve: Un valor booleano que representa si el tren motriz inteligente ha girado al ángulo objetivo.
// Turn the Smart Drivetrain right for 90 degrees at 100 rpm.
Smartdrive.turnFor(right, 90, degrees, 100, rpm);
girarAlEncabezado()#
Este puede ser un método de espera o sin espera dependiendo de si se utiliza el parámetro wait
.
Este método se llama de las siguientes maneras:
El método turnToHeading(angle, units, waitForCompletion)
gira el Smart Drivetrain hacia un rumbo específico.
Parámetros |
Descripción |
---|---|
ángulo |
El ángulo de rumbo hacia el cual girar. |
unidades |
Una rotationUnit válida. |
esperar a que se complete |
Determina si el comando bloqueará los comandos subsiguientes ( |
Devuelve: Un valor booleano que indica cuándo el Smart Drivetrain ha alcanzado el valor de giro objetivo.
// Turn to heading 180 degrees.
Smartdrive.turnToHeading(180, degrees);
El método turnToHeading(angle, units, velocity, units_v, waitForCompletion)
gira el Smart Drivetrain hacia un rumbo específico.
Parámetros |
Descripción |
---|---|
ángulo |
El ángulo de rumbo hacia el cual girar. |
unidades |
Una rotationUnit válida. |
velocidad |
Gire los motores del Smart Drivetrain usando esta velocidad. |
unidades_v |
Una velocityUnit válida. |
esperar a que se complete |
Determina si el comando bloqueará los comandos subsiguientes ( |
Devuelve: Un valor booleano que indica cuándo el Smart Drivetrain ha alcanzado el valor de giro objetivo.
// Turn to heading 180 degrees at 100 rpm.
Smartdrive.turnToHeading(180, degrees, 100, rpm);
girarARotación()#
Este puede ser un método de espera o sin espera dependiendo de si se utiliza el parámetro wait
.
Este método se llama de las siguientes maneras:
El método turnToRotation(angle, units, waitForCompletion)
gira el Smart Drivetrain a una rotación específica.
Parámetros |
Descripción |
---|---|
ángulo |
El ángulo de rotación al que girar. |
unidades |
Una rotationUnit válida. |
esperar a que se complete |
Determina si el comando bloqueará los comandos subsiguientes ( |
Devuelve: Un valor booleano que indica cuándo el Smart Drivetrain ha alcanzado el valor de giro objetivo.
// Turn to rotation 180 degrees.
Smartdrive.turnToRotation(180, degrees);
El método turnToRotation(angle, units, velocity, units_v, waitForCompletion)
gira el Smart Drivetrain a una rotación específica.
Parámetros |
Descripción |
---|---|
ángulo |
El ángulo de rotación al que girar. |
unidades |
Una rotationUnit válida. |
velocidad |
Gire los motores del Smart Drivetrain usando esta velocidad. |
unidades_v |
Una velocityUnit válida. |
esperar a que se complete |
Determina si el comando bloqueará los comandos subsiguientes ( |
Devuelve: Un valor booleano que indica cuándo el Smart Drivetrain ha alcanzado el valor de giro objetivo.
// Turn to rotation 180 degrees at 100 rpm.
Smartdrive.turnToRotation(180, degrees, 100, rpm);
detener()#
Este es un comando sin espera y permite que el siguiente comando se ejecute sin demora.
Este método se llama de las siguientes maneras:
El comando stop()
se utiliza para detener el sistema de transmisión inteligente, lo que lo establece a velocidad cero y configura el modo de frenado actual. El tipo de freno predeterminado es coast
, a menos que se haya modificado previamente con el comando setStopping()
.
Devoluciones: Ninguna.
// Spin Smartdrive for 2.5 seconds.
Smartdrive.spin(forward);
wait(2.5 seconds);
// Stop Smartdrive.
Smartdrive.stop();
El comando stop(brakeType mode)
se utiliza para detener el Smart Drivetrain usando un tipo de freno específico.
Parámetros |
Descripción |
---|---|
modo |
Un brakeType válido. |
Devoluciones: Ninguna.
// Spin Smartdrive for 2.5 seconds.
Smartdrive.spin(forward);
wait(2.5 seconds);
// Stop Smartdrive using the hold Brake Type.
Smartdrive.stop(hold);
se mueve()#
El comando isMoving()
devuelve si algún motor de Smart Drivetrain está encendido y girando hacia un objetivo específico.
Devuelve: true
si algún motor de Smart Drivetrain está encendido y girando hacia un objetivo. false
si terminó de girar hacia un objetivo.
estáHecho()#
El comando isDone()
regresa si todos los motores de Smart Drivetrain terminaron de girar hacia un objetivo específico.
Devuelve: true
si todos los motores del Smart Drivetrain terminaron de girar hacia un objetivo. false
si algún motor del Smart Drivetrain está encendido y gira hacia un objetivo.
está girando()#
El método isTurning()
retorna si un método turnToHeading()
, turnToRotation()
o turnFor()
se está ejecutando actualmente.
Devuelve: true
si actualmente se está ejecutando un método turnToHeading()
, turnToRotation()
o turnFor()
. false
si no se está ejecutando ninguno.
establecerVelocidadDeConducción()#
El método setDriveVelocity(velocity, units)
se utiliza para establecer la velocidad predeterminada del Smartdrive. Esta configuración de velocidad afecta a todos los métodos de accionamiento posteriores, a menos que se especifique una velocidad específica en dichos métodos.
Parámetros |
Descripción |
---|---|
velocidad |
La nueva velocidad que se establecerá como predeterminada para el Smartdrive. |
unidades |
Una velocityUnit o un porcentaje válido. El valor predeterminado es rpm. |
Devoluciones: Ninguna.
// Set the Smart Drivetrain to drive at a velocity of 200 rpm.
Smartdrive.setDriveVelocity(200, rpm);
establecerVelocidadDeGiro()#
El método setTurnVelocity(velocity, units)
se utiliza para establecer la velocidad predeterminada para las maniobras de giro en el Smartdrive. 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 |
Una velocityUnit o un porcentaje válido. El valor predeterminado es rpm. |
Devoluciones: Ninguna.
// Set the Smart Drivetrain to turn at a velocity of 200 RPM.
Smartdrive.setTurnVelocity(200, rpm);
establecerDetener()#
El método setStopping(mode)
se utiliza para configurar el modo de parada de todos los motores del Smartdrive. 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. |
Devoluciones: Ninguna.
// Set the stopping mode to BRAKE.
Smartdrive.setStopping(brake);
establecerRelaciónDeEngranajes()#
El método setGearRatio(mode)
se utiliza para establecer la relación de transmisión de todos los motores del Smartdrive.
Parámetros |
Descripción |
---|---|
modo |
Un gearSetting válido. |
Devoluciones: Ninguna.
establecerUmbralDeGiro()#
El método setTurnThreshold(t)
establece el umbral de giro del Smartdrive. 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 |
---|---|
el |
El nuevo umbral de giro en grados. El valor predeterminado para un sistema de transmisión inteligente es 1 grado. |
Devoluciones: Ninguna.
establecerConstanteDeTurno()#
El método setTurnConstant(kp)
establece la constante de giro del Smartdrive. El Smart Drivetrain 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 |
---|---|
kp |
La nueva constante de giro está en el rango de 0,1 a 4,0. El valor predeterminado es 1,0. |
Devoluciones: Ninguna.
establecerGiroDirecciónInvertir()#
El método setTurnDirectionReverse(value)
establece la dirección de giro esperada para un rumbo positivo.
Parámetros |
Descripción |
---|---|
valor |
Un valor booleano para establecer el indicador invertido en “verdadero” o “falso”. |
Devoluciones: Ninguna.
establecerEncabezado()#
El método setHeading(value, units)
establece el rumbo para el sensor inercial o el sensor giroscópico del tren motriz inteligente.
Parámetros |
Descripción |
---|---|
valor |
El nuevo valor a utilizar para el encabezado. |
unidades |
Una rotationUnit válida. |
Devoluciones: Ninguna.
// set the value of heading to 180 degrees.
Smartdrive.setHeading(180, degrees);
setRotation()#
El método setRotation()
establece la rotación del sensor inercial o del sensor giroscópico del tren motriz inteligente.
Parámetros |
Descripción |
---|---|
valor |
El nuevo valor a utilizar para la rotación. |
unidades |
Una rotationUnit válida. |
Devoluciones: Ninguna.
// Set the value of rotation to 180 degrees.
Smartdrive.setRotation(180, degrees);
establecerTiempo de espera()#
El método Smartdrive.setTimeout(time, units)
se utiliza para establecer el tiempo de espera de todos los motores del Smartdrive. Este ajuste determina durante cuánto tiempo el Smart Drivetrain intentará ejecutar el método driveFor
o turnFor
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 |
Un tipo timeUnit válido. El valor predeterminado es |
Devoluciones: Ninguna.
// Set the timeout for the Smart Drivetrain to 10 seconds.
Smartdrive.setTimeout(10, seconds);
título()#
El método heading(units)
devuelve el encabezado actual del Smartdrive.
Parámetros |
Descripción |
---|---|
unidades |
Un tipo rotationUnit válido. El valor predeterminado es |
Devuelve: Un doble que representa el rumbo actual del Smart Drivetrain en las unidades especificadas.
// Get the current heading for the Smartdrive.
double value = Smartdrive.heading();
rotación()#
El método rotation(units)
devuelve la rotación actual del Smartdrive.
Parámetros |
Descripción |
---|---|
unidades |
Una rotationUnit válida. El valor predeterminado es |
Devuelve: Un doble que representa la rotación actual del Smart Drivetrain en las unidades especificadas.
// Get the current rotation for the Smartdrive.
double value = Smartdrive.rotation();
velocidad()#
El método velocity(units)
devuelve la velocidad promedio del Smart Drivetrain.
Parámetros |
Descripción |
---|---|
unidades |
Una velocityUnit o un porcentaje válido. El valor predeterminado es rpm. |
Devuelve: Un doble que representa la velocidad del Smart Drivetrain en las unidades especificadas.
actual()#
El método current()
devuelve la corriente promedio del Smart Drivetrain.
Parámetros |
Descripción |
---|---|
unidades |
Las únicas unidades válidas para la corriente son “amperio” o “porcentaje”. |
Devuelve: Un doble que representa la corriente del Smart Drivetrain en las unidades especificadas.
Voltaje()#
El método voltage(units)
devuelve la velocidad promedio del Smart Drivetrain.
Parámetros |
Descripción |
---|---|
unidades |
Una voltageUnit válida. El valor predeterminado es |
Devuelve: Un doble que representa el voltaje del Smart Drivetrain en las unidades especificadas.
fuerza()#
El método power(units)
devuelve la potencia promedio del Smart Drivetrain.
Parámetros |
Descripción |
---|---|
unidades |
La única unidad válida para potencia es el “vatio”. |
Devuelve: Un doble que representa la potencia del Smart Drivetrain en las unidades especificadas.
esfuerzo de torsión()#
El método torque()
devuelve el torque promedio del Smart Drivetrain.
Parámetros |
Descripción |
---|---|
unidades |
Una unidad de par válida. El valor predeterminado es |
Devuelve: Un doble que representa el torque del Smart Drivetrain en las unidades especificadas.
eficiencia()#
El método efficiency()
devuelve la eficiencia promedio del Smart Drivetrain.
Parámetros |
Descripción |
---|---|
unidades |
La única unidad válida para la eficiencia es el “porcentaje”. |
Devuelve: Un doble que representa la eficiencia del Smart Drivetrain en las unidades proporcionadas.
temperatura()#
El método temperature()
devuelve la temperatura promedio del Smart Drivetrain.
Parámetros |
Descripción |
---|---|
unidades |
La única unidad válida para la temperatura es el “porcentaje”. |
Devuelve: Un doble que representa la temperatura del Smart Drivetrain en las unidades proporcionadas.