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/2019
Neue Energien

Diese Ausgabe als PDF kaufen

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

Stellenmarkt

Neuigkeiten

  • Scheibchenweise

    Zu den Stärken von Sonic Pi gehört es, mit wenigen Zeilen Code Samples dynamisch auszuwählen und zu zerlegen.

  • Unter Strom

    Für einen kleinen Spannungsmesser wie den INA3221 gibt es viele Einsatzmöglichkeiten. Wir zeigen, wie Sie den flexiblen Baustein richtig verdrahten.

  • Vermittlungsstelle

    Fischertechnik-Modelle bieten sich zum Fernsteuern an. Mit dem Ftduino schlagen Sie die Brücke zwischen dem RasPi und dem Technik-Spielzeug.

  • Durchgeschlängelt

    Mit den M0-Boards steigen Sie unkompliziert in die Welt der Mikrocontroller ein – ganz ohne C-Kenntnisse.

  • Gesiebt und gefiltert

    Filter und Werbeblocker einzurichten ist besonders auf Smartphones aufwendig. Den eBlocker hingegen schließen Sie einfach nur an Ihren Router an.

  • Es werde Licht

    Wollen Sie bei beginnender Dämmerung nicht ständig die Helligkeit der heimischen Beleuchtung nachregeln, überlassen Sie das einfach einem RasPi – der macht es automatisch.

  • Energiekontrolle

    Der Gesetzgeber erschwert das Direktvermarkten von Strom durch technische Hürden: So muss sich die Einspeisung etwa aus der Ferne abschalten lassen. Der RasPi löst das Problem.

  • H<->2<->-Power

    Gilt es, Energie aus einer regenerativen Quelle zu speichern, erweist sich die Kombi aus einer Brennstoffzelle und dem RasPi als ideale Lösung.

  • Kleine Wolke

    Lokale Cloud-Lösungen im Heimnetz finden immer mehr Nutzer. Mit dem RasPi und Seafile haben Sie eine Lösung zur Hand, die selbst professionellen Ansprüchen genügt.

  • Planvoll verdrahtet

    Die Leiterplattendesign-Software KiCad leistet trotz einer etwas umständlichen Bedienung auch Hobbybastlern gute Dienste.