Porównaj i kontrast API API Python GPIO

11

Zaczynam od Pi i chcę zaprogramować GPIO w Pythonie. Do tej pory natknąłem się na pięć bibliotek:

Zanim poświęcę czas na naukę jednego, chcę wiedzieć:

  • Jeśli istnieją jakiekolwiek ograniczenia jednego lub drugiego.
  • Jakie są między nimi znaczące obiektywne różnice.
spinkus
źródło
Masz rację, a to prawdopodobnie zostanie zamknięte jako subiektywne. Nie ma prostej odpowiedzi. gpiozeroto proste opakowanie, przeznaczone dla początkujących. pigpiojest prawdopodobnie najpotężniejszy, chociaż dokumentacja jest szkicowa i bardziej odpowiednia dla doświadczonego programisty. (Używam wiringpi, cponieważ jest to łatwiejsze, ale mam ponad 40-letnie doświadczenie.)
Milliways
Sugeruję, abyśmy zamknęli to pytanie jako oparte na opiniach, chyba że chcemy, aby każda osoba korzystająca z GPIO podzieliła się swoim doświadczeniem w odpowiedziach.
Dmitrij Grigoryev,

Odpowiedzi:

13

Ostrzeżenie. Jestem autorem Pigpio, więc będę stronniczy.

Możesz spróbować, patrząc na elinux .

RPi.GPIO było pierwszym i jest najbardziej popularne. Będzie to ten, dla którego najczęściej widzisz przykłady.

RPIO opiera się na RPi.GPIO (ma być zamiennikiem wtyczki) i dodaje pewne możliwości. W szczególności dodaje sprzętowy PWM o czasie odpowiednim do diod LED i serwomechanizmów oraz sprzętowo sterowane łańcuchy impulsów. RPi.GPIO zapewnia jedynie oprogramowanie PWM, które daje widoczne usterki w diodach LED i ma skracać żywotność serwomechanizmów. Jak wspomniano w repozytorium github RPIO :

To repozytorium nie jest już aktywnie utrzymywane!

wiringPi Python jest portem wielu funkcji C wireingPi do Pythona. Nie korzystałem z niego i niewiele o nim wiem.

pigpio Python jest portem funkcjonalności C Pigpio do Pythona. Podobnie jak RPIO.GPIO zapewnia sprzętowo sterowany PWM dla diod LED i serwomechanizmów oraz sprzętowo sterowane łańcuchy impulsów. Jedną z unikalnych cech Pigpio jest to, że mierzy czas zdarzeń GPIO u źródła, więc dla dowolnego celu czasowego Pigpio może być najbardziej dokładny. pigpio może działać na komputerze sieciowym (Windows, Mac, Linux) w celu sterowania zdalnym Pi.

gpiozero jest prostym opakowaniem do prawie wszystkich powyższych bibliotek. Jest to w rzeczywistości interfejs, który próbuje usunąć użytkownika w jak największym stopniu z podstawowych szczegółów implementacji. gpiozero (myślę) to punkt początkowy Python zalecany przez Fundację. gpiozero może (myślę) działać na komputerze w sieci (Windows, Mac, Linux), aby kontrolować zdalne Pi, jeśli backpio jest backendem.

Ostrzeżenie, zapytaj 10 innych osób, a będą mieli 10 różnych poglądów. Wszystkie biblioteki mają swoje zastosowania. Wszystkie są narzędziami. To, co jest dla ciebie najlepsze, zależy od tego, jakim jesteś robotnikiem.

joan
źródło
0

Poleciłbym RPi.GPIO, ale GPIO zero jest najlepsze dla początkujących, ale ma więcej ograniczeń. Jednak nie mam wiedzy na temat innych, ale jeśli o nich nie słyszałem, nie oznacza to, że nie jest tak dobry jak reszta.

King Balloonion
źródło
GPIO Zero robi wszystko, co robi RPi. GPIO Zero nie ma żadnych ograniczeń. Istnieją bardziej zaawansowane funkcje Pigpio, które nie są jeszcze zaimplementowane w GPIO Zero, ale do tego, co obsługuje, zapewnia ładne API na każdej z bibliotek.
ben_nuttall