前言
之前使用gpiod命令gpioset等去操作gpio去控制led。命令行工具只能玩玩,还是要编程调用api的,现在要使用gpiod对应的api包来操作gpio。
如果使用c来开发,安装依赖库:
- sudo apt-get install libgpiod-dev
如果使用python开发,安装 - sudo apt-get install python3-libgpiod
现在准备使用python库python3-libgpiod去操作。
但是要使用apt安装python3-libgpiod的话,ubuntu18.04默认的源不行,我就重新制作了ubuntu22.04的镜像。所以这里都是在ubuntu22.04的版本去操作的,制作ubuntu22.04的版本的rootfs可以看之前的文章。
配置国内的apt源
这里参考前面的文档
使用python3-libgpiod控制led灯
安装python3-libgpiod
apt install python3-libgpiod
这个安装后,使用python就可以 import gpiod了。
TIPS:这里注意不是pip install gpiod去安装这个包。我使用了pip去安装gpiod,有同样的包名gpiod,但是却不是这个。
写代码
我这里是让泰山派自带的rbg灯的一个gpio1 9的gpio连接的那个灯去闪烁。
import time
import gpiod
LINE_OFFSET = 9
chip1 = gpiod.Chip("1", gpiod.Chip.OPEN_BY_NUMBER)
gpio1_b9 = chip1.get_line(LINE_OFFSET)
gpio1_b9.request(consumer="gpio", type=gpiod.LINE_REQ_DIR_OUT, default_vals=[0])
try:
while True:
gpio1_b9.set_value(1)
time.sleep(0.1)
gpio1_b9.set_value(0)
time.sleep(0.1)
finally:
gpio1_b9.set_value(1)
gpio1_b9.release()