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

    文章

    1313

    浏览量

    55702
  • 树莓派
    +关注

    关注

    122

    文章

    2069

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

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

    树莓5上的GPIO通用输入/输出(GPIO)引脚是树莓派上的物理连接器,允许树莓
    的头像 发表于 07-04 15:27 2392次阅读
    你真的懂<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 2976次阅读
    20个任何人都能完成的<b class='flag-5'>树莓</b><b class='flag-5'>派</b>酷炫<b class='flag-5'>项目</b>!

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

    在本教程系列的第一部分中,您将学习如何使用树莓AI摄像头来检测不同的树莓型号。本系列由DavidPlowman创建,他是树莓
    的头像 发表于 06-13 16:39 982次阅读
    <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 869次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b><b class='flag-5'>项目</b>实战:车牌识别系统开发全记录!

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

    完成的许多酷炫项目。这就引出了一个问题——你该如何将树莓的性能推向极限呢?历经13年的项目实践和树莓
    的头像 发表于 05-22 16:53 1198次阅读
    <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>!

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

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

    基于小凌RK2206开发板:OpenHarmony如何使用IoT接口控制GPIO中断

    1、实验简介本实验将演示如何在小凌-RK2206开发板上使用IOT库的GPIO中断模式,进行GPIO编程开发。例程将创建一个任务,通过配置GPIO引脚为中断模式,实现
    的头像 发表于 04-21 10:39 889次阅读
    基于小凌<b class='flag-5'>派</b>RK2206开发板:OpenHarmony如何使用IoT接口控制<b class='flag-5'>GPIO</b>中断

    基于小凌RK2206开发板:OpenHarmony如何使用IoT接口控制GPIO外设

    1、案例简介本案例主要是如何在小凌-RK2206开发板上使用IOT库的GPIO接口,进行GPIO编程开发。例程将创建一个任务,通过配置GPIO引脚,实现
    的头像 发表于 04-11 15:36 1612次阅读
    基于小凌<b class='flag-5'>派</b>RK2206开发板:OpenHarmony如何使用IoT接口控制<b class='flag-5'>GPIO</b>外设

    超酷的树莓智能镜项目,快来了解!

    嘿,宝子们!今天给大家分享一些超厉害的树莓智能镜项目。这个链接里有8个目前为止我们见过的最好的树莓智能镜
    的头像 发表于 03-25 09:33 1255次阅读
    超酷的<b class='flag-5'>树莓</b><b class='flag-5'>派</b>智能镜<b class='flag-5'>项目</b>,快来了解!

    我只会Java,凭什么不能玩转树莓GPIO操控竟比C++更优雅~

    导语当全球开发者默认将Python视为树莓的"母语"时,一个颠覆认知的工具链正在Java开发者群体中口口相传——Pi4J让Java代码直接操控GPIO、I2C、SPI等硬件接口
    的头像 发表于 03-25 09:21 862次阅读
    我只会Java,凭什么不能玩转<b class='flag-5'>树莓</b><b class='flag-5'>派</b>?<b class='flag-5'>GPIO</b>操控竟比C++更优雅~

    GPIO使用教程 GPIO接口应用

    GPIO(General-Purpose Input/Output,通用输入/输出)接口是电子设备中的一个重要组成部分,主要用于控制和读取设备的数字信号。它通过简单的高(1)或低(0)电平来与系统
    的头像 发表于 01-31 10:10 5161次阅读

    GPIO错误排查与解决

    在嵌入式系统和微控制器编程中,通用输入输出(GPIO)是最常见的接口之一。然而,在使用GPIO时,我们可能会遇到各种错误。 1. 理解GPIO GPIO是微控制器上的一组引脚,可以被配
    的头像 发表于 01-09 09:46 3699次阅读

    GPIO树莓中的应用

    树莓(Raspberry Pi)是一款由英国树莓基金会开发的信用卡大小的单板计算机,它具有强大的功能和灵活性,可以用于各种项目和应用。通
    的头像 发表于 01-09 09:41 1243次阅读

    树莓传感器使用方法 树莓 Raspberry Pi 4优缺点

    树莓传感器使用方法 树莓(Raspberry Pi)是一款由英国树莓基金会开发的小型单板计
    的头像 发表于 12-06 10:35 2787次阅读