舵机介绍:http://www.51hei.com/mcu/2672.html
树莓派PWM函数介绍:http://shumeipai.nxez.com/2014/11/13/rpi-gpio-module-pwm-basic-function.html
舵机角度和占空比对应的关系动画。
对应关系如下,范围为-90°到+90°。为了方便计算,可以将其映射到0-180°
角度 | 20ms内脉冲宽度 | 占空比 | 映射后角度 |
-90° | 0.5ms | 2.5% | 0° |
-45° | 1ms | 5.0% | 45° |
0° | 1.5ms | 7.5% | 90° |
45° | 2ms | 10.0% | 135° |
90° | 2.5ms | 12.5% | 180° |
GPIO库中p.ChangeDutyCycle()需要控制PWM的参数需要的是占空比(确切的说,占空比*100),而我们要调节的是角度,估映射后角度和占空比的对应函数关系为:f = 1/18*角度 + 2.5
根据给出的对应关系,猜测是线性关系。
2.5 = 0*x + b
12.5 = 180*x + b
解二元一次方程 (小学数学 :)) x = 1/18 b=2.5
代码如下
def changeDgree(degree):
"""舵机转到给定到角度"""
duty_cycle = float(degree)/18 + 2.5
p.ChangeDutyCycle(duty_cycle)
定要等待,留下足量时间供电,以转到特定角度,即让设置生效
time.sleep(0.5)
时间: 2024-10-10 02:11:44