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

heading

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

rotation

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

axis

Osa pro měření zrychlení: X, Ynebo Z.

# 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)