Sensor giroscópico#

Introdução#

O giroscópio da classe gyro é utilizado com um sensor giroscópio para medir o movimento de rotação em torno de um único eixo. Pode rastrear a direção para a qual o robô está virado e o quanto ele rodou.

Construtor de Classes#

gyro(
    int32_t index );

Destrutor de classes#

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

virtual ~gyro();

Parâmetros#

Parâmetro

Tipo

Descrição

index

int32_t

A porta inteligente à qual o sensor giroscópio está ligado é escrita como PORTx, em que x é o número da porta (por exemplo, PORT1).

Exemplo#

// Create a gyro instance in Port 1
gyro Gyro1 = gyro(PORT1);

Funções de membro#

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

  • calibrate — Calibra o sensor giroscópio.

  • setHeading — Define a direção atual do sensor giroscópio para um novo valor de direção.

  • setRotation — Define a rotação actual do sensor giroscópio para um novo valor de rotação.

  • heading — Devolve a direcção para a qual o sensor giroscópio está a apontar.

  • rotation — Devolve o quanto o sensor giroscópio rodou.

  • rate — Devolve a velocidade de rotação do sensor 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 1
gyro Gyro1 = gyro(PORT1);

calibrate#

Calibra o sensor giroscópico.

Available Functions
void calibrate();

Parameters

Esta função não aceita qualquer parâmetro.

Return Values

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

Notes
  • A calibração ajuda o sensor giroscópico a medir as curvas corretamente. Mantenha o sensor imóvel durante a calibração. Se o sensor se mover durante a calibração, os valores de direção, rotação e velocidade podem não ser medidos corretamente.

Examples
// Calibrate the Gyro Sensor before turning.
Gyro1.calibrate();

setHeading#

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

A direção é a direção para a qual o sensor giroscópico está a apontar, medida de 0 a 359,99 graus. A configuração da direção altera a referência de direção atual do sensor.

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 atual do sensor giroscópio para um valor específico.

A rotação indica o quanto o sensor giroscópico rodou. Ao contrário da direção, a rotação pode aumentar para além dos 359,99 graus ou diminuir abaixo dos 0 graus.

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.

A direção indicada pelo sensor giroscópico é a direção para a qual está a apontar, medida de 0 a 359,99 graus. Se o sensor ultrapassar os 359,99 graus, a direção volta a 0 graus.

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 = Gyro1.heading();
Brain.Screen.print(value);

rotation#

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

A rotação indica o quanto o sensor giroscópico rodou. Ao contrário da direção, a rotação pode aumentar para além dos 359,99 graus ou diminuir abaixo dos 0 graus. Por exemplo, duas voltas completas para a direita resultam numa rotação de 720 graus. Uma volta completa para a esquerda a partir dos 0 graus resulta numa rotação de -360 graus.

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 = Gyro1.rotation();
Brain.Screen.print(value);

rate#

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

A taxa de rotação indica a velocidade de rotação do sensor giroscópico. O valor pode ser positivo ou negativo, dependendo do sentido da rotação do sensor.

Available Functions
double rate(
  rateUnits units = rateUnits::dps );

Parameters

Parâmetro

Tipo

Descrição

units

rateUnits

A unidade que representa a taxa:

  • rateUnits::dps (padrão) — graus por segundo
  • rateUnits::rpm — rotações por minuto

Return Values

Retorna um double que representa a taxa de variação actual do sensor giroscópio nas unidades especificadas, com o valor por defeito rateUnits::dps.