Die gpiozero-Bibliothek

Zero ist das neue Modewort in der Raspberry-Pi-Welt. Neben dem Zero-Modell wurde kürzlich auch die neue Python-Bibliothek gpiozero vorgestellt, die die Steuerung von Hardware-Komponenten durch GPIOs besonders einfach macht. Die Bibliothek ist eine Alternative zur bekannten RPi.GPIO-Bibliothek.

Installation

Die Bibliothek ist momentan nicht standardmäßig installiert. Abhilfe schafft das folgende Kommando:

sudo apt-get install python-gpiozero python3-gpiozero

LED ein- und ausschalten

Das folgende Hello-World-Beispiel zeigt, wie Sie eine LED, die über einen Vorwiderstand mit Pin 16 des J8-Headers verbunden ist, für eine Sekunde ein- und dann wieder ausschalten:

#!/usr/bin/python3
from gpiozero import LED
from time import sleep
myled = LED(23)  # BCM-Nummer 23 = Pin 16 des J8-Header
myled.on()
sleep(1)
myled.off()

Zwei Dinge sind hier bemerkenswert:

  • Zum einen werden die GPIOs über die Nummern der BCM-Dokumentation angesprochen, nicht über Pin-Nummern des J8-Headers!
  • Zum anderen enthält die Bibliothek fertige Klassen für häufig vorkommende Hardware-Komponenten. Neben LED gibt es auch Button, TrafficLights (eine Kombination aus drei LEDs), RGBLED (eine dreifarbige LED, die über drei GPIO-Ausgänge gesteuert wird), MotionSensor (für PIR-Bewegungssensoren), LightSensor, Motor (zur Steuerung von zwei GPIOs für Vorwärts- und Rückwärts-Signale), Robot (zur Steuerung mehrere Motoren), MCP3008 (für den gleichnamigen A/D-Converter), Buzzer etc.

Einen guten Klassenüberblick gibt diese Seite.

Dokumentation

Zu gpiozero gibt es zwar keine man-Seiten, aber dafür eine vorbildliche Dokumentation im Web:

https://gpiozero.readthedocs.org/en/rest-docs/