Tröghets#
Introduktion#
En tröghetssensor mäter hur roboten rör sig och vrider sig.
Tröghetssensorn använder två delar för att göra detta. Gyroskopet mäter svängningar, såsom kurs, rotation, gyrohastighet och orientering. Accelerometern mäter förändringar i rörelse, såsom att öka eller minska hastigheten längs x-, y- och z-axlarna.
För att tröghetskommandon ska visas i VEXcode V5 måste en tröghetssensor konfigureras i fönstret Enheter.
Nedan följer en lista över tillgängliga metoder:
Orientering — Läs och kontrollera kurs, rotation och sensorkalibrering.
heading— Returnerar riktningen som sensorn är vänd i, från 0 till 359,99 grader.rotation— Returnerar hur långt sensorn har vridit sig.gyro_rate— Returnerar hur snabbt sensorn roterar på den valda axeln.orientation— Returnerar tröghetssensorns rullnings-, lutnings- eller girningsvinkel.set_heading— Ställer in tröghetssensorns aktuella kurs till ett nytt kursvärde.set_rotation— Ställer in tröghetssensorns aktuella rotation till ett nytt rotationsvärde.calibrate— Kalibrerar tröghetssensorn.reset_heading— Återställer tröghetssensorns aktuella kurs till 0 grader.reset_rotation— Återställer tröghetssensorns aktuella rotation till 0 grader.is_calibrating— Returnerar om tröghetssensorn för närvarande kalibrerar.changed— Registrerar en funktion som ska köras när tröghetssensorns värde ändras.installed— Kontrollerar om tröghetssensorn är installerad.
Rörelse — Mät acceleration, kollisioner och beteende i svängriktning.
acceleration— Returnerar hur snabbt sensorn accelererar eller saktar ner på den valda axeln.collision— Registrerar en funktion som ska köras när tröghetssensorn detekterar en kollision.set_turn_type— Anger vilken svängriktning som returnerar positiva kursvärden.get_turn_type— Returvärden som returnerar positiva kursvärden för svängriktningen.
Konstruktör
Inertial– Skapar en tröghetssensor.
Orientering#
heading#
En kurs är den riktning sensorn är vänd mot, mätt i grader från 0 till 359,99. heading returnerar sensorns aktuella kurs som ett flyttal.
Startkursen är 0 grader. Om sensorn svänger förbi 359,99 grader, återgår kursen till 0 grader.
Usage:
inertial_1.heading(units)
Parametrar |
Beskrivning |
|---|---|
|
Valfritt. Kursenheten: |
# Display the heading after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print(inertial_1.heading())
rotation#
Rotation är hur mycket sensorn har vridit sig, mätt i grader. Till skillnad från riktning kan rotationen öka över 359,99 grader eller minska under 0 grader. I början av ett projekt sätts rotationsvärdet till 0 grader. rotation returnerar tröghetssensorns aktuella rotation som ett flyttal.
Om du vrider åt höger ökar rotationen och om du vrider åt vänster minskar den. Om du till exempel gör två hela varv åt höger ger du en rotation på 720 grader. Om du vrider ett helt varv åt vänster från 0 grader ger du en rotation på -360 grader.
Usage:
inertial_1.rotation(units)
Parametrar |
Beskrivning |
|---|---|
|
Valfritt. Rotationsenheten: |
# Display the rotation after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print(inertial_1.rotation())
gyro_rate#
Gyrohastigheten är hur snabbt tröghetssensorn roterar. gyro_rate returnerar tröghetssensorns aktuella rotationshastighet på den valda axeln som ett flyttal.
Värdet kan vara positivt eller negativt beroende på i vilken riktning sensorn roterar på den axeln.
Usage:
inertial_1.gyro_rate(axis, units)
Parametrar |
Beskrivning |
|---|---|
|
Axeln som gyrohastigheten ska returneras från:
|
|
Valfritt. Gyrohastighetsenhet:
|
# 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#
Orientering är tröghetssensorns aktuella vinkel på en vald vridaxel. orientation returnerar tröghetssensorns rullning, lutning eller girning, från -180,00 till 180,00 grader, som ett flyttal.
Rulla, luta och gira beskriver olika sätt som sensorn kan luta eller vrida sig.
Usage:
inertial_1.orientation(type, units)
Parametrar |
Beskrivning |
|---|---|
|
Orienteringsvinkeln som ska returneras:
|
|
Valfritt. Orienteringsenheten:
|
# 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#
En kurs är den riktning sensorn är vänd i, mätt i grader från 0 till 359,99. set_heading ändrar tröghetssensorns aktuella kurs till ett nytt kursvärde.
Om sensorn till exempel har vridit åt höger, och kursen ställs in på 0 grader, blir den högervända positionen den nya 0 grader. Då kan sensorn spåra andra kurser baserat på den nya riktningen.
Usage:
inertial_1.set_heading(value, units)
Parametrar |
Beskrivning |
|---|---|
|
Kursvärdet, i grader, som ska ställas in för sensorn. Detta kan vara ett värde från 0 till 359,99. |
|
Valfritt. Kursenheten: |
# Turn the robot around
inertial_1.set_heading(180, DEGREES)
drivetrain.turn_to_heading(0)
set_rotation#
Rotation är hur mycket sensorn har vridit sig, mätt i grader. Till skillnad från riktning kan rotationen öka över 359,99 grader eller minska under 0 grader. I början av ett projekt är rotationsvärdet inställt på 0 grader. set_rotation ändrar tröghetssensorns aktuella rotation till ett nytt värde.
Om sensorn till exempel har gjort två hela varv åt höger blir dess rotationsvärde 720 grader. Om rotationen ställs in på 0 grader återställs den rotationen från 720 till 0 grader. Sedan kan sensorn spåra rotationer baserat på det nya värdet.
Usage:
inertial_1.set_rotation(value, units)
Parametrar |
Beskrivning |
|---|---|
|
Rotationsvärdet, i grader, som ska ställas in för sensorn. Detta kan vara ett heltal eller ett decimaltal (flyttal). |
|
Valfritt. Rotationsenheten: |
# Turn the robot around
inertial_1.set_rotation(-180, DEGREES)
drivetrain.turn_to_rotation(0)
calibrate#
calibrate kalibrerar tröghetssensorn.
Kalibrering hjälper sensorn att mäta svängar korrekt. Håll sensorn stilla under kalibreringen. Om sensorn rör sig under kalibreringen kan det hända att värdena för kurs, rotation, gyrohastighet och orientering inte mäts korrekt.
Projektet väntar tills kalibreringen är klar innan nästa kodrad körs.
Usage:
inertial_1.calibrate()
Parametrar |
Beskrivning |
|---|---|
Den här metoden har inga parametrar. |
# 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 återställer tröghetssensorns aktuella kurs till 0 grader.
Efter att den här metoden har använts blir sensorns aktuella riktning den nya 0-gradersriktningen.
Usage:
inertial_1.reset_heading()
Parametrar |
Beskrivning |
|---|---|
Den här metoden har inga parametrar. |
reset_rotation#
reset_rotation återställer tröghetssensorns aktuella rotation till 0 grader.
Efter att den här metoden har använts spårar sensorn framtida svängar från det nya rotationsvärdet på 0 grader.
Usage:
inertial_1.reset_rotation()
Parametrar |
Beskrivning |
|---|---|
Den här metoden har inga parametrar. |
is_calibrating#
is_calibrating returnerar om tröghetssensorn för närvarande kalibrerar.
True— Tröghetssensorn kalibrerar.False— Tröghetssensorn kalibrerar inte.
Usage:
inertial_1.is_calibrating()
Parametrar |
Beskrivning |
|---|---|
Den här metoden har inga parametrar. |
changed#
changed registrerar en funktion som ska anropas närhelst tröghetssensorns värde ändras.
Usage:
inertial_1.changed(callback, arg)
Parametrar |
Beskrivning |
|---|---|
|
En tidigare definierad funktion som körs när tröghetssensorns värde ändras. |
|
Valfritt. En tupel som innehåller argument som ska skickas till callback-funktionen. Se Använda funktioner med parametrar för mer information. |
def my_function():
brain.screen.print("Value changed!!")
# Call my_function whenever inertial_1's value changes
inertial_1.changed(my_function)
installed#
installed kontrollerar om tröghetssensorn är installerad.
True— Tröghetssensorn är installerad.False— Tröghetssensorn är inte installerad.
Usage:
inertial_1.installed()
Parametrar |
Beskrivning |
|---|---|
Den här metoden har inga parametrar. |
Rörelse#
acceleration#
Acceleration är hur snabbt sensorn ökar eller saktar ner. acceleration returnerar tröghetssensorns acceleration på den valda axeln, från -4,0 G till 4,0 G, som ett flyttal.
En G är en enhet som används för att mäta acceleration. 1 G motsvarar den acceleration du känner från gravitationen när du sitter stilla.
Värdet kan vara positivt eller negativt beroende på accelerationsriktningen på den valda axeln. Axelalternativen är AxisType.XAXIS, AxisType.YAXISoch AxisType.ZAXIS.
Usage:
inertial_1.acceleration(type)
Parametrar |
Beskrivning |
|---|---|
|
Axeln att mäta acceleration på:
|
# Return the acceleration for the Z axis of the Inertial Sensor
zaccel = inertial_1.acceleration(AxisType.ZAXIS)
collision#
collision registrerar en funktion som ska anropas närhelst tröghetssensorn detekterar en plötslig stöt eller kollision.
Usage:
inertial_1.collision(callback, arg)
Parametrar |
Beskrivning |
|---|---|
|
En tidigare definierad funktion som körs när en kollision detekteras. |
|
Valfritt. En tupel som innehåller argument som ska skickas till callback-funktionen. Se Använda funktioner med parametrar för mer information. |
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 anger vilken svängriktning som returnerar positiva kursvärden.
Usage:
inertial_1.set_turn_type(turntype)
Parametrar |
Beskrivning |
|---|---|
|
Svängtypen att ställa in:
|
get_turn_type#
get_turn_type returnerar vilket ger positiva kursvärden för svängriktningen.
LEFT— Vänstersvängar returnerar positiva kursvärden.RIGHT— Högersvängar returnerar positiva kursvärden.
Usage:
inertial_1.get_turn_type()
Parametrar |
Beskrivning |
|---|---|
Den här metoden har inga parametrar. |
Konstruktörer#
Inertial#
Inertial skapar en tröghetssensor.
Usage:
Inertial(port)
Parametrar |
Beskrivning |
|---|---|
|
Den smarta porten som tröghetssensorn är ansluten till, från 1 till 21. |
# Create a new object "inertial_1" with the Inertial class.
inertial_1 = Inertial(Ports.PORT1)