Lektion 1 von 8Robotik mit LEGO SPIKE
Robotik mit LEGO SPIKE · Lektion 1 · 20 Minuten
Dein erstes Pybricks-Programm
Das lernst du
- Pybricks-Bausteine mit
importholen - Den Hub mit Lauftext, Licht und Symbolen steuern
- Mit
wait()Pausen einbauen
Der Code in dieser Lektion stammt aus dem Buch „Python für Roboter“, Kapitel 2.1 und 2.3, und läuft hier unverändert im Simulator. Zum Buch bei Amazon ↗
Python auf dem Roboter
Ab jetzt läuft dein Python-Code nicht mehr nur auf dem Bildschirm, sondern steuert einen Roboter. Auf dem LEGO SPIKE Prime Hub benutzt du dafür Pybricks – das ist echtes Python mit fertigen Bausteinen für Motoren und Sensoren.
Hier probierst du alles erst im Simulator aus: Rechts siehst du den virtuellen Hub mit seiner 5×5-Lichtanzeige, links den Roboter von oben. Drück auf Ausführen:
# Zuerst importieren wir die Bausteine, die wir brauchen.
# Pybricks ist in einzelne Module aufgeteilt - das hält den Code übersichtlich.
from pybricks.hubs import PrimeHub # Der SPIKE-Hub selbst
from pybricks.parameters import Color # Fertige Farbwerte, z.B. Color.GREEN
from pybricks.tools import wait # Zum Pausieren des Programms
# Der Hub wird EINMAL erstellt - danach steuern wir ihn über "hub"
hub = PrimeHub()
# Text läuft als Lauftext über die 5x5-LED-Matrix des Hubs
hub.display.text("Hallo!")
# Das Licht im Hub kurz grün leuchten lassen
hub.light.on(Color.GREEN)
# 2000 Millisekunden = 2 Sekunden warten
wait(2000)
print("Programm beendet.") # Erscheint im Konsolen-Fenster der Web-IDEDie ersten drei Zeilen holen Bausteine mit import: PrimeHub ist der Hub selbst, Color enthält fertige Farben und wait lässt das Programm warten. hub = PrimeHub() erstellt einmal das Hub-Objekt – danach steuerst du alles über hub. (erinnerst du dich an Klassen und Objekte?).
Merke:
wait(2000)wartet 2000 Millisekunden, also 2 Sekunden. Pybricks rechnet Zeiten immer in Millisekunden.
Die 5×5-Lichtanzeige
Die Anzeige kann Text als Lauftext zeigen, fertige Symbole (Icons) oder eigene Muster:
from pybricks.hubs import PrimeHub
from pybricks.parameters import Icon
from pybricks.tools import wait
hub = PrimeHub()
# Text als Lauftext ueber die Matrix schicken
hub.display.text("Hi!")
wait(1500)
# Fertige Icons aus der Pybricks-Bibliothek anzeigen
hub.display.icon(Icon.HAPPY)
wait(1500)
hub.display.icon(Icon.HEART)
wait(1500)
# Anzeige wieder loeschen (alle Lichtpunkte aus)
hub.display.off()Weitere fertige Symbole sind zum Beispiel Icon.SAD, Icon.SQUARE, Icon.UP oder Icon.ARROW_RIGHT_UP.
Tipp: Die mittlere Taste am Hub ist auch im Simulator die Stopp-Taste – genau wie am echten Roboter.
Deine Aufgabe
Jetzt bist du dran
Übung 2.1 aus dem Buch: Ändere das Programm so, dass der Hub zuerst deinen Wunsch-Roboternamen als Lauftext zeigt, dann das Licht in deiner Lieblingsfarbe leuchtet (probiere Color.RED, Color.BLUE, Color.YELLOW, Color.ORANGE) und am Ende Bereit! ausgibt.
# Zuerst importieren wir die Bausteine, die wir brauchen.
# Pybricks ist in einzelne Module aufgeteilt - das hält den Code übersichtlich.
from pybricks.hubs import PrimeHub # Der SPIKE-Hub selbst
from pybricks.parameters import Color # Fertige Farbwerte, z.B. Color.GREEN
from pybricks.tools import wait # Zum Pausieren des Programms
# Der Hub wird EINMAL erstellt - danach steuern wir ihn über "hub"
hub = PrimeHub()
# Text läuft als Lauftext über die 5x5-LED-Matrix des Hubs
hub.display.text("Hallo!")
# Das Licht im Hub kurz grün leuchten lassen
hub.light.on(Color.GREEN)
# 2000 Millisekunden = 2 Sekunden warten
wait(2000)
print("Programm beendet.") # Erscheint im Konsolen-Fenster der Web-IDE- Denkanstoß
Ändere den Text in
hub.display.text(...)in deinen Wunsch-Roboternamen. - Welcher Befehl hilft?
Ersetze
Color.GREENdurch deine Lieblingsfarbe, z. B.Color.BLUE.Die letzte Zeile soll
print("Bereit!")sein. - Lückencode – ergänze die ___
___ ___ ___ hub = PrimeHub() hub.display.text(___) hub.light.on(___) wait(2000) print(___)
Ohne Hinweise gelöst gibt es einen ⭐ auf deiner Fortschrittsseite.
Lösung anzeigen🔒 Erst nach allen Hinweisen oder 2 Prüf-Versuchen
Versuch es erst selbst – aus Fehlern lernt man am meisten. Hier ist eine mögliche Lösung:
from pybricks.hubs import PrimeHub
from pybricks.parameters import Color
from pybricks.tools import wait
hub = PrimeHub()
hub.display.text("Compass")
hub.light.on(Color.BLUE)
wait(2000)
print("Bereit!")