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?
| Mission | Punkte |
|---|---|
| 1. Paket abholen | 20 |
| 2. Paket ins Regal bringen (erst abholen!) | 25 |
| 3. Ladestation anfahren | 15 |
| 4. Kontrollpunkt | 15 |
| 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.