GPIO und python3-periphery

Python auf Einplatinencomputer wie Raspberry Pi, Banana Pi / Python für Micro-Controller
Antworten
lagerschaden
User
Beiträge: 13
Registriert: Samstag 21. Oktober 2017, 11:34

Für den Raspi gibt es ja RPi.GPIO um die GPIO-Pins anzusteuern, bei anderen SBC war das schon schwieriger, z.B. über /sys/class/gpio ...

Jetzt habe ich zufällig entdeckt, dass es in Debian ein fertiges Paket für die Ansteuerung der GPIOs gibt python3-periphery, das kann man einfach über apt install python3-periphery oder mit pip installieren. Es funktioniert nicht nur beim Raspi sondern auch auf den Orange-Pis etc. Ausser GPIO kann python3-periphery auch PWM, I2C, SPI, LED, Serial.

Ein kurzes Beispiel:

Code: Alles auswählen

#!/bin/python3

from periphery import GPIO

# ********** Beispiel fuer Ausgabe **********
out3 = GPIO(3," out")  # (BCM-Nummer, nicht Pin-Nummer)

# Werte muessen als Boolean angegeben werden
out3.write(True)       # setzt GPIO3 auf HI
out3.write(False)      # und auf LO
out3.close()

# ********** Beispiel fuer Einlesen eines Pins **********
in3 = GPIO(3, "in")    #  (BCM-Nummer, nicht Pin-Nummer)

wert = in3.read()      # Wert wird als Boolean ausgegeben, True = HI, False = LO
in3.close()

Weitere Dokumentation findet man, wenn man python-periphery-docs installiert.
Benutzeravatar
Dennis89
User
Beiträge: 1156
Registriert: Freitag 11. Dezember 2020, 15:13

Hallo,

falls du auf der Suche nach etwas bist, womit man "schöneren" Code schreiben kann, schau dir mal gpiozero an.

Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
lagerschaden
User
Beiträge: 13
Registriert: Samstag 21. Oktober 2017, 11:34

Dennis89 hat geschrieben: Donnerstag 21. Dezember 2023, 17:28 falls du auf der Suche nach etwas bist, womit man "schöneren" Code schreiben kann, schau dir mal gpiozero an.
Das scheint aber wieder mal nur auf dem Raspi zu laufen, aus readthedocs:

gpiozero
A simple interface to GPIO devices with Raspberry Pi, developed and maintained by Ben Nuttall and Dave Jones.

Ich nutze periphery auf dem OrangePiOne und dem OrangePiZero
Antworten