GPIO-Pins unter Scratch verwenden

© István Hájas, 123RF

Pi-Pong

Mithilfe der Programmiersprache Scratch und den GPIO-Pins des Raspberry Pi machen Sie aus dem eher langweiligen Spiele-Urgestein Pong einen echten Hingucker – samt leuchtender LEDs und einem zweiten Ball.

README

Die pfiffige visuelle Programmiersprache Scratch gehört zur Grundausstattung der offiziellen Raspberry-Pi-Distribution Raspbian. Eine kleine Erweiterung ermöglicht, mit Scratch-Skripts auch die GPIO-Pins des RasPi anzusprechen und auszulesen.

Scratch und der Raspberry Pi verfolgen ähnliche Ziele: Beide Projekte wollen Kindern die Computertechnologie näherbringen. Die Programmiersprache Scratch wurde am MIT von der Lifelong Kindergarten Group dazu entwickelt, junge Menschen in einer ansprechenden, intuitiv bedienbaren Umgebung an das Erstellen, Teilen und Remixen von Computerprogrammen heranzuführen. Das Raspberry-Pi-Team will mithilfe einer preiswerten Hardware-Plattform, die zum Erforschen und Experimentieren anregt, Schüler und Studenten für informationstechnische Studiengänge begeistern.

Ebenso wie beim RasPi beschränken sich die Einsatzmöglichkeiten von Scratch aber keineswegs auf Kinderzimmer, Schulen und Universitäten. Mit Scratch lernen auch Erwachsene spielerisch den Umgang mit Programmkonstrukten wie Variablen, Arrays, Bedingungen, Schleifen, Synchronisierung, Event-Verarbeitung und vieles mehr. Auf dem Desktop von Raspbian "Wheezy", der offiziellen RasPi-Distribution, findet sich von Haus aus ein Icon für das bereits vorinstallierte Scratch – ein Indiz dafür, welche Bedeutung auch die Raspberry Pi Foundation der visuellen Programmierumgebung zumisst.

Ähnlichkeiten mit seinem ebenfalls didaktisch geprägten Vorgänger Logo kann Scratch nicht leugnen, hat aber zusätzlich das vertraute Baustein-Konzept von Lego adoptiert. Auf diese Weise bietet es einen einfachen Einstieg in das Programmieren von Animationen, Spielen, interaktiver Kunst und Multimedia-Projekten.

Oberflächlich

Das Scratch-Interface fasst alles zusammen, was Sie zum Erstellen und Testen eines Programmprojekts benötigen. Sobald Sie Scratch 1.4 auf Ihrem RasPi starten, erscheint ein Programmfenster wie in Abbildung 1 gezeigt. Linkerhand sehen Sie vorgefertigte Code-Blöcke, sortiert in die Kategorien Motion, Looks, Sound, Pen, Control, Sensing, Operators, and Variables. Klicken Sie oben eine der Kategorien an, erscheinen darunter die zugehörigen Code-Schnipsel.

Zu den großen Vorteilen von Scratch zählt, dass selbst Programmiereinsteiger keine Syntax-Fehler machen können: Passen die ausgewählten Code-Blöcke zusammen, dann läuft das Skript auch fehlerfrei – zumindest syntaktisch, denn logische Fehler oder falsches Programmdesign kann auch Scratch nicht auffangen.

Abbildung 1: Die Programmoberfläche von Scratch nach dem Start.

Der mittlere Fensterteil zeigt oben Informationen zum aktuellen Sprite. Bei den Sprites handelt es sich um kleine Grafiken, die Sie mithilfe von "Skripts", "Kostümen" und "Sounds" zum Leben erwecken. Die Skripts (Scripts) sind Zusammenstellungen von Code-Blöcken, Kostüme (Costumes) geben den Sprites verschiedene grafische Erscheinungsformen, und Sounds fügen dem Projekt eine akustische Dimension hinzu.

