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

06/2019
Home Improvement

Diese Ausgabe als PDF kaufen

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

Stellenmarkt

Neuigkeiten

  • Verschlungene Pfade

    Mit Schleifen, Fallunterscheidungen und Funktionen programmieren Sie komplexe Skripte auf einfache und elegante Weise.

  • Extrem genau

    Mit einem A/D-Wandler messen Sie bei Bedarf Spannungen. Der MCP3424 macht dabei konstruktionsbedingt eine gute Figur.

  • Verbindungsaufnahme

  • Süßer Wecker

    Dem RasPi fehlen sowohl eine Echtzeituhr als auch ein BIOS, ein zeitgesteuertes Wecken erfordert also Zusatzkomponenten. Hier springt der Witty Pi Mini in die Bresche, ein µHAT von UUGear.

  • Windows to go

    Das Aufsetzen zuverlässiger und sicherer Remote-Desktop-Lösungen erfordert einiges Know-how. Die RasPi-basierte Pinbox von Pintexx reduziert den Konfigurationsaufwand auf ein Minimum.

  • Prima Klima

    In Museen ist es Pflicht, zu Hause nützlich: das permanente Prüfen und zentrale Erfassen der Feuchtigkeit und Temperatur in Räumen.

  • Auf einen Blick

    Ein maßgeschneiderter Infoscreen auf RasPi-Basis mit stromsparendem E-Ink-Display zeigt Termine, Bilder, Mitteilungen und Wetterinformationen an.

  • Sanft berührt

    Mit einem RasPi und dem Controllermodul PiXtend lassen sich mühelos Roboterarme ansteuern und deren Bewegung automatisieren.

  • Popcorn-Kino

    Mit Kodi 18.0 unterstützt LibreELEC 9.0 jetzt die von vielen Streaming-Diensten genutzte DRM-Verschlüsselung. Die Integration von Netflix, Amazon und Co. erfordert allerdings Handarbeit.

  • So nah und doch so fern

    Der RasPi kommt häufig als Server oder Steuerrechner für spezielle Zwecke zum Einsatz. Mit Anydesk erhalten Sie dazu eine Steuersoftware mit grafischer Oberfläche.