Mit der Programmiersprache lassen sich die GPIO Pins des Raspberry Pi ganz einfach steuern und damit zum Beispiel eine LED ein oder ausschalten oder blinken lassen. Das ist sehr praktisch, weil sich diese Python-Skripte auch über die Linux Shell starten lassen – oder aus anderen Anwendungen heraus. So kann man recht einfach auf die GPIP Pins zugreifen und angeschlossene Hardware steuern.
In unserem Beispiel-Skript definieren wir PIN 24 als Ausgang und schalten ihn ein und anschließend wieder aus. Weiter unten zeigen wir, wie man so auch ein Blinken realisieren kann. Möchte man eine LED anschließen, die dann so mit Python gesteuert wird, zeigen wir hier, wie man die LED mit dem Raspberry verbindet.
Das Python-Skript zum Steuern der GPIO Pins sie so aus:
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(24,GPIO.OUT)
GPIO.output(24,GPIO.HIGH)
time.sleep(3)
GPIO.output(24,GPIO.LOW)
Zunächst werden die wichtigsten Bibliotheken importiert und dem Raspberry mitgeteilt, welche Pin-Belegung verwendet werden soll: Bei “GPIO.BCM” werden die Pins über ihren Namen angesprochen, nicht über die Position: Unser Pin 24 entspricht also eigentlich Pin 18 (zur GPIO Belegung / Schablone)!
Die Zeile “time.sleep(3)” sorgt dafür, dass das Skript drei Sekunden wartet, anschließend wird der Pin wieder auf “LOW” gesetzt und die LED ausgeschaltet. Den Wert für “time.sleep” kann man anpassen, um ein längeres oder kürzeres Leuchten zu bekommen – lässt man die letzten beiden Zeilen ganz weg, wird der GPIO Pin gar nicht mehr ausgeschaltet.
Blinken mit Python
Über den Wert von time, zusammen mit einer einfachen FOR-Schleife, lässt sich auch ein Blinken an den GPIO Ports des Raspberry Pi realisieren: Dieses Skript lässt ebenfalls wieder Pin 24 fünf Mal blinken – für mehr muss der Wert “5” in dieser Zeile angepasst werden: “for x in range(0, 5)”.
Die Geschwindigkeit des Blinkens wird wieder über den Wert “time.sleep(0.5)” gesteuert: Hierbei wird der GPIO Port auf HIGH gesetzt und nach 0,5 Sekunden wieder zurück auf LOW gesetzt:
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(24,GPIO.OUT)
for x in range(0, 5):
GPIO.output(24,GPIO.HIGH)
time.sleep(0.5)
GPIO.output(24,GPIO.LOW)
time.sleep(0.5)