为什么Raspberry Pi项目的GPIO零优于RPi.GPIO

Raspberry Pi是学习的理想计算机。基于Linux的Raspbian操作系统内置了Python,这使得它成为初学者的理想之选。通用输入/输出(GPIO)引脚使萌芽的制造商可以轻松地进行DIY电子项目的实验。

当您使用控制这些引脚的代码库和流行的RPi时,这一点尤其容易。库就是此类库的一个很好的例子。但这是初学者的最佳途径吗?加入我们进行调查。

什么是GPIO零?

GPIO零库是一个用于处理GPIO引脚的Python库。它是由Raspberry Pi社区经理Ben Nuttall编写的。旨在直观,“友好",它简化了大多数常规Raspberry Pi用例的Python代码。

结合了简单的命名实践和描述性功能,GPIO 0可供初学者更容易理解。即使是经验丰富的RPi.GPIO库用户也可能会喜欢它-并且要了解原因,让我们看一下RPi.GPIO与GPIO零的比较。

RPi.GPIO有什么问题?

什么都没有。没事RPi.GPIO由开发人员Ben Croston于2012年初发布。它是一个强大的库,允许用户从代码控制GPIO引脚。它涵盖了几乎我们涵盖的每个初学者项目。

尽管RPi.GPIO用途广泛,但它从来都不是为最终用户设计的。

GPIO零的优点是什么?

在学习Python代码时,您会了解到它是GPIO的良好设计的证明。

应当易于阅读且尽可能简短。 GPIO零旨在涵盖这两个方面。构建在RPi.GPIO之上作为前端语言包装,它简化了GPIO的设置和使用。

请考虑以下示例,设置并打开LED:

上面的代码对于使用Pi来控制LED的任何人应该都很熟悉。

已导入RPi.GPIO库,并声明了LED的引脚。设置了引脚布局类型(在GPIO指南中说明了BCM和BOARD模式),并且将引脚设置为输出。然后,将引脚打开。

这种方法很有意义,但是GPIO Zero的实现方法要简单得多:

GPIO Zero有一个用于LED的模块,该模块在开始。这意味着您可以声明引脚号,然后调用 led.on()方法。

为什么GPIO Zero的方法更好?

有一些这种工作方法是对RPi.GPIO进行改进的原因。

首先,它满足“易于阅读,且尽可能短"的要求。尽管RPi.GPIO设置语句很容易理解,但不是必需的。 LED始终是输出,因此GPIO零设置了后台的引脚。结果仅需设置三行代码,然后点亮一个LED。

您可能会注意到,在GPIO Zero示例中没有设置板模式。该库仅对引脚使用Broadcom(BCM)编号。图书馆设计师Ben Nuttall在2015年的RasPi.tv采访中解释了原因:

“板子编号看似简单,但我想说它会使新用户认为所有的销钉都是通用的,而并非如此。将LED连接到引脚11,为什么不另外连接引脚1,2,3和4? 1号井是3V3。 2和4是5V。

以这种方式输入,使用BCM编号绝对有意义。鉴于GPIO零将在以后的Raspberry Pi文档中成为标准配置,值得学习!

GPIO零实际上更好吗?

表面上看起来更简单,但是新图书馆有什么问题吗?与任何新的编码库一样,这是一个意见问题。一方面,对于初学者和经验丰富的编码人员而言,删除设置代码都是极好的选择。编写代码更直接,更快捷。

另一方面,准确了解正在发生的事情对于学习很重要。以GPIO零文档中的设置按钮为例:

按钮模块简化了按钮的设置。它知道按钮是输入,因此使用声明的引脚号进行设置。使用 .is_pressed 来检测按钮是否按下也很容易。

我们在Raspberry Pi按钮教程中使用了此确切功能,这是一种很好的方法熟悉库中的差异。

RPi.GPIO库的用户会注意到,未在代码中设置Pi的内部上拉/下拉电阻。这就提出了一个有趣的问题。对于初学者来说,了解上拉/下拉电阻器至关重要吗?再次,本·努塔尔(Ben Nuttall)对这个问题有一个答案:

“您可能会说知道上拉和下拉动作是很好的,而您会是对的,但是为什么我必须在这上面教第一天?[…]如果您想更深入地讲授电子技术,那么可以做很多事情,但是如果您只是入门,那么它就不是强制性的。"

总的来说, GPIO Zero的简单方法对于初学者和资深人士而言都是一件好事。此外,RPi.GPIO不会随处可见。

Python是唯一的选择吗?

Python是Pi众所周知的语言,但不是唯一的选择。如果您已经熟悉使用C语言进行编程,那么覆盖了Wiing Pi。

或者,如果您已经使用JavaScript进行编程,则可以轻松地在Pi上安装Node.js。 GPIO访问可通过rpi-gpio npm库获得。 Ruby on Rails也可以安装在Raspberry Pi上,尽管Pi可能不是学习Rails的最佳方法!

所有这些替代方案以及出色的Pigpio等多语言库可以使您选择图书馆令人困惑。这就是GPIO Zero的优势:对于初学者来说,他们想知道如何以及从哪里开始。

如果您正处在一个不需要它的东西的地方,那么您将准备好进入这些其他库。

GPIO零入门自己

GPIO零是最新的库,有充分的理由使Pi引人注目。对于大多数用户而言,它使GPIO引脚的编码更易于阅读和编写。

鉴于Raspberry Pi在教育中的用途,任何使学习更加自然的事情都是一件好事。虽然RPi.GPIO到目前为止一直很完善,但是GPIO Zero还是一个好主意,并且使其变得更好。

使用GPIO Zero入门的一种好方法是接受像Musical Door Sensor这样的初学者项目。并将其移植到新库中。

标签: GPIO Python Raspberry Pi