GPIO-Pins unter Scratch verwenden

Ein einfaches Pong-Spiel

Für dieses Projekt brauchen Sie ein Breadboard, drei 330-Ohm-Resistoren, je eine grüne und rote LED, einen Schalter und einige Kabel. Das Breadboard sorgt dafür, dass Ihnen das Löten erspart bleibt.

Um die Sache zu vereinfachen, verwenden wir als Grundlage ein bereits existierendes Spiel aus dem Beispiel-Fundus von Scratch. Sie öffnen das entsprechende Skript über File | Open | Examples | Games | Pong. Bevor Sie das Spiel für die Verwendung der GPIO-Pins modifizieren, werfen Sie erst einmal einen kurzen Blick auf die Skripts, welche die Sprites für Schläger (Abbildung 2) und Ball (Abbildung 3) steuern, damit Sie sehen, wie diese agieren.

Abbildung 2: Das Skript für das Schläger-Sprite im Scratch-Spiel Pong.
Abbildung 3: Das Skript für das Ball-Sprite im Scratch-Spiel Pong.

Das Schläger-Skript zeigt ein in Scratch sehr häufig verwendetes Konzept, das der Koordinaten. Die Bühne bemisst sich auf 480 Pixel Breite und 360 Pixel Höhe. Die interne Variable mouse x übergibt die x-Koordinate des Mauszeigers an den Schläger, sodass dieser sich stets an die entsprechende Stelle bewegt.

Den Löwenanteil der Arbeit übernehmen das Ball-Sprite und das zugehörige Skript. Beim Start über das Anklicken der grünen Flagge rechts oberhalb der Bühne setzt die erste Anweisung, go to x: y:, den Ball auf seine Ausgangsposition. Scratch-typisch merkt es sich dabei die letzte verwendete Position. Soll ein Sprite also jedes Mal an einer bestimmten Koordinate starten, müssen Sie den entsprechenden Wert zu Beginn explizit setzen.

GPIO-Anbindung

Der Aufdruck des RasPi-Boards identifiziert die GPIO-Pins als Gruppe P1. Diese besteht aus zwei Reihen zu je 13 Stiften, die – halten Sie das Board so, dass Sie das "P1" lesen können – von links nach rechts durchnummeriert sind. Ungerade Zahlen (1 bis 13) bezeichnen die untere Pin-Reihe, gerade (2 bis 26) die obere (Abbildung 4).

Abbildung 4: Die GPIO-Gruppe P1 umfasst zwei Reihen mit je 13 Stiften, wobei die Pins mit geradzahligen Nummern oben liegen, die mit ungeradzahligen unten. Die Nummerierung beginnt linkerhand, die Pins 2 und 1 liegen also ganz links, 26 und 13 ganz rechts.

Über die GPIO-Anbindung wollen wir nun erreichen, dass bei jedem Game Over eine rote LED aufleuchtet, bei jedem Ballkontakt des Schlägers dagegen eine grüne. Abbildung 5 zeigt die beiden dazu notwendigen Stromkreise auf dem Breadboard. Die rote LED ist mir Pin 12 verbunden, die grüne mit Pin 11. Den Pin 6 verbinden Sie mit auf dem Breadboard mit Erde. Für jede LED sorgen zwischengeschaltete Resistoren dafür, dass sie nicht durchbrennt.

Abbildung 5: Das Breadboard samt LEDs und Verkabelung. Die grüne LED steckt in Reihe 8 und ist mit dem GPIO-Pin 11 über ein Kabel nach J8 verbunden. Die rote LED in Reihe 24 hängt via J24 an Pin 12 des RasPi. Das ganz rechts unten am Breadboard angeschlossene Kabel erdet den Schaltkreis und hängt am GPIO-Pin 6.

Zum Ansteuern der LEDs benötigen Sie den Code-Block broadcast aus der Palette Control. Ziehen Sie den Block nach innen ins mittlere Feld des Scratch-Fensters, und lassen Sie ihn dort unten an der Schleife forever if touching paddle? einschnappen. Um den Broadcast zu verwenden, gilt es, noch eine Nachricht zu erstellen, indem Sie auf den nach unten weisenden Pfeil im Block klicken und new anwählen. In der nun erscheinenden Dialogbox geben Sie als Nachrichtenname pin11on ein und bestätigen mit OK.

