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 |
|---|---|---|
|
|
Inteligentny port, do którego podłączony jest czujnik żyroskopowy, zapisany jako |
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 Functionsvoid calibrate();
Ta funkcja nie przyjmuje żadnych parametrów.
Return ValuesTa funkcja nie zwraca wartości.
NotesKalibracja 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.
// 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 Functionsvoid setHeading(
double value,
rotationUnits units );
Parametry |
Typ |
Opis |
|---|---|---|
|
|
Wartość, która ma zostać użyta w nowym nagłówku. |
|
|
Jednostka reprezentująca kierunek:
|
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 Functionsvoid setRotation(
double value,
rotationUnits units );
Parametry |
Typ |
Opis |
|---|---|---|
|
|
Wartość, która ma zostać użyta jako nowa wartość obrotu. |
|
|
Jednostka reprezentująca wartość obrotu:
|
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 Functionsdouble heading(
rotationUnits units = degrees );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Jednostka reprezentująca kierunek:
|
Zwraca wartość double reprezentującą aktualny kierunek czujnika żyroskopowego w określonych jednostkach, domyślnie degrees.
// 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 Functionsdouble rotation(
rotationUnits units = degrees );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Jednostka reprezentująca wartość obrotu:
|
Zwraca wartość double reprezentującą bieżącą wartość obrotu czujnika żyroskopowego w określonych jednostkach, domyślnie degrees.
// 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 Functionsdouble rate(
rateUnits units = rateUnits::dps );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Jednostka reprezentująca szybkość:
|
Zwraca wartość double reprezentującą aktualną szybkość zmian czujnika żyroskopowego w określonych jednostkach, domyślnie rateUnits::dps.