GPIO-Pins unter Scratch verwenden

GPIO-Input in Scratch

Jetzt bauen wir einen Schaltkreis, der dem Spiel mithilfe eines Schalters einen zweiten Ball hinzufügt. Dazu verbinden wir einen Taster mit dem GPIO-Pin 3 und über Pin 6 mit Erde (Abbildung 8).

Abbildung 8: Das Breadboard mit dem zusätzlichen Taster auf Reihe 15. Die Verbindung in der untersten Reihe führt über Pin 6 gegen Erde.

Abbildung 9 zeigt die Skripts für das neue Sprite ball 2, bei dem es sich um eine etwas modifizierte Kopie des ersten Ball-Sprites handelt. Um eine solche Kopie anzulegen, klicken Sie unterhalb der Bühne mit der rechten Maustaste auf das Ball-Sprite und wählen duplicate. Die daraus resultierende Kopie trägt einen generischen Namen à la sprite 1. Sie benennen das neue Sprite oben im mittleren Fensterabschnitt (über den Skripts) um.

Abbildung 9: Die erweiterten Skripts zeigen, wie sich der Block sensor value einsetzen lässt, um eine Betätigung des Tasters zu erkennen und dann den zweiten Ball ins Spiel zu bringen.

Um eine Betätigung des Tasters zu detektieren, verwenden Sie den Block sensor value aus der Palette Sensing. Nach dem Anklicken der Start-Flagge versteckt der Code den zweiten Ball erst einmal und prüft dann in einer Endlosschleife (forever if), ob die Bedingung pin3 sensor value = 0 erfüllt ist: Sie zeigt an, dass der Schaltkreis durch den Taster geschlossen wurde, anderenfalls hat sensor value den Wert 1.

Um die Bedingung in die Schleife einzubauen, fügen Sie dieser zunächst den Vergleichsblock = aus der Palette Operators hinzu. Dann rasten Sie links daran den Block sensor value ein und wählen aus der Sensorenliste den pin3. Dann schließen Sie die Anweisung ab, indem Sie auf der rechten Seite des Blocks eine 0 eintippen.

Sobald sensor value den Wert 0 annimmt, erhält ball 2 eine neue Farbe, wird dadurch sichtbar und sendet per broadcast seinen Namen als Nachricht. Die anderen Skripte haben wir so modifiziert, dass sie auf diese Nachricht reagieren (when I receive ball 2).

Jetzt haben Sie die Möglichkeit, bei einem Pong-Spiel per Tastendruck jederzeit einen zweiten Ball ins Spiel zu bringen. Dabei sorgt es für etwas mehr Abwechslung, wenn Sie ball 2 jedes Mal an einer zufälligen x/y-Koordinate erscheinen lassen.

Variablen statt Broadcasts

In den bisherigen Beispielen dienten via broadcast versandte Nachrichten zur Kommunikation mit den GPIO-Pins. Alternativ könnten Sie aber auch eine Variable verwenden, um beispielsweise Pin 11 und damit die grüne LED zu aktivieren.

Dazu klicken Sie in der Palette Variables auf den Schalter Make a variable. Im daraufhin erscheinenden Dialog benennen Sie die Variable als pin11, machen sie über die entsprechende Option für alle Sprites verfügbar, und klicken dann OK. Voilà: Jetzt haben Sie eine globale Variable namens pin11.

Gleichzeitig werden etliche neue Blocks verfügbar, darunter set, hide, show, change und der Variablenwert selbst. Statt via broadcast die Nachricht pin11on zu senden, können Sie nun per set variable den Wert von pin11 auf on setzen.

Das GPIO-Handler-Skript akzeptiert die Variablenwerte on und off oder high und low. Dabei sind on und high (3,3 V) ebenso synonym wie off und low (0 V).

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

02/2018
Digital Signage

Diese Ausgabe als PDF kaufen

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

Stellenmarkt

Neuigkeiten

  • Neues auf der Heft-DVD

    Nur mit dem optimalen System und der richtigen Software nutzen Sie das volle Potenzial des Raspberry Pi. 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.

  • Ferngebootet

    Das Booten über das Netzwerk beherrscht auch der RasPi 3 – und bietet damit sehr viel mehr Flexibilität, als Sie mit SD-Cards erzielen können.

  • Bleibende Werte

    Ein EEPROM dient dazu, Daten auch nach Abschalten der Energiezufuhr zu speichern, etwa als Kanalspeicher in Autoradios. Wir zeigen, wie Sie einen solchen Speicher beschreiben und wieder auslesen.

  • Auf Wolke 1

    Mit einem schnellen Netzwerkanschluss und einer SATA-Schnittstelle dient sich der Odroid HC1 als NAS-Alternative an – allerdings nicht für jedermann.

  • Wohnungsfunker

    Der kompakte Router GL.iNet dockt problemlos am Raspberry Pi an und erweitert diesen um einen Access Point samt Server-Funktion.

  • Satter Sound

    Mit zwei ICs am I2S-Bus und ein paar zusätzlichen Bauteilen erweitern Sie den Raspberry Pi um eine Soundkarte, die keine Kontaktmöglichkeit mit gängigem HiFi-Equipment scheut – von Klinke und RCA bis IEC60958, Koax-S/PDIF oder optischem TOSLINK.

  • Wer klopfet an?

    Wechselsprechanlagen mit Bild- und Tonübertragung gibt es zwar von der Stange, allerdings zu gesalzenen Preisen. Günstiger und obendrein flexibler ist ein Eigenbau mit Pi Zero und RasPi 3.

  • Wiedergeburt

    Mit dem Keyrah-Tastaturadapter und einem Raspberry Pi machen Sie aus einem defekten C64 eine optimale Emulator-Station, bei der Sie die originale Tastatur und die Joystick-Ports nutzen.

  • Kleine Nachtmusik

    Waveform8 beseitigt einige Ecken und Kanten des Vorgängers Tracktion – und macht die DAW endgültig fit für den Einsatz auf dem Raspberry Pi.

  • Recycling

    Mit einer Dockingstation lassen sich ausgemusterte IDE/SATA-Festplatten im 2,5- und 3,5-Zoll-Format am Raspberry Pi betreiben. Mit dem Samba-Server gliedern Sie den Mini-Rechner dann als Datenspeicher in Ihr lokales Netzwerk ein.