基于單片機(jī)的多路舵機(jī)平穩(wěn)驅(qū)動(dòng)方法的設(shè)計(jì)和實(shí)現(xiàn)
柴穩(wěn),徐婭萍,黃偉峰,支立純
(西北工業(yè)大學(xué),陜西西安710072)
摘要:實(shí)驗(yàn)標(biāo)定驅(qū)動(dòng)信號(hào)的脈沖寬度與舵機(jī)角位移之間的對(duì)應(yīng)關(guān)系并引入舵機(jī)行程響應(yīng)時(shí)間:將舵機(jī)大角度行程分成若干中間小行程接力調(diào)節(jié)。綜合響應(yīng)時(shí)間效應(yīng)利用單片機(jī)高頻的硬件中斷和全局的中斷計(jì)數(shù)進(jìn)行數(shù)據(jù)比較來實(shí)現(xiàn)各個(gè)分步階段的時(shí)問匹配,輸出通道硬件使用相應(yīng)的數(shù)據(jù)更新產(chǎn)牛各個(gè)階段的PwM信號(hào)。該方法直觀簡便,能夠成功實(shí)現(xiàn)13路舵機(jī)的乎穩(wěn)驅(qū)動(dòng).
關(guān)鍵詞:PwM;響應(yīng)時(shí)間;脈寬;舵機(jī);單片機(jī)
中圖分類號(hào):TM383.4 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1004—7018(2IlIl8)12—0043—03
0引 言
微型直流角位移伺服電動(dòng)機(jī),又稱舵機(jī),在航模及機(jī)器人相關(guān)領(lǐng)域有著廣泛應(yīng)用。舵機(jī)分為數(shù)字舵機(jī)和模擬舵機(jī)。常用的模擬舵機(jī)是由直流電動(dòng)機(jī)、電壓比較器及減速齒輪機(jī)構(gòu)組成,控制則采用基于位置伺服的PwM(脈寬調(diào)制)信號(hào)進(jìn)行驅(qū)動(dòng)。電機(jī)輸出軸的位置與PwM信號(hào)的脈寬有確定關(guān)系。常見的舵機(jī)驅(qū)動(dòng)系統(tǒng)是給出點(diǎn)位控制的PwM信號(hào),在行程較大時(shí)舵機(jī)在運(yùn)動(dòng)過程中不免產(chǎn)生震動(dòng)、抖動(dòng)以及較大的電源于擾。本文離散標(biāo)定舵機(jī)軸位和驅(qū)動(dòng)信號(hào)的脈寬的關(guān)系,測(cè)定舵機(jī)響應(yīng)時(shí)間的數(shù)據(jù)指標(biāo),并據(jù)此設(shè)計(jì)一種可以實(shí)現(xiàn)并行多路舵機(jī)較平穩(wěn)驅(qū)動(dòng)的軟件算法,最后利用AVR單片機(jī)設(shè)計(jì)出舵機(jī)平穩(wěn)驅(qū)動(dòng)系統(tǒng)。
1舵機(jī)簡介
舵機(jī)的內(nèi)部結(jié)構(gòu)包括直流電動(dòng)機(jī)、齒輪減速機(jī)構(gòu)、電位比較器以及控制電路等,直流電動(dòng)機(jī)高速輸出后經(jīng)減速機(jī)構(gòu)以低速大扭矩的形式輸出。文中使用的Futuba舵機(jī)采用50 Hz的TTL電平PwM信號(hào)驅(qū)動(dòng)。0.5~2.5 ms的脈寬對(duì)應(yīng)舵機(jī)O~180。的軸位輸出。舵機(jī)控制原理如圖l所示。圖l中信號(hào)調(diào)理電路產(chǎn)牛周期20 ms、脈寬1.5 ms的基準(zhǔn)信號(hào),將
輸入信號(hào)與基準(zhǔn)信號(hào)比較得到直流偏置電壓,該電壓與電位器反饋電壓相比較,得到糾正電壓驅(qū)動(dòng)電機(jī)轉(zhuǎn)動(dòng).電機(jī)轉(zhuǎn)動(dòng)引起旋轉(zhuǎn)電位器輸出變化,直至糾正電壓為零電機(jī)停止轉(zhuǎn)動(dòng)。模擬舵機(jī)不具有位置保持功能,失去PwM信號(hào)和電源信號(hào)中的任意一個(gè)都會(huì)造成位置不確定性。產(chǎn)生舵機(jī)所需要的PwM信號(hào)有多種方式[3-5]。用單片機(jī)來產(chǎn)生多路舵機(jī)控制信號(hào),成本低、通用性好,是目前用得較多的方式,只要設(shè)計(jì)合理緊湊,就能夠?qū)崿F(xiàn)多路舵機(jī)精確可靠且穩(wěn)定的控制。
本文結(jié)合AVR 8位單片機(jī)ATmega8的特點(diǎn)設(shè)計(jì)出一種的多路舵機(jī)平穩(wěn)驅(qū)動(dòng)控制方案。
2舵機(jī)輸入輸出的離散標(biāo)定及響應(yīng)時(shí)間概念
2.1舵機(jī)輸入輸出的離散標(biāo)定
Futuba舵機(jī)資料中的點(diǎn)位關(guān)系如
由于模擬舵機(jī)的制作精度較低,各元器件的參
數(shù)不準(zhǔn),因此大部分的模擬舵機(jī)輸出軸位和驅(qū)動(dòng)信號(hào)的脈寬并不成嚴(yán)格的線性關(guān)系,因此在設(shè)計(jì)舵機(jī)的驅(qū)動(dòng)系統(tǒng)之前對(duì)舵機(jī)軸位和驅(qū)動(dòng)信號(hào)的脈寬值作出標(biāo)定。當(dāng)脈寬在O.5~2.5 ms范圍之外時(shí)舵機(jī)不是正常的工作狀態(tài),因?yàn)槎娴臏p速齒輪的最后一級(jí)是半圓齒輪,將行程限定在180。范圍內(nèi)。
標(biāo)定實(shí)驗(yàn)中單片機(jī)的定時(shí)精度采取O.1 ms的分辨率,O.5~2 5 ms計(jì)21個(gè)標(biāo)定點(diǎn),每個(gè)標(biāo)定點(diǎn)都確保相應(yīng)PwM信號(hào)的作用時(shí)間至舵機(jī)穩(wěn)定靜止。將得到的數(shù)據(jù)進(jìn)
行整理,如圖2所示。
2.2舵桫響應(yīng)時(shí)間
設(shè)舵機(jī)從某一初始軸位P。(角度)在期望軸位P1(角度)對(duì)應(yīng)的PwM信號(hào)的作用下運(yùn)動(dòng)到P1位置,完成該行程s=1|P1一P0|所需的時(shí)間,為該行程的響應(yīng)時(shí)問。可測(cè)定無論行程5如何,將期望軸位對(duì)應(yīng)PwM信號(hào)持續(xù)2 s(100個(gè)周期),舵機(jī)確定達(dá)到期望軸位。測(cè)試舵機(jī)在空載和標(biāo)稱負(fù)載兩種情況下按表1的點(diǎn)位運(yùn)動(dòng),各個(gè)階段的響應(yīng)時(shí)間,如圖2所示.
考慮PwM信號(hào)的完整性,測(cè)試方法如下:程序控制單片機(jī)先從I/O輸出初始軸位PwM信號(hào)100個(gè)周期,后輸出期望軸位PwM信號(hào)N個(gè)周期。通過修改程序中個(gè)數(shù)N由大到小,得到能達(dá)期望軸位的,N的最小值。程序改變PwM信號(hào)脈寬的指令占用微秒級(jí)時(shí)間可忽略不計(jì)。
|