Eins nach dem Anderen – Das erste Programm

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:

  1. Grün
  2. Gelb
  3. Rot
  4. Rot und Gelb gleichzeitig
  5. 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.