树莓派gpio控制——免安装官方库gpiozero的使用

树莓派gpio控制——免安装官方库gpiozero的使用,第1张

背景故事

前段时间我分享了一种控制树莓派GPIO的方法,是基于pigpio库的,这个用起来也没什么大问题,但需要额外安装pigpio库才能使用,并且使用前需要手动启动pigpiod的守护进程,详情可以参考我的这篇教程: 中级篇——python控制树莓派IO口使用 *** 作+实例代码演示

兜兜转转,发现树莓派还有一款官方免安装的库gpiozero,不需要手动启动守护进程,使用起来更加简单,现在推荐给大家。

硬件准备
  1. 树莓派主板(这里以4B为例)
  2. 基础电路搭建:面包板流水灯电路(电路比较简单,树莓派IO口接LED正极,LED负极串联一个电阻与GND连接)
  3. 树莓派引脚定义可以参考我的另一篇教程:树莓派通用引脚定义
软件准备

由于是官方自带库,所以不需要额外进行软件安装 *** 作,确保使用的是树莓派官方系统即可。

接下来,我们之间看看例程吧

例程一:点亮LED
from gpiozero import LED
from time import sleep

# 这里的数字代表树莓派内部定义的GPIO的引脚编号,不是丝印上的数字顺序
led = LED(17)

while True:
    led.on()
    sleep(1)
    led.off()
    sleep(1)
程序解析

gpiozero库里封装好了LED模块,支持常用的 on() 打开,off() 关闭,toggle() 翻转,blink()闪烁等,非常实用。

例程二:PWM控制呼吸灯
from gpiozero import PWMLED
from time import sleep

# 这里的数字代表树莓派内部定义的GPIO的引脚编号,不是丝印上的数字顺序
led = PWMLED(18)

led.pulse(2, 2)
sleep(12)

呼吸灯效果如下

程序解析

gpiozero库里封装好了PWMLED模块,支持常用的 on() 打开,off() 关闭,toggle() 翻转,blink()闪烁,pulse() 脉冲等,非常实用。

这里用到了pulse,参数解析如下:

pulse(fade_in_time=1, fade_out_time=1, n=None, background=True)

  • fade_in_time (float) – 淡入秒数,默认为1.
  • fade_out_time (float) – 淡出秒数,默认为1.
  • n (int or None) – 次数,默认None,表示永远执行.
  • background - 是否后台执行,默认True
结语

怎么样?例程看到这里是否发现用这个库确实比pigpio好用太多了,代码也简单了很多,这个库不仅仅可以用来点亮LED,还支持非常多的外设,比如舵机、电机、RGBLED等等,这里截图如下


那么话说回来,pigpio和gpiozero这两个库有什么区别?我查阅了一些资料,结论是,gpiozero更方便控制本地gpio,而pigpio却能控制局域网内其他树莓派的gpio,所以这两个库用途不一样,本地使用推荐gpiozero。

参考资料

这个库的官方资料也非常详细,只不过是全英文的,放在这里给大家参考 gpio zero 文档

·
·
·

欢迎各位老铁一键三连,本号后续会不断更新树莓派、人工智能、STM32、ROS小车相关文章和知识。

大家对感兴趣的知识点可以在文章下面留言,我可以优先帮大家讲解哦

欢迎大家光临我的淘宝小店【玩转智能机器人】,会定期推出教程中使用的物美价优的硬件,你的光临就是对我的支持

原创不易,转载请说明出处。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/732283.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-27
下一篇 2022-04-27

发表评论

登录后才能评论

评论列表(0条)

保存