Żyroskop#
Wstęp#
Czujnik żyroskopowy to czujnik ruchu, który wykrywa obrót wokół jednej osi. Może mierzyć, o ile robot się obrócił, umożliwiając mu śledzenie orientacji i kierunku.
Ta strona używa drivetrain_gyro jako przykładowej nazwy czujnika żyroskopu. W razie potrzeby zastąp ją własną, skonfigurowaną nazwą.
Poniżej znajduje się lista wszystkich dostępnych metod:
Działania — kalibracja lub regulacja kierunku i obrotu czujnika żyroskopowego.
calibrate— Kalibruje czujnik żyroskopowy w celu stabilnego śledzenia kierunku.set_heading— Ustawia nagłówek czujnika żyroskopowego na określoną wartość.set_rotation— Ustawia wartość obrotu czujnika żyroskopowego.reset_heading— Ustawia nagłówek czujnika żyroskopowego na 0.reset_rotation— Ustawia obrót czujnika żyroskopowego na 0.
Gettery — odczytują kierunek, obrót i status czujnika żyroskopowego.
heading— Zwraca bieżący nagłówek.rotation— Zwraca skumulowany obrót.rate— Zwraca prędkość kątową wokół osi x, y lub z.is_calibrating— Zwraca informację, czy czujnik żyroskopowy jest kalibrowany.zainstalowano
installed— Zwraca informację, czy czujnik żyroskopowy jest podłączony do mózgu.
Wywołanie zwrotne — uruchom kod, gdy czujnik żyroskopowy wykryje ruch lub zmianę.
changed— Rejestruje funkcję, która ma zostać wywołana, gdy czujnik żyroskopowy wykryje zmianę.
Konstruktory — ręczna inicjalizacja i konfiguracja czujnika żyroskopowego.
Gyro— Tworzy czujnik żyroskopowy.
Akcje#
calibrate#
calibrate kalibruje czujnik żyroskopowy. Wszystkie kolejne wiersze będą oczekiwać na zakończenie kalibracji przed jej wykonaniem. Kalibracja to wewnętrzna procedura, która mierzy i kompensuje szum czujnika oraz dryft w określonym czasie. W tym czasie czujnik żyroskopowy musi pozostawać całkowicie nieruchomy (tj. na stabilnej powierzchni bez żadnego ruchu zewnętrznego). Ruch podczas kalibracji spowoduje uzyskanie niedokładnych wyników.
Usage:
calibrate()
Parametr |
Opis |
|---|---|
Ta metoda nie ma żadnych parametrów. |
# Start Gyro Sensor calibration
drivetrain_gyro.calibrate()
# Print after calibration
while drivetrain_gyro.is_calibrating():
wait(0.1, SECONDS)
brain.screen.print("Done!")
set_heading#
set_heading ustawia nagłówek czujnika żyroskopowego na określoną wartość.
Usage:
set_heading(value, units)
Parametry |
Opis |
|---|---|
wartość |
Wartość nagłówka do ustawienia. |
jednostki |
Opcjonalnie. Jednostka używana do reprezentowania nowego kierunku:
|
# Turn the robot around
drivetrain_gyro.set_heading(180)
drivetrain.turn_to_heading(0)
set_rotation#
set_rotation ustawia obrót czujnika żyroskopowego na określoną wartość.
Usage:
set_rotation(value, units)
Parametry |
Opis |
|---|---|
|
Wartość nagłówka do ustawienia. |
|
Opcjonalnie. Jednostka używana do reprezentowania nowej wartości obrotu:
|
# Turn the robot around
drivetrain_gyro.set_rotation(-180)
drivetrain.turn_to_rotation(0)
reset_heading#
reset_heading resetuje kierunek czujnika żyroskopowego do 0.
Usage:
reset_heading()
Parametry |
Opis |
|---|---|
Ta metoda nie ma żadnych parametrów. |
# Turn the robot before and after resetting the heading
drivetrain.turn_to_heading(90, DEGREES)
wait(0.5,SECONDS)
drivetrain_gyro.reset_heading()
drivetrain.turn_to_heading(90, DEGREES)
reset_rotation#
reset_rotation resetuje obrót czujnika żyroskopowego do 0.
Usage:
reset_rotation()
Parametry |
Opis |
|---|---|
Ta metoda nie ma żadnych parametrów. |
# Turn the robot before and after resetting the rotation
drivetrain.turn_to_rotation(-90, DEGREES)
wait(0.5,SECONDS)
drivetrain_gyro.reset_rotation()
drivetrain.turn_to_rotation(-90, DEGREES)
Getters#
heading#
heading zwraca aktualny nagłówek czujnika żyroskopowego.
Usage:
heading(units)
Parametry |
Opis |
|---|---|
|
Opcjonalnie. Jednostka używana do reprezentowania kierunku:
|
# Display the heading after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print(drivetrain_gyro.heading())
rotation#
rotation zwraca aktualny obrót czujnika żyroskopowego.
Usage:
rotation(units)
Parametry |
Opis |
|---|---|
|
Opcjonalnie. Jednostka używana do reprezentowania obrotu:
|
# Display the rotation after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print(drivetrain_gyro.rotation())
rate#
rate zwraca aktualną szybkość zmiany obrotu czujnika żyroskopu w określonych jednostkach.
Usage:
rate(units)
Parametry |
Opis |
|---|---|
|
Opcjonalnie. Jednostka używana do reprezentowania prędkości żyroskopu:
|
# Display the rate of change of
# rotation while turning
drivetrain.turn(RIGHT)
wait(1, SECONDS)
brain.screen.print(drivetrain_gyro.rate())
drivetrain.stop()
is_calibrating#
is_calibrating sprawdza, czy czujnik żyroskopowy jest obecnie kalibrowany.
True— Czujnik żyroskopowy jest kalibrowany.False— Czujnik żyroskopowy nie kalibruje się.
Usage:
is_calibrating()
Parametr |
Opis |
|---|---|
Ta metoda nie ma żadnych parametrów. |
# Start Gyro Sensor calibration.
drivetrain_gyro.calibrate()
# Print after calibration
while drivetrain_gyro.is_calibrating():
wait(0.1, SECONDS)
brain.screen.print("Done!")
installed#
installed zwraca wartość logiczną wskazującą, czy czujnik żyroskopowy jest podłączony do mózgu.
True— Czujnik żyroskopowy jest połączony z mózgiem.False— Czujnik żyroskopowy nie jest połączony z mózgiem.
Usage:
installed()
Parametry |
Opis |
|---|---|
Ta metoda nie ma żadnych parametrów. |
# Display a message if the Gyro Sensor is
# installed.
if drivetrain_gyro.installed():
brain.screen.print("Installed!")
Oddzwonienie#
changed#
changed rejestruje funkcję wywołania zwrotnego na wypadek zmiany kierunku czujnika żyroskopowego.
Usage:
changed(callback, arg)
Parametry |
Opis |
|---|---|
|
Funkcja wywołania zwrotnego, która ma zostać wywołana, gdy zmieni się kierunek czujnika żyroskopowego. |
|
Opcjonalnie. Krotka argumentów do przekazania do funkcji wywołania zwrotnego. |
def gyro_changed():
brain.screen.clear_screen()
brain.screen.set_cursor(1, 1)
brain.screen.print("Heading: ")
brain.screen.print(drivetrain_gyro.heading())
# Display the heading when the gyro detects a change
drivetrain.turn_for(RIGHT, 90, DEGREES, wait=False)
drivetrain_gyro.changed(gyro_changed)
Konstruktorzy#
Konstruktory służą do ręcznego tworzenia obiektów Gyro , które są niezbędne do konfiguracji czujnika żyroskopowego poza VEXcode.
Gyro#
Gyro tworzy czujnik żyroskopowy.
Usage:
Gyro(smartport)
Parametr |
Opis |
|---|---|
|
Inteligentny port, do którego podłączony jest czujnik żyroskopowy, zapisany jako PORTx, gdzie x jest numerem portu. |
# Create the Brain
brain = Brain()
# When constructing Gyro Sensor "drivetrain_gyro" with a
# SmartDrive "drivetrain"
drivetrain_gyro = Gyro(Ports.PORT1)
drivetrain = SmartDrive(left_drive_smart, right_drive_smart, drivetrain_gyro, 200)
drivetrain_gyro.set_heading(180)
drivetrain.turn_to_heading(0)