1. 什么是舵機(jī): 在機(jī)器人機(jī)電控制系統(tǒng)中,舵機(jī)控制效果是性能的重要影響因素。舵機(jī)可以在微機(jī)電系統(tǒng)和航模中作為基本的輸出執(zhí)行機(jī)構(gòu),其簡單的控制和輸出使得單片機(jī)系統(tǒng)非常容易與之接口。 舵機(jī)是一種位置(角度)伺服的驅(qū)動(dòng)器,適用于那些需要角度不斷變化并可以保持的控制系統(tǒng)。目前在高檔遙控玩具,如航模,包括飛機(jī)模型,潛艇模型;遙控機(jī)器人中已經(jīng)使用得比較普遍。舵機(jī)是一種俗稱,其實(shí)是一種伺服馬達(dá)。 還是看看具體的實(shí)物比較過癮一點(diǎn):


三根線的作用:紅色線是+5V供電,棕色線是地線,橙色線是信號(hào)線
2. 其工作原理是: 控制信號(hào)由接收機(jī)的通道進(jìn)入信號(hào)調(diào)制芯片,獲得直流偏置電壓。它內(nèi)部有一個(gè)基準(zhǔn)電路,產(chǎn)生周期為20ms,寬度為1.5ms的基準(zhǔn)信號(hào),將獲得的直流偏置電壓與電位器的電壓比較,獲得電壓差輸出。最后,電壓差的正負(fù)輸出到電機(jī)驅(qū)動(dòng)芯片決定電機(jī)的正反轉(zhuǎn)。當(dāng)電機(jī)轉(zhuǎn)速一定時(shí),通過級(jí)聯(lián)減速齒輪帶動(dòng)電位器旋轉(zhuǎn),使得電壓差為0,電機(jī)停止轉(zhuǎn)動(dòng)。當(dāng)然我們可以不用去了解它的具體工作原理,知道它的控制原理就夠了。就象我們使用晶體管一樣,知道可以拿它來做開關(guān)管或放大管就行了,至于管內(nèi)的電子具體怎么流動(dòng)是可以完全不用去考慮的。 3. 舵機(jī)的控制: 舵機(jī)的控制一般需要一個(gè)20ms左右的時(shí)基脈沖,該脈沖的高電平部分一般為0.5ms~2.5ms范圍內(nèi)的角度控制脈沖部分。以180度角度伺服為例,那么對(duì)應(yīng)的控制關(guān)系是這樣的: 0.5ms--------------0度; 1.0ms------------45度; 1.5ms------------90度; 2.0ms-----------135度; 2.5ms-----------180度; 請(qǐng)看下形象描述吧:
這只是一種參考數(shù)值,具體的參數(shù),請(qǐng)參見舵機(jī)的技術(shù)參數(shù)。 小型舵機(jī)的工作電壓一般為4.8V或6V,轉(zhuǎn)速也不是很快,一般為0.22/60度或0.18/60度,所以假如你更改角度控制脈沖的寬度太快時(shí),舵機(jī)可能反應(yīng)不過來。如果需要更快速的反應(yīng),就需要更高的轉(zhuǎn)速了。 要精確的控制舵機(jī),其實(shí)沒有那么容易,很多舵機(jī)的位置等級(jí)有1024個(gè),那么,如果舵機(jī)的有效角度范圍為180度的話,其控制的角度精度是可以達(dá)到180/1024度約0.18度了,從時(shí)間上看其實(shí)要求的脈寬控制精度為2000/1024us約2us。如果你拿了個(gè)舵機(jī),連控制精度為1度都達(dá)不到的話,而且還看到舵機(jī)在發(fā)抖。在這種情況下,只要舵機(jī)的電壓沒有抖動(dòng),那抖動(dòng)的就是你的控制脈沖了。而這個(gè)脈沖為什么會(huì)抖動(dòng)呢?當(dāng)然和你選用的脈沖發(fā)生器有關(guān)了。一些前輩喜歡用555來調(diào)舵機(jī)的驅(qū)動(dòng)脈沖,如果只是控制幾個(gè)點(diǎn)位置伺服好像是可以這么做的,可以多用幾個(gè)開關(guān)引些電阻出來調(diào)占空比,這么做簡單嗎,應(yīng)該不會(huì)啦,調(diào)試應(yīng)該是非常麻煩而且運(yùn)行也不一定可靠的。其實(shí)主要還是他那個(gè)年代,單片機(jī)這東西不流行呀,哪里會(huì)喲! 使用傳統(tǒng)單片機(jī)控制舵機(jī)的方案也有很多,多是利用定時(shí)器和中斷的方式來完成控制的,這樣的方式控制1個(gè)舵機(jī)還是相當(dāng)有效的,但是隨著舵機(jī)數(shù)量的增加,也許控制起來就沒有那么方便而且可以達(dá)到約2微秒的脈寬控制精度了。聽說AVR也有控制32個(gè)舵機(jī)的試驗(yàn)板,不過精度能不能達(dá)到2微秒可能還是要泰克才知道了。其實(shí)測(cè)試起來很簡單,你只需要將其控制信號(hào)與示波器連接,然后讓試驗(yàn)板輸出的舵機(jī)控制信號(hào)以2微秒的寬度遞增。 為什么FPPA就可以很方便地將脈寬的精度精確地控制在2微秒甚至2微秒一下呢。主要還是 delay memory這樣的具有創(chuàng)造性的指令發(fā)揮了功效。該指令的延時(shí)時(shí)間為數(shù)據(jù)單元中的立即數(shù)的值加1個(gè)指令周期(數(shù)據(jù)0出外,詳情請(qǐng)參見delay指令使用注意事項(xiàng))因?yàn)槭?font face="Times New Roman">8位的數(shù)據(jù)存儲(chǔ)單元,所以memory中的數(shù)據(jù)為(0~255),記得前面有提過,舵機(jī)的角度級(jí)數(shù)一般為1024級(jí),所以只用一個(gè)存儲(chǔ)空間來存儲(chǔ)延時(shí)參數(shù)好像還不夠用的,所以我們可以采用2個(gè)內(nèi)存單元來存放舵機(jī)的角度伺服參數(shù)了。所以這樣一來,我們可以采用這樣的軟件結(jié)構(gòu)了: 
舵機(jī)驅(qū)動(dòng)的應(yīng)用場(chǎng)合:
1. 高檔遙控仿真車,至少得包括左轉(zhuǎn)和右轉(zhuǎn)功能,高精度的角度控制,必然給你最真實(shí)的駕車體驗(yàn). 2. 多自由度機(jī)器人設(shè)計(jì),為什么日本人設(shè)計(jì)的機(jī)器人可以上萬RMB的出售, 而國內(nèi)設(shè)計(jì)的一些兩三千塊也賣不出去呢,還是一個(gè)品質(zhì)的問題. 3. 多路伺服航?刂,電動(dòng)遙控飛機(jī),油動(dòng)遙控飛機(jī),航海模型等
|