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:

Hardware-nahes Programmieren mit dem Raspberry Pi, Python und GPIO Zero

Elektronik-Set Raspberry Pi Edition

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

Elektronik-Set jetzt bestellen

Frag Elektronik-Kompendium.de

Elektronik-Set Raspberry Pi Edition
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-Set jetzt bestellen

Elektronik-Fibel

Elektronik einfach und leicht verständlich

Die Elektronik-Fibel ist ein Buch über die Grundlagen der Elektronik, Bauelemente, Schaltungstechnik und Digitaltechnik.

Das will ich haben!