Raspberry Pi: GPIO mit "pigpio" steuern und programmieren (Shell/Bash)
Im Vergleich zum Steuern und Programmieren der GPIOs über "sysfs" stellt "pigpio" auf der Kommandozeile eine Vereinfachung dar. Das Kommandozeilen-Tool "pigs" unterstützt auch die Programmierung eines GPIOs als PWM und Servo.
"pigpio" ist auch die bevorzugte Methode, mit der sich die GPIOs auf der Kommandozeile steuern und programmieren lassen.
Installieren und aktivieren von "pigpio"
Sofern noch nicht installiert, erfolgt die Installation von "pigpio" mit folgendem Kommando.
sudo apt-get install pigpio
Die Steuerung der GPIOs erfolgt mit dem Kommandozeilentool "pigs". Damit das funktioniert, muss man zuerst den pigpio-Daemon starten.
sudo systemctl start pigpiod
Wenn man möchte, dass der Daemon automatisch bei Systemstart gestartet wird, dann muss folgendes Kommando ausgeführt werden.
sudo systemctl enable pigpiod
Danach kann man die einzelnen GPIOs konfigurieren.
GPIO als Eingang oder Ausgang konfigurieren
Wir wählen hier beispielhaft den GPIO 17 (Pin 11) und GPIO 18 (Pin 12) um sie als Ausgang und Eingang zu konfigurieren. Hierzu wird die BCM-Nummerierung des Chips verwendet. Also die Nummer des GPIOs und nicht des Pins.
Wenn der GPIO 17 als Ausgang konfiguriert werden soll, dann gilt folgendes Kommando.
pigs modes 17 w
Standardmäßig bekommt der Ausgang den Zustand "low" bzw. "0".
Wenn der GPIO 18 als Eingang konfiguriert werden soll, dann gilt folgendes Kommando.
pigs modes 18 r
Zustand eines GPIO-Ausgangs setzten
Grundsätzlich kann man nur Ausgänge setzen. Um den Zustand eines GPIO-Ausgangs auf "high" zu setzen reicht folgendes Kommando.
pigs w 17 1
Um den Zustand eines GPIO-Ausgangs auf "low" zu setzen reicht folgendes Kommando.
pigs w 17 0
GPIO-Zustand ermitteln/lesen
Um den Zustand, also "high" oder "low", an einem GPIO zu ermitteln, reicht folgendes Kommando. Der GPIO kann dabei sowohl ein Eingang als auch ein Ausgang sein.
pigs r 18
Die Ausgabe "1" steht für "high" oder "0" für "low".
Troubleshooting
Beim Ausführen der pigs-Kommandos erscheint die Fehlermeldung "socket connect failed". Das bedeutet nichts anders als das der pigpiod-Daemon nicht läuft. Man muss ihn noch starten. Die selbe Fehlermeldung tritt auf, wenn im Tool "raspi-config" der Konfigurationspunkt "remote gpio" ausgeschaltet ist bzw. auf "disabled" steht.
Kommandos zur Steuerung von "pigpiod"
pigpio-Daemon beim Systemstart automatisch starten:
sudo systemctl enable pigpiod
Systemstart deaktivieren:
sudo systemctl disable pigpiod
pigpio-Daemon starten:
sudo systemctl start pigpiod
pigpio-Daemon stoppen:
sudo systemctl stop pigpiod
Status des pigpio-Daemons anzeigen:
sudo systemctl status pigpiod
GPIO mit Python und pigpio programmieren
Neben der Kommandozeile existiert für „pigpio“ auch eine Bibliothek für Python. Damit kann man auch die GPIOs auf einem anderen Raspberry Pi über das Netzwerk steuern. Und zwar genauso einfach, wie wenn man es auf dem lokalen Raspberry Pi tun würde.
Weitere verwandte Themen:
- Raspberry Pi: GPIO - General Purpose Input Output
- Raspberry Pi: GPIO-Belegung
- Raspberry Pi: GPIO beschalten
- Raspberry Pi: GPIO steuern und programmieren
- Raspberry Pi: GPIO beim Systemstart konfigurieren/einstellen
Hardware-nahes Programmieren mit dem Raspberry Pi, Python und GPIO Zero
Das "Elektronik-Set Raspberry Pi Edition" ist ein Bauteile-Sortiment mit Anleitung zum Experimentieren und Programmieren mit Python und GPIO Zero.
- LED: Einschalten, ausschalten, blinken und Helligkeit steuern
- Taster: Verschiedene Zustände auswerten und anzeigen lassen
- LED mit Taster einschalten und ausschalten
- Relais-Board steuern
- LED, Relais-Board und Motor über ULN2003A steuern
- Ampel- und Lauflicht-Steuerung
- Herunterfahren per Taster
- Reaktionsspiel mit Tastern und LEDs
- Eigene Steuerungen programmieren
Teilen:
Elektronik-Set Raspberry Pi Edition
Elektronik erleben mit dem Raspberry Pi mit Python und GPIO Zero
- Leichter Einstieg ins Hardware-nahe Programmieren mit Python und GPIO Zero
- Experimentieren und Programmieren ohne Vorkenntnisse
- Sofort Loslegen mit All-in-one-Set
Elektronik-Fibel
Elektronik einfach und leicht verständlich
Die Elektronik-Fibel ist ein Buch über die Grundlagen der Elektronik, Bauelemente, Schaltungstechnik und Digitaltechnik.