Bandingkan dan kontras API Python GPIO


11

Saya baru mulai dengan Pi dan ingin memprogram GPIO dengan Python. Sejauh ini saya telah menemukan lima perpustakaan:

Sebelum saya berkomitmen untuk mempelajarinya, saya ingin tahu:

  • Jika ada batasan satu atau yang lain.
  • Apa perbedaan obyektif yang signifikan di antara mereka.


Anda benar, dan ini mungkin akan ditutup sebagai subjektif. Tidak ada jawaban sederhana. gpiozeroadalah pembungkus sederhana, yang dirancang untuk pemula. pigpiomungkin yang paling kuat, meskipun dokumentasinya samar, dan lebih cocok untuk programmer berpengalaman. (Saya menggunakan wiringpi ckarena lebih mudah, tetapi saya memiliki pengalaman lebih dari 40 tahun.)
Milliways

Saya sarankan kita menutup pertanyaan ini sebagai berbasis opini, kecuali kita ingin setiap orang menggunakan GPIO untuk berbagi pengalaman mereka dalam jawaban.
Dmitry Grigoryev

Jawaban:


13

Peringatan. Saya penulis pigpio jadi akan bias.

Anda mungkin bisa mencicipi dengan melihat elinux .

RPi.GPIO adalah yang pertama dan paling populer. Ini akan menjadi contoh yang paling sering Anda lihat.

RPIO dibangun di atas RPi.GPIO (ini dimaksudkan sebagai plug in pengganti) dan menambahkan beberapa kemampuan. Secara khusus ia menambahkan PWM berwaktu perangkat keras yang cocok untuk LED dan servos dan rantai pulsa berwaktu perangkat keras. RPi.GPIO hanya menyediakan perangkat lunak PWM yang memberikan gangguan pada LED dan dikatakan dapat mempersingkat masa pakai servos. Seperti yang disebutkan dalam RPIO github repo :

Repositori ini tidak lagi dipelihara secara aktif!

wiringPi Python adalah port dari banyak fungsi C wiringPi ke Python. Saya belum menggunakannya dan tidak tahu banyak tentang itu.

pigpio Python adalah port dari fungsi C pigpio ke Python. Seperti RPIO.GPIO, ia menyediakan PWM berwaktu perangkat keras untuk LED dan servos, dan rantai pulsa berwaktu perangkat keras. Salah satu fitur unik dari pigpio adalah itu kali acara GPIO di sumber sehingga untuk setiap tujuan waktu pigpio cenderung menjadi yang paling akurat. pigpio dapat berjalan di PC jaringan (Windows, Mac, Linux) untuk mengontrol Pi jarak jauh.

gpiozero adalah pembungkus yang menyederhanakan hampir semua perpustakaan di atas. Ini adalah efek ujung depan yang mencoba untuk menghapus pengguna sebanyak mungkin dari detail implementasi yang mendasarinya. gpiozero (saya pikir) adalah titik awal yang direkomendasikan oleh Yayasan Python. gpiozero dapat (saya pikir) berjalan di PC jaringan (Windows, Mac, Linux) untuk mengontrol Pi jarak jauh jika pigpio adalah backend.

Peringatan, tanyakan 10 orang lain dan mereka akan memiliki 10 pandangan berbeda. Semua perpustakaan memiliki kegunaannya. Mereka semua adalah alat. Yang terbaik untuk Anda tergantung pada pekerja seperti apa Anda.


0

Saya akan merekomendasikan RPi.GPIO tetapi GPIO nol adalah yang terbaik untuk pemula tetapi memiliki lebih banyak keterbatasan. Namun, saya tidak memiliki pengetahuan tentang yang lain tetapi jika saya belum pernah mendengarnya, itu tidak berarti tidak ada yang sebagus yang lainnya.


GPIO Zero melakukan semua yang dilakukan RPi.GPIO, tidak ada batasan di sana. Ada lebih banyak fitur canggih di pigpio yang belum diimplementasikan di GPIO Zero, tetapi untuk apa dukungannya, ini menyediakan API yang bagus di atas pustaka mana pun.
ben_nuttall
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.