Ż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.

  • zainstalowanoinstalled — 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:

  • DEGREES (domyślne)
  • TURNS
# 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

value

Wartość nagłówka do ustawienia.

units

Opcjonalnie. Jednostka używana do reprezentowania nowej wartości obrotu:

  • DEGREES (domyślnie)
  • TURNS
# 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

units

Opcjonalnie. Jednostka używana do reprezentowania kierunku:

  • DEGREES (domyślne)
  • TURNS
# 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

units

Opcjonalnie. Jednostka używana do reprezentowania obrotu:

  • DEGREES (domyślnie)
  • TURNS
# 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

units

Opcjonalnie. Jednostka używana do reprezentowania prędkości żyroskopu:

  • DPS (domyślnie)
  • RPM
  • PERCENT
# 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

callback

Funkcja wywołania zwrotnego, która ma zostać wywołana, gdy zmieni się kierunek czujnika żyroskopowego.

arg

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

smartport

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)