Traagheid#
Invoering#
Een traagheidssensor meet hoe de robot beweegt en draait.
De traagheidssensor gebruikt hiervoor twee onderdelen. De gyroscoop meet draaibewegingen, zoals richting, rotatie, gyroscoopsnelheid en oriëntatie. De accelerometer meet veranderingen in beweging, zoals versnellen of vertragen langs de x-, y- en z-assen.
Om inertiële commando’s in VEXcode V5 te kunnen weergeven, moet een inertiële sensor geconfigureerd zijn in het venster Apparaten.
Hieronder vindt u een lijst met beschikbare methoden:
Oriëntatie — Lees en regel de richting, rotatie en sensorkalibratie.
heading— Geeft de richting weer waarin de sensor wijst, van 0 tot 359,99 graden.rotation— Geeft aan hoeveel de sensor is gedraaid.gyro_rate— Geeft aan hoe snel de sensor roteert om de geselecteerde as.orientation— Geeft de rol-, stamp- of gierhoek van de inertiële sensor terug.set_heading— Stelt de huidige koers van de traagheidssensor in op een nieuwe koerswaarde.set_rotation— Stelt de huidige rotatie van de inertiële sensor in op een nieuwe rotatiewaarde.calibrate— Kalibreert de traagheidssensor.reset_heading— Reset de huidige koers van de traagheidssensor naar 0 graden.reset_rotation— Reset de huidige rotatie van de inertiële sensor naar 0 graden.is_calibrating— Geeft aan of de traagheidssensor momenteel aan het kalibreren is.changed— Registreert een functie die moet worden uitgevoerd wanneer de waarde van de traagheidssensor verandert.installed— Controleert of de traagheidssensor is geïnstalleerd.
Beweging — Meet versnelling, botsingen en stuurgedrag.
acceleration— Geeft aan hoe snel de sensor versnelt of vertraagt op de geselecteerde as.collision— Registreert een functie die moet worden uitgevoerd wanneer de traagheidssensor een botsing detecteert.set_turn_type— Stelt in welke draairichting positieve koerswaarden retourneert.get_turn_type— Geeft aan welke draairichting positieve koerswaarden oplevert.
Constructor
Inertial– Creëert een inertiële sensor.
Oriëntatie#
heading#
Een koers is de richting waarin de sensor wijst, gemeten in graden van 0 tot 359,99. heading geeft de huidige koers van de sensor terug als een zwevendekommagetal.
De beginrichting is 0 graden. Als de sensor voorbij 359,99 graden draait, springt de richting terug naar 0 graden.
Usage:
inertial_1.heading(units)
Parameters |
Beschrijving |
|---|---|
|
Optioneel. De richtingseenheid: |
# Display the heading after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print(inertial_1.heading())
rotation#
Rotatie geeft aan hoeveel de sensor is gedraaid, gemeten in graden. In tegenstelling tot de richting kan de rotatie oplopen tot meer dan 359,99 graden of afnemen tot minder dan 0 graden. Aan het begin van een project wordt de rotatiewaarde ingesteld op 0 graden. rotation geeft de huidige rotatie van de inertiële sensor weer als een zwevendekommagetal.
Naar rechts draaien vergroot de rotatie, naar links draaien verkleint de rotatie. Twee volledige draaien naar rechts resulteren bijvoorbeeld in een rotatie van 720 graden. Eén volledige draai naar links vanuit 0 graden resulteert in een rotatie van -360 graden.
Usage:
inertial_1.rotation(units)
Parameters |
Beschrijving |
|---|---|
|
Optioneel. De rotatie-eenheid: |
# Display the rotation after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print(inertial_1.rotation())
gyro_rate#
De gyrosnelheid geeft aan hoe snel de inertiële sensor roteert. gyro_rate retourneert de huidige rotatiesnelheid van de inertiële sensor op de geselecteerde as als een zweefgetal.
De waarde kan positief of negatief zijn, afhankelijk van de draairichting van de sensor op die as.
Usage:
inertial_1.gyro_rate(axis, units)
Parameters |
Beschrijving |
|---|---|
|
De as waarvan de gyroscoopsnelheid moet worden geretourneerd:
|
|
Optioneel. De eenheid voor de gyroscoopsnelheid:
|
# 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#
De oriëntatie geeft de huidige hoek van de inertiële sensor ten opzichte van een geselecteerde draaiingsas weer. Bij een oriëntatie orientation de rol-, stamp- of gierhoek van de inertiële sensor weer, van -180,00 tot 180,00 graden, als een zwevendekommagetal.
Rollen, stampen en gieren beschrijven verschillende manieren waarop de sensor kan kantelen of draaien.
Usage:
inertial_1.orientation(type, units)
Parameters |
Beschrijving |
|---|---|
|
De oriëntatiehoek die moet worden geretourneerd:
|
|
Optioneel. De oriëntatie-eenheid:
|
# 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#
Een koers is de richting waarin de sensor wijst, gemeten in graden van 0 tot 359,99. set_heading wijzigt de huidige koers van de inertiële sensor naar een nieuwe koerswaarde.
Als de sensor bijvoorbeeld naar rechts is gedraaid, zorgt het instellen van de koers op 0 graden ervoor dat die naar rechts gerichte positie de nieuwe 0 graden wordt. De sensor kan vervolgens andere koersen volgen op basis van die nieuwe richting.
Usage:
inertial_1.set_heading(value, units)
Parameters |
Beschrijving |
|---|---|
|
De richtingswaarde in graden die voor de sensor moet worden ingesteld. Dit kan een waarde zijn van 0 tot 359,99. |
|
Optioneel. De richtingseenheid: |
# Turn the robot around
inertial_1.set_heading(180, DEGREES)
drivetrain.turn_to_heading(0)
set_rotation#
Rotatie geeft aan hoeveel de sensor is gedraaid, gemeten in graden. In tegenstelling tot de richting kan de rotatie oplopen tot meer dan 359,99 graden of afnemen tot minder dan 0 graden. Aan het begin van een project wordt de rotatiewaarde ingesteld op 0 graden. Met de opdracht set_rotation wordt de huidige rotatie van de inertiële sensor gewijzigd naar een nieuwe waarde.
Als de sensor bijvoorbeeld twee volledige omwentelingen naar rechts heeft gemaakt, is de rotatiewaarde 720 graden. Door de rotatie op 0 graden in te stellen, wordt deze gereset van 720 naar 0 graden. De sensor kan vervolgens rotaties registreren op basis van deze nieuwe waarde.
Usage:
inertial_1.set_rotation(value, units)
Parameters |
Beschrijving |
|---|---|
|
De rotatiewaarde in graden die voor de sensor moet worden ingesteld. Dit kan een geheel getal of een decimaal getal (float) zijn. |
|
Optioneel. De rotatie-eenheid: |
# Turn the robot around
inertial_1.set_rotation(-180, DEGREES)
drivetrain.turn_to_rotation(0)
calibrate#
calibrate kalibreert de traagheidssensor.
Kalibratie zorgt ervoor dat de sensor bochten correct meet. Houd de sensor stil tijdens de kalibratie. Als de sensor beweegt tijdens de kalibratie, kunnen de waarden voor koers, rotatie, gyroscoopsnelheid en oriëntatie onjuist worden gemeten.
Het project wacht tot de kalibratie is voltooid voordat de volgende regel code wordt uitgevoerd.
Usage:
inertial_1.calibrate()
Parameters |
Beschrijving |
|---|---|
Deze methode heeft geen parameters. |
# 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 zet de huidige koers van de traagheidssensor terug naar 0 graden.
Na toepassing van deze methode wordt de huidige richting van de sensor de nieuwe richting van 0 graden.
Usage:
inertial_1.reset_heading()
Parameters |
Beschrijving |
|---|---|
Deze methode heeft geen parameters. |
reset_rotation#
reset_rotation zet de huidige rotatie van de inertiële sensor terug naar 0 graden.
Na toepassing van deze methode registreert de sensor toekomstige draaiingen vanaf de nieuwe rotatiewaarde van 0 graden.
Usage:
inertial_1.reset_rotation()
Parameters |
Beschrijving |
|---|---|
Deze methode heeft geen parameters. |
is_calibrating#
is_calibrating geeft aan of de inertiële sensor momenteel aan het kalibreren is.
True— De inertiële sensor wordt gekalibreerd.False— De inertiële sensor wordt niet gekalibreerd.
Usage:
inertial_1.is_calibrating()
Parameters |
Beschrijving |
|---|---|
Deze methode heeft geen parameters. |
changed#
changed registreert een functie die moet worden aangeroepen wanneer de waarde van de traagheidssensor verandert.
Usage:
inertial_1.changed(callback, arg)
Parameters |
Beschrijving |
|---|---|
|
Een eerder gedefinieerde functie die wordt uitgevoerd wanneer de waarde van de traagheidssensor verandert. |
|
Optioneel. Een tuple met argumenten die aan de callbackfunctie moeten worden doorgegeven. Zie Functies gebruiken met parameters voor meer informatie. |
def my_function():
brain.screen.print("Value changed!!")
# Call my_function whenever inertial_1's value changes
inertial_1.changed(my_function)
installed#
installed controleert of de traagheidssensor is geïnstalleerd.
True— De traagheidssensor is geïnstalleerd.False— De traagheidssensor is niet geïnstalleerd.
Usage:
inertial_1.installed()
Parameters |
Beschrijving |
|---|---|
Deze methode heeft geen parameters. |
Beweging#
acceleration#
Acceleratie geeft aan hoe snel de sensor versnelt of vertraagt. acceleration geeft de acceleratie van de inertiële sensor op de geselecteerde as weer, van -4,0 G tot 4,0 G, als een zwevendekommagetal.
G is een eenheid die gebruikt wordt om versnelling te meten. 1 G is ongeveer de versnelling die je voelt door de zwaartekracht als je stilzit.
De waarde kan positief of negatief zijn, afhankelijk van de richting van de versnelling op de geselecteerde as. De asopties zijn AxisType.XAXIS, AxisType.YAXISen AxisType.ZAXIS.
Usage:
inertial_1.acceleration(type)
Parameters |
Beschrijving |
|---|---|
|
De as waarop de versnelling moet worden gemeten:
|
# Return the acceleration for the Z axis of the Inertial Sensor
zaccel = inertial_1.acceleration(AxisType.ZAXIS)
collision#
collision registreert een functie die wordt aangeroepen wanneer de traagheidssensor een plotselinge impact of botsing detecteert.
Usage:
inertial_1.collision(callback, arg)
Parameters |
Beschrijving |
|---|---|
|
Een eerder gedefinieerde functie die wordt uitgevoerd wanneer een botsing wordt gedetecteerd. |
|
Optioneel. Een tuple met argumenten die aan de callbackfunctie moeten worden doorgegeven. Zie Functies gebruiken met parameters voor meer informatie. |
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 stelt in welke draairichting positieve koerswaarden retourneert.
Usage:
inertial_1.set_turn_type(turntype)
Parameters |
Beschrijving |
|---|---|
|
Het type bocht dat u wilt instellen:
|
get_turn_type#
get_turn_type retourneert welke draairichting positieve koerswaarden oplevert.
LEFT— Linksaf slaan levert positieve koerswaarden op.RIGHT— Rechtsaf slaan levert positieve koerswaarden op.
Usage:
inertial_1.get_turn_type()
Parameters |
Beschrijving |
|---|---|
Deze methode heeft geen parameters. |
Constructeurs#
Inertial#
Inertial creëert een inertiële sensor.
Usage:
Inertial(port)
Parameters |
Beschrijving |
|---|---|
|
De Smart Port waarop de traagheidssensor is aangesloten, van 1 tot en met 21. |
# Create a new object "inertial_1" with the Inertial class.
inertial_1 = Inertial(Ports.PORT1)