Python GPIO API'lerini karşılaştırın ve karşılaştırın


11

Sadece Pi ile başlıyorum ve Python'da GPIO programlamak istiyorum. Şimdiye kadar beş kütüphaneyle karşılaştım:

Bir tane öğrenmek için zaman ayırmadan önce bilmek istiyorum:

  • Biri veya diğeri için herhangi bir sınırlama varsa.
  • Aralarında ne kadar önemli objektif farklılıklar var.


Haklısın ve bu muhtemelen öznel olarak kapatılacak. Basit bir cevap yok. gpiozeroyeni başlayanlar için tasarlanmış basit bir ambalajdır. pigpiobelgelerin kabataslak ve deneyimli bir programcı için daha uygun olmasına rağmen, muhtemelen en güçlü olanıdır. (Daha ckolay olduğu için kablolama kullanıyorum , ancak 40 yıldan fazla c deneyimim var.)
Milliways

GPIO kullanan her bir kişinin yanıtlardaki deneyimlerini paylaşmasını istemedikçe, bu soruyu görüş tabanlı olarak kapatmamızı öneririm.
Dmitry Grigoryev

Yanıtlar:


13

Uyarı. Ben pigpio'nun yazarıyım, bu yüzden önyargılı olacak.

Elinux'a bakarak bir tat alabilirsiniz .

RPi.GPIO ilk ve en popüler olanıydı. En sık gördüğünüz örnek olacak.

RPIO, RPi.GPIO (bir eklenti değiştirme anlamına gelir) üzerine kurulur ve bazı yetenekler ekler. Özellikle LED'ler ve servolar için uygun donanım zamanlamalı PWM ve donanım zamanlamalı darbe zincirleri ekler. RPi.GPIO yalnızca LED'lerde görünür hatalar veren ve servoların ömrünü kısalttığı söylenen PWM yazılımını sağlar. RPIO github repo'da belirtildiği gibi :

Bu depo artık aktif olarak tutulmamaktadır!

wiringPi Python, WytPi'nin C işlevselliğinin Python'a bağlandığı bir bağlantı noktasıdır. Kullanmadım ve çok fazla bir şey bilmiyorum.

pigpio Python, pigpio'nun Python'a C işlevselliğinin bir limanıdır. RPIO.GPIO gibi LED'ler ve servolar için donanım zamanlamalı PWM ve donanım zamanlamalı darbe zincirleri sağlar. Pigpio'nun eşsiz bir özelliği, GPIO olaylarının kaynağında zamanlamasıdır, bu nedenle herhangi bir zamanlama amacı için pigpio'nun en doğru olması muhtemeldir. pigpio uzaktaki bir Pi'yi kontrol etmek için ağa bağlı bir bilgisayarda (Windows, Mac, Linux) çalışabilir.

gpiozero, yukarıdaki kütüphanelerin hemen hemen her birinde basitleştirici bir ambalajdır. Aslında kullanıcıyı temel uygulama detaylarından olabildiğince kaldırmaya çalışan bir kullanıcı arabirimidir. gpiozero (Sanırım) Vakfın önerdiği Python başlangıç ​​noktasıdır. gpiozero (bence), pigpio arka uç ise uzak bir Pi'yi kontrol etmek için ağa bağlı bir bilgisayarda (Windows, Mac, Linux) çalışabilir.

Uyarı, diğer 10 kişiye sorun ve 10 farklı görüşe sahip olacaklar. Tüm kütüphanelerin kullanım alanları vardır. Hepsi birer alet. Hangisi sizin için en iyisi, ne tür bir işçi olduğunuza bağlıdır.


0

RPi.GPIO tavsiye ederim ama GPIO sıfır yeni başlayanlar için en iyisidir, ancak daha fazla sınırlama vardır. Ancak, diğerleri hakkında hiçbir bilgim yok ama onları duymadıysam, geri kalanı kadar iyi olmadığı anlamına gelmez.


GPIO Zero, RPi.GPIO'nun yaptığı her şeyi yapar, orada herhangi bir sınırlama yoktur. Pigpio'da henüz GPIO Zero'da uygulanmayan daha gelişmiş özellikler var, ancak desteklediği şey için her iki kütüphanenin de üstünde güzel bir API sağlıyor.
ben_nuttall
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.