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 |
|---|---|---|
|
|
A porta inteligente à qual o sensor giroscópio está ligado é escrita como |
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 Functionsvoid calibrate();
Esta função não aceita qualquer parâmetro.
Return ValuesEsta função não devolve qualquer valor.
NotesA 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.
// 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 Functionsvoid setHeading(
double value,
rotationUnits units );
Parâmetros |
Tipo |
Descrição |
|---|---|---|
|
|
O valor a utilizar para o novo título. |
|
|
A unidade que representa a direção:
|
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 Functionsvoid setRotation(
double value,
rotationUnits units );
Parâmetros |
Tipo |
Descrição |
|---|---|---|
|
|
O valor a utilizar para o novo valor de rotação. |
|
|
A unidade que representa o valor da rotação:
|
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 Functionsdouble heading(
rotationUnits units = degrees );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
A unidade que representa a direção:
|
Retorna um valor double que representa a direção atual do sensor giroscópico nas unidades especificadas, com um valor padrão de degrees.
// 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 Functionsdouble rotation(
rotationUnits units = degrees );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
A unidade que representa o valor de rotação:
|
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.
// 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 Functionsdouble rate(
rateUnits units = rateUnits::dps );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
A unidade que representa a taxa:
|
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.