Wenn Sie nun durch Anklicken der grünen Flagge ein Spielchen wagen und dabei mit dem Schläger den Ball treffen, dann leuchtet die grüne LED hoffentlich auf. Zwar geht sie nicht mehr aus, aber darum kümmern wir uns gleich. Unangenehmer ist, wenn sie gar nicht erst aufleuchtet: Dann ist Troubleshooting angesagt, einige Hinweise dazu liefert der Kasten "Kleine Widrigkeiten".

Kleine Widrigkeiten

Leuchtet die LED nicht auf, prüfen Sie als Erstes, ob alle Kabelverbindungen sitzen und der Schaltkreis auch geerdet ist. Testen Sie die LED, indem Sie sie versuchsweise mit Pin 1 statt mit Pin*11 verbinden. Leuchtet Sie auf und bleibt an, passt der Schaltkreis. Bleibt sie dunkel, drehen Sie die Diode auf dem Breadboard um 180 Grad: Sie hat ein längeres und ein kürzeres Bein, das kurze muss geerdet sein.

ScratchGPIO2 bringt zum Debugging das Skript blink11.py mit, das Sie unter /home/pi/blink11.py finden. Wechseln Sie also dorthin, und rufen Sie das Skript mit sudo python blink11.py auf. Stimmt alles, sollte die LED nun blinken.

Als letzte Fehlerquelle kommt noch der Aufruf im Programm infrage: Prüfen Sie hier, dass die Broadcast-Nachricht auch wirklich pin11on lautet – ohne Leerzeichen.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 6 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Raspberry Pi Geek kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

Aktuelle Ausgabe

08/2018
Projekte & Hacks

Diese Ausgabe als PDF kaufen

Preis € 7,99
(inkl. 19% MwSt.)

Stellenmarkt

Neuigkeiten

  • Fernverkehr

    Zwar wurde I2C eigentlich für die interne Gerätekommunikation konzipiert, doch mithilfe geeigneter Extender-Bausteine überbrückt der Bus Distanzen bis zu 100 Metern.

  • Neues auf der Heft-DVD

    Nur mit dem optimalen System und der richtigen Software nutzen Sie das volle Potenzial eines Mini-PC. Mit der Heft-DVD erhalten Sie nicht nur die neusten Distributionen für den RasPi und Co., sondern gleichzeitig auch die passenden Programme zu den Artikeln.

  • Farbenspiele

    Der winzige Sensorbaustein APDS-9960 vereint vier unterschiedliche Anwendungsfälle in einem Chip.

  • Finger weg!

    Mit einem Read-only-Dateisystem schützen Sie die SD-Karte vor dem Altern durch Schreibvorgänge. Beim Aufsetzen gilt es, einige wichtige Punkte zu beachten.

  • Auf Zuruf

    Mit dem bereits Anfang 2017 angekündigten und jetzt endlich verfügbaren Voice offeriert Matrix Labs eine neue Erweiterung, die den Raspberry Pi fit für Sprachsteuerung machen soll.

  • Experimentell

    Wer elektronische Schaltungen entwirft, experimentiert oft erst einmal mit einem Breadboard. Genau für diese Bastler bietet sich der NanoPi-Duo als Steuerrechner an.

  • Aufgemöbelt

    Mit dem Desktop-Kit von Farnell gibt der RasPi auch auf dem Schreibtisch technisch und optisch eine gute Figur ab.

  • PiBot

    Aus einem Fischertechnik-Baukasten lässt sich schon mit wenigen Teilen ein Roboter aufbauen. Fehlt nur noch ein Gehirn: Das stellt der Raspberry Pi.

  • Heißkalt serviert

    Wie verwandelt sich ein Linux-System auf einem RasPi in einen Datenlogger? Indem es mit einem Bluetooth-fähigen Multimeter spricht.

  • Türwächter

    Der RasPi beteiligt sich am Internet der Dinge und wacht als smartes Schließsystem autonom über den Zugang zum Eigentum.