天天看點

樹莓派c語言舵機程式,樹莓派控制舵機資料(示例代碼)

舵機介紹:http://www.51hei.com/mcu/2672.html

樹莓派PWM函數介紹:http://shumeipai.nxez.com/2014/11/13/rpi-gpio-module-pwm-basic-function.html

舵機角度和占空比對應的關系動畫。

樹莓派c語言舵機程式,樹莓派控制舵機資料(示例代碼)

對應關系如下,範圍為-90°到+90°。為了友善計算,可以将其映射到0-180°

角度

20ms内脈沖寬度

占空比

映射後角度

-90°

0.5ms

2.5%

-45°

1ms

5.0%

45°

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)