Beweging#
Invoering#
De VEX AIM Coding Robot gebruikt een holonome aandrijving om vooruit, achteruit, naar links, naar rechts of onder een hoek te bewegen, en kan bovendien zelfstandig draaien. Bewegingsmethoden bepalen hoe de robot beweegt en draait, hoe snel hij beweegt en hoe zijn x- en y-positie worden bijgehouden.

Hieronder vindt u een lijst met beschikbare methoden:
Acties — Beweeg en draai de robot.
move_at— Beweegt de robot permanent onder een specifieke hoek.move_for— Verplaatst de robot onder een specifieke hoek over een specifieke afstand.move_with_vectors— Verplaatst de robot met behulp van vectorgebaseerde x-, y- en rotatiewaarden.turn— Draait de robot permanent naar links of rechts.turn_for— Draait de robot naar links of rechts over een specifiek aantal graden.turn_to— Draait de robot in een specifieke richting.stop_all_movement— Stopt alle beweging van de robot.
Mutators — Stel de bewegingswaarden van de robot in.
set_move_velocity— Vertelt de robot hoe snel hij moet bewegen.set_turn_velocity— Vertelt de robot hoe snel hij moet draaien.set_xy_position— Wijzigt de huidige x- en y-positie van de robot naar nieuwe waarden.
Getters — Retourneer de status en positie van de robot.
get_x_position— Geeft de huidige x-coördinaat van de robot terug.get_y_position— Retourneert de huidige y-coördinaat van de robot.is_move_active— Geeft aan of de robot beweegt.is_turn_active— Geeft aan of de robot aan het draaien is.is_stopped— Geeft aan of de robot niet beweegt en niet draait.
Acties#
move_at#
move_at verplaatst de robot oneindig onder een specifieke hoek. De hoek is relatief ten opzichte van de huidige positie van de robot. De robot blijft bewegen totdat er een andere actie wordt uitgevoerd, zoals bewegen onder een andere hoek, draaien of stoppen.
Gebruik:
robot.move_at(angle, velocity, units)
Parameters |
Beschrijving |
|---|---|
|
De hoek, in graden, waaronder de robot beweegt. Dit kan een geheel getal of een decimaal getal zijn tussen -360 en 360. |
|
Optioneel. De snelheid waarmee de robot beweegt, van 0% tot 100% bij gebruik van |
|
Optioneel. De snelheidseenheid: |
# Move right, then move forward and stop.
robot.move_at(90)
wait(1,SECONDS)
robot.move_at(0)
wait(1,SECONDS)
robot.stop_all_movement()
# Move right slowly, move in reverse quickly and stop.
robot.move_at(90, 25)
wait(2, SECONDS)
robot.move_at(180, 100, PERCENT)
wait(1, SECONDS)
robot.stop_all_movement()
# Move diagonally to the right and stop.
robot.move_at(45.33)
wait(1,SECONDS)
robot.stop_all_movement()
move_for#
move_for verplaatst de robot onder een specifieke hoek over een specifieke afstand. De hoek is relatief ten opzichte van de huidige positie van de robot. Het project wacht totdat de robot klaar is met bewegen voordat de volgende regel code wordt uitgevoerd.
Gebruik:
robot.move_for(distance, angle, velocity, units, wait)
Parameters |
Beschrijving |
|---|---|
|
De afstand die de robot aflegt, in millimeters (mm). Dit kan een geheel getal of een decimaal getal (float) zijn. |
|
De hoek, in graden, waaronder de robot beweegt. Dit kan een geheel getal of een decimaal getal zijn tussen -360 en 360. |
|
Optioneel. De snelheid waarmee de robot beweegt, van 0% tot 100% bij gebruik van |
|
Optioneel. De snelheidseenheid: |
|
Optioneel. |
# Move right, then move forward.
robot.move_for(50, 90)
robot.move_for(100, 0)
# Move in reverse slowly, then move forward quickly.
robot.move_for(100, 180, 25)
robot.move_for(100, 0, 100, PERCENT)
# Drive forward and blink all LEDs red.
robot.move_for(100, 0, wait=False)
robot.led.on(ALL_LEDS, RED)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, BLACK)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, RED)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, BLACK)
move_with_vectors#
Een vector is een manier om te beschrijven hoe snel iets beweegt en in welke richting. move_with_vectors beweegt de robot met behulp van vectorgebaseerde beweging. De robot combineert voorwaartse, rechtse en rotatiesnelheidswaarden om één vloeiende beweging te creëren. De robot blijft met deze vector bewegen totdat er een andere actie wordt gegeven, zoals bewegen onder een andere hoek, draaien of stoppen.
Opmerking: Deze methode stelt de waarden voor bewegings- en draaisnelheid direct in, dus er wordt geen gebruik gemaakt van set_move_velocity of set_turn_velocity.
Gebruik:
robot.move_with_vectors(forward, rightward, rotation)
Parameters |
Beschrijving |
|---|---|
|
De snelheid van de robot langs de y-as, van -100% tot 100%. Negatieve waarden bewegen de robot achteruit en positieve waarden bewegen hem vooruit. |
|
De snelheid van de robot langs de x-as, van -100% tot 100%. Negatieve waarden bewegen de robot naar links en positieve waarden naar rechts. |
|
De draaisnelheid van de robot, van -100% tot 100%. Negatieve waarden zorgen ervoor dat de robot tegen de klok in draait en positieve waarden zorgen ervoor dat hij met de klok mee draait. |
# Move at 15°
robot.move_with_vectors(48.3, 12.95, 0)
wait(2, SECONDS)
robot.stop_all_movement()
# Move at 45° while turning counterclockwise.
robot.move_with_vectors(50, 50, -30)
wait(2, SECONDS)
robot.stop_all_movement()
# Scaling movement using the controller joystick
while True:
# Move forward (and backwards) slower than axis1 input
forward = controller.axis1.position() * 0.7
# Move right (and left) faster than axis2 input
rightward = controller.axis2.position() * 1.5
robot.move_with_vectors(forward, rightward, 0)
wait(5, MSEC)
turn#
turn draait de robot oneindig naar links of rechts. De robot blijft draaien totdat er een andere actie wordt uitgevoerd, zoals bewegen of stoppen.
Gebruik:
robot.turn(direction, velocity, units)
Parameters |
Beschrijving |
|---|---|
|
De richting waarin de robot draait: |
|
Optioneel. De draaisnelheid van 0% tot 100% bij gebruik van |
|
Optioneel. De snelheidseenheid: |
# Turn left, then stop.
robot.turn(LEFT)
wait(1, SECONDS)
robot.stop_all_movement()
# Turn left quickly, turn right slowly, then stop.
robot.turn(LEFT, 80)
wait(2, SECONDS)
robot.turn(RIGHT, 20, PERCENT)
wait(3, SECONDS)
robot.stop_all_movement()
turn_for#
turn_for draait de robot naar links of rechts over een specifiek aantal graden. De draaiing is relatief ten opzichte van de huidige kijkrichting van de robot. Het project wacht tot de robot klaar is met draaien voordat de volgende regel code wordt uitgevoerd.
Gebruik:
robot.turn_for(direction, angle, velocity, units, wait)
Parameters |
Beschrijving |
|---|---|
|
De richting waarin de robot draait: |
|
Het aantal graden dat de robot draait, variërend van -360 tot 360 graden. Dit kan een geheel getal of een decimaal getal (float) zijn. |
|
Optioneel. De draaisnelheid van 0% tot 100% bij gebruik van |
|
Optioneel. De snelheidseenheid: |
|
Optioneel. |
# Turn left, then turn around to the right.
robot.turn_for(LEFT, 90)
robot.turn_for(RIGHT, 180)
# Turn left quickly, then turn right slowly.
robot.turn_for(LEFT, 90, 100)
robot.turn_for(RIGHT, 180, 15, PERCENT)
# Turn right and blink all LEDs blue.
robot.turn_for(RIGHT, 180, wait=False)
robot.led.on(ALL_LEDS, BLUE)
wait(0.5, SECONDS)
robot.led.off(ALL_LEDS)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, BLUE)
wait(0.5, SECONDS)
robot.led.off(ALL_LEDS)
turn_to#
Een koers is de richting waarin de robot kijkt, gemeten in graden. turn_to draait de robot in een specifieke richting. De robot draait in de kortste richting om de gewenste koers te bereiken.
De beginrichting van de robot is 0 graden.
Het project wacht tot de robot klaar is met draaien voordat de volgende regel code wordt uitgevoerd.
Gebruik:
robot.turn_to(heading, velocity, units, wait)
Parameters |
Beschrijving |
|---|---|
|
De richting waarin de robot moet kijken, van -360 tot 360 graden. |
|
Optioneel. De draaisnelheid van 0% tot 100% bij gebruik van |
|
Optioneel. De snelheidseenheid: |
|
Optioneel. |
# Turn to face each cardinal directions.
robot.turn_to(90)
wait(2, SECONDS)
robot.turn_to(180)
wait(2, SECONDS)
robot.turn_to(270)
wait(2, SECONDS)
robot.turn_to(0)
# Turn to face backward slowly, then face forward quickly.
robot.turn_to(180, 25)
wait(1, SECONDS)
robot.turn_to(0, 90, PERCENT)
# Turn around quickly and blink all LEDs green.
robot.turn_to(180, 100, wait=False)
robot.led.on(ALL_LEDS, GREEN)
wait(0.5, SECONDS)
robot.led.off(ALL_LEDS)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, GREEN)
wait(0.5, SECONDS)
robot.led.off(ALL_LEDS)
stop_all_movement#
stop_all_movement stopt alle beweging van de robot.
Gebruik:
robot.stop_all_movement()
Parameters |
Beschrijving |
|---|---|
Deze methode heeft geen parameters. |
# Turn right, then stop moving
robot.turn(RIGHT)
wait(1, SECONDS)
robot.stop_all_movement()
Mutators#
set_move_velocity#
set_move_velocity vertelt de robot hoe snel hij moet bewegen. Een hoger percentage zorgt ervoor dat de robot sneller beweegt en een lager percentage zorgt ervoor dat de robot langzamer beweegt.
Elk project begint standaard met de robot die op 50% van zijn maximale snelheid beweegt.
Een bewegingssnelheid van 100% komt overeen met 200 millimeter per seconde.
Gebruik:
robot.set_move_velocity(velocity, units)
Parameters |
Beschrijving |
|---|---|
|
De snelheid waarmee van 0% naar 100% wordt bewogen bij gebruik van |
|
Optioneel. De snelheidseenheid: |
# Move forward at the default velocity,
robot.set_move_velocity(50)
robot.move_for(100, 0)
wait(1, SECONDS)
# Move slower than the default velocity
robot.set_move_velocity(20)
robot.move_for(100, 0)
wait(1, SECONDS)
# Move faster than the default velocity
robot.set_move_velocity(100)
robot.move_for(100, 0)
set_turn_velocity#
set_turn_velocity vertelt de robot hoe snel hij moet draaien. Een hoger percentage zorgt ervoor dat de robot sneller draait en een lager percentage zorgt ervoor dat de robot langzamer draait.
Elk project begint standaard met de robot die met 50% snelheid (75 graden per seconde) draait.
Gebruik:
robot.set_turn_velocity(velocity, units)
Parameters |
Beschrijving |
|---|---|
|
De draaisnelheid van 0% tot 100% bij gebruik van |
|
Optioneel. De snelheidseenheid: |
# Turn around at default velocity
robot.set_turn_velocity(50)
robot.turn_for(RIGHT, 180)
wait(1, SECONDS)
# Turn around slower than the default velocity
robot.set_turn_velocity(20)
robot.turn_for(RIGHT, 180)
wait(1, SECONDS)
# Turn around faster than the default velocity
robot.set_turn_velocity(100)
robot.turn_for(RIGHT, 180)
set_xy_position#
set_xy_position verandert de huidige x- en y-positie van de robot naar nieuwe waarden.
Als de robot bijvoorbeeld van zijn startpunt is afgeweken, zorgt het instellen van x op 0 en y op 0 ervoor dat de huidige locatie van de robot de nieuwe positie 0, 0 wordt. De robot kan vervolgens toekomstige posities volgen op basis van die nieuwe waarde.
Gebruik:
robot.set_xy_position(x, y)
Parameters |
Beschrijving |
|---|---|
|
De x-positiewaarde die voor de robot moet worden ingesteld, in millimeters. Dit kan een geheel getal of een decimaal getal (zwevendekommagetal) zijn. |
|
De y-positiewaarde die voor de robot moet worden ingesteld, in millimeters. Dit kan een geheel getal of een decimaal getal (zwevendekommagetal) zijn. |
# Set the robot's current position
# Move forward and print the new coordinate
robot.set_xy_position(100, 50)
robot.move_for(150, 0)
robot.screen.print("X:", robot.get_x_position())
robot.screen.next_row()
robot.screen.print("Y:", robot.get_y_position())
Getters#
get_x_position#
get_x_position retourneert de huidige x-coördinaat van de robot in millimeters.
Aan het begin van een project wordt de x-positie van de robot ingesteld op 0. De x-positie verandert wanneer de robot naar links of rechts beweegt en kan worden ingesteld met behulp van de methode set_xy_position.
Gebruik:
robot.get_x_position()
Parameters |
Beschrijving |
|---|---|
Deze methode heeft geen parameters. |
# Print the start and end x-value
# of the robot's position after moving
robot.screen.print("Start X:", robot.get_x_position())
robot.move_for(200, 90)
robot.screen.next_row()
robot.screen.print("End X:", robot.get_x_position())
get_y_position#
get_y_position retourneert de huidige y-coördinaat van de robot in millimeters.
Aan het begin van een project wordt de y-positie van de robot ingesteld op 0. De y-positie verandert wanneer de robot vooruit of achteruit beweegt en kan worden ingesteld met behulp van de methode set_xy_position.
Gebruik:
robot.get_y_position()
Parameters |
Beschrijving |
|---|---|
Deze methode heeft geen parameters. |
# Print the start and end y-value
# of the robot's position after moving
robot.screen.print("Start Y:", robot.get_y_position())
robot.move_for(200, 0)
robot.screen.next_row()
robot.screen.print("End Y:", robot.get_y_position())
is_move_active#
is_move_active geeft als Booleaanse waarde aan of de robot beweegt. Dit kan worden gebruikt om de timing van andere gedragingen te regelen op basis van de beweging van de robot.
True— De robot beweegt.False— De robot beweegt niet.
Deze methode werkt samen met bewegingsmethoden die de parameter wait hebben, zoals move_for.
Gebruik:
robot.is_move_active()
Parameters |
Beschrijving |
|---|---|
Deze methode heeft geen parameters. |
# Blink all the LEDs when the robot is moving.
robot.move_for(200, 0, wait=False)
while robot.is_move_active():
robot.led.on(ALL_LEDS, ORANGE)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, CYAN)
wait(0.5, SECONDS)
robot.led.off(ALL_LEDS)
is_turn_active#
is_turn_active geeft als Booleaanse waarde aan of de robot aan het draaien is. Dit kan worden gebruikt om de timing van andere gedragingen te regelen op basis van de beweging van de robot.
True— De robot draait.False— De robot draait niet.
Deze methode werkt samen met bewegingsmethoden die de parameter wait hebben, zoals turn_for en turn_to.
Gebruik:
robot.is_turn_active()
Parameters |
Beschrijving |
|---|---|
Deze methode heeft geen parameters. |
# Blink all the LEDs while the robot is turning
robot.turn_for(RIGHT, 180, wait=False)
while robot.is_turn_active():
robot.led.on(ALL_LEDS, GREEN)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, CYAN)
wait(0.5, SECONDS)
robot.led.off(ALL_LEDS)
is_stopped#
is_stopped retourneert als Booleaanse waarde of de robot niet beweegt of draait. Dit kan worden gebruikt om de timing van andere gedragingen te regelen op basis van de beweging van de robot.
True— De robot beweegt of draait niet.False— De robot beweegt of draait.
Gebruik:
robot.is_stopped()
Parameters |
Beschrijving |
|---|---|
Deze methode heeft geen parameters. |
# Blink all the LEDs while the robot is moving or turning
def light_show():
# Flash LEDs while the robot is moving or turning
while not robot.is_stopped():
robot.led.on(ALL_LEDS, GREEN)
wait(.5, SECONDS)
robot.led.on(ALL_LEDS, PURPLE)
wait(.5, SECONDS)
robot.led.off(ALL_LEDS)
robot.move_for(200, 0, wait=False)
light_show()
robot.turn_for(RIGHT, 180, wait=False)
light_show()