So sánh và đối chiếu API GPIO của Python


11

Tôi mới bắt đầu với Pi và muốn lập trình GPIO bằng Python. Cho đến nay tôi đã đi qua năm thư viện:

Trước khi tôi dành thời gian để học một bài, tôi muốn biết:

  • Nếu có bất kỳ giới hạn cho một hoặc khác.
  • Có gì khác biệt khách quan đáng kể giữa chúng.


Bạn đã đúng, và điều này có thể sẽ bị đóng cửa vì chủ quan. Không có câu trả lời đơn giản. gpiozerolà một gói đơn giản, được thiết kế cho người mới bắt đầu. pigpiocó lẽ là mạnh nhất, mặc dù tài liệu này sơ sài và phù hợp hơn với một lập trình viên có kinh nghiệm. (Tôi sử dụng hệ thống dây điện cvì nó dễ hơn, nhưng tôi có hơn 40 năm kinh nghiệm.)
Milliways

Tôi đề nghị chúng tôi đóng câu hỏi này dưới dạng ý kiến, trừ khi chúng tôi muốn mọi người sử dụng GPIO chia sẻ kinh nghiệm của họ trong câu trả lời.
Dmitry Grigoryev

Câu trả lời:


13

Cảnh báo. Tôi là tác giả của pigpio nên sẽ bị thiên vị.

Bạn có thể có được một hương vị bằng cách nhìn vào elinux .

RPi.GPIO là lần đầu tiên và là phổ biến nhất. Nó sẽ là một trong những bạn thường thấy ví dụ cho.

RPIO xây dựng dựa trên RPi.GPIO (có nghĩa là một thay thế bổ sung) và thêm một số khả năng. Đặc biệt, nó bổ sung thêm bộ định thời phần cứng PWM phù hợp với đèn LED và động cơ servo và chuỗi xung thời gian phần cứng. RPi.GPIO chỉ cung cấp phần mềm PWM giúp trục trặc có thể nhìn thấy trong đèn LED và được cho là rút ngắn tuổi thọ của động cơ servo. Như đã đề cập trong repo RPIO github :

Kho lưu trữ này không được duy trì tích cực nữa!

WiredPi Python là một cổng có nhiều chức năng của C của hệ thống dây điện với Python. Tôi đã không sử dụng nó và không biết nhiều về nó.

pigpio Python là một cổng chức năng C của pigpio cho Python. Giống như RPIO.GPIO, nó cung cấp PWM theo thời gian phần cứng cho đèn LED và servo, và chuỗi xung được định thời phần cứng. Một tính năng độc đáo của pigpio là lần này các sự kiện GPIO tại nguồn vì vậy đối với bất kỳ mục đích thời gian nào, pigpio có thể là chính xác nhất. pigpio có thể chạy trên PC nối mạng (Windows, Mac, Linux) để điều khiển Pi từ xa.

gpiozero là một trình bao bọc đơn giản hóa xung quanh hầu hết các thư viện trên. Đó là hiệu lực của một giao diện người dùng cố gắng loại bỏ người dùng càng nhiều càng tốt khỏi các chi tiết triển khai cơ bản. gpiozero (tôi nghĩ) là điểm khởi đầu Python được Foundation khuyên dùng. gpiozero có thể (tôi nghĩ) chạy trên PC nối mạng (Windows, Mac, Linux) để điều khiển Pi từ xa nếu pigpio là phụ trợ.

Cảnh báo, hỏi 10 người khác và họ sẽ có 10 quan điểm khác nhau. Tất cả các thư viện có công dụng của họ. Chúng đều là công cụ. Điều gì là tốt nhất cho bạn phụ thuộc vào loại công nhân của bạn.


0

Tôi muốn giới thiệu RPi.GPIO nhưng GPIO zero là tốt nhất cho người mới bắt đầu nhưng có nhiều hạn chế hơn. Tuy nhiên, tôi không có kiến ​​thức về những người khác nhưng nếu tôi chưa nghe về họ thì điều đó không có nghĩa là không tốt như những người còn lại.


GPIO Zero làm mọi thứ RPi.GPIO làm, không có giới hạn nào ở đó. Có nhiều tính năng nâng cao hơn trong pigpio chưa được triển khai trong GPIO Zero, nhưng với những gì nó hỗ trợ, nó cung cấp một API đẹp ở đầu thư viện.
ben_nuttall
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.