Sensor giroscópico#
Introducción#
La clase gyro se utiliza con un sensor giroscópico para medir el movimiento de rotación alrededor de un solo eje. Puede rastrear hacia dónde apunta el robot y cuánto ha girado.
Constructor de clases#
gyro(
int32_t index );
Destructor de clase#
Destruye el objeto giroscópico gyro y libera los recursos asociados.
virtual ~gyro();
Parámetros#
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
El puerto inteligente al que está conectado el sensor giroscópico, escrito como |
Ejemplo#
// Create a gyro instance in Port 1
gyro Gyro1 = gyro(PORT1);
Funciones de los miembros#
La clase gyro incluye las siguientes funciones miembro:
calibrate— Calibra el sensor giroscópico.setHeading— Establece el rumbo actual del sensor giroscópico a un nuevo valor de rumbo.setRotation— Establece la rotación actual del sensor giroscópico a un nuevo valor de rotación.heading— Devuelve la dirección hacia la que apunta el sensor giroscópico.rotation— Devuelve cuánto ha girado el sensor giroscópico.rate— Devuelve la velocidad de rotación del sensor giroscópico.
Antes de llamar a cualquier función miembro de gyro , se debe crear una instancia gyro , como se muestra a continuación:
/* This constructor is required when using VS Code.
Gyro Sensor configuration is generated automatically
in VEXcode using the Device Menu. Replace the values
as needed. */
// Create a gyro instance in Port 1
gyro Gyro1 = gyro(PORT1);
calibrate#
Calibra el sensor giroscópico.
Available Functionsvoid calibrate();
Esta función no acepta ningún parámetro.
Return ValuesEsta función no devuelve un valor.
NotesLa calibración ayuda al sensor giroscópico a medir correctamente los giros. Mantenga el sensor quieto durante la calibración. Si el sensor se mueve durante la calibración, es posible que los valores de rumbo, rotación y velocidad no midan los giros correctamente.
// Calibrate the Gyro Sensor before turning.
Gyro1.calibrate();
setHeading#
Establece el rumbo actual del sensor giroscópico en un valor específico.
Un rumbo es la dirección hacia la que mira el sensor giroscópico, medida de 0 a 359,99 grados. La configuración del rumbo cambia la referencia de la dirección actual del sensor.
Available Functionsvoid setHeading(
double value,
rotationUnits units );
Parámetros |
Tipo |
Descripción |
|---|---|---|
|
|
El valor a utilizar para el nuevo encabezado. |
|
|
La unidad que representa el rumbo:
|
Esta función no devuelve un valor.
setRotation#
Establece la rotación actual del sensor giroscópico en un valor específico.
La rotación es cuánto ha girado el sensor giroscópico. A diferencia del rumbo, la rotación puede aumentar más de 359,99 grados o disminuir por debajo de 0 grados.
Available Functionsvoid setRotation(
double value,
rotationUnits units );
Parámetros |
Tipo |
Descripción |
|---|---|---|
|
|
El valor a utilizar para el nuevo valor de rotación. |
|
|
La unidad que representa el valor de rotación:
|
Esta función no devuelve un valor.
heading#
Devuelve el encabezado actual del sensor giroscópico.
Un rumbo es la dirección hacia la que mira el sensor giroscópico, medida de 0 a 359,99 grados. Si el sensor gira más de 359,99 grados, el rumbo vuelve a 0 grados.
Available Functionsdouble heading(
rotationUnits units = degrees );
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
La unidad que representa el rumbo:
|
Devuelve un valor double que representa la dirección actual del sensor giroscópico en las unidades especificadas, por defecto degrees.
// Get the current heading for the Gyro.
double value = Gyro1.heading();
Brain.Screen.print(value);
rotation#
Devuelve la rotación actual del sensor giroscópico.
La rotación es cuánto ha girado el sensor giroscópico. A diferencia del rumbo, la rotación puede aumentar más de 359,99 grados o disminuir por debajo de 0 grados. Por ejemplo, hacer dos giros completos a la derecha devuelve una rotación de 720 grados. Girar una vuelta completa a la izquierda desde 0 grados devuelve una rotación de -360 grados.
Available Functionsdouble rotation(
rotationUnits units = degrees );
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
La unidad que representa el valor de rotación:
|
Devuelve un valor double que representa el valor de rotación actual del sensor giroscópico en las unidades especificadas, por defecto degrees.
// Get the current rotation for the Gyro.
double value = Gyro1.rotation();
Brain.Screen.print(value);
rate#
Devuelve la velocidad de giro del sensor giroscópico.
La velocidad de giro es la velocidad a la que gira el sensor giroscópico. El valor puede ser positivo o negativo dependiendo de la dirección en la que gire el sensor.
Available Functionsdouble rate(
rateUnits units = rateUnits::dps );
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
|
La unidad que representa la velocidad:
|
Devuelve un valor double que representa la tasa de cambio actual del sensor giroscópico en las unidades especificadas, por defecto es rateUnits::dps.