Bezwładnościowy#
Wstęp#
Czujnik bezwładnościowy mierzy sposób poruszania się i skręcania robota.
Czujnik bezwładnościowy wykorzystuje do tego celu dwie części. Żyroskop mierzy obroty, takie jak kierunek, obrót, prędkość żyroskopu i orientację. Akcelerometr mierzy zmiany ruchu, takie jak przyspieszenie lub zwolnienie wzdłuż osi x, y i z.
Aby polecenia bezwładnościowe pojawiły się w VEXcode V5, w oknie Urządzenia należy skonfigurować czujnik bezwładnościowy.
Poniżej znajduje się lista dostępnych metod:
Orientacja — odczyt i kontrola kierunku, obrotu i kalibracji czujnika.
heading— Zwraca kierunek, w którym skierowany jest czujnik, od 0 do 359,99 stopni.rotation— Zwraca, o ile obrócił się czujnik.gyro_rate— Zwraca szybkość, z jaką czujnik obraca się wokół wybranej osi.orientation— Zwraca kąt przechyłu, pochylenia lub odchylenia czujnika bezwładnościowego.set_heading— Ustawia aktualny kierunek czujnika bezwładnościowego na nową wartość kierunku.set_rotation— Ustawia aktualny obrót czujnika bezwładnościowego na nową wartość obrotu.calibrate— Kalibruje czujnik bezwładnościowy.reset_heading— Resetuje aktualny kierunek czujnika bezwładnościowego do 0 stopni.reset_rotation— Resetuje aktualny obrót czujnika bezwładnościowego do 0 stopni.is_calibrating— Zwraca informację, czy czujnik bezwładnościowy jest obecnie kalibrowany.changed— Rejestruje funkcję, która ma zostać uruchomiona, gdy zmieni się wartość czujnika bezwładnościowego.zainstalowano
installed— Sprawdza, czy czujnik bezwładnościowy jest zainstalowany.
Ruch — pomiar przyspieszenia, kolizji i kierunku skrętu.
acceleration— Zwraca wartość informującą o tym, jak szybko czujnik przyspiesza lub zwalnia na wybranej osi.collision— Rejestruje funkcję, która ma zostać uruchomiona, gdy czujnik bezwładnościowy wykryje kolizję.set_turn_type— Ustawia kierunek skrętu, dla którego zwracane są dodatnie wartości nagłówka.get_turn_type— Zwraca dodatnie wartości kierunku skrętu.
Konstruktor
Inertial– Tworzy czujnik inercyjny.
Orientacja#
heading#
Kurs to kierunek, w którym skierowany jest czujnik, mierzony w stopniach od 0 do 359,99. heading zwraca aktualny kurs czujnika jako wartość zmiennoprzecinkową.
Początkowy kurs wynosi 0 stopni. Jeśli czujnik przekroczy 359,99 stopnia, kurs powróci do 0 stopni.
Usage:
inertial_1.heading(units)
Parametry |
Opis |
|---|---|
|
Opcjonalnie. Jednostka nagłówka: |
# Display the heading after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print(inertial_1.heading())
rotation#
Obrót to wartość, o jaką obrócił się czujnik, mierzona w stopniach. W przeciwieństwie do kierunku, obrót może wzrosnąć powyżej 359,99 stopnia lub spaść poniżej 0 stopni. Na początku projektu wartość obrotu jest ustawiona na 0 stopni. rotation zwraca aktualny obrót czujnika bezwładnościowego jako wartość zmiennoprzecinkową.
Skręt w prawo zwiększa obrót, a skręt w lewo zmniejsza. Na przykład, wykonanie dwóch pełnych obrotów w prawo spowoduje obrót o 720 stopni. Jeden pełny obrót w lewo od 0 stopni spowoduje obrót o -360 stopni.
Usage:
inertial_1.rotation(units)
Parametry |
Opis |
|---|---|
|
Opcjonalnie. Jednostka obrotu: |
# Display the rotation after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print(inertial_1.rotation())
gyro_rate#
Prędkość żyroskopu określa, jak szybko obraca się czujnik bezwładnościowy. gyro_rate zwraca aktualną prędkość obrotową czujnika bezwładnościowego na wybranej osi jako wartość zmiennoprzecinkową.
Wartość może być dodatnia lub ujemna w zależności od kierunku obrotu czujnika wokół danej osi.
Usage:
inertial_1.gyro_rate(axis, units)
Parametry |
Opis |
|---|---|
|
Oś, z której ma zostać zwrócona prędkość żyroskopu:
|
|
Opcjonalnie. Jednostka prędkości żyroskopu:
|
# Display the rate of change of
# rotation while turning
drivetrain.turn(RIGHT)
wait(1, SECONDS)
brain.screen.print(inertial_1.gyro_rate(AxisType.ZAXIS, VelocityUnits.DPS))
drivetrain.stop()
orientation#
Orientacja to aktualny kąt czujnika bezwładnościowego względem wybranej osi obrotu. Orientacja orientation zwraca przechylenie, pochylenie lub odchylenie czujnika bezwładnościowego w zakresie od -180,00 do 180,00 stopni jako wartość zmiennoprzecinkową.
Przechylenie, pochylenie i odchylenie opisują różne sposoby, w jakie czujnik może się przechylać lub obracać.
Usage:
inertial_1.orientation(type, units)
Parametry |
Opis |
|---|---|
|
Kąt orientacji do zwrotu:
|
|
Opcjonalnie. Jednostka orientacji:
|
# Display the roll, pitch, and yaw of the Brain as it
# is rotated by hand
while True:
brain.screen.clear_screen()
brain.screen.print(inertial_1.orientation(AxisType.ROLL, DEGREES))
brain.screen.next_row()
brain.screen.print(inertial_1.orientation(AxisType.PITCH, DEGREES))
brain.screen.next_row()
brain.screen.print(inertial_1.orientation(AxisType.YAW, DEGREES))
brain.screen.next_row()
brain.screen.set_cursor(1, 1)
wait(0.1, SECONDS)
set_heading#
Kurs to kierunek, w którym skierowany jest czujnik, mierzony w stopniach od 0 do 359,99. set_heading zmienia aktualny kurs czujnika bezwładnościowego na nową wartość kursu.
Na przykład, jeśli czujnik obrócił się w prawo, ustawienie kierunku na 0 stopni spowoduje, że ta pozycja skierowana w prawo stanie się nowym 0 stopniem. Wtedy czujnik może śledzić inne kierunki na podstawie tego nowego kierunku.
Usage:
inertial_1.set_heading(value, units)
Parametry |
Opis |
|---|---|
|
Wartość kierunku (w stopniach) do ustawienia dla czujnika. Może to być wartość z zakresu od 0 do 359,99. |
|
Opcjonalnie. Jednostka nagłówka: |
# Turn the robot around
inertial_1.set_heading(180, DEGREES)
drivetrain.turn_to_heading(0)
set_rotation#
Obrót to wartość, o jaką obrócił się czujnik, mierzona w stopniach. W przeciwieństwie do kierunku, obrót może wzrosnąć powyżej 359,99 stopnia lub spaść poniżej 0 stopni. Na początku projektu wartość obrotu jest ustawiona na 0 stopni. set_rotation zmienia aktualny obrót czujnika bezwładnościowego na nową wartość.
Na przykład, jeśli czujnik wykonał dwa pełne obroty w prawo, jego wartość obrotu wyniesie 720 stopni. Ustawienie obrotu na 0 stopni zresetuje ten obrót z 720 do 0 stopni. Wtedy czujnik będzie mógł śledzić obroty na podstawie tej nowej wartości.
Usage:
inertial_1.set_rotation(value, units)
Parametry |
Opis |
|---|---|
|
Wartość obrotu (w stopniach), którą należy ustawić dla czujnika. Może to być liczba całkowita lub dziesiętna (zmiennoprzecinkowa). |
|
Opcjonalnie. Jednostka obrotu: |
# Turn the robot around
inertial_1.set_rotation(-180, DEGREES)
drivetrain.turn_to_rotation(0)
calibrate#
calibrate kalibruje czujnik bezwładnościowy.
Kalibracja pomaga czujnikowi prawidłowo mierzyć zakręty. Podczas kalibracji należy trzymać czujnik nieruchomo. Jeśli czujnik porusza się podczas kalibracji, wartości kierunku, obrotu, prędkości żyroskopu i orientacji mogą być niepoprawne.
Projekt zaczeka na zakończenie kalibracji przed uruchomieniem kolejnej linii kodu.
Usage:
inertial_1.calibrate()
Parametry |
Opis |
|---|---|
Ta metoda nie ma żadnych parametrów. |
# Start calibration.
inertial_1.calibrate()
# Print that the Inertial Sensor is calibrating while
# waiting for it to finish calibrating.
while inertial_1.is_calibrating():
brain.screen.clear()
brain.screen.print("Inertial Sensor Calibrating")
wait(50, MSEC)
reset_heading#
reset_heading resetuje aktualny kierunek czujnika bezwładnościowego do 0 stopni.
Po zastosowaniu tej metody aktualny kierunek czujnika staje się nowym kursem 0 stopni.
Usage:
inertial_1.reset_heading()
Parametry |
Opis |
|---|---|
Ta metoda nie ma żadnych parametrów. |
reset_rotation#
reset_rotation resetuje aktualny obrót czujnika bezwładnościowego do 0 stopni.
Po zastosowaniu tej metody czujnik śledzi przyszłe obroty od nowej wartości obrotu 0 stopni.
Usage:
inertial_1.reset_rotation()
Parametry |
Opis |
|---|---|
Ta metoda nie ma żadnych parametrów. |
is_calibrating#
is_calibrating zwraca informację, czy czujnik bezwładnościowy jest obecnie kalibrowany.
True— Czujnik bezwładnościowy jest kalibrowany.False— Czujnik bezwładnościowy nie kalibruje się.
Usage:
inertial_1.is_calibrating()
Parametry |
Opis |
|---|---|
Ta metoda nie ma żadnych parametrów. |
changed#
changed rejestruje funkcję, która ma zostać wywołana za każdym razem, gdy zmieni się wartość czujnika bezwładnościowego.
Usage:
inertial_1.changed(callback, arg)
Parametry |
Opis |
|---|---|
|
Wcześniej zdefiniowana funkcja, która jest wykonywana, gdy zmienia się wartość czujnika bezwładnościowego. |
|
Opcjonalnie. Krotka zawierająca argumenty do przekazania do funkcji wywołania zwrotnego. Więcej informacji można znaleźć w Używanie funkcji z parametrami. |
def my_function():
brain.screen.print("Value changed!!")
# Call my_function whenever inertial_1's value changes
inertial_1.changed(my_function)
installed#
installed sprawdza, czy czujnik bezwładnościowy jest zainstalowany.
True— Czujnik bezwładnościowy jest zainstalowany.False— Czujnik bezwładnościowy nie jest zainstalowany.
Usage:
inertial_1.installed()
Parametry |
Opis |
|---|---|
Ta metoda nie ma żadnych parametrów. |
Ruch#
acceleration#
Przyspieszenie określa, jak szybko czujnik przyspiesza lub zwalnia. Przyspieszenie acceleration zwraca przyspieszenie czujnika bezwładnościowego na wybranej osi, od -4,0 G do 4,0 G, jako wartość zmiennoprzecinkową.
G to jednostka miary przyspieszenia. 1 G to przyspieszenie grawitacyjne odczuwane w pozycji siedzącej.
Wartość może być dodatnia lub ujemna w zależności od kierunku przyspieszenia na wybranej osi. Dostępne opcje osi to AxisType.XAXIS, AxisType.YAXISi AxisType.ZAXIS.
Usage:
inertial_1.acceleration(type)
Parametry |
Opis |
|---|---|
|
Oś, na której należy zmierzyć przyspieszenie:
|
# Return the acceleration for the Z axis of the Inertial Sensor
zaccel = inertial_1.acceleration(AxisType.ZAXIS)
collision#
collision rejestruje funkcję, która ma zostać wywołana za każdym razem, gdy czujnik bezwładnościowy wykryje nagłe uderzenie lub kolizję.
Usage:
inertial_1.collision(callback, arg)
Parametry |
Opis |
|---|---|
|
Wcześniej zdefiniowana funkcja, która jest wykonywana po wykryciu kolizji. |
|
Opcjonalnie. Krotka zawierająca argumenty do przekazania do funkcji wywołania zwrotnego. Więcej informacji można znaleźć w Używanie funkcji z parametrami. |
def my_function():
brain.screen.print("Collision!")
# Call my_function whenever a collision is detected
inertial_1.collision(my_function)
set_turn_type#
set_turn_type ustawia kierunek skrętu, który zwraca dodatnie wartości kursu.
Usage:
inertial_1.set_turn_type(turntype)
Parametry |
Opis |
|---|---|
|
Typ skrętu do ustawienia:
|
get_turn_type#
get_turn_type zwraca kierunek skrętu, zwraca dodatnie wartości nagłówka.
LEFT— Skręty w lewo zwracają dodatnie wartości kierunku.RIGHT— Skręty w prawo zwracają dodatnie wartości kierunku.
Usage:
inertial_1.get_turn_type()
Parametry |
Opis |
|---|---|
Ta metoda nie ma żadnych parametrów. |
Konstruktorzy#
Inertial#
Inertial tworzy czujnik inercyjny.
Usage:
Inertial(port)
Parametry |
Opis |
|---|---|
|
Port inteligentny, do którego podłączony jest czujnik bezwładnościowy, od 1 do 21. |
# Create a new object "inertial_1" with the Inertial class.
inertial_1 = Inertial(Ports.PORT1)