树莓皮是学习的完美电脑。基于Linux的Raspbian操作系统内置了Python,这使它成为初学者的首选系统。它的通用输入/输出(GPIO)管脚使初出茅庐的**商很容易尝试DIY电子项目。
当您使用控制这些管脚的代码库和流行的RPi.GPIO文件Python库就是这种库的一个很好的例子。但这是初学者的最佳途径吗?加入我们的调查。
gpiozero库是一个用于处理GPIO引脚的Python库。它是由Raspberry Pi社区经理Ben Nuttall写的。为了直观和“友好”,它简化了大多数常规Raspberry Pi用例的Python代码。
结合简单的命名实践和描述性函数,gpiozero更易于初学者理解。即使是经验丰富的用户RPi.GPIO文件图书馆可能更喜欢它——为了理解原因,让我们看看它是如何做到的RPi.GPIO文件与GPIO零比较。
没有什么。什么都没有。RPi.GPIO文件2012年初由开发者Ben Croston发布。它是一个强大的库,允许用户从代码中控制GPIO引脚。它的特点几乎在每一个初学者的项目,我们已经涵盖。
尽管它用途广泛,RPi.GPIO文件从来不是为最终用户设计的。它证明了RPi.GPIO文件这是一个很好的设计,所以很多初学者仍然使用它。
当您学习Python代码时,您了解到它应该易于阅读并且尽可能简短。GPIO Zero旨在覆盖这两点。建立在RPi.GPIO文件作为前端语言包装器,它简化了GPIO的设置和使用。
考虑以下示例,设置并打开LED:
上面的代码应该是非常熟悉的任何人谁使用他们的Pi来控制LED。
这个RPi.GPIO文件导入库,并声明LED的管脚。引脚布局类型已设置(BCM和BOARD mode在我们的GPIO指南中进行了说明),并且引脚已设置为输出。然后,pin打开。
这种方法是有道理的,但是GPIO Zero方法要简单得多:
GPIO Zero有一个LED模块,从一开始就导入。这意味着您可以声明pin号码,然后调用发光二极管亮()方法。
这种工作方法是对传统工作方法的改进,有一些原因RPi.GPIO文件.
首先,它符合“易读,尽可能短”的要求。而RPi.GPIO文件setup语句很容易理解,它们不是必需的。LED总是一个输出,所以GPIO Zero在幕后设置引脚。结果只需设置三行代码,然后点亮一个LED。
您可能注意到在gpiozero示例中没有板模式设置。该库仅对管脚使用Broadcom(BCM)编号。图书馆设计师Ben Nuttall解释了为什么在2015年拉斯皮电视台访谈:
"BOARD numbering might seem simpler but I'd say it leads new users to think all the pins are general purpose---and they're not. Connect an LED to pin 11, why not connect some more to pins 1, 2, 3 and 4? Well 1 is 3V3. 2 and 4 are 5V. A lack of awareness of what the purpose of the pins is can be dangerous."
这样说来,使用车身控制模块编号是绝对有意义的。鉴于它的GPIO零将是标准的Raspberry Pi文档向前发展,这是值得学习的!
虽然表面上看起来更直截了当,但新图书馆有什么问题吗?与任**的编码库一样,这是一个意见问题。一方面,删除设置代码对于初学者和经验丰富的程序员来说都是非常好的。编写代码更简单快捷。
另一方面,确切地知道发生了什么对学习很重要。以GPIO Zero文档中的设置按钮为例:
按钮模块简化了按钮的设置。它知道按钮是输入,所以使用声明的管脚号进行设置。检查按钮是否按下也更容易,按下“.is”可检测按钮是否按下。
我们在Raspberry Pi按钮教程中使用了这个功能,这是熟悉库中差异的好方法。
的用户RPi.GPIO文件库将注意到Pi的内部上拉/下拉电阻器没有在代码中设置。这提出了一个有趣的问题。初学者是否有必要了解上拉/下拉电阻器?本·纳托尔再次回答了这个问题:
"You might argue that it's good to know about pull ups and pull downs, and you'd be right---but why do I have to teach that on day one?[...] If you want to teach the electronics in more depth there's plenty of scope for that---but it shouldn't be mandatory if you're just getting started."
总的来说,gpiozero的简单方法对于初学者和老手都是一件好事。除此之外,RPi.GPIO文件哪里也去不了。如果需要的话,它会一直在那里。
Python是Pi所熟知的语言,但它不是唯一的选择。如果您已经熟悉C语言的编程,那么布线Pi已经涵盖了您。
或者,如果你已经用JavaScript编程了,节点.js可以很容易地安装在Pi上。可以通过rpi GPIO npm库访问GPIO。rubyonrails也可以安装在Raspberry Pi上,尽管Pi可能不是学习Rails的最佳方法!
所有这些选择,再加上像优秀的pigpio这样的多语言库,都会使选择库变得混乱。这就是gpiozero的优势所在:对于想知道如何和从何开始的初学者来说。
如果你正处在一个你需要它没有提供的东西的时刻,你将完全准备好以你自己的速度潜入这些其他库。
gpiozero是最新的库,它为Pi提供了一个很好的理由。对于大多数用户来说,它使GPIO引脚的编码更易于读取,编写也更快。
考虑到树莓皮在教育中的用途,任何让学习更自然的东西都是好事。而RPi.GPIO文件到目前为止,gpiozero一直都是完美的,它采用了一个好主意,使它变得更好。
开始使用gpiozero的一个好方法是使用一个像music Door Sensor这样的初学者项目,并将其移植到新的库中。
...继,并在进入时触发其他对象。如果你有家庭音乐系统,为什么不为每个房间都放一首主题曲呢? ...
...这些快捷方式,使您成为编码忍者)。您需要创建一个新文件夹来存储Python脚本。输入以下命令: ...
...那些已经存在。对于我们的平板电脑,我们使用了一个STL文件,用于drplageture的Raspberry Pi平板电脑项目。 ...
...的做法是使用一个试验板和额外的布线,电阻,和RPi.GPIO文件图书馆。电子新手?这个项目很理想。 ...
...的项目?虽然看起来很奇怪,但Linux可能是个问题,所以为什么不考虑使用非Linux操作系统呢?一些已经发布,或改编,用于覆盆子皮。 ...
...推移,运动捕捉安全是不够的,你的树莓皮的相机模块,为什么不尝试一些夜间摄影?为此,你需要一个树莓皮无红外相机模块。 ...
...的多功能,它的小,和正确的情况下,它的坚固。这就是为什么树莓皮完美的工具,任何户外项目,你正在寻找建立。 ...