Alles Bereit!
Die Vorbereitungen hast du nun also hinter dir – Zeit fürs erste Programm. Am folgenden Beispiel kannst du dir den Ablauf eines einfachen Programms ansehen. Klicke in Thonny auf „Datei“ -> „Neu“ und kopiere den untenstehenden Quelltext in die neue Datei:
from picoboy import PicoBoy pb = PicoBoy() # Den Teil oberhalb dieser Zeile nicht verändern pb.LED_GREEN.off() # Grüne LED ausschalten pb.LED_RED.off() # Rote LED ausschalten pb.delay(1000) # 1000 Millisekunden = 1 Sekunde warten pb.LED_RED.on() # Rote LED einschalten pb.delay(1000) # 1 Sekunde warten pb.LED_GREEN.on() # Grüne LED einschalten
Klicke jetzt auf den grünen Pfeilbutton („Aktuelles Skript ausführen“) oben in der Werkzeugleiste, gib deinem Programm einen Namen, z.B. „test.py“ und sieh dir an, wie die LEDs nacheinander aufleuchten. Programme werden also Zeile für Zeile (auch: sequenziell) abgearbeitet. Dies lässt sich jedoch ändern, wie du später sehen wirst.
Anmerkungen:
- Die ersten Zeilen des Programmes sollten zu Beginn eines jeden Programmes stehen. Sie ermöglichen die einfache Verwendung der Hardware und das kurzzeitige Pausieren eines Programmes.
- Das Zeichen „#“ dient der Einleitung eines Kommentars. Das bedeutet, dass der Text in der gleichen Zeile hinter der Raute ignoriert wird und lediglich zur Erläuterung dient.
- Zu Beginn wird ein sogenanntes Objekt mit dem Namen „pb“ erzeugt, das die Hardware des PicoBoy (Display, LEDs, Joystick) repräsentiert. Alle Befehle, die die Hardware betreffen beginnen also mit „pb“.
Übung:
Programmiere eine Verkehrsampel. Die Ampelphasen werden in der folgenden Reihenfolge durchlaufen:
- Grün
- Gelb
- Rot
- Rot und Gelb gleichzeitig
- Grün
Das Display
Natürlich hast du den Picoboy nicht nur, um ein paar LEDs blinken zu lassen. Probiere das nächste Programm aus und sieh dir die Displayfunktionen an. Beachte dabei, dass nicht alles sofort angezeigt wird, sondern erst zum Display übertragen werden muss.
from picoboy import PicoBoy pb = PicoBoy() # Den Teil oberhalb dieser Zeile nicht verändern pb.fill(0) # Display schwarz (= Farbe 0) füllen pb.text("Hallo", 0, 27, 1) # "Hallo" in weiß (=Farbe 1) an Position (0, 27) in den Displayspeicher schreiben pb.show() # Displayspeicher auf das Display übertragen und anzeigen pb.delay(1000) # 1 Sekunde warten pb.fill(0) # Display schwarz (= Farbe 0) füllen pb.text("Welt", 0, 27, 1) # "Hallo" in weiß (=Farbe 1) an Position (0, 27) in den Displayspeicher schreiben pb.show() # Displayspeicher auf das Display übertragen und anzeigen pb.delay(1000) # 1 Sekunde warten pb.line(0,0,127,63,1) # Weiße Linie (=Farbe 1) von Position (0,0) nach (127,63) in den Displayspeicher zeichnen pb.line(0,63,127,0,1) # Weiße Linie (=Farbe 1) von Position (0,63) nach (127,0) in den Displayspeicher zeichnen pb.show() # Displayspeicher auf das Display übertragen und anzeigen
Wie bereits das letzte Beispielprogramm wird auch dieses Zeile für Zeile ausgeführt. Im Programmverlauf werden Displaykoordinaten verwendet, ähnlich einem Koordinatensystem, wie du es kennst. Dabei ist (0,0) der oberste linke Punkt und 127,64 der Punkt unten rechts.
Neben den im Programm verwendeten Punkten gibt es auch noch weitere Grafikbefehle:
pb.fill(0) # Display schwarz(= Farbe 0) füllen pb.pixel(64, 32, 1) # Weißen Pixel (=Farbe 1) bei Position (64,32) zeichnen pb.line(0, 0, 127, 63, 1) # Weiße Linie (=Farbe 1) von Position (0,0) nach (127,63) zeichnen pb.rect(10, 10, 5, 10, 1) # Weißes Rechteck (=Farbe 1) bei (10,10) nach mit der Größe 5 x 10 zeichnen pb.fill_rect(10, 10, 4, 4, 1) # Gefülltes weißes Quadrat (=Farbe 1) bei (10,10) mit Kantenlänge 4 zeichnen pb.text('Hello World', 0, 27, 1) # "Hallo" in weiß(=Farbe 1) an Position (0, 27) in den Displayspeicher schreiben
Eine umfangreichere Übersicht findest du hier.
Schreibe ein Programm, dass aus einem Rechteck und Linien das „Haus vom Nikolaus“ auf das Display zeichnet!
Ein letzter Schritt
Soll ein Programm ohne PC beim Einschalten – auch ohne angeschlossenen PC – starten, so musst du es dazu einfach nur unter dem Namen „main.py“ auf dem Picoboy speichen. Solltest du ein fehlerhaftes Programm geschrieben haben, das das Gerät blockiert, findest du hier ein Programm, dass die fehlerhafte Datei „main.py“ umbenennt.
Hier geht es weiter.