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

10/2018
Weltweiter Empfang

Diese Ausgabe als PDF kaufen

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

Stellenmarkt

Neuigkeiten

  • Physiklabor

    Der Java-Dialekt Processing zielt auf interaktive Animationen ab und eignet sich auch für Programmiernovizen.

  • Abstand halten

    Der VL53L0X misst präzise Entfernungen bis zu zwei Metern. Das macht ihn zum passenden Kandidaten für RasPi-Projekte.

  • Tux-Funk

    Der SDR-Empfänger RSP2pro von SDRplay bringt Amateurfunk auf den Raspberry Pi.

  • Himbeersieb

    Die aus Österreich stammende Upribox auf Basis des Raspberry Pi schützt wirkungsvoll vor Gefahren aus dem Internet. Jetzt ist das System in der zweiten Version erschienen.

  • Unter Kontrolle

    Das programmierbare Steuermodul Controllino bietet mit seinen zahlreichen Ein- und Ausgängen vielfältige Möglichkeiten.

  • Dehnübungen

    Ein RasPi eignet sich bestens zum Steuern eines Fischertechnik-Roboters. Damit dabei kein Chaos entsteht, gilt es, die Steuerung genau zu programmieren.

  • Klangmaschine

    Der RasPi bringt genügend Performance mit, um als kleine DAW zu dienen. Mit Waveform 9 haben Sie die passende Software zur Hand.

  • Fremdgehen

    Nicht jedes Programm gibt es auch für die ARM-Architektur. Der kommerzielle Emulator Exagear Desktop fungiert als Übersetzer zwischen der ARM- und x86-Welt.

  • Ausfallsicher

    Eine selbst gebaute USV für den RasPi verschafft Ihnen die entscheidenden Sekunden, um bei unerwarteten Stromausfällen einem Datenverlust vorzubeugen.

  • Am laufenden Band

    Die Kombination aus einem Fischertechnik-Bausatz und dem Controllino-Modul bietet eine ideale Basis, um ein funktionierendes Industriemodell zu gestalten.