Zum Inhalt springen
BetaEN

Robotik

Challenges: Wer ist am schnellsten?

Bring den Roboter so schnell wie möglich ins Ziel 🏁. Die Zeit misst der Simulator – auf jedem Gerät gleich. Mit „Zeit teilen“ bekommst du einen Link: Wer ihn öffnet, sieht deinen Code und die Zeit nachgerechnet. Perfekt für einen Klassenwettbewerb – ganz ohne Anmeldung.

Noch nie programmiert? Fang mit den Robotik-Lektionen an.

Sprint

Fahr so schnell wie möglich ins Ziel. Tipp: Mit settings() stellst du Tempo und Beschleunigung ein – aber Vorsicht, wer zu stark beschleunigt, kommt nicht schneller an.

from pybricks.hubs import PrimeHub
from pybricks.pupdevices import Motor
from pybricks.parameters import Port, Direction
from pybricks.robotics import DriveBase
from pybricks.tools import wait

hub = PrimeHub()

linker_motor = Motor(Port.A, positive_direction=Direction.COUNTERCLOCKWISE)
rechter_motor = Motor(Port.B, positive_direction=Direction.CLOCKWISE)
antrieb = DriveBase(linker_motor, rechter_motor,
                     wheel_diameter=56, axle_track=114)

antrieb.settings(straight_speed=200)
antrieb.straight(1100)

Slalom

Durch Zone 1 und 2 ins Ziel – ohne an den Wänden hängen zu bleiben. Kurven mit arc() sind oft schneller als anhalten und drehen.

from pybricks.hubs import PrimeHub
from pybricks.pupdevices import Motor
from pybricks.parameters import Port, Direction
from pybricks.robotics import DriveBase
from pybricks.tools import wait

hub = PrimeHub()

linker_motor = Motor(Port.A, positive_direction=Direction.COUNTERCLOCKWISE)
rechter_motor = Motor(Port.B, positive_direction=Direction.CLOCKWISE)
antrieb = DriveBase(linker_motor, rechter_motor,
                     wheel_diameter=56, axle_track=114)

antrieb.straight(650)
antrieb.turn(90)
antrieb.straight(580)
antrieb.turn(90)
antrieb.straight(650)
antrieb.turn(-90)
antrieb.straight(450)
antrieb.turn(-90)
antrieb.straight(650)
antrieb.turn(90)
antrieb.straight(210)

Runde

Eine ganze Runde auf der Linie: über Zone 1 und 2 zurück ins Ziel. Der Linienfolger aus dem Buch schafft es – aber geht es schneller, ohne die Linie zu verlieren?

from pybricks.hubs import PrimeHub
from pybricks.pupdevices import Motor, ColorSensor
from pybricks.parameters import Port, Direction
from pybricks.robotics import DriveBase
from pybricks.tools import wait

hub = PrimeHub()

linker_motor = Motor(Port.A, positive_direction=Direction.COUNTERCLOCKWISE)
rechter_motor = Motor(Port.B, positive_direction=Direction.CLOCKWISE)
farbsensor = ColorSensor(Port.C)
antrieb = DriveBase(linker_motor, rechter_motor,
                     wheel_diameter=56, axle_track=114)

ZIEL_HELLIGKEIT = 50          # Sensorwert genau am Linienrand (0-100)
KP = 1.2                      # je groesser, desto staerker die Korrektur
GRUNDGESCHWINDIGKEIT = 120    # mm/s - lieber langsam starten!

while True:
    helligkeit = farbsensor.reflection()
    fehler = helligkeit - ZIEL_HELLIGKEIT     # Abweichung vom Linienrand
    lenkung = KP * fehler                     # nur der P-Anteil
    antrieb.drive(GRUNDGESCHWINDIGKEIT, lenkung)
    wait(10)

Labyrinth

Schlängel dich durch die drei Wände: über Zone 1 und 2 ins Ziel. Jede Kurve kostet Zeit – findest du eine schnellere Linie?

from pybricks.hubs import PrimeHub
from pybricks.pupdevices import Motor
from pybricks.parameters import Port, Direction
from pybricks.robotics import DriveBase
from pybricks.tools import wait

hub = PrimeHub()

linker_motor = Motor(Port.A, positive_direction=Direction.COUNTERCLOCKWISE)
rechter_motor = Motor(Port.B, positive_direction=Direction.CLOCKWISE)
antrieb = DriveBase(linker_motor, rechter_motor,
                     wheel_diameter=56, axle_track=114)

antrieb.turn(90)
antrieb.straight(700)
antrieb.turn(-90)
antrieb.straight(450)
antrieb.turn(-90)
antrieb.straight(700)
antrieb.turn(90)
antrieb.straight(400)
antrieb.turn(90)
antrieb.straight(700)
antrieb.turn(-90)
antrieb.straight(400)

Einparken

Rückwärts in die blaue Parklücke, ohne die Nachbarautos zu rammen. Schnell, aber präzise!

from pybricks.hubs import PrimeHub
from pybricks.pupdevices import Motor
from pybricks.parameters import Port, Direction
from pybricks.robotics import DriveBase
from pybricks.tools import wait

hub = PrimeHub()

linker_motor = Motor(Port.A, positive_direction=Direction.COUNTERCLOCKWISE)
rechter_motor = Motor(Port.B, positive_direction=Direction.CLOCKWISE)
antrieb = DriveBase(linker_motor, rechter_motor,
                     wheel_diameter=56, axle_track=114)

antrieb.straight(960)
antrieb.turn(-90)
antrieb.straight(-220)

Wettbewerb: Lagerhalle

Fünf Missionen, 60 Sekunden Spielzeit, 100 Punkte. Die Reihenfolge wählst du selbst – nur das Paket musst du abholen, bevor du es ins Regal bringst. Der Startcode holt schon das Paket ab. Schaffst du alles?

MissionPunkte
1. Paket abholen20
2. Paket ins Regal bringen (erst abholen!)25
3. Ladestation anfahren15
4. Kontrollpunkt15
P. Am Ende in der Garage parken (nach dem Abholen)25
from pybricks.hubs import PrimeHub
from pybricks.pupdevices import Motor
from pybricks.parameters import Port, Direction
from pybricks.robotics import DriveBase
from pybricks.tools import wait

hub = PrimeHub()

linker_motor = Motor(Port.A, positive_direction=Direction.COUNTERCLOCKWISE)
rechter_motor = Motor(Port.B, positive_direction=Direction.CLOCKWISE)
antrieb = DriveBase(linker_motor, rechter_motor,
                     wheel_diameter=56, axle_track=114)

# Mission 1: Paket abholen (geradeaus nach oben)
antrieb.straight(600)

Baue deinen eigenen Parcours

Zieh mit der Maus (oder dem Finger) Hindernisse und Zielzonen auf, setz den Start und teste den Parcours sofort. Mit „Teilen“ bekommen deine Freunde genau diesen Parcours als Link.

Mehrere Zielzonen werden der Reihe nach angefahren – die letzte ist das Ziel. Missionen 🎯 bringen Punkte, in beliebiger Reihenfolge, bis die Spielzeit um ist – so baust du deinen eigenen Wettbewerb.