Порівняйте та порівняйте інтерфейси API для Python GPIO


11

Я тільки починаю з Pi і хочу програмувати GPIO на Python. Поки я натрапив на п'ять бібліотек:

Перш ніж присвятити час вивченню, я хочу знати:

  • Якщо є якісь обмеження для одного чи іншого.
  • Які істотні об’єктивні відмінності між ними.


Ви маєте рацію, і це, ймовірно, буде закрито як суб'єктивне. Немає простої відповіді. gpiozeroце проста обгортка, призначена для новачків. pigpioце, мабуть, найпотужніший, хоча документація є схематичною і більше підходить досвідченому програмісту. (Я використовую wiringpi, cтому що це простіше, але у мене є досвід 40+ років.)
Milliways

Я пропоную закрити це питання на основі думки, якщо ми не хочемо, щоб кожна людина, яка використовує GPIO, поділилася своїм досвідом у відповідях.
Дмитро Григор’єв

Відповіді:


13

Увага. Я автор pigpio, тому буду упереджено.

Ви можете отримати смак, подивившись на elinux .

RPi.GPIO був першим і найпопулярнішим. Це найчастіше ви бачите приклади.

RPIO ґрунтується на RPi.GPIO (мається на увазі як заміна для заміни) та додає деякі можливості. Зокрема, до нього додаються апаратні ШІМ, придатні для світлодіодів та сервоприводів та апаратні імпульсні ланцюги. RPi.GPIO пропонує лише програмне забезпечення ШІМ, яке дає видимі пробки в світлодіодах і, як кажуть, скорочує термін служби сервоприводів. Як згадується в RPIO github repo :

Цей сховище більше не підтримується активно!

wiringPi Python - це порт великої кількості функціональних можливостей wiringPi для Python. Я не користувався ним і не знаю багато про нього.

pigpio Python - це порт функціональності pigpio C для Python. Як і RPIO.GPIO, він забезпечує апаратну ШІМ з тимчасовим встановленням світлодіодів та сервоприводів, а також апаратні імпульсні ланцюги. Однією унікальною особливістю pigpio є те, що це час проведення GPIO подій у джерелі, тому для будь-яких цілей часу pigpio, ймовірно, буде найбільш точним. pigpio може працювати на мережевому ПК (Windows, Mac, Linux) для управління віддаленим Pi.

gpiozero - це спрощувальна обгортка майже будь-якої з перерахованих вище бібліотек. Це фактично передній кінець, який намагається максимально видалити користувача з основних деталей реалізації. gpiozero (я думаю) є рекомендованою основою Python для Фонду. gpiozero може (я думаю) працювати на мережевому ПК (Windows, Mac, Linux), щоб керувати віддаленим Pi, якщо pigpio є резервним.

Попередження, запитайте 10 інших людей, і вони матимуть 10 різних поглядів. Усі бібліотеки мають своє використання. Вони всі інструменти. Що для вас найкраще, залежить від того, який ви робітник.


0

Я б рекомендував RPi.GPIO, але нуль GPIO найкраще для початківців, але має більше обмежень. Однак я не знаю про інших, але якщо я не чув про них, це не означає, що там не так добре, як решта.


GPIO Zero робить все, що робить RPi.GPIO, обмежень там немає. У pigpio є більш вдосконалені функції, які ще не реалізовані в GPIO Zero, але для того, що вона підтримує, вона пропонує приємний API поверх будь-якої бібліотеки.
ben_nuttall
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.