In Abbildung 1 sehen Sie ein simples, zur Einführung gedachtes Skript. Um es zum Ablaufen zu bringen, klicken Sie auf die grüne Flagge ganz rechts oben im Scratch-Fenster. Das Katzen-Sprite setzt sich nun in Schritten von 20 Pixeln Größe in Bewegung und schaltet dabei jeweils auf das nächste Kostüm um. Die Demo-Katze verfügt über zwei davon, die sie auf dem Reiter Costumes einsehen können. Das zweite Kostüm dient der Darstellung der Bewegung.

Das Skript läuft in einer Endlosschleife, bis Sie es explizit stoppen. Es prüft dabei laufend, ob die Katze bereits an der Kante des rechts oben im Fenster angesiedelten Darstellungsbereichs – in Scratch heißt er Bühne ("Stage") – angekommen ist. Stößt sie dort an, wechselt das Sprite willkürlich die Farbe, und es erscheint die Sprechblase "Outch!". Die Katze prallt daraufhin von der Kante ab und bewegt sich zur anderen Seite der Bühne.

Unterhalb der Bühne listet Scratch alle im aktuellen Programm zum Einsatz kommenden Sprites auf. Neue Charaktere fügen Sie entweder aus der Sprite-Bibliothek von Scratch hinzu, malen sie mithilfe der integrierten Bildbearbeitung oder importieren sie aus Bilddateien auf dem Rechner.

Programming the Pi GPIO

An sich ist Scratch ein großartiges Werkzeug, um Einsteigern das Design und die Entwicklung von Software näherzubringen. Manchmal will man aber etwas mehr: etwa eine Anwendung, die externe Komponenten wie LEDs ansteuert, oder die Steuerung für einen Schaltkreis, der Sprites in Scratch beeinflussen kann, etwa sie über einen Schalter starten und stoppen.

Tatsächlich lassen sich die GPIO-Pins des Raspberry Pi über Scratch auslesen und kontrollieren. Um den Zugriff zu ermöglichen, gilt es ein Skript des Entwicklers Simon Walters (aka "Cymplecy") einzurichten. Auf dessen Website [1] finden Sie auch eine Anleitung zum einfachen Integrieren der GPIO-Ansteuerung in Scratch, deren wesentliche Teile wir im Folgenden nachzeichnen.

Verfügt Ihr RasPi über eine Internetverbindung, können Sie das Installationsskript über den Befehl aus der ersten Zeile von Listing 1 per Wget direkt auf den Mini-Computer ziehen und dort ausführen. Ist das nicht der Fall, starten Sie den Download auf einem anderen Gerät mit Internetzugriff und kopieren das Skript dann auf die SD-Card des RasPi ins Verzeichnis /boot/. Dann starten Sie den Mini-Rechner von dieser Karte und rufen den Befehl aus Zeile 2 auf.

Listing 1

 

$ sudo wget https://dl.dropbox.com/s/oql4qzm8jlnsbeb/install_scratch_gpio2.sh -O /boot/install_scratch_gpio2.sh
$ sudo /boot/install_scratch_gpio2.sh

Das Resultat der Aktion ist eine neue Instanz von Scratch, die auf dem RasPi-Desktop als ScratchGPIO2 auftaucht. Die Scratch-Entwicklungsumgebung selbst hat sich nicht verändert, aber es liegen jetzt einige zusätzliche Python-Skripts in /home/pi, die den Remote Sensor Extensions (RSC) von Scratch ermöglichen, mit den GPIO-Pins zu kommunizieren. Starten Sie ScratchGPIO, dann erscheint als Erstes ein Dialog, der meldet, dass die Remote Sensor Extensions nun aktiviert sind. Dies quittieren Sie einfach per OK.

Vorab noch eine Warnung: Der Umgang mit den GPIO-Pins ist nicht ungefährlich – Sie können damit bei falscher Verkabelung ihren Raspberry Pi durchaus "grillen".

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

  • 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.