学习编程你应该了解GPIO Zero与RPi GPIO的不同

树莓派 徐 自远 868℃

学习编程你应该了解GPIO Zero与RPi GPIO的不同



Raspberry Pi是完美的学习计算机。基于Linux的Raspbian OS内置了Python,这使其成为初学者编码器的首选系统。其通用输入/输出(GPIO)引脚使新手制造商可以轻松地尝试DIY电子项目。

当您使用控制这些引脚的代码库时,这一点特别容易,而流行的RPi.GPIO Python库就是这种库的一个很好的例子。但它是初学者的最佳途径吗?

什么是GPIO Zero?

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

结合简单的命名实践和描述性功能,GPIO Zero更易于初学者理解。即使RPi.GPIO库的经验丰富的用户可能更喜欢它 – 并且为了理解原因,让我们来看看RPi.GPIO与GPIO Zero的比较。

RPi.GPIO有什么不对?

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

尽管RPi.GPIO广泛使用,但它从未为最终用户设计。RPi.GPIO的优秀设计证明了这么多初学者仍然使用它。

关于GPIO Zero有什么好处?

在学习Python代码时,您会了解到它应该易于阅读并且尽可能短。GPIO Zero旨在涵盖这两点。它构建在RPi.GPIO之上,作为前端语言包装器,简化了GPIO的设置和使用。

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

对于使用Pi来控制LED的人来说,上面的代码应该非常熟悉。

导入RPi.GPIO库,并声明LED的引脚。引脚布局类型已设置,引脚设置为输出。然后,引脚打开。

这种方法很有意义,但GPIO零方式更简单:

GPIO Zero有一个LED模块,在开始时导入。这意味着您可以声明引脚号,并调用led.on()方法。

为什么GPIO Zero的方法更好?

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

首先,它符合“易读,尽可能短”的要求。虽然RPi.GPIO设置语句很容易理解,但它们并不是必需的。LED始终是输出,因此GPIO Zero会在幕后设置引脚。结果只需要设置三行代码,然后点亮一个LED。

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

这样,使用BCM数字绝对有意义。鉴于GPIO Zero将成为未来Raspberry Pi文档的标准配置,值得学习!

GPIO Zero实际上更好吗?

虽然表面看起来更直接,但新库有什么问题吗?与任何新的编码库一样,这是一个意见问题。一方面,删除设置代码非常适合初学者和经验丰富的编码人员。编写代码更简单,更快捷。

另一方面,确切知道发生了什么对学习很重要。以GPIO Zero文档中的设置按钮为例:

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

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

RPi.GPIO库的用户会注意到Pi的内部上拉/下拉电阻未在代码中设置。这提出了一个有趣的问题。初学者了解上拉/下拉电阻是否必不可少?Ben Nuttall再次回答了这个问题:

总的来说,GPIO Zero的简单方法对于初学者和退伍军人来说都是一件好事。此外,RPi.GPIO不会去任何地方。如果需要,它将始终切换回。

Python是唯一的选择吗?

Python是Pi所熟知的语言,但它并不是唯一的选择。如果你已经熟悉C语言的编程,那么你就可以了解Wiring Pi。

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

所有这些替代方案,以及像优秀的pigpio这样的多语言库都会让选择图书馆变得令人困惑。这就是GPIO Zero擅长的地方:初学者想知道如何以及从哪里开始。

如果您正处于需要它无法提供的东西的位置,那么您将更愿意按照自己的进度深入这些其他库。

GPIO入门零自己

GPIO Zero是最新的库,可以为Pi带来好处,并且有充分的理由。对于大多数用户来说,它使GPIO引脚的编码更易于阅读和更快速的写入。

鉴于Raspberry Pi在教育中的应用,任何使学习更自然的东西都是好事。虽然RPi.GPIO到目前为止一直是完美的,但GPIO Zero采用了一个好主意并使其更好。

开始使用GPIO Zero的一个好方法是采用像音乐门传感器这样的初学者项目并将其移植到新的库中。

 

转载请注明:徐自远的乱七八糟小站 » 学习编程你应该了解GPIO Zero与RPi GPIO的不同

喜欢 (0)

苏ICP备18041234号-1 bei_an 苏公网安备 32021402001397号