舵机的控制原理各位可以看这篇文章——舵机控制原理
python3有相应的PWM控制库,如 python3-libgpiod、python-periphery 。但由于不同舵机实际的0°~180°对应的脉宽为不一定是0.5ms~2.5ms,也可能为0.4ms~2.4ms这样的微小误差,这会导致你标准库控制舵机的角度就不精确。
所以本次采用的是python3的文件IO来配置Linux板子的PWM设备,其控制进准度代码如下:
import time
# 导出 PWM 控制器
def pwm_export(pwmid):
with open('/sys/class/pwm/pwmchip%d/export' % pwmid, 'wb') as f:
f.write("0".encode())
# 取消导出 PWM 控制器
def pwm_unexport(pwmid):
with open('/sys/class/pwm/pwmchip%d/unexport' % pwmid, 'wb') as f:
f.write("0".encode())
# 配置 PWM 周期和占空比
def pwm_config(pw