Single-Board-Computer Starthilfe Raspberry Pi

Zusatz-Tools installieren und selbst programmieren

Für die Erstellung eigener Anwendungsprogramme ist die Installation eines SSH-Servers auf dem Raspberry Pi von Vorteil. Ein SSH-Server ist in der Raspbian-Distribution bereits enthalten, muss aber noch aktiviert (enabled) werden.

Die erforderlichen Schritte sind unter [12] beschrieben und sollen deshalb hier nicht weiter betrachtet werden. Von einem ebenfalls im Netzwerk installierten Windows-Rechner kann dann z.B. mit dem SSH-Client PuTTY auf den Raspberry Pi zugegriffen werden (Bild 3).

Zum Dateitransfer mit einem Windows-Rechner kann WinSCP eingesetzt werden. Die IP-Adresse muss zu diesem Zweck bekannt sein, kann aber über ifconfig –a vom Raspberry Pi leicht abgefragt werden.

Will man außerdem Bildschirmausgaben dokumentieren, dann kann ein Screenshot-Programm sehr hilfreich sein. Ein komfortables Screenshot-Programm ist Shutter [13]. Es können Screenshots von einem bestimmten Bereich, Fenster oder des gesamten Bildschirms erstellt werden. Die Installation erfolgt über den Befehl

pi@raspberrypi:~$ sudo apt-get install shutter

und erfordert etwas Geduld. Hier im Beitrag wurde Shutter zur Erzeugung der Screenshots des Terminal-Fensters zur Dokumentation der Terminal-Ein- und -ausgaben eingesetzt.

Zum Erstellen eigener Anwendungsprogramme hat Raspberry Pi bereits mächtige Tools an Bord. Vor allem sind hier C/C++ und Python zu nennen, die von vielen Nutzern bevorzugt werden. Von den Vorteilen von Lua in Embedded Systems mit limitierten Ressourcen überzeugt, soll Lua ebenfalls kurz erwähnt werden. Die erforderlichen Tools sind bereits an Bord.

Bild 4 zeigt die eingesetzten Entwicklungs-Tools und deren Versionen. Neben Python 2.7 ist auch Python 3.1.2 in der Raspbian Distribution verfügbar.

Eine gute Zusammenstellung der Möglichkeiten zum Programmieren für den Raspberry Pi ist im deutschsprachigen RaspberryCenter.de zu finden [14]. Im Folgenden soll – ausgehend von einem Shell-Script – die Programmierung des Raspberry Pi mit einem modifizierten „Hello World“-Beispiel gezeigt werden.

Neben der Ausgabe von „Hello World“ wird eine angeschlossene LED zum Blinken gebracht. Die Funktion ist für alle Codebeispiele identisch, weshalb hier die Terminalausgabe am Beispiel des Shell Script blink.sh gezeigt wird (Bild 4). Die einzelnen Codebeispiele und Screenshots der Terminal-Ausgaben können von [15] heruntergeladen werden.

Shell Script

Mit einem Shell-Script gemäß Listing 1 können Terminalausgaben erzeugt und eine LED über einen GPIO-Pin angesteuert werden. Da die GPIO-Pins mit 3,3-V-Pegeln direkt von der CPU getrieben werden, ist hier entsprechend sorgfältig zu verfahren.

Ein Widerstand von 270 Ω begrenzt den LED-Strom der an P1-07 angeschlossenen LED auf einen Wert von ca. 5 mA. Der Aufruf des Shell Script blink.sh erfolgt gemäß Bild 4 (unten).

Python

Die Raspberry-Pi-Stiftung hat Python als offizielle Lehrsprache für den Raspberry Pi ausgewählt. Diese Wahl ist insofern naheliegend, weil es sich um eine moderne, verbreitete (Tiobe-Index 8 im August 2012), vielfältig einsetzbare und für alle gängigen Plattformen verfügbare Programmiersprache handelt.

Um den im letzten Abschnitt gezeigten Funktionsumfang in Python abzubilden, bedient man sich der Python-Library RPi.GPIO. Diese erlaubt einfaches Konfigurieren, Lesen und Schreiben der GPIO-Pins des Raspberry Pi mit einem Python-Script. Download und Installation der Python Library RPi.GPIO sind in [16] beschrieben. Listing 2 zeigt den Quelltext des Python-Scripts blink.py. Der Aufruf des Python-Scripts erfolgt in der Form:

pi@raspberrypi:~$ sudo python blink.py

Lua

In Lua als einer Skriptsprache, die gerade in Embedded-Systemen in der Kombination mit C/C++ vorzufinden ist, lässt sich der hier betrachtete Funktionsumfang vergleichbar einfach abbilden.

Listing 3 zeigt den Quelltext des Lua-Scripts blink.lua. Lua ist in der Raspbian-Distribution bereits enthalten und der Start des Lua-Scripts erfolgt in der Form

pi@raspberrypi:~$ sudo lua blink.lua

 

C/C++

Mike McCauley hat eine C-Bibliothek für GPIO und SPI für den Raspberry Pi entwickelt, die den Zugriff auf die GPIO-Pins an der 26-poligen Stiftleiste des Raspberry Pi zur Ansteuerung externer Peripherie erlaubt. Unter [17] stehen eine ausführliche Dokumentation der Bibliothek und ein Link zum Download zur Verfügung.

Listing 4 zeigt den Quelltext des Programmbeispiels. Hinweise zur Compilation mit dem auf dem Raspberry Pi installierten C-Compiler gcc sind im Kommentar zu Beginn des Quelltextes enthalten.