树莓派使用pigpio库产生PWM波实现舵机控制
一:pigpio库简介
pigpio是一个用于树莓派的库,它允许控制树莓派的通用输入输出(GPIO)引脚。
它的下载与安装步骤请参考:http://abyz.me.uk/rpi/pigpio/download.html
它提供了c语言风格与python语言风格的库函数,我们可以调用相关的库函数实现跟GPIO相关的操作。
与PWM操作相关的几个函数的详细解释可以参考http://abyz.me.uk/rpi/pigpio/python.html#get_PWM_frequency
二:产生PWM波相关的几个库函数
更详细的解释请参考:
http://abyz.me.uk/rpi/pigpio/python.html

三:具体的实现过程
此处实现了使用遥控器控制舵机1,2的旋转角度,与舵机3的连续旋转/反向旋转/与停止。
关于如何获取遥控器信号可参考上一篇博客。
#!/usr/bin/env python
#导入相关的库文件
import rospy
from std_msgs.msg import String
from geometry_msgs.msg import Twist
import sys, select, termios, tty
#导入pigpio库
import pigpio
import time
#建立实体化对象
pi=pigpio.pi()
#tick_0用于存储低电平捕获的时间戳
tick_0=[None,None,None]
#tick_1用于存储高电平捕获的时间戳
tick_1=[None,None,None]
#diff用于存储脉宽
diff=[1500,None,1500]
#定义回调函数
def in_callback(argu,gpio,level,tick):
#如果是低电平,则说明下降沿到来,通过数组diff将两次捕获的时间差存储起来
if level==0:
#存储此次时间戳
tick_0[argu]=tick
#如果高电平捕获的时间戳不为0
if tick_1[argu] is not None:

本文介绍了如何利用树莓派的pigpio库生成PWM波,通过遥控器信号控制舵机1,2的角度,并实现舵机3的连续旋转与停止。重点讲解了pigpio库的使用方法和舵机角度映射技术。
最低0.47元/天 解锁文章
1203





