舵機(英文Servo)最早出現(xiàn)于航模運動,它是遙控模型用于控制動作的動力源,玩過遙控模型的朋友都知道舵機長什么模樣,為了適用于各種模型的需求,舵機發(fā)展出各種類型和大小的型號。舵機可以看成是一個封裝了電機、控制及反饋系統(tǒng)的動力總成,它使用簡單、動力強勁,能按照信號的要求精確的控制電機軸的位移角度,也算是伺服電機的一種,通常也被人們用于制作小型機器人、玩具及用于設(shè)備動作的動力源等用途。圖2就是一款風(fēng)靡世界的小型遙控機器人玩具I-SOBOT,它使用了多達十幾個的微型舵機用于各關(guān)節(jié)的動作和動力,使其能模仿人類的各種基本動作。
舵機的分類很多,按模型類型分可以分航模、車模以及船模用的,航模用舵機就要求速度快精度高,而車、船模用的一般要求有扭力大和具有防水性。按減速齒輪分可以分金屬齒和塑料齒,使用金屬齒扭力大、壽命長、價格高。按控制電路分模擬舵機(標(biāo)準(zhǔn)舵機)Standard Servo 和數(shù)字舵機Digital Servo,數(shù)字舵機有反應(yīng)速度更快,無反應(yīng)區(qū)范圍小,精度更高等新特性。舵機的規(guī)格型號則主要是以轉(zhuǎn)矩和速度來分類,一個標(biāo)稱值為0.0004N·M/0.21的舵機,就是指舵機輸出軸帶動一米長的搖臂時在最末端能發(fā)出0.0004N的力,并且能在0.21秒內(nèi)完成60°的角位移。
舵機是由外殼、電機、減速齒輪組、傳感器、控制電路和接口線纜組成的伺服系統(tǒng)。其結(jié)構(gòu)如圖3。舵機的電機有用普通小型直流電機的,也有用無刷電機的,使用無刷電機的舵機有穩(wěn)定性高、壽命更長、精度更高、扭力更大等特點。圖4就是一款使用無刷電機的舵機。圖3是舵機齒輪組是塑料的,而圖4的型號則是金屬齒輪組。舵機的位移傳感器是一個電位器,無論模擬舵機還是數(shù)字舵機都會用到,其阻值一般為5K。控制電路板主要是由電機驅(qū)動電路和信號電路,驅(qū)動電路由晶體管或FET場效應(yīng)管組成的放大電路構(gòu)成,采用場效應(yīng)管驅(qū)動可以獲得更大的驅(qū)動能力。模擬舵機的信號處理電路由專用的直流伺服電機控制芯片構(gòu)成,一般只能接收頻率為50HzPWM信號輸入,而數(shù)字舵機的信號處理電路由微處理器構(gòu)成,可以接收頻率為300HzPWM信號輸入,也就是模擬舵機受到輸入頻率限制要20ms才可以反應(yīng)一個動作,而數(shù)字舵機則能在短幾倍的時間內(nèi)執(zhí)行動作。圖5是模擬舵機和數(shù)字舵機PCB,左邊的是模擬舵機采用了晶體三極管加直流伺服電機控制芯片構(gòu)成,右邊的是數(shù)字舵機采用了場效應(yīng)管加微處理器構(gòu)成。
當(dāng)信號接口收到信號后,控制電路對信號做出計算和反應(yīng),驅(qū)動電機運轉(zhuǎn),電機帶動舵機輸出軸輸出力矩,同時也會帶動電位器。對于舵機來說這個電位器就是位置傳感器,它的當(dāng)前阻值代表著電機軸所處的位置,電機轉(zhuǎn)動時電位器的阻值也發(fā)生了變化,控制電路讀取電位器的阻值并與由信號計算出來的值做對比,其阻值不是計算值時電機繼續(xù)轉(zhuǎn)動,當(dāng)轉(zhuǎn)到信號要求位置時,控制電路控制電機停止運轉(zhuǎn),完成一個信號所要求的動作,當(dāng)電機軸受到外力而偏轉(zhuǎn)里,舵機會通過電位器感知到位置偏移,啟動電機進行校正。舵機原理的基本流程圖,可以看出它是一種閉環(huán)的控制系統(tǒng)。閉環(huán)控制是根據(jù)控制對象輸出反饋來進行校正的控制方式,它是在測量出實際與計劃發(fā)生偏差時,按定額或標(biāo)準(zhǔn)來進行糾正的。閉環(huán)控制,從輸出量變化取出控制信號作為比較量反饋給輸入端控制輸入量。舵機正是利用這個原理,用電機及齒輪組輸出,并利用隨之產(chǎn)生的電位器阻值變化量作為反饋量,控制電機是繼續(xù)轉(zhuǎn)動還是停止。
圖6 舵機的閉環(huán)控制
知道舵機的工作原理,我們還不能控制舵機,那么我們來看看怎么去實現(xiàn)對舵機的控制。數(shù)字舵機為了能用在舊的模型和舵機控制器,一般都會兼容模擬舵機的接口和控制方式,所以這里我們只討論傳統(tǒng)的模擬舵機控制方法。在各種模型中使用舵機時,一般都是直接使用多通道接收機,舵機連到接收機上就可以了,通過遙控器就可以對舵機進行控制了。圖7就是一款多通道的車模用的遙控器和接收機,現(xiàn)在也有許多可以多路的舵機程序控制器,一般用于機器人等的制作中,可以通過電腦、手機或其它界面進行控制,也可以把舵機的動作編程重放,有的甚至可以控制多達32路以上的舵機。舵機的接口引腳定義如圖8,黑色線為地線,紅色線為電源線,電源的標(biāo)稱范圍為4.8V到6V,也就是4節(jié)1.2V或4節(jié)1.5V的電池都能適用,而用于非模型用途時一般是使用5V電壓對其供電,黃色線則是控制信號線(也可能是白色),信號格式為PWM。
圖8 舵機接口定義
圖9就是標(biāo)準(zhǔn)舵機所要求的PWM信號波形,是一個周期為20ms,高電平脈寬最小1ms,最大2ms,一些特殊的舵機可能有點不一樣如parallax公司賣的一款機器人用舵機是0.75ms到2.25ms。因為舵機的設(shè)計用途決定它的輸出軸是不能連續(xù)轉(zhuǎn)動,輸出軸所能轉(zhuǎn)動的范圍是舵機設(shè)計時其結(jié)構(gòu)所限定的,一般最大是180°,一般模型用的最大在120°之內(nèi),也有一些專用于機器人的舵機可以到200°或是連續(xù)360°轉(zhuǎn)動,下面我們以轉(zhuǎn)動范圍180°的舵機為列來說明。把1到2ms的脈寬劃分到這180°角度,那么1.5ms脈寬時正好是中點,1ms脈寬時左轉(zhuǎn)到極限位置,2ms脈寬時右轉(zhuǎn)到極限位置°,在這個范圍內(nèi)脈寬的時長對應(yīng)特定的角度。圖10是脈寬和位置的對應(yīng)示意圖。控制信號進入模擬舵機的控制電路,獲得直流偏置電壓,控制電路內(nèi)部有一個基準(zhǔn)電路,產(chǎn)生周期為20ms,寬度為1.5ms的基準(zhǔn)信號,將獲得的直流偏置電壓與電位器產(chǎn)生電壓比較,獲得電壓差輸出,電壓差的正負(fù)輸出到電機驅(qū)動決定電機的正反轉(zhuǎn),通過級聯(lián)減速齒輪帶動電位器旋轉(zhuǎn),使得電壓差為0,電機停止轉(zhuǎn)動。
圖9 舵機PWM信號要求
圖10 脈寬和位移示意圖
看完上面的介紹,如果讀者朋友是熟悉單片機編程的,是可以很快的編寫出舵機的控制程序的。以轉(zhuǎn)動范圍為0-180°舵機為例,而信號脈寬是1ms-2ms,計算得知每角度的脈寬約為0.00556ms,只要把1ms加上角度值乘于0.00556ms,就可以得到角度值所需要的脈寬值。下面我們以STC89C51(也可以使用別的型號的51芯片)制作一個簡單的控制舵機的小實驗,使用12M晶振,使用12T的模式,每時鐘周期為12個晶振周期,也就是說每個時鐘周期為0.001ms。使用芯片內(nèi)的定時器最小可以生成0.001ms脈寬,對比上面的數(shù)據(jù),我們可以得知這個數(shù)值不足以精確輸出每角度的脈寬值,我們主要是實驗舵機控制方法,需要更高精度的話則需要更高頻率的芯片或用STC89C51的6T模式去實現(xiàn)。程序中定時器0先計時高電平,到達后再計時生成20ms減去高電平時間的低電平脈寬,程序主程序不斷的使舵機變換5個角度。電路只使用最小系統(tǒng),電路圖看圖11,C4是電解電容容量在470uF或以上,因為某些舵機工作時電流會比較大,這個電容可以使電源電壓不會在舵機工作時被拉低。筆者用這個程序驅(qū)動TowerPro MG995舵機,用標(biāo)準(zhǔn)1-2ms信號可以讓其正常工作,但這個舵機動作轉(zhuǎn)角范圍只有90°,要想它工作中0-180°度,脈寬要在0.5-2.5ms,因此筆者在壓縮包里提供了2份代碼,供大家參考。圖12是實驗的實物。
圖11 實驗電路圖
看完上面的介紹,你是不是會說舵機既然有強勁有力的減速裝置,又可以精確控制,那如果能360°旋轉(zhuǎn)的話,用于機器小車的制作不是很方便嗎?確實是可以這樣的,只是市場上售賣的舵機一般不能連續(xù)旋轉(zhuǎn),不過我們只要對它進行小小的改動就可以實現(xiàn),但不是所有型號的舵機都適于改動。修改后的舵機同樣是使用原有的驅(qū)動方式,只是改變信號脈寬時不是改變角度,而是改變其轉(zhuǎn)向,輸入中點1.5ms信號時舵機停轉(zhuǎn),使用信號周期和脈寬可以實現(xiàn)轉(zhuǎn)向、停止以及調(diào)速。改動使用的原理其實就是把位置傳感反饋信號從閉環(huán)系統(tǒng)中斷開,形成開環(huán)系統(tǒng)。通常改造需要改造舵機內(nèi)部的結(jié)構(gòu),如果不是必要的,最好不要進行,以免造成浪費。MG995是一款小型大扭力的金屬齒的模擬舵機,它的結(jié)構(gòu)可以很簡單的改裝成可連續(xù)轉(zhuǎn)動的舵機。只需要以下幾個步驟:
1.打開外殼找到齒輪組上的限位銷
2.用鉗子拔去限位銷
3.拆除電位器,用小型精密可調(diào)的5K電位器取代原電位器,先把換上的電位器調(diào)到中點,也就是2邊阻值為2.5K,再往舵機輸入1.5ms的信號,讓舵機旋轉(zhuǎn),再細(xì)調(diào)電位器直到舵機停轉(zhuǎn)。裝好外殼,完成改裝。
評論
查看更多