Я только начинаю с Pi и хочу программировать GPIO на Python. До сих пор я сталкивался с пятью библиотеками:
Прежде чем посвятить время его изучению, я хочу знать:
- Если есть какие-либо ограничения для одного или другого.
- Какие существенные объективные различия существуют между ними.
gpiozero
это простая обертка, предназначенная для начинающих.pigpio
Вероятно, самый мощный, хотя документация отрывочна и больше подходит для опытного программиста. (Я использую wiringpi,c
потому что это проще, но у меня 40+ лет опыта c).Ответы:
Предупреждение. Я автор pigpio, поэтому буду предвзятым.
Вы можете почувствовать вкус, посмотрев на elinux .
RPi.GPIO был первым и самым популярным. Это будет тот, который вы чаще всего видите примеры.
RPIO основан на RPi.GPIO (он предназначен для замены плагина) и добавляет некоторые возможности. В частности, он добавляет аппаратную синхронизацию по времени, подходящую для светодиодов и сервоприводов, а также аппаратную синхронизацию по импульсам. RPi.GPIO предоставляет только программное обеспечение ШИМ, которое дает видимые сбои в светодиодах и, как говорят, сокращает срок службы сервоприводов. Как уже упоминалось в RPIO github repo :
wiringPi Python - это порт большей части функциональных возможностей C WiringPi для Python. Я не использовал это и не знаю много об этом.
pigpio Python - это порт функциональности C в pigpio для Python. Как и RPIO.GPIO, он обеспечивает аппаратную синхронизацию по времени для светодиодов и сервоприводов, а также аппаратную синхронизацию по импульсам. Уникальная особенность pigpio - это время событий GPIO в источнике, поэтому для любых временных целей pigpio, вероятно, будет наиболее точным. pigpio может работать на сетевом ПК (Windows, Mac, Linux) для управления удаленным Pi.
gpiozero - это упрощенная оболочка практически для всех вышеперечисленных библиотек. По сути, это внешний интерфейс, который пытается максимально удалить пользователя из базовых деталей реализации. gpiozero (я думаю) - это рекомендуемая Фондом начальная точка Python. gpiozero может (я думаю) работать на сетевом ПК (Windows, Mac, Linux) для управления удаленным Pi, если pigpio является бэкэндом.
Внимание, спросите 10 других людей, и у них будет 10 разных взглядов. Все библиотеки имеют свое применение. Они все инструменты. Что лучше для вас, зависит от того, какой вы рабочий.
источник
Я бы порекомендовал RPi.GPIO, но нулевой GPIO лучше для новичков, но имеет больше ограничений. Тем не менее, я ничего не знаю о других, но если я не слышал о них, это не значит, что там не так хорошо, как остальные.
источник