標題: 舵機的相關原理與控制原理 [打印本頁]

作者: 51黑fan    時間: 2016-1-29 20:10
標題: 舵機的相關原理與控制原理
1.       什么是舵機:
    在機器人機電控制系統中,舵機控制效果是性能的重要影響因素。舵機可以在微機電系統和航模中作為基本的輸出執(zhí)行機構,其簡單的控制和輸出使得單片機系統非常容易與之接口。
   舵機是一種位置(角度)伺服的驅動器,適用于那些需要角度不斷變化并可以保持的控制系統。目前在高檔遙控玩具,如航模,包括飛機模型,潛艇模型;遙控機器人中已經使用得比較普遍。舵機是一種俗稱,其實是一種伺服馬達。
     還是看看具體的實物比較過癮一點:





三根線的作用:紅色線是+5V供電,棕色線是地線,橙色線是信號線
2.     其工作原理是:
控制信號由接收機的通道進入信號調制芯片,獲得直流偏置電壓。它內部有一個基準電路,產生周期為20ms,寬度為1.5ms的基準信號,將獲得的直流偏置電壓與電位器的電壓比較,獲得電壓差輸出。最后,電壓差的正負輸出到電機驅動芯片決定電機的正反轉。當電機轉速一定時,通過級聯減速齒輪帶動電位器旋轉,使得電壓差為0,電機停止轉動。當然我們可以不用去了解它的具體工作原理,知道它的控制原理就夠了。就象我們使用晶體管一樣,知道可以拿它來做開關管或放大管就行了,至于管內的電子具體怎么流動是可以完全不用去考慮的。
3.     舵機的控制:
舵機的控制一般需要一個20ms左右的時基脈沖,該脈沖的高電平部分一般為0.5ms~2.5ms范圍內的角度控制脈沖部分。以180度角度伺服為例,那么對應的控制關系是這樣的:
   0.5ms--------------0度;
   1.0ms------------45度;
   1.5ms------------90度;
   2.0ms-----------135度;
   2.5ms-----------180度;
請看下形象描述吧:


這只是一種參考數值,具體的參數,請參見舵機的技術參數。
   小型舵機的工作電壓一般為4.8V6V,轉速也不是很快,一般為0.22/60度或0.18/60度,所以假如你更改角度控制脈沖的寬度太快時,舵機可能反應不過來。如果需要更快速的反應,就需要更高的轉速了。
要精確的控制舵機,其實沒有那么容易,很多舵機的位置等級有1024個,那么,如果舵機的有效角度范圍為180度的話,其控制的角度精度是可以達到180/1024度約0.18度了,從時間上看其實要求的脈寬控制精度為2000/1024us2us。如果你拿了個舵機,連控制精度為1度都達不到的話,而且還看到舵機在發(fā)抖。在這種情況下,只要舵機的電壓沒有抖動,那抖動的就是你的控制脈沖了。而這個脈沖為什么會抖動呢?當然和你選用的脈沖發(fā)生器有關了。一些前輩喜歡用555來調舵機的驅動脈沖,如果只是控制幾個點位置伺服好像是可以這么做的,可以多用幾個開關引些電阻出來調占空比,這么做簡單嗎,應該不會啦,調試應該是非常麻煩而且運行也不一定可靠的。其實主要還是他那個年代,單片機這東西不流行呀,哪里會喲!
使用傳統單片機控制舵機的方案也有很多,多是利用定時器和中斷的方式來完成控制的,這樣的方式控制1個舵機還是相當有效的,但是隨著舵機數量的增加,也許控制起來就沒有那么方便而且可以達到約2微秒的脈寬控制精度了。聽說AVR也有控制32個舵機的試驗板,不過精度能不能達到2微秒可能還是要泰克才知道了。其實測試起來很簡單,你只需要將其控制信號與示波器連接,然后讓試驗板輸出的舵機控制信號以2微秒的寬度遞增。
     為什么FPPA就可以很方便地將脈寬的精度精確地控制在2微秒甚至2微秒一下呢。主要還是 delay memory這樣的具有創(chuàng)造性的指令發(fā)揮了功效。該指令的延時時間為數據單元中的立即數的值加1個指令周期(數據0出外,詳情請參見delay指令使用注意事項)因為是8位的數據存儲單元,所以memory中的數據為(0255),記得前面有提過,舵機的角度級數一般為1024級,所以只用一個存儲空間來存儲延時參數好像還不夠用的,所以我們可以采用2個內存單元來存放舵機的角度伺服參數了。所以這樣一來,我們可以采用這樣的軟件結構了:



舵機驅動的應用場合:
         1.    高檔遙控仿真車,至少得包括左轉和右轉功能,高精度的角度控制,必然給你最真實的駕車體驗.
         2.    多自由度機器人設計,為什么日本人設計的機器人可以上萬RMB的出售,
             而國內設計的一些兩三千塊也賣不出去呢,還是一個品質的問題.
         3.    多路伺服航模控制,電動遙控飛機,油動遙控飛機,航海模型等



作者: 騎著蝸牛游世界    時間: 2016-4-16 23:23
很好,受益非淺
作者: bogejiayou    時間: 2016-4-30 16:42
不錯不錯,學習了!
作者: enjoy一丶水    時間: 2016-5-16 17:00
原理是能看東南,但用起來還是不行、
作者: 亙黑鹿    時間: 2016-5-18 12:58
像這種貼才有點干勁嘛!哈哈學習了!等我掌握技術先專發(fā)帖解決問題交流技術! 牛
作者: 楊程123    時間: 2016-8-12 15:35
學到了很多東西,謝謝

作者: keil    時間: 2016-10-10 19:21
好帖,正在研究舵機控制
作者: qjyjack612510    時間: 2017-3-21 23:31
正好深入了解下,,謝謝樓主分享。
作者: pcisback    時間: 2017-9-28 17:27
打算做一個單片機的舵機原理,控制90度數左右線性轉動,學習到東西了
作者: aaaaa222    時間: 2017-10-24 21:22
有代碼嗎?
作者: stc0079    時間: 2017-11-16 18:31
如果再加上代碼說明,就更加直觀了。。。
作者: 浪子的心    時間: 2018-5-7 19:45
挺給力的
作者: 渣豪    時間: 2018-5-31 20:37
贊贊贊    受益匪淺
作者: fanjialin    時間: 2019-12-9 10:50
真的很好




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1