Auf dem Raspberry Pi sind mehrere Schnittstellen untergebracht, die eine Kommunikation mit der Außenwelt ermöglichen. Eine der wichtigsten davon ist die frei programmierbare GPIO (General Purpose Input/ Output). Darüber lassen sich LEDs oder Relais steuern sowie Messwerte von Sensoren abfragen. Mit ein paar zusätzlichen Bauteilen wird aus dem Raspberry Pi ein Lehr- und Lerncomputer, der in die Welt der Elektronik und zugleich in die Programmierung einführt. Das eignet sich auch für Kinder und Jugendliche ab etwa zwölf Jahren (mit Begleitung durch Erwachsene).
1. Elektronische Bauteile besorgen
Wer gezielt bestimmte Projekte umsetzen möchte, der kauft die Bauteile einzeln. Zur Basisausstattung gehören ein Breadboard (Steckbrett) und einige Steckbrückenkabel. Dies ermöglicht den fliegenden Aufbau ohne Löten. Hinzu kommen noch Widerstände, LEDs, Kondensatoren, Transistoren sowie Schalter und Sensoren. Es gibt Sensoren für Temperatur, Luftdruck, Luftfeuchtigkeit, Bewegungen und Wasserstand, zudem Funksender (433 MHz), Infrarotsender, Empfänger und GPS-Module. Die kleineren Bauteile kosten nur wenige Cent, Sensoren meist zwischen zwei und fünf Euro.
Beim Einsatz als Lerncomputer empfiehlt es sich, die Bauteile im Set zu erwerben. Eine Basisausstattung mit den wichtigsten Bauteilen kostet circa 16 Euro, Sensorbausätze gibt es mit unterschiedlicher Ausstattung zwischen 30 und 60 Euro. Angebote für Bauteile und komplette Bausätze finden Sie bei Onlinehändlern wie Amazon oder bei spezialisierten Elektronikhändlern wie www.conrad.de oder www.reichelt.de.
Der fliegende Aufbau ist eigentlich nur zum Ausprobieren gedacht. Im Prinzip lassen sich Breadboard, Bauteile und Raspberry Pi auch in einem ausreichend großen Gehäuse unterbringen. Soll ein Projekt im Dauereinsatz laufen, empfiehlt sich eine robustere Lochrasterplatine mit Kupferkontakten, auf der die Bauteile verlötet werden.
Aktueller Preis: Raspberry Pi 4 Model B
Lesetipp: 10 Jahre Raspberry Pi – Ein Fazit zum Jubiläum
2. Kleine Bauteilkunde
Bevor die Elektronikbastelei beginnt, sollte man sich mit den grundsätzlichen Eigenschaften der Bauteile auseinandersetzen: GPIO-Leiste: Die GPIO-Pins befinden sich auf der oberen Seite des Raspberry Pi, wenn Sie die USB-Buchsen nach rechts halten. Auf dem Raspberry Pi ab dem Model 2 B sind 40 Pins untergebracht, davon 26 GPIO-Pins. Mit dem Befehl pinout in einem Terminal-Fenster erfahren Sie, wie die Pins belegt sind. Die Pin-Nummerierung entspricht nicht den GPIO-Nummern. „GPIO3“ liegt beispielsweise auf Pin 5 und „GPIO18“ auf Pin 12. Ein interaktives Diagramm mit der Belegung finden Sie auf https://pinout.xyz.
Bastelspaß: Fliegender Aufbau: Für Testaufbauten ohne Löten eignet sich ein Steckbrett (links). Die Komponenten werden über Steckbrückenkabel mit dem Raspberry Pi verbunden.
IDG
Breadboard: Das Steckbrett hat in der Regel oben und unten jeweils zwei horizontale Linien für „+“ und „–“, deren Kontakte horizontal miteinander verbunden sind. Die Kontaktreihen dazwischen sind meist mit Buchstaben gekennzeichnet und vertikal verbunden. Drahtbrücken gibt es in zwei Ausführungen. Ist an den Enden jeweils ein Stift (männlich), dienen sie als Verbinder zwischen den Kontakten auf dem Steckbrett. Für die Verbindung zum Raspberry Pi verwenden Sie die Kabel mit der Buchse (weiblich) auf der einen und dem Stift auf der anderen Seite.
GPIO-Schnittstellen: Das Schema mit der Pinbelegung sollten Sie stets zur Hand haben. Verwechslungen bei der Spannungsversorgung können zu Defekten führen.
IDG
Spannungen: Der Raspberry Pi stellt 3,3 und 5 Volt als Versorgungsspannungen zur Verfügung. Zwischen Masse („Ground“ oder „GND“) und den GPIO-Pins sind 3,3 Volt zu messen. Einige Sensoren sind für den Betrieb mit 5 Volt ausgelegt, die meisten für 3,3 Volt. Sehen Sie im zugehörigen Datenblatt nach, welche Spannung erforderlich ist. Achten Sie auf die Polarität, also darauf, welcher Anschluss mit „Ground“ (Minus) und welcher mit Plus zu verbinden ist. Fehler bei der Verdrahtung können das Bauteil oder den Raspberry Pi beschädigen.
LEDs: Leuchtdioden besitzen ein längeres (Anode: „+“) und ein kürzeres Bein (Kathode: „–“). An der Kathodenseite ist das Gehäuse leicht abgeflacht. LEDs gibt es mit unterschiedlichen Anschlusswerten, beispielsweise 2,1 V/20 mA oder 1,6 V/10 mA. Spannung und Strom müssen über einen Vorwiderstand geregelt werden, weil sonst die LED zerstört wird. Der Wert des Widerstands lässt sich hier berechnen. Bei 1,6 V (Vorwärtsspannung: „Uf“) und 10 mA (Vorwärtsstrom: „If“) sind das 170 Ω (Ohm). Einen Widerstand mit diesem Wert gibt es jedoch nicht, weshalb man mit 220 Ω den nächstgrößeren wählt.
Widerstände: In elektronischen Schaltungen reduzieren Widerstände den Stromfluss beziehungsweise die Spannung durch Aufteilung. Wenn beispielsweise eine LED und ein Widerstand in Reihe geschaltet sind, liegt an jedem Bauteil eine Spannung, die sich aus dem Produkt von Stromstärke und Widerstand ergibt (Ohmsches Gesetz: U = R * I). Verwendet man einen größeren Widerstand, so erhöht sich bei gleichbleibender Stromstärke die Spannung darüber (Spannungsabfall). Entsprechend bleibt für die LED weniger Spannung übrig. Liegt diese unter dem Minimalwert, erlischt die LED. Bei Widerständen braucht man nicht auf die Polarität zu achten.
Die Bauteile lassen sich in beide Richtungen einbauen. Den Wert eines Widerstands erkennt man an einem Farbcode, der aus vier bis sechs Ringen besteht. Die Bedeutung der Farbcodierungen können Sie auf Wikipedia nachlesen. Bei einem Widerstand mit 220 Ω ist der erste Ring rot (2), danach folgen rot (2) und als Multiplikator braun (*10). Der vierte Ring ist beispielsweise braun, was eine Toleranz von ±1 Prozent ((Plus/Minus)) anzeigt. Bei fünf Ringen zeigen rot (2), rot (2), schwarz (0), braun (Multiplikator *1) und braun (±1 Prozent) den gleichen Wert an.
3. Eine LED zum Leuchten bringen
Erster Versuch: LED und Widerstand kommen zusammen auf das Steckbrett und werden mit dem GPIO- und Massepin verbunden. Die Steuerung erfolgt mit Python.
IDG
Bei ersten Projekten sollten Sie einfach beginnen, etwa nur eine LED steuern. Hierzu bringen Sie auf dem Steckbrett eine Leuchtdiode und den Vorwiderstand unter (siehe Abbildung). Achten Sie auf die Polarität der Diode und die richtige Größe des Widerstands, wie in Punkt 2 beschrieben. Den Widerstand verbinden Sie auf der einen Seite mit der Kathode der LED und auf der anderen mit einem Massepin auf der GPIO-Leiste, beispielsweise Pin 6. Die Anode der LED verbinden Sie mit Pin 12 (GPIO 18). Erstellen Sie im Mu-Editor dieses Script
import RPi.GPIO as gpio
import time
gpio.setmode(gpio.BCM)
gpio.setup(18, gpio.OUT)
gpio.output(18, gpio.HIGH)
time.sleep(4)
gpio.output(18, gpio.LOW)
Die erste Zeile bindet ein Modul ein, das Funktionen für die GPIO-Steuerung enthält. Außerdem wird das Modul „time“ importiert, damit sich das Script pausieren lässt. „gpio.setmode(gpio.BCM)“ legt den Nummerierungsmodus auf die GPIO-Bezeichnungen fest. Die Alternative ist „gpio.BOARD“, wenn man die Pin-Nummerierung verwenden möchte. Zeile vier setzt die Schnittstelle „18“ in den Ausgangsmodus. Zeile fünf schaltet die Spannung ein, sodass jetzt 3,3 Volt an GPIO 18 liegen. Die LED leuchtet. Das Script pausiert dann für vier Sekunden. Im Anschluss daran wird die Spannung mit „gpio.LOW“ wieder auf 0 Volt gesetzt, die LED geht aus.
Raspberry Pi: 10 coole DIY-Projekte für Zuhause
4. LED mit Schalter steuern
GPIO als Eingang: Der Status des Tasters lässt sich über ein Script abfragen. Ist er gedrückt, aktiviert das Script die LED, andernfalls geht sie aus.
IDG
GPIO-Pins können auch als Eingang dienen, über den sich der Status eines Tasters abfragen lässt. Bringen Sie auf dem Steckbrett zusätzlich zur Schaltung aus Punkt 3 einen Taster und einen Widerstand mit 10 kΩ unter. Der Taster hat vier Kontakte, von denen jeweils zwei miteinander verbunden sind. Platzieren Sie ihn über dem Steg in der Mitte des Steckbretts, wobei die näher zusammenstehenden Beinchen ober- und unterhalb des Stegs mit je einer Kontaktreihe verbunden werden. Den Widerstand verbinden Sie mit Masse (GND) und der einen Seite des Schalters. Zwischen beiden führen Sie ein Kabel zu GPIO 24. Die andere Seite des Schalters schließen Sie an den 3,3-Volt-Pin des Raspberry Pi an (Pin 1). Das Script „led.py“, über das sich die LED mit dem Taster einschalten lässt, sieht wie folgt aus:
import RPi.GPIO as gpio
import time
gpio.setmode(gpio.BCM)
gpio.setup(24, gpio.IN)
gpio.setup(18, gpio.OUT)
while True:
if gpio.input(24) == 0:
gpio.output(18, gpio.LOW)
else:
gpio.output(18, gpio.HIGH)
„gpio.setup(24, gpio.IN)“ aktiviert den Eingabemodus von GPIO 24 und mit „gpio.in put(24)“ lässt sich der Status des Tasters ermitteln. Ist dieser „0“, so geht die LED aus, andernfalls wird sie eingeschaltet. Der Block unter „while True:“ (auf Einrückungen achten) bildet eine Endlosschleife, die den Status des Tasters permanent abfragt.
5. Temperaturen messen
Sensor auslesen: Der Kernel-Treiber für den DS18B20-Sensor legt die Messdaten unter „/sys/bis/w1/devi ces“ ab. Das Python-Script muss nur die Textdatei auslesen.
IDG
Das Bauteil DS18B20 im TO-92-Gehäuse kostet einzeln etwa 1,70 Euro und enthält einen Temperatursensor sowie einen Analog- Digital-Wandler. Ähnliche Bausteine sind unter den Bezeichnungen DS18S20 oder DS1822 erhältlich. Sie unterscheiden sich im Wesentlichen in der Messgenauigkeit und im Preis, sind aber ansonsten kompatibel. Setzen Sie den Sensor auf das Steckbrett, sodass die flache Seite mit der Beschriftung nach vorne zeigt. Die drei Anschlüsse sind von links nach rechts Masse (GND), Daten (DQ) und Betriebsspannung (VDD). Die Schaltung benötigt nur einen Widerstand mit 4,7 kΩ, der VDD und DQ verbindet. VDD wird mit dem 3,3-Volt-Pin auf dem Raspberry Pi verbunden, Masse mit dem GND-Pin und DQ schließen Sie an GPIO 4 an. Der Sensor kommuniziert mit der Schnittstelle über das One-Wire-Protokoll. Dafür ist ein Kernel-Modul zuständig, das Raspbian aber nicht automatisch lädt. Um das zu ändern, öffnen Sie die Konfigurationsdatei in einem Editor:
sudo nano /boot/config.txt
Fügen Sie am Ende diese Zeile ein:
dtoverlay=w1-gpio
Nach dem Speichern der Datei starten Sie das System neu. Führen Sie anschließend in einem Terminal
cd /sys/bus/w1/devices/
ls
aus. Die Ausgabe enthält eine eindeutige Geräte-ID für den DS18B20-Sensor (etwa „28-031797798836“). Mit
cd 28-031797798836
cat w1_slave
wechseln Sie in das Verzeichnis und lesen die Daten aus. In der letzten Zeile steht die Temperatur, beispielsweise „t=27625“, was 27,625 Grad Celsius entspricht.
Tipp: Den Sensor DHT11 gibt es ebenfalls für etwa zwei Euro. Er kann neben der Temperatur aber auch die Luftfeuchtigkeit messen.
6. Mit einem Relais schalten
In einem Relais befindet sich ein Elektromagnet, der einen Schalter betätigt, sobald eine Spannung angelegt wird. Damit lassen sich beliebige elektrische Geräte ein- und ausschalten. Der maximale Schaltstrom des Relais darf nicht überschritten werden. Kleine Fünf-Volt-Relais, vormontiert auf einer Platine mit der zusätzlich erforderlichen Elektronik, kosten circa vier Euro.
Auf dem Relaismodul befinden sich auf der Unterseite drei Stifte, die in das Steckbrett passen. Die Pinbelegung ist meistens mit „S“ (Signal) sowie „+“ und „–“ auf der Platine zu finden. Auf der anderen Seite befinden sich drei Schraubklemmen, die mit „NO“ (normally open) und „NC“ (normally closed) beschriftet sind.
Elektrische Geräte schalten Sie in der Regel per Anschluss an „NC“ und der mittleren Klemme. Vorsicht: Mit Netzspannung (230 Volt) sollten Sie nur dann arbeiten, wenn Sie sich damit auskennen und das Relais ausreichend vor versehentlicher Berührung geschützt haben.
Verbinden Sie den „S“-Pin beispielsweise mit GPIO 14, „+“ mit dem 5-Volt-Pin und „–“ mit „GND“. Über ein Python-Script schalten Sie das Relais wie eine LED (siehe Punkt 3). Unser Beispiel-Script „relay.py“ zeigt, wie es geht.
Smart Home