0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

454398 来源:网络整理 作者:网络整理 2019-12-02 11:05 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

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

使用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

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

    关注

    16

    文章

    1333

    浏览量

    56439
  • 树莓派
    +关注

    关注

    122

    文章

    2082

    浏览量

    110753
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【MCU学习】GPIO详解

    本实验通过一个“小实验框架 GPIO Mode Lab”,在同一个 GPIO 引脚上依次配置不同模式,并用 ADC 探头测量电压、同时读取数字电平,系统化地观察。
    的头像 发表于 01-24 11:45 4886次阅读
    【MCU学习】<b class='flag-5'>GPIO</b>详解

    成本钢铁侠手套!树莓+OpenCV 秒变手势遥控器!

    大家好,这是一个树莓和OpenCV的连载专题。使用树莓与OpenCV实现姿态估计和面部特征点追踪使用树莓
    的头像 发表于 08-16 16:16 1551次阅读
    <b class='flag-5'>零</b>成本钢铁侠手套!<b class='flag-5'>树莓</b><b class='flag-5'>派</b>+OpenCV 秒变手势遥控器!

    成本升级:把吃灰的树莓刷成路由器!

    近期推出的树莓型号性能优于传统路由器,因此将其用作路由器可能会颇具吸引力。然而,它并非完美无缺,因为大多数路由器软件并不支持树莓(或仅支
    的头像 发表于 08-10 08:04 1247次阅读
    <b class='flag-5'>零</b>成本升级:把吃灰的<b class='flag-5'>树莓</b><b class='flag-5'>派</b>刷成路由器!

    技能+1!如何在树莓派上使用C++控制GPIO

    和PiGPIO等库,C++可用于编程控制树莓GPIO引脚。它提供了更好的性能和控制能力,非常适合对速度和精度要求较高的硬件项目。在树莓
    的头像 发表于 08-06 15:33 4488次阅读
    技能+1!如何在<b class='flag-5'>树莓</b>派上使用C++控制<b class='flag-5'>GPIO</b>?

    你真的懂树莓5嘛?树莓5引脚图全面指南:理解GPIO引脚及其功能!

    树莓5上的GPIO通用输入/输出(GPIO)引脚是树莓派上的物理连接器,允许树莓
    的头像 发表于 07-04 15:27 3833次阅读
    你真的懂<b class='flag-5'>树莓</b><b class='flag-5'>派</b>5嘛?<b class='flag-5'>树莓</b><b class='flag-5'>派</b>5引脚图全面指南:理解<b class='flag-5'>GPIO</b>引脚及其功能!

    20个任何人都能完成的树莓酷炫项目

    不知道如何利用你买的树莓?这个小设备真的能当台式电脑用吗?能当服务器吗?能当广播电台吗?当然可以!为了帮助你入门,我们精心挑选了这份树莓应用指南,每个
    的头像 发表于 07-03 17:10 4739次阅读
    20个任何人都能完成的<b class='flag-5'>树莓</b><b class='flag-5'>派</b>酷炫<b class='flag-5'>项目</b>!

    树莓小技巧:无需键盘或显示器,如何通过WiFi设置树莓

    树莓是一款小巧便携的USB供电计算机,可以隐藏起来用于小型项目,如网络服务器或家庭自动化。通常,设置树莓需要键盘和显示器来编辑和查看
    的头像 发表于 06-26 15:41 1841次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>小技巧:无需键盘或显示器,如何通过WiFi设置<b class='flag-5'>树莓</b><b class='flag-5'>派</b>?

    树莓分类器:用树莓识别不同型号的树莓

    在本教程系列的第一部分中,您将学习如何使用树莓AI摄像头来检测不同的树莓型号。本系列由DavidPlowman创建,他是树莓
    的头像 发表于 06-13 16:39 1535次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>分类器:用<b class='flag-5'>树莓</b><b class='flag-5'>派</b>识别不同型号的<b class='flag-5'>树莓</b><b class='flag-5'>派</b>!

    树莓项目实战:车牌识别系统开发全记录!

    介绍本项目的目标是设计一个基于树莓微电脑的自动车牌识别系统,用于控制停车场的道闸。为什么?我有一台闲置的树莓,没有参与任何
    的头像 发表于 06-11 17:22 1282次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b><b class='flag-5'>项目</b>实战:车牌识别系统开发全记录!

    树莓“揪出”家里的耗电怪兽!

    在本应用中,我们将使用树莓设置一个CE电流监测器,并通过网页界面显示电路的电流读数。本项目使用的组件硬件组件树莓2ModelBx112通
    的头像 发表于 06-04 15:33 2034次阅读
    用<b class='flag-5'>树莓</b><b class='flag-5'>派</b>“揪出”家里的耗电怪兽!

    迅为RK3568驱动指南GPIO子系统 GPIO操作函数实验

    迅为电子RK3568开发板驱动指南GPIO子系统 GPIO操作函数实验
    的头像 发表于 05-28 15:24 1500次阅读
    迅为RK3568驱动指南<b class='flag-5'>GPIO</b>子系统 <b class='flag-5'>GPIO</b>操作函数实验

    树莓“吉尼斯世界记录”:将树莓的性能发挥到极致的项目

    完成的许多酷炫项目。这就引出了一个问题——你该如何将树莓的性能推向极限呢?历经13年的项目实践和树莓
    的头像 发表于 05-22 16:53 1714次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>“吉尼斯世界记录”:将<b class='flag-5'>树莓</b><b class='flag-5'>派</b>的性能发挥到极致的<b class='flag-5'>项目</b>!

    能够精准定位的树莓机器人!

    我为我的自制机器人BigRob(同样由树莓驱动)配备了基于树莓的精准GPS导航系统。本项目所用组件硬件组件NV08C-CSMx1NV08
    的头像 发表于 05-17 08:33 1516次阅读
    能够精准定位的<b class='flag-5'>树莓</b><b class='flag-5'>派</b>机器人!

    树莓 Zero 打造的智能漫游车!

    使用PXFMini和树莓Zero打造您自己的自主漫游车。本项目所用组件硬件组件ErleRoboticsPXFmini×1树莓Zero×1
    的头像 发表于 05-13 16:39 1290次阅读
    用 <b class='flag-5'>树莓</b><b class='flag-5'>派</b> Zero 打造的智能漫游车!

    用意念控制灯光亮度?这个树莓项目有点意思...

    摘要该树莓项目借助脑电波扫描仪操控硬件设备,通过监测脑电波来执行特定动作。CivitasUniverse推出的NeuroPhotonicR5FlowCyberdeck装置,采用了树莓
    的头像 发表于 04-30 18:42 652次阅读
    用意念控制灯光亮度?这个<b class='flag-5'>树莓</b><b class='flag-5'>派</b><b class='flag-5'>项目</b>有点意思...