Gyro#
Zavedení#
Gyroskopický senzor je pohybový senzor, který detekuje rotaci kolem jedné osy. Dokáže měřit, o kolik se robot otočil, což mu umožňuje sledovat orientaci a směr.
Tato stránka používá jako příklad názvu gyroskopického senzoru drivetrain_gyro V případě potřeby jej nahraďte vlastním nakonfigurovaným názvem.
Níže je uveden seznam všech dostupných metod:
Akce – Kalibrace nebo úprava směru a rotace gyroskopického senzoru.
calibrate— Kalibruje gyroskopický senzor pro stabilní sledování směru.set_heading— Nastaví směr gyroskopu na zadanou hodnotu.set_rotation— Nastaví hodnotu rotace gyroskopického senzoru.reset_heading— Nastaví směr gyroskopu na 0.reset_rotation— Nastaví rotaci gyroskopického senzoru na 0.
Gettery – Čtou směr, rotaci a stav gyroskopického senzoru.
heading— Vrátí aktuální nadpis.rotation— Vrátí kumulativní rotaci.rate— Vrátí úhlovou rychlost kolem osy x, y nebo z.is_calibrating— Vrací, zda se gyroskop kalibruje, či nikoli.installed— Vrátí, zda je gyroskopický senzor připojen k mozku.
Zpětné volání — Spustí kód, když gyroskop detekuje pohyb nebo změnu.
changed— Registruje funkci, která se má zavolat, když gyroskop detekuje změnu.
Konstruktory – Ruční inicializace a konfigurace gyroskopického senzoru.
Gyro— Vytvoří gyroskopický senzor.
Akce#
calibrate#
calibrate kalibruje gyroskopický senzor. Všechny následující řádky budou čekat na dokončení kalibrace, než je provedou. Kalibrace je interní procedura, která měří a kompenzuje šum a drift senzoru po stanovenou dobu. Během této doby musí gyroskopický senzor zůstat zcela v klidu (tj. na stabilním povrchu bez jakéhokoli vnějšího pohybu). Pohyb během kalibrace povede k nepřesným výsledkům.
Usage:
calibrate()
Parametr |
Popis |
|---|---|
Tato metoda nemá žádné parametry. |
# 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 nastaví směr gyroskopu na specifickou hodnotu.
Usage:
set_heading(value, units)
Parametry |
Popis |
|---|---|
hodnota |
Hodnota záhlaví, která se má nastavit. |
jednotky |
Volitelné. Jednotka použitá k vyjádření nového směru:
|
# Turn the robot around
drivetrain_gyro.set_heading(180)
drivetrain.turn_to_heading(0)
set_rotation#
set_rotation nastaví rotaci gyroskopického senzoru na specifickou hodnotu.
Usage:
set_rotation(value, units)
Parametry |
Popis |
|---|---|
|
Hodnota záhlaví, která se má nastavit. |
|
Volitelné. Jednotka použitá k vyjádření nové hodnoty natočení:
|
# Turn the robot around
drivetrain_gyro.set_rotation(-180)
drivetrain.turn_to_rotation(0)
reset_heading#
reset_heading resetuje směr gyroskopu na 0.
Usage:
reset_heading()
Parametry |
Popis |
|---|---|
Tato metoda nemá žádné parametry. |
# 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 rotaci gyroskopického senzoru na 0.
Usage:
reset_rotation()
Parametry |
Popis |
|---|---|
Tato metoda nemá žádné parametry. |
# 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)
Gettery#
heading#
heading vrací aktuální směr gyroskopu.
Usage:
heading(units)
Parametry |
Popis |
|---|---|
|
Volitelné. Jednotka použitá k vyjádření směru:
|
# Display the heading after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print(drivetrain_gyro.heading())
rotation#
rotation vrací aktuální rotaci gyroskopického senzoru.
Usage:
rotation(units)
Parametry |
Popis |
|---|---|
|
Volitelné. Jednotka použitá k vyjádření rotace:
|
# Display the rotation after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print(drivetrain_gyro.rotation())
rate#
rate vrací aktuální rychlost změny rotace gyroskopického senzoru v zadaných jednotkách.
Usage:
rate(units)
Parametry |
Popis |
|---|---|
|
Volitelné. Jednotka použitá k vyjádření rychlosti gyroskopu:
|
# 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 kontroluje, zda se gyroskopický senzor aktuálně kalibruje.
True— Gyroskopický senzor se kalibruje.False— Gyroskopický senzor se nekalibruje.
Usage:
is_calibrating()
Parametr |
Popis |
|---|---|
Tato metoda nemá žádné parametry. |
# 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 vrací booleovskou hodnotu označující, zda je gyroskopický senzor připojen k mozku.
True— Gyroskopický senzor je připojen k mozku.False— Gyroskopický senzor není připojen k mozku.
Usage:
installed()
Parametry |
Popis |
|---|---|
Tato metoda nemá žádné parametry. |
# Display a message if the Gyro Sensor is
# installed.
if drivetrain_gyro.installed():
brain.screen.print("Installed!")
Zpětné volání#
changed#
changed registruje funkci zpětného volání pro případ změny směru gyroskopického senzoru.
Usage:
changed(callback, arg)
Parametry |
Popis |
|---|---|
|
Funkce zpětného volání, která se má volat při změně směru gyroskopického senzoru. |
|
Volitelné. N-tice argumentů, které se mají předat funkci zpětného volání. |
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)
Konstruktéři#
Konstruktory se používají k ručnímu vytvoření objektů Gyro , které jsou nezbytné pro konfiguraci gyroskopického senzoru mimo VEXcode.
Gyro#
Gyro vytvoří gyroskopický senzor.
Usage:
Gyro(smartport)
Parametr |
Popis |
|---|---|
|
Inteligentní port, ke kterému je připojen gyroskopický senzor, zapsaný jako PORTx, kde x je číslo 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)