在使用树莓派制作一些电子小作品的时候,我们经常需要用到舵机等需要pwm波操控的模块,在这里,向大家推荐一个非常实用的pwm波形产生/读取库函数:pigpio
基本介绍
pigpio是一个由C语言编写的库函数,并提供Python接口,由于我用Python的经验比较丰富,所以接下来的文章主要介绍它的python接口的使用。
根据官方文档上的介绍,这个库主要特性有(翻译自官方文档,可能有错漏):
- 能够同时在31个GPIO口进行精确至5微秒的硬件定时采样
- 能够同时在31个GPIO口产生硬件定时PWM
- 能够同时在31个GPIO口产生硬件定时伺服脉冲
- 同时监听31个GPIO口,电平更改时进行回调(精确到几个微秒)
- 同时监听31个GPIO口,电平更改时通过管道发送通知
- 可以在规定的时间间隔内进行回调
- 可以同时读取/写入存储区中的所有GPIO(0-31,32-53)
- 可以实现对GPIO状态的读,写模式和内部拉动
- 提供套接字和管道接口
- 可以用于生成GPIO电平变化的波形(精确到几个微秒)
- 可以使用任何用户的GPIO的软件串行链接
- 通过套接字和管道接口进行基本权限控制
- 在pigpio守护进程上创建和运行脚本
安装
安装方法有多种,采取其中一种就可以,不必重复安装:
直接安装:
绝大多数人树莓派上的操作系统是Raspbian,可以直接在命令行输入下列命令安装:
sudo apt-get update
sudo apt-get install pigpio python-pigpio python3-pigpio
make安装:
可以采用make进行安装,有几种方法,请参考以下步骤:
请注意:如果你之前安装过,请先删除或者重命名任何现有的pigpio zip或tar文件。删除或重命名任何现有的PIGPIO或pigpio-master目录(记得要先保存该目录中的自己的文件)。
方法一:
rm pigpio.zip
sudo rm -rf PIGPIO
wget abyz.me.uk/rpi/pigpio/pigpio.zip
unzip pigpio.zip
cd PIGPIO
make
sudo make install
方法二:
rm pigpio.tar
sudo rm -rf PIGPIO
wget abyz.me.uk/rpi/pigpio/pigpio.tar
tar xf pigpio.tar
cd PIGPIO
make
sudo make install
方法三:
rm master.zip
sudo rm -rf pigpio-master
wget https://github.com/joan2937/pigpio/archive/master.zip
unzip master.zip
cd pigpio-master
make
sudo make install
用以上任何方法安装成功后,运行以下测试:
sudo ./x_pigpio # check C I/F
sudo pigpiod # 开启守护进程
./x_pigpiod_if2 # check C I/F to daemon
./x_pigpio.py # check Python I/F to daemon
./x_pigs # check pigs I/F to daemon
./x_pipe # check pipe I/F to daemon
若失败,请换方法安装
安装成功后,在下一篇,我将进一步介绍具体如何使用这个库。