以前用了一份代码,控制pwm输出很不稳定,出现抖舵现象,用pihpio库控制pwm舵机可以解决这个问题
教程
1.安装pigpio
$ sudo apt install pigpio
2.启用remote gpio
$ sudo raspi-config
选择Interface Options
启用Remote GPIO
3.设置开机自启并启动服务
设置开机自启
$ sudo systemctl enable pigpiod
启动服务(默认所有ip均可连接,端口8888)
$ sudo systemctl start pigpiod
其他方式启动服务:指定允许连接的ip和监听端口
$ sudo pigpiod -n localhost # allow localhost only
$ sudo pigpiod -n 192.168.1.65 # allow 192.168.1.65 only
$ sudo pigpiod -n localhost -n 192.168.1.65 # allow localhost and 192.168.1.65 only
安装成功后,输入命令sudo pigpiod运行pigpio守护进程,python接口通过和pigpio守护进程通信来控制GPIO口。
函数set_PWM_dutycycle, set_PWM_frequency,set_PWM_range分别控制PWM的占空比、频率和控制精度
!!! python程序:
import pigpio
import time
def duoji_open(port,angle1):
while angle1 > 90:
pi.set_PWM_dutycycle(port, angle1) # 2.5%
time.sleep(0.03)
angle1 -= 1
def duoji_close(port,angle2):
while angle2 < 135:
pi.set_PWM_dutycycle(port, angle2) # 2.5%
time.sleep(0.03)
angle2 += 1
if __name__ == '__main__':
pi = pigpio.pi()
pi.set_PWM_frequency(18, 50) # frequency 50Hz
pi.set_PWM_range(18, 1000) # set range 1000
time.sleep(0.5) # wait for 2 seconds
port=18
angle1 = 135
angle2 = 90
duoji_open(port,angle1)
time.sleep(1)
duoji_close(port,angle2)