前段时间我分享了一种控制树莓派GPIO的方法,是基于pigpio库的,这个用起来也没什么大问题,但需要额外安装pigpio库才能使用,并且使用前需要手动启动pigpiod的守护进程,详情可以参考我的这篇教程: 中级篇——python控制树莓派IO口使用 *** 作+实例代码演示
兜兜转转,发现树莓派还有一款官方免安装的库gpiozero,不需要手动启动守护进程,使用起来更加简单,现在推荐给大家。
硬件准备- 树莓派主板(这里以4B为例)
- 基础电路搭建:面包板流水灯电路(电路比较简单,树莓派IO口接LED正极,LED负极串联一个电阻与GND连接)
- 树莓派引脚定义可以参考我的另一篇教程:树莓派通用引脚定义
由于是官方自带库,所以不需要额外进行软件安装 *** 作,确保使用的是树莓派官方系统即可。
接下来,我们之间看看例程吧
例程一:点亮LEDfrom 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小车相关文章和知识。
大家对感兴趣的知识点可以在文章下面留言,我可以优先帮大家讲解哦
欢迎大家光临我的淘宝小店【玩转智能机器人】,会定期推出教程中使用的物美价优的硬件,你的光临就是对我的支持
原创不易,转载请说明出处。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)