为什么树莓派项目的GPIO零优于RPi.GPIO

电子说

1.3w人已加入

描述

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这样的初学者项目。并将其移植到新库中。
        责任编辑:wv

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分