Aandrijving#

Invoering#

De 123-robot heeft een aandrijving op twee wielen waarmee hij kan rijden en draaien. De aandrijfmechanismen bepalen hoe de robot beweegt.

De aandrijving kan afstand op twee manieren meten: stappen en mm (millimeter). Eén stap is één vierkantje op een 123-veld.

Er zijn veel manieren om de aandrijflijn te programmeren. Hieronder vindt u een lijst met alle methoden voor het programmeren van de aandrijflijn:

Acties — Beweeg en draai de robot.

  • drive — Laat de robot oneindig vooruit of achteruit bewegen.

  • drive_for — Verplaatst de robot vooruit of achteruit over een specifieke afstand.

  • drive_until — Beweegt de robot vooruit of achteruit totdat hij een object, botsing of lijn detecteert.

  • 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_heading — Draait de robot naar een specifieke richting tussen -359 en 359 graden.

  • stop — Stopt de beweging van de robot.

Mutators — Aandrijfinstellingen aanpassen.

  • set_timeout — Stelt in hoe lang de robot erover doet om een ​​beweging te voltooien.

  • set_heading — Wijzigt de huidige richting van de robot naar een nieuwe richting.

Getters — Controleer de bewegingsstatus.

  • is_stopped — Geeft als Booleaanse waarde aan of de robot is gestopt met bewegen.

  • get_heading — Geeft de huidige richting van de robot weer, van 0 tot 359 graden.

Acties#

drive#

drive de robot beweegt oneindig vooruit of achteruit. De robot blijft bewegen totdat er een andere actie wordt gegeven, zoals draaien of stoppen.

Usage:
robot.drive(direction)

Parameters

Beschrijving

direction

De richting waarin de robot beweegt: FORWARD of REVERSE.

# Drive for 2 seconds.
robot.drive(FORWARD)
wait(2, SECONDS)
robot.stop()

drive_for#

drive_for verplaatst de robot vooruit of achteruit over een bepaalde afstand. Het project wacht tot de robot klaar is met bewegen voordat de volgende regel code wordt uitgevoerd.

Usage:
robot.drive_for(direction, distance, unit)

Parameters

Beschrijving

direction

De richting waarin de robot beweegt: FORWARD of REVERSE.

distance

De afstand die de robot aflegt. Dit kan een geheel getal of een decimaal getal zijn.

unit

De afstandseenheid: MM (millimeter) of STEPS (één vierkantje op een veld van 123).

# Drive back and forth.
robot.drive_for(FORWARD, 3, STEPS)
robot.drive_for(REVERSE, 3, STEPS)

drive_until#

drive_until laat de robot vooruit of achteruit bewegen totdat hij een object, een botsing of een lijn detecteert.

Usage:
robot.drive_until(direction)

Parameters

Beschrijving

direction

De richting waarin de robot beweegt: FORWARD of REVERSE.

# Reverse after a crash.
robot.drive_until(FORWARD)
robot.drive_for(REVERSE, 1, STEPS)

turn#

turn de robot draait oneindig naar links of rechts. De robot blijft draaien totdat er een andere actie wordt uitgevoerd, zoals rijden of stoppen.

Usage:
robot.turn(direction)

Parameters

Beschrijving

direction

De richting waarin de robot draait: LEFT of RIGHT.

# Turn for 2 seconds.
robot.turn(RIGHT)
wait(2, SECONDS)
robot.stop()

turn_for#

turn_for draait de robot een specifiek aantal graden naar links of rechts. Het project wacht tot de robot klaar is met draaien voordat de volgende regel code wordt uitgevoerd.

Usage:
robot.turn_for(direction, degrees)

Parameters

Beschrijving

direction

De richting waarin de robot draait: LEFT of RIGHT.

degrees

Het aantal graden dat gedraaid moet worden. Dit kan een geheel getal of een decimaal getal zijn.

# Turn left, then turn around to the right.
robot.turn_for(LEFT, 90)
robot.turn_for(RIGHT, 180)

turn_to_heading#

turn_to_heading draait de robot in een specifieke richting tussen -359 en 359 graden. De robot draait in de kortste richting om de doelrichting te bereiken.

De beginrichting is 0 graden.

Het project wacht tot de robot klaar is met draaien voordat de volgende regel code wordt uitgevoerd.

Usage:
robot.turn_to_heading(heading)

Parameters

Beschrijving

heading

De richting waarin de robot moet kijken, ligt tussen -359 en 359 graden.

# Turn to face the cardinal directions.
robot.turn_to_heading(90)
wait(2, SECONDS)
robot.turn_to_heading(180)
wait(2, SECONDS)
robot.turn_to_heading(270)
wait(2, SECONDS)
robot.turn_to_heading(0)
wait(2, SECONDS)

stop#

stop stopt de beweging van de robot.

Usage:
robot.stop()

Parameters

Beschrijving

Deze methode heeft geen parameters.

# Stop driving after 4 seconds.
robot.drive(FORWARD)
wait(4, SECONDS)
robot.stop()

Mutators#

set_timeout#

set_timeout bepaalt hoeveel seconden de robot de tijd krijgt om een ​​beweging te voltooien. Als de robot de beweging niet binnen die tijd kan voltooien, stopt hij met proberen en gaat hij verder met de volgende regel code. Dit voorkomt dat de robot vastloopt tijdens een beweging.

Usage:
robot.set_timeout(time, unit)

Parameters

Beschrijving

time

De hoeveelheid tijd die nodig is voor een beweging. Dit kan een geheel getal of een decimaal getal zijn.

unit

De tijdseenheid: MSEC of SECONDS.

# Turn right after driving for 1 second.
robot.set_timeout(1, SECONDS)
robot.drive_for(FORWARD, 1000, MM)
robot.turn_for(RIGHT, 90)

set_heading#

set_heading wijzigt de huidige richting van de robot naar een nieuwe richtingwaarde.

Als de robot bijvoorbeeld naar rechts is gedraaid, zorgt het instellen van de richting op 0 graden ervoor dat die naar rechts gerichte positie de nieuwe 0 graden wordt.

Usage:
robot.set_heading(heading)

Parameters

Beschrijving

heading

De richtingswaarde, in graden, die voor de robot moet worden ingesteld.

# Face the new 0 degree heading.
robot.set_heading(90)
robot.turn_to_heading(0)

Getters#

is_stopped#

is_stopped retourneert een Boolean die aangeeft of de robot is gestopt met bewegen.

  • True — De robot is gestopt.

  • False — De robot beweegt nog steeds.

Usage:
robot.is_stopped()

Parameters

Beschrijving

Deze methode heeft geen parameters.

# Glow blue after a crash.
robot.drive_until(FORWARD)
while True:
    if robot.is_stopped():
        robot.led.glow(BLUE)
    else:
        robot.led.glow(GREEN)
    wait(0.05, SECONDS)

get_heading#

get_heading retourneert de richting waarin de robot momenteel kijkt als een geheel getal van 0 tot 359 graden.

De beginrichting van de robot is 0 graden.

Usage:
robot.get_heading()

Parameters

Beschrijving

Deze methode heeft geen parameters.

# Display the heading after turning.
robot.turn_for(RIGHT, 450)
console.print(robot.get_heading())