PCA9685舵机控制板
https://github.com/adafruit/Adafruit_Python_PCA9685
PCA9685 c++ WiringPi https://www.raspberrypi.org/forums/viewtopic.php?t=67618
https://www.jianshu.com/p/782058c93a7a
https://www.jianshu.com/p/b2a6306e583d?from=timeline&isappinstalled=0
https://zhuanlan.zhihu.com/p/22805173
https://www.cnblogs.com/yjphhw/p/10649940.html
https://blog.csdn.net/qq_41559171/article/details/87950642
http://www.cirmall.com/bbs/thread-97290-1-1.html
假设舵机为50HZ的频率,脉宽为0.5ms~2.5ms,12位分辨率(4096级),相关计算如下:
PWM周期:1/50=0.02s=20ms=20000us
时间分辨率:200000/(2^{12})=4.88us
最大脉宽时间:2.5ms-0.5ms=2ms=2000us
最大脉宽时间可分成的份数:2000us/4.88us=410
0-180度的舵机,角度分辨率:180^{\circ}/410=0.439^{\circ}
如果在舵机控制中,采用内置晶振,取osc_clock=25000000,update_rate=50(舵机控制频率50Hz)
设置角度
60度对应的脉宽=0.5ms+(60/180)*(2.5ms-0.5ms)=1.1666ms
利用占空比=1.1666ms/20ms=off/4096,off=239,50hz对应周期20ms
setPWM(num,0,239);;;;当然也可以利用SERVO000和SERVO180计算