Gyro#

Introduktion#

Gyrosensorn är en rörelsesensor som detekterar rotation runt en enda axel. Den kan mäta hur mycket roboten har roterat, vilket gör att den kan spåra orientering och kurs.

Den här sidan använder drivetrain_gyro som exempelnamn för gyrosensorn. Ersätt det med ditt eget konfigurerade namn efter behov.

Nedan följer en lista över alla tillgängliga metoder:

Åtgärder — Kalibrera eller justera gyrosensorns kurs och rotation.

  • calibrate — Kalibrerar gyrosensorn för stabil kursspårning.

  • set_heading — Ställer in gyrosensorns kurs till ett angivet värde.

  • set_rotation — Ställer in gyrosensorns rotationsvärde.

  • reset_heading — Ställer in gyrosensorns kurs till 0.

  • reset_rotation — Ställer in gyrosensorns rotation till 0.

Getters — Läs gyrosensorns kurs, rotation och status.

  • heading — Returnerar den aktuella rubriken.

  • rotation — Returnerar den kumulativa rotationen.

  • rate — Returnerar vinkelhastigheten runt x-, y- eller z-axeln.

  • is_calibrating — Returnerar huruvida gyrosensorn kalibrerar eller inte.

  • installed — Returnerar huruvida en gyrosensor är ansluten till hjärnan eller inte.

Återuppringning — Kör koden när gyrosensorn detekterar rörelse eller förändring.

  • changed — Registrerar en funktion som ska anropas när gyrosensorn detekterar en förändring.

Konstruktörer — Initiera och konfigurera en gyrosensor manuellt.

  • Gyro — Skapar en gyrosensor.

Åtgärder#

calibrate#

calibrate kalibrerar gyrosensorn. Alla efterföljande rader väntar på att kalibreringen ska slutföras innan de utförs. Kalibrering är en intern procedur som mäter och kompenserar för sensorbrus och drift under en viss period. Under denna tid måste gyrosensorn förbli helt stilla (dvs. på en stabil yta utan någon extern rörelse). Rörelse under kalibreringen kommer att ge felaktiga resultat.

Usage:
calibrate()

Parameter

Beskrivning

Den här metoden har inga parametrar.

# 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 ställer in gyrosensorns riktning till ett specifikt värde.

Usage:
set_heading(value, units)

Parametrar

Beskrivning

värde

Rubrikvärdet som ska anges.

enheter

Valfritt. Enheten som används för att representera den nya kursen:

  • DEGREES (standard)
  • TURNS
# Turn the robot around
drivetrain_gyro.set_heading(180)
drivetrain.turn_to_heading(0)

set_rotation#

set_rotation ställer in gyrosensorns rotation till ett specifikt värde.

Usage:
set_rotation(value, units)

Parametrar

Beskrivning

value

Rubrikvärdet som ska anges.

units

Valfritt. Enheten som används för att representera det nya rotationsvärdet:

  • DEGREES (standard)
  • TURNS
# Turn the robot around
drivetrain_gyro.set_rotation(-180)
drivetrain.turn_to_rotation(0)

reset_heading#

reset_heading återställer gyrosensorns kurs till 0.

Usage:
reset_heading()

Parametrar

Beskrivning

Den här metoden har inga parametrar.

# 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 återställer gyrosensorns rotation till 0.

Usage:
reset_rotation()

Parametrar

Beskrivning

Den här metoden har inga parametrar.

# 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 returnerar gyrosensorns aktuella kurs.

Usage:
heading(units)

Parametrar

Beskrivning

units

Valfritt. Enheten som används för att representera kursen:

  • DEGREES (standard)
  • TURNS
# Display the heading after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print(drivetrain_gyro.heading())

rotation#

rotation returnerar gyrosensorns aktuella rotation.

Usage:
rotation(units)

Parametrar

Beskrivning

units

Valfritt. Enheten som används för att representera rotationen:

  • DEGREES (standard)
  • TURNS
# Display the rotation after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print(drivetrain_gyro.rotation())

rate#

rate returnerar den aktuella förändringshastigheten för gyrosensorns rotation i angivna enheter.

Usage:
rate(units)

Parametrar

Beskrivning

units

Valfritt. Enheten som används för att representera gyrofrekvensen:

  • DPS (standard)
  • 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 kontrollerar om gyrosensorn kalibreras för närvarande.

  • True — Gyrosensorn kalibrerar.

  • False — Gyrosensorn kalibrerar inte.

Usage:
is_calibrating()

Parameter

Beskrivning

Den här metoden har inga parametrar.

# 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 returnerar ett booleskt värde som anger om gyrosensorn är ansluten till hjärnan.

  • True — Gyrosensorn är ansluten till hjärnan.

  • False — Gyrosensorn är inte ansluten till hjärnan.

Usage:
installed()

Parametrar

Beskrivning

Den här metoden har inga parametrar.

# Display a message if the Gyro Sensor is
# installed.
if drivetrain_gyro.installed():
    brain.screen.print("Installed!")

Återuppringning#

changed#

changed registrerar en återuppringningsfunktion för när gyrosensorns kurs ändras.

Usage:
changed(callback, arg)

Parametrar

Beskrivning

callback

Återuppringningsfunktionen som ska anropas när gyrosensorns kurs ändras.

arg

Valfritt. En tupel med argument som ska skickas till callback-funktionen.

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örer#

Konstruktorer används för att manuellt skapa Gyro objekt, vilka är nödvändiga för att konfigurera en gyrosensor utanför VEXcode.

Gyro#

Gyro skapar en gyrosensor.

Usage:
Gyro(smartport)

Parameter

Beskrivning

smartport

Den smarta porten som gyrosensorn är ansluten till, skriven som PORTx där x är portens nummer.

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