比较和对比Python GPIO API


11

我只是从Pi开始,想用Python编写GPIO。到目前为止,我遇到了五个库:

在我花时间学习一个之前,我想知道:

  • 一个或另一个是否有任何限制。
  • 它们之间有什么重大的客观差异。


您是正确的,这可能会因为主观而关闭。没有简单的答案。gpiozero是一个简单的包装,专为初学者设计。pigpio尽管文档是粗略的,并且可能更适合经验丰富的程序员,但它可能是功能最强大的。(我使用wireringpi c是因为它比较容易,但是我有40多年的c经验。)
Milliways

我建议我们以基于观点的观点来结束这个问题,除非我们希望每个使用GPIO的人都分享他们在答案中的经验。
德米特里·格里戈列耶夫

Answers:


13

警告。我是Pigpio的作者,因此会有偏见。

通过查看elinux可能会有所帮助

RPi.GPIO是第一个,也是最受欢迎的。这将是您最常看到的示例。

RPIO建立在RPi.GPIO(它是替代插件)的基础上,并增加了一些功能。特别是它增加了适用于LED和伺服器的硬件定时PWM,以及硬件定时脉冲链。RPi.GPIO仅提供软件PWM,该软件在LED中产生可见的毛刺,据说会缩短伺服器的寿命。如RPIO github repo中所述

该存储库不再积极维护!

connectionPi Python是许多connectionPi的C功能与Python的移植。我没有用过,对此也不是很了解。

Pigpio Python是Pigpio的C功能到Python的移植。像RPIO.GPIO一样,它为LED和伺服器提供硬件定时PWM,以及硬件定时脉冲链。Pigpio的一个独特功能是它在源处对GPIO事件进行计时,因此对于任何计时目的,Piggio可能都是最准确的。Pigpio可以在联网的PC(Windows,Mac,Linux)上运行以控制远程Pi。

gpiozero是几乎所有上述库的简化包装。实际上,它是一个前端,试图从基础实现细节中尽可能多地除去用户。gpiozero(我认为)是基金会推荐的Python起点。如果Pigpio是后端,则gpiozero可以(我认为)可以在联网的PC(Windows,Mac,Linux)上运行以控制远程Pi。

警告,请问10个人,他们将有10种不同的观点。所有的库都有其用途。它们都是工具。哪种最适合您取决于您​​是哪种工人。


0

我会推荐RPi.GPIO,但是GPIO零对于初学者来说是最好的,但有更多的限制。但是,我对其他人一无所知,但是如果我没有听说过其他人,那并不意味着那里的人不如其他人。


GPIO Zero可以完成RPi.GPIO的所有工作,那里没有限制。Pigpio中还有一些尚未在GPIO Zero中实现的高级功能,但是对于它所支持的功能,它在任一库的顶部都提供了一个不错的API。
ben_nuttall
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.