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

12/2018
Coole Projekte

Diese Ausgabe als PDF kaufen

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

Stellenmarkt

Neuigkeiten

  • Bytes und Beats

    In Sonic Pi können Sie mit wenigen Codezeilen Klänge manipulieren, Beats zusammenstellen und ganze Songs komponieren.

  • Klein, aber fein

  • Trick or treat

    Das traditionelle RPG-Gruselkabinett glänzt dieses Jahr mit einer innovativen Umsetzung mittels Pneumatik und Elektropneumatik sowie ST-Programmierung.

  • Unter Kontrolle

    Traditionell stellen wir alljährlich ein selbst gebautes Halloween-Gespenst vor. Die pneumatischen und elektronischen Grundlagen erklärt dieser Artikel.

  • Go Pi Go!

    Der Bausatz GoPiGo3 liefert Bauteile und Software für ein kleines Roboterauto. Zusammen mit einem RasPi als Gehirn programmieren Sie den Roboter per Mausklick.

  • Handlicher Helfer

    Während die Folien der Präsentation durchlaufen, liefert ein kleiner Dokumentenserver auf Basis des GL-AR300M-ext zusätzliche Informationen aus.

  • Wiederverwertet

    Mithilfe eines einfachen Python-Programms recyceln Sie ein ausgedientes Smartphone als drahtlos angebundenes RasPi-Display.

  • Herzenssache

    Steigt beim Krimi der Herzschlag bedrohlich an? Mit einem Pulsmesser in Eigenbau ermitteln Sie einfach und kostengünstig, ob der Herzschlag noch in verträglichen Bereichen liegt.

  • Fernbedient

    Mit der Fernbedienung den RasPi steuern. In der Theorie möglich, in der Praxis oft beschwerlich. Die Libcec liefert praktische Tools zur Fehlersuche.

  • Musikwürfel

    Mit Musikcube machen Sie Ihre eigene Sammlung fit fürs Streamen. Der terminalbasierte Audioplayer lässt sich Fernsteuern und bietet eine App für Android-Smartphones.