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

    文章

    1196

    浏览量

    51908
  • 树莓派
    +关注

    关注

    116

    文章

    1698

    浏览量

    105520
收藏 人收藏

    评论

    相关推荐

    树莓开发的最佳编程语言选择

    树莓(Raspberry Pi)是一款由英国树莓基金会开发的信用卡大小的单板计算机,它以其低成本、易于编程和灵活性而受到广泛欢迎。树莓
    的头像 发表于 11-11 11:34 226次阅读

    SOC GPIO操作

    sapphire Soc提供了两个GPIO组每组有4个GPIO,定义为GPIO[3:0],其中只有GPIO[1:0]可以支持中断。中断在程序中打开了
    的头像 发表于 11-01 11:06 100次阅读

    基础开发小安-Eyes-S1外设篇——GPIO中断编程

    等。 AiPi-Eyes-S1集成了SPI屏幕接口,DVP摄像头接口,外置ES8388音频编解码芯片以及预留TF卡座,并且引出USB接口,可接入USB摄像头。 产品资料:https://docs.ai-thinker.com/eyes 从开始学习小安: 1、
    的头像 发表于 10-29 14:56 675次阅读
    <b class='flag-5'>零</b>基础开发小安<b class='flag-5'>派</b>-Eyes-S1外设篇——<b class='flag-5'>GPIO</b>中断编程

    基础开发小安-Eyes-S1外设篇——GPIO 输入输出

    等。 AiPi-Eyes-S1集成了SPI屏幕接口,DVP摄像头接口,外置ES8388音频编解码芯片以及预留TF卡座,并且引出USB接口,可接入USB摄像头。 从开始学习小安: 1、基础开发小安
    的头像 发表于 10-25 13:50 960次阅读
    <b class='flag-5'>零</b>基础开发小安<b class='flag-5'>派</b>-Eyes-S1外设篇——<b class='flag-5'>GPIO</b> 输入输出

    树莓gpio有什么用,树莓gpio接口及编程方法

    一、树莓GPIO的用途 树莓(Raspberry Pi)是一款小巧、功能强大的单板计算机,广泛应用于编程教育、物联网
    的头像 发表于 10-22 18:09 482次阅读

    什么是树莓树莓是什么架构的

    什么是树莓 树莓(Raspberry Pi,简写为RPi,别名为RasPi/RPI)是由英国
    的头像 发表于 10-22 17:33 519次阅读

    gpio接口是干什么的 gpio四种输入输出模式怎么选择

    这些引脚的电平状态,实现与外部设备的通信和交互。GPIO接口在嵌入式系统、物联网设备、树莓项目等领域有着广泛的应用,为电子设备的通信和交互提供了重要的支持。 具体来说,
    的头像 发表于 10-06 16:07 1840次阅读

    树莓和单片机的优缺点是什么

    树莓(Raspberry Pi)和单片机(Microcontroller)是两种广泛应用于电子项目和嵌入式系统的硬件平台。它们各自具有独特的优缺点,适用于不同的应用场景。 树莓
    的头像 发表于 08-30 18:21 1453次阅读

    树莓4b风扇插哪个引脚

    树莓GPIO引脚上。但需要注意的是,树莓GPIO引脚输出电压通常为3.3V或5V(具体
    的头像 发表于 08-30 16:53 1194次阅读

    linux开发板与树莓的区别

    操作系统的微型计算机,主要用于教育、编程、媒体播放等领域。 硬件配置 Linux开发板:Linux开发板的硬件配置因厂商和型号而异,通常包括处理器、内存、存储、网络接口等。 树莓树莓
    的头像 发表于 08-30 15:34 756次阅读

    良辰美景,你需要一款复古风格的树莓相机!

    ,但如果带一个自制的相机会不会更有意思一点? 今天就来分享一个GitHub上开源的复古风格树莓相机项目。 材料清单 树莓Zero W
    发表于 07-01 11:14

    树莓5,Raspberry Pi 5 评测

    树莓早期创立的,很快成为许多树莓项目和硬件的标准。RPi.GPIO很可能是你最喜欢
    发表于 06-19 14:51

    Waveshare推出树莓红外热像仪,可智能检测报警和过热问题

    Waveshare近日推出针对树莓的红外线热像仪。此设备能借助GPIO接口与树莓派对接,拓展其功能领域。除正常的树莓
    的头像 发表于 05-20 14:45 614次阅读

    什么是GPIOGPIO组成原理

    GPIO全拼叫General Purpose Input Output(通用输入输出)简称IO口也叫总线扩展器,GPIO口是由引脚,功能寄存器组成,不同的架构中的GPIO封装不同,所使用的引脚数与寄存器数不同,具体可以参考芯片手
    发表于 04-28 12:30 6689次阅读
    什么是<b class='flag-5'>GPIO</b>?<b class='flag-5'>GPIO</b>组成原理

    MCU启动失败竟因GPIO先上电?

    由于 RT1060 上 GPIO_AD_Bx 和 GPIO_Bx 两组 PAD 供电均来自于 NVCC_GPIO,当其中任何一个 GPIO 有电压时,均可能会漏电到 NVCC_
    发表于 03-28 10:32 679次阅读
    MCU启动失败竟因<b class='flag-5'>GPIO</b>先上电?