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.
gpiozero
to proste opakowanie, przeznaczone dla początkujących.pigpio
jest prawdopodobnie najpotężniejszy, chociaż dokumentacja jest szkicowa i bardziej odpowiednia dla doświadczonego programisty. (Używam wiringpi,c
ponieważ jest to łatwiejsze, ale mam ponad 40-letnie doświadczenie.)Odpowiedzi:
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 :
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.
źródło
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.
źródło