Ich fange gerade mit Pi an und möchte GPIO in Python programmieren. Bisher bin ich auf fünf Bibliotheken gestoßen:
Bevor ich Zeit zum Lernen einsetze, möchte ich wissen:
- Wenn es irgendwelche Einschränkungen für das eine oder andere gibt.
- Welche signifikanten objektiven Unterschiede gibt es zwischen ihnen?
gpiozero
ist eine einfache Hülle für Anfänger.pigpio
ist wahrscheinlich die leistungsstärkste, obwohl die Dokumentation lückenhaft ist und eher für einen erfahrenen Programmierer geeignet ist. (Ich benutze Wiringpi,c
weil es einfacher ist, aber ich habe mehr als 40 Jahre Erfahrung.)Antworten:
Warnung. Ich bin der Autor von Pigpio und werde daher voreingenommen sein.
Sie könnten einen Vorgeschmack bekommen, wenn Sie sich elinux ansehen .
RPi.GPIO war das erste und ist das beliebteste. Es wird das sein, für das Sie am häufigsten Beispiele sehen.
RPIO baut auf RPi.GPIO auf (es soll ein Plug-In-Ersatz sein) und fügt einige Funktionen hinzu. Insbesondere werden Hardware-zeitgesteuerte PWM hinzugefügt, die für LEDs und Servos geeignet sind, sowie Hardware-Zeitimpulsketten. RPi.GPIO bietet nur Software-PWM an, die sichtbare Störungen in LEDs verursacht und die Lebensdauer von Servos verkürzen soll. Wie in RPIO Github Repo erwähnt :
WiringPi Python ist ein Port eines Großteils der C-Funktionalität von WiringPi für Python. Ich habe es nicht benutzt und weiß nicht viel darüber.
pigpio Python ist eine Portierung der C-Funktionalität von pigpio für Python. Wie RPIO.GPIO bietet es Hardware-PWM für LEDs und Servos sowie zeitgesteuerte Hardware-Impulsketten. Ein einzigartiges Merkmal von Pigpio ist, dass es GPIO-Ereignisse an der Quelle zeitlich festlegt, sodass Pigpio für jeden Timing-Zweck wahrscheinlich das genaueste ist. pigpio kann auf einem Netzwerk-PC (Windows, Mac, Linux) ausgeführt werden, um einen Remote-Pi zu steuern.
gpiozero ist ein vereinfachender Wrapper für so ziemlich jede der oben genannten Bibliotheken. Tatsächlich handelt es sich um ein Front-End, das versucht, den Benutzer so weit wie möglich aus den zugrunde liegenden Implementierungsdetails zu entfernen. gpiozero (glaube ich) ist der von der Foundation empfohlene Python-Startpunkt. gpiozero kann (glaube ich) auf einem vernetzten PC (Windows, Mac, Linux) ausgeführt werden, um einen Remote-Pi zu steuern, wenn pigpio das Backend ist.
Warnung, fragen Sie 10 andere Personen und sie werden 10 verschiedene Ansichten haben. Alle Bibliotheken haben ihre Verwendung. Sie sind alle Werkzeuge. Welches für Sie am besten ist, hängt davon ab, welche Art von Arbeiter Sie sind.
quelle
Ich würde RPi.GPIO empfehlen, aber GPIO Null ist am besten für Anfänger, hat aber mehr Einschränkungen. Ich habe jedoch keine Kenntnisse über die anderen, aber wenn ich nicht von ihnen gehört habe, heißt das nicht, dass sie nicht so gut sind wie die anderen.
quelle