|
舵機(jī)是一種位置(角度)伺服的驅(qū)動器,適用于那些需要角度不斷變化并可以保持的控制系統(tǒng)。目前在高檔遙控玩具,如航模,包括飛機(jī)模型,潛艇模型;遙控機(jī)器人中已經(jīng)使用得比較普遍。舵機(jī)是一種俗稱,其實是一種伺服馬達(dá)。在機(jī)器人機(jī)電控制系統(tǒng)中,舵機(jī)控制效果是性能的重要影響因素。舵機(jī)可以在微機(jī)電系統(tǒng)和航模中作為基本的輸出執(zhí)行機(jī)構(gòu),其簡單的控制和輸出使得單片機(jī)系統(tǒng)非常容易與之接口。
舵機(jī)的工作原理:一般來講,舵機(jī)主要由以下幾個部分組成, 舵盤、減速齒輪組、位置反饋電位計、直流電機(jī)、控制電路板等。舵機(jī)的控制信號為周期是20ms的脈寬調(diào)制(PWM)信號,其中脈沖寬度從0.5ms-2.5ms,相對應(yīng)舵盤的位置為0-180度,呈線性變化。也就是說,給它提供一定的脈寬,它的輸出軸就會保持在一個相對應(yīng)的角度上,無論外界轉(zhuǎn)矩怎樣改變,直到給它提供一個另外寬度的脈沖信號,它才會改變輸出角度到新的對應(yīng)的位置上。轉(zhuǎn)動范圍不能超過180度。適合于需要不斷角度變化并可以保持的驅(qū)動電路中。
控制電路板中的信號調(diào)制芯片接收來自信號線的信號,獲得偏置電壓,芯片內(nèi)部本身帶有一個基準(zhǔn)電路,產(chǎn)生周期為20毫秒,寬度為1.5MS的基準(zhǔn)信號,獲得的偏置電壓信號會與基準(zhǔn)電壓進(jìn)行比較,電壓差的正負(fù)值輸出到電機(jī)驅(qū)動芯片將決定電機(jī)的正反轉(zhuǎn),因為舵機(jī)的輸出軸與位置反饋電位計是相連的,電機(jī)的轉(zhuǎn)動通過級聯(lián)減速齒輪帶動反饋電位計(電位器)旋轉(zhuǎn),電位計將輸出一個電壓信號到控制電路板,進(jìn)行負(fù)反饋,當(dāng)電壓差為零時,電機(jī)停止轉(zhuǎn)動,并達(dá)到預(yù)期的轉(zhuǎn)動角度位置。
舵機(jī)的控制:
舵機(jī)的控制一般需要一個20ms左右的時基脈沖,該脈沖的高電平部分一般為0.5ms~2.5ms范圍內(nèi)的角度控制脈沖部分。以180度角度伺服為例,那么對應(yīng)的控制關(guān)系是這樣的:
0.5ms-----------負(fù)90度;
1.0ms-----------負(fù)45度;
1.5ms------------0度;
2.0ms-----------正45度;
2.5ms-----------正90度;
請看下形象描述吧:
這只是一種參考數(shù)值,具體的參數(shù),請參見舵機(jī)的技術(shù)參數(shù)。
第八屆的B車模采用的舵機(jī)是SD_5參數(shù)如下:
簡介:數(shù)字舵機(jī),最高工作電壓是5.5V,正常工作電流是200mA,具有堵轉(zhuǎn)保護(hù)功能,當(dāng)堵轉(zhuǎn)電流大于或等于800mA時,舵機(jī)在三秒后開始保護(hù)電路、電機(jī),降低電流,停止轉(zhuǎn)動。但不排除電壓過高燒壞的風(fēng)險,詳細(xì)了解一款舵機(jī)的工作參數(shù)是精準(zhǔn)控制的前提。
在我們看來,理想的舵機(jī)模型應(yīng)滿足以下條件
1、響應(yīng)時間為零,在接到指令后即可轉(zhuǎn)動到指定位置。
2、力矩為無窮大,可以克服一切機(jī)械阻力。
3、對外界的電磁干擾不敏感,也不對外產(chǎn)生電磁干擾。
4、工作中中值恒定。
5、控制精度足夠高。
6、舵機(jī)轉(zhuǎn)角與高電平時間呈線性關(guān)系。
出于以上幾點,我們知道理想模型是不存在的,但我們可以對實際模型進(jìn)行改進(jìn)。如何縮短舵機(jī)的響應(yīng)時間?提高工作電壓是一個方法,在最高允許工作電壓下,電壓越高,響應(yīng)越快。加長舵機(jī)機(jī)械臂也是一個方法,根據(jù)杠桿原理,臂長越長,前輪轉(zhuǎn)動相同的角度,舵機(jī)需要轉(zhuǎn)動的角度越小,但臂長加長,對舵機(jī)輸出力矩強(qiáng)度要求就越高,當(dāng)強(qiáng)度不能滿足要求時,控制精度就會下降,并有可能因為電流過大燒壞舵機(jī)。
舵機(jī)控制:(以下為摘抄參考內(nèi)容)
小型舵機(jī)的工作電壓一般為4.8V或6V,轉(zhuǎn)速也不是很快,一般為0.22/60度或0.18/60度,所以假如你更改角度控制脈沖的寬度太快時,舵機(jī)可能反應(yīng)不過來。如果需要更快速的反應(yīng),就需要更高的轉(zhuǎn)速了。
要精確的控制舵機(jī),其實沒有那么容易,很多舵機(jī)的位置等級有1024個,那么,如果舵機(jī)的有效角度范圍為180度的話,其控制的角度精度是可以達(dá)到180/1024度約0.18度了,從時間上看其實要求的脈寬控制精度為2000/1024us約2us。如果你拿了個舵機(jī),連控制精度為1度都達(dá)不到的話,而且還看到舵機(jī)在發(fā)抖。在這種情況下,只要舵機(jī)的電壓沒有抖動,那抖動的就是你的控制脈沖了。而這個脈沖為什么會抖動呢?當(dāng)然和你選用的脈沖發(fā)生器有關(guān)了。一些前輩喜歡用555來調(diào)舵機(jī)的驅(qū)動脈沖,如果只是控制幾個點位置伺服好像是可以這么做的,可以多用幾個開關(guān)引些電阻出來調(diào)占空比,這么做簡單嗎,應(yīng)該不會啦,調(diào)試應(yīng)該是非常麻煩而且運行也不一定可靠的。其實主要還是他那個年代,單片機(jī)這東西不流行呀,哪里會喲!
使用傳統(tǒng)單片機(jī)控制舵機(jī)的方案也有很多,多是利用定時器和中斷的方式來完成控制的,這樣的方式控制1個舵機(jī)還是相當(dāng)有效的,但是隨著舵機(jī)數(shù)量的增加,也許控制起來就沒有那么方便而且可以達(dá)到約2微秒的脈寬控制精度了。聽說AVR也有控制32個舵機(jī)的試驗板,不過精度能不能達(dá)到2微秒可能還是要泰克才知道了。其實測試起來很簡單,你只需要將其控制信號與示波器連接,然后讓試驗板輸出的舵機(jī)控制信號以2微秒的寬度遞增。
為什么FPPA就可以很方便地將脈寬的精度精確地控制在2微秒甚至2微秒一下呢。主要還是 delay memory這樣的具有創(chuàng)造性的指令發(fā)揮了功效。該指令的延時時間為數(shù)據(jù)單元中的立即數(shù)的值加1個指令周期(數(shù)據(jù)0出外,詳情請參見delay指令使用注意事項)因為是8位的數(shù)據(jù)存儲單元,所以memory中的數(shù)據(jù)為(0~255),記得前面有提過,舵機(jī)的角度級數(shù)一般為1024級,所以只用一個存儲空間來存儲延時參數(shù)好像還不夠用的,所以我們可以采用2個內(nèi)存單元來存放舵機(jī)的角度伺服參數(shù)了。所以這樣一來,我們可以采用這樣的軟件結(jié)構(gòu)了:
|
|