Czujnik żyroskopowy#

Wstęp#

Klasa żyroskopu gyro jest używana z czujnikiem żyroskopowym do pomiaru ruchu obrotowego wokół pojedynczej osi. Pozwala ona śledzić kierunek, w którym zwrócony jest robot i jak daleko się obrócił.

Konstruktor klasy#

gyro(
    int32_t index );

Destruktor klasy#

Niszczy obiekt żyroskopu gyro i uwalnia powiązane zasoby.

virtual ~gyro();

Parametry#

Parametr

Typ

Opis

index

int32_t

Inteligentny port, do którego podłączony jest czujnik żyroskopowy, zapisany jako PORTx, gdzie x to numer portu (na przykład PORT1).

Przykład#

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

Funkcje członkowskie#

Klasa gyro zawiera następujące funkcje członkowskie:

  • calibrate — Kalibruje czujnik żyroskopowy.

  • setHeading — Ustawia aktualny kierunek czujnika żyroskopowego na nową wartość kierunku.

  • setRotation — Ustawia aktualny obrót czujnika żyroskopu na nową wartość obrotu.

  • heading — Zwraca kierunek, w którym skierowany jest czujnik żyroskopowy.

  • rotation — Zwraca, o ile obrócił się czujnik żyroskopowy.

  • rate — Zwraca szybkość obrotu czujnika żyroskopowego.

Przed wywołaniem jakiejkolwiek funkcji członkowskiej gyro należy utworzyć instancję gyro , jak pokazano poniżej:

/* 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#

Kalibruje czujnik żyroskopowy.

Available Functions
void calibrate();

Parameters

Ta funkcja nie przyjmuje żadnych parametrów.

Return Values

Ta funkcja nie zwraca wartości.

Notes
  • Kalibracja pomaga czujnikowi żyroskopowemu prawidłowo mierzyć zakręty. Podczas kalibracji należy trzymać czujnik nieruchomo. Jeśli czujnik porusza się podczas kalibracji, wartości kierunku, obrotu i prędkości mogą nie być w stanie prawidłowo mierzyć zakrętów.

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

setHeading#

Ustawia aktualny kierunek czujnika żyroskopowego na określoną wartość.

Kierunek to kierunek, w którym skierowany jest czujnik żyroskopowy, mierzony od 0 do 359,99 stopnia. Ustawienie kierunku zmienia aktualny kierunek odniesienia czujnika.

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

Parametry

Typ

Opis

value

double

Wartość, która ma zostać użyta w nowym nagłówku.

units

rotationUnits

Jednostka reprezentująca kierunek:

  • degrees
  • turns

Return Values

Ta funkcja nie zwraca wartości.

setRotation#

Ustawia aktualną wartość obrotu czujnika żyroskopu.

Obrót to wartość, o jaką obrócił się czujnik żyroskopowy. W przeciwieństwie do kierunku, obrót może wzrosnąć powyżej 359,99 stopnia lub spaść poniżej 0 stopni.

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

Parameters

Parametry

Typ

Opis

value

double

Wartość, która ma zostać użyta jako nowa wartość obrotu.

units

rotationUnits

Jednostka reprezentująca wartość obrotu:

  • degrees
  • turns

Return Values

Ta funkcja nie zwraca wartości.

heading#

Zwraca aktualny kierunek czujnika żyroskopowego.

Kurs to kierunek, w którym skierowany jest czujnik żyroskopowy, mierzony od 0 do 359,99 stopnia. Jeśli czujnik obróci się poza 359,99 stopnia, kurs powróci do 0 stopni.

Available Functions
double heading(
  rotationUnits units = degrees );

Parameters

Parametr

Typ

Opis

units

rotationUnits

Jednostka reprezentująca kierunek:

  • degrees (domyślnie)
  • turns

Return Values

Zwraca wartość double reprezentującą aktualny kierunek czujnika żyroskopowego w określonych jednostkach, domyślnie degrees.

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

rotation#

Zwraca aktualny obrót czujnika żyroskopowego.

Obrót to wartość, o jaką obrócił się czujnik żyroskopowy. W przeciwieństwie do kierunku, obrót może wzrosnąć powyżej 359,99 stopnia lub zmniejszyć się poniżej 0 stopni. Na przykład, wykonanie dwóch pełnych obrotów w prawo powoduje obrót o 720 stopni. Wykonanie jednego pełnego obrotu w lewo od 0 stopni powoduje obrót o -360 stopni.

Available Functions
double rotation(
  rotationUnits units = degrees );

Parameters

Parametr

Typ

Opis

units

rotationUnits

Jednostka reprezentująca wartość obrotu:

  • degrees (domyślnie)
  • turns

Return Values

Zwraca wartość double reprezentującą bieżącą wartość obrotu czujnika żyroskopowego w określonych jednostkach, domyślnie degrees.

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

rate#

Zwraca szybkość obrotu czujnika żyroskopowego.

Prędkość obrotowa to szybkość, z jaką obraca się czujnik żyroskopowy. Wartość może być dodatnia lub ujemna w zależności od kierunku obrotu czujnika.

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

Parameters

Parametr

Typ

Opis

units

rateUnits

Jednostka reprezentująca szybkość:

  • rateUnits::dps (domyślna) — stopnie na sekundę
  • rateUnits::rpm — obroty na minutę

Return Values

Zwraca wartość double reprezentującą aktualną szybkość zmian czujnika żyroskopowego w określonych jednostkach, domyślnie rateUnits::dps.