Inerciální#
Zavedení#
Mozek má vestavěný inerciální senzor. Tento senzor dokáže měřit, jak se mozek pohybuje nebo otáčí.
Inerciální senzor k tomu používá dvě části. Gyro měří otáčení, například směr, kterým je mozek otočen a o kolik se otočil. Akcelerometr měří změny v pohybu, jako je zrychlení, zpomalení nebo náhlé zastavení během nehody.
Inerciální metody lze použít ke sledování zatáček, resetování hodnot kurzu nebo rotace, měření klopení, stoupání a stáčení a k hlášení zrychlení.
Existuje mnoho způsobů, jak kódovat inerciální senzor. Níže je uveden seznam všech inerciálních metod:
Orientace – Vraťte se a nastavte, jak se mozek otáčí, jak se má otočit nebo naklonit.
get_heading— Vrátí směr, kterým je mozek otočen, od 0 do 359 stupňů.get_rotation— Vrátí, o kolik se Brain otočil.get_yaw— Vrátí, o kolik se mozek otočil doleva nebo doprava od své výchozí polohy.get_roll— Vrátí, o kolik je mozek nakloněn doleva nebo doprava.get_pitch— Vrátí, o kolik je mozek nakloněn dopředu nebo dozadu.calibrate— Kalibruje inerciální senzor mozku.reset_heading— Obnoví aktuální směr Brainu na 0 stupňů.reset_rotation— Obnoví aktuální rotaci mozku na 0 stupňů.set_heading— Nastaví aktuální směr Brainu na novou hodnotu.set_rotation— Nastaví aktuální rotaci mozku na novou hodnotu rotace.
Pohyb – Vraťte, jak se mozek pohybuje.
get_acceleration— Vrátí, jak rychle mozek zrychluje nebo zpomaluje na vybrané ose.
Orientace#
get_heading#
Směr je směr, kterým se mozek pohybuje, měřený ve stupních od 0 do 359. get_heading vrací aktuální směr, kterým se mozek pohybuje.
Výchozí směr je 0 stupňů. Pokud se mozek otočí o více než 359 stupňů, směr se vrátí zpět na 0 stupňů.
Usage:
inertial.get_heading()
Parametry |
Popis |
|---|---|
Tato metoda nemá žádné parametry. |
get_rotation#
Rotace udává, o kolik se mozek otočil, měřeno ve stupních. Na rozdíl od směru se rotace může zvětšit nad 359 stupňů nebo snížit pod 0 stupňů. Na začátku projektu je hodnota rotace nastavena na 0 stupňů. Funkce get_rotation vrací aktuální rotaci mozku.
Otočení doprava zvětšuje rotaci a otočení doleva ji snižuje. Například provedení dvou celých otoček doprava vrátí rotaci o 720 stupňů. Otočení o jednu celou otáčku doleva z 0 stupňů vrátí rotaci o -360 stupňů.
Usage:
inertial.get_rotation()
Parametry |
Popis |
|---|---|
Tato metoda nemá žádné parametry. |
get_yaw#
Stáčení udává, o kolik se mozek otočil doleva nebo doprava od své výchozí polohy, měřeno ve stupních. get_yaw vrací aktuální hodnotu stáčení mozku.
Otočení doprava zvyšuje hodnotu stáčení a otočení doleva ji snižuje. Otočení je užitečné pro kontrolu odtáčení doleva a doprava bez použití hodnoty zalomeného směru.
Usage:
inertial.get_yaw()
Parametry |
Popis |
|---|---|
Tato metoda nemá žádné parametry. |
get_roll#
Naklonění udává, o kolik se mozek nakloní doleva nebo doprava, měřeno ve stupních. get_roll vrací aktuální hodnotu naklonění mozku.
S Brain otočeným dopředu se nakloněním doleva hodnota klopení zvyšuje a nakloněním doprava se hodnota klopení snižuje.
Usage:
inertial.get_roll()
Parametry |
Popis |
|---|---|
Tato metoda nemá žádné parametry. |
get_pitch#
Výška tónu udává, o kolik se mozek nakloní dopředu nebo dozadu, měřeno ve stupních. get_pitch vrací aktuální hodnotu výšky tónu mozku.
S mozkem otočeným dopředu se nakloněním dopředu zvyšuje výška tónu a nakloněním dozadu se výška tónu snižuje.
Usage:
inertial.get_pitch()
Parametry |
Popis |
|---|---|
Tato metoda nemá žádné parametry. |
calibrate#
calibrate kalibruje inerciální senzor mozku.
Kalibrace pomáhá inerciálnímu senzoru správně měřit zatáčky. Během kalibrace držte Brain přibližně 2 sekundy v klidu. Pokud se Brain během kalibrace pohne, hodnoty směru, rotace, stáčení, klopení a stoupání se nemusí měřit správně.
Projekt počká na dokončení kalibrace, než se spustí další řádek kódu.
Usage:
inertial.calibrate()
Parametry |
Popis |
|---|---|
Tato metoda nemá žádné parametry. |
reset_heading#
Směr je směr, kterým je mozek otočen, měřený ve stupních. reset_heading resetuje aktuální směr mozku na 0 stupňů.
Po použití této metody se aktuální směr mozku stane novým kurzem 0 stupňů.
Usage:
inertial.reset_heading()
Parametry |
Popis |
|---|---|
Tato metoda nemá žádné parametry. |
reset_rotation#
Rotace udává, o kolik se mozek otočil, měřeno ve stupních. reset_rotation resetuje aktuální rotaci mozku na 0 stupňů.
Po použití této metody mozek sleduje budoucí otočení od nové hodnoty rotace 0 stupňů.
Usage:
inertial.reset_rotation()
Parametry |
Popis |
|---|---|
Tato metoda nemá žádné parametry. |
set_heading#
Směr je směr, kterým je mozek otočen, měřený ve stupních od 0 do 359. set_heading změní aktuální směr mozku na novou hodnotu směru.
Například pokud se mozek otočil doprava, nastavení směru na 0 stupňů učiní z této polohy doprava nových 0 stupňů. Mozek pak může na základě tohoto nového směru sledovat další směry.
Usage:
inertial.set_heading(heading)
Parametry |
Popis |
|---|---|
|
Hodnota směru ve stupních, která se má nastavit pro Brain. Může to být celé číslo od 0 do 359. |
set_rotation#
Rotace udává, o kolik se mozek otočil, měřeno ve stupních. Na rozdíl od směru se rotace může zvětšit nad 359 stupňů nebo snížit pod 0 stupňů. Na začátku projektu je hodnota rotace nastavena na 0 stupňů. set_rotation změní aktuální rotaci mozku na novou hodnotu.
Například pokud mozek provedl dvě plné otáčky doprava, jeho hodnota rotace bude 720 stupňů. Nastavením rotace na 0 stupňů se tato hodnota resetuje ze 720 na 0 stupňů. Mozek pak může sledovat rotace na základě této nové hodnoty.
Usage:
inertial.set_rotation(rotation)
Parametry |
Popis |
|---|---|
|
Hodnota rotace ve stupních, kterou chcete nastavit pro mozek. Může to být celé číslo. |
Pohyb#
get_acceleration#
Akcelerace udává, jak rychle mozek zrychluje nebo zpomaluje. get_acceleration vrací zrychlení mozku na vybrané ose, od -4,0 G do 4,0 G.
G je jednotka používaná k měření zrychlení. 1 G udává zrychlení, které cítíte vlivem gravitace, když sedíte v klidu.
Hodnota může být kladná nebo záporná v závislosti na směru zrychlení na vybrané ose. Možnosti os jsou X, Ya Z.
Usage:
inertial.get_acceleration(axis)
Parametry |
Popis |
|---|---|
|
Osa pro měření zrychlení: |
# Build Used: Super Code Base 2.0
def main():
# Display the acceleration after moving.
drivetrain.set_drive_velocity(100)
console.print("Resting: ")
console.print(inertial.get_acceleration(X), precision=2)
console.new_line()
wait(1, SECONDS)
drivetrain.drive_for(FORWARD, 500, MM, wait=False)
wait(0.20, SECONDS)
console.print("Startup: ")
console.print(inertial.get_acceleration(X), precision=2)
# Start threads — Do not delete
start_thread(main)