Sensor giroscópico#

Introdução#

O giroscópio de classe gyro é utilizado para medir a direção e o movimento rotacional do robô, permitindo o seguimento da orientação ao longo do tempo.

Construtor de Classes#

gyro(
  triport::port &port);

Destrutor de classes#

Destrói o objeto gyro e liberta os recursos associados.

virtual ~gyro();

Parâmetros#

Parâmetro

Tipo

Descrição

port

triport::port &

A porta de 3 fios à qual o sensor giroscópio está ligado, escrita como Brain.ThreeWirePort.X ou ExpanderName.X, em que X é a letra da porta (por exemplo, Brain.ThreeWirePort.A ou Expander1.A).

Exemplo#

// Create a gyro instance in Port A
gyro GyroA = gyro(Brain.ThreeWirePort.A);

Funções de membro#

A classe gyro inclui as seguintes funções membro:

  • calibrate — Calibra o giroscópio para um seguimento de direção estável.

  • setHeading — Define a direção do giroscópio.

  • setRotation — Define o valor de rotação actual do giroscópio.

  • heading — Devolve a direcção do giroscópio.

  • rotation — Devolve a rotação do giroscópio.

Antes de chamar qualquer função membro de gyro , deve ser criada uma instância gyro , como se mostra abaixo:

/* 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 A
gyro GyroA = gyro(Brain.ThreeWirePort.A);

calibrate#

Calibra o sensor giroscópico.

Available Functions
void calibrate(
  int32_t value = 0 );

Parameters

Parâmetros

Tipo

Descrição

value

int32_t

Tempo em segundos para calibrar. O valor predefinido é 0.

Return Values

Esta função não devolve qualquer valor.

Notes
  • O comando calibrate só deve ser chamado quando o sensor não está em movimento.

Examples
// Start calibration with the calibration time set to 3 seconds.
GyroA.calibrate(3);

setHeading#

Define a direção do sensor giroscópio para um valor específico.

Available Functions
void setHeading(
  double        value,
  rotationUnits units );

Parâmetros

Tipo

Descrição

value

double

O valor a utilizar para o novo título.

units

rotationUnits

A unidade que representa a direção:

  • degrees
  • turns
Return Values

Esta função não devolve qualquer valor.

setRotation#

Define a rotação do sensor giroscópio para um valor específico.

Available Functions
void setRotation(
  double        value,
  rotationUnits units );

Parameters

Parâmetros

Tipo

Descrição

value

double

O valor a utilizar para o novo valor de rotação.

units

rotationUnits

A unidade que representa o valor da rotação:

  • degrees
  • turns
Return Values

Esta função não devolve qualquer valor.

heading#

Retorna a direção atual do sensor giroscópio.

Available Functions
double heading(
  rotationUnits units = degrees );

Parameters

Parâmetro

Tipo

Descrição

units

rotationUnits

A unidade que representa a direção:

  • degrees (padrão)
  • turns
Return Values

Retorna um valor double que representa a direção atual do sensor giroscópico nas unidades especificadas, com um valor padrão de degrees.

Examples
// Get the current heading for the Gyro.
double value = GyroA.heading();
Brain.Screen.print(value);

rotation#

Retorna a rotação atual do sensor giroscópio.

Available Functions
double rotation(
  rotationUnits units = degrees );

Parameters

Parâmetro

Tipo

Descrição

units

rotationUnits

A unidade que representa o valor de rotação:

  • degrees (padrão)
  • turns
Return Values

Retorna um valor double que representa o valor de rotação atual do sensor giroscópio nas unidades especificadas, com um valor padrão de degrees.

Examples
// Get the current rotation for the Gyro.
double value = GyroA.rotation();
Brain.Screen.print(value);