摘要:基于小型舵機(jī)機(jī)器人的控制特點(diǎn),在閱讀國(guó)內(nèi)外重要文獻(xiàn)的基礎(chǔ)上結(jié)合實(shí)際情況,對(duì)小型仿人機(jī)器人控制系統(tǒng)進(jìn)行了相關(guān)的設(shè)計(jì)。用Atmega16單片機(jī)作為微控制器并利用protel99SE完成了控制系統(tǒng)硬件方面的設(shè)計(jì),然后根據(jù)舵機(jī)的控制方式,利用分時(shí)成組法,使得單片機(jī)控制24個(gè)舵機(jī)同時(shí)轉(zhuǎn)動(dòng)。最后根據(jù)仿人機(jī)器人行走的不同位姿來(lái)確定每個(gè)舵機(jī)的轉(zhuǎn)動(dòng)角度,從而控制機(jī)器人穩(wěn)定行走。
關(guān)鍵詞:舵機(jī);Atmega16;protel99S
中圖分類號(hào):TB文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1672—3198(2015)21022102
1引言
仿人機(jī)器人匯集了計(jì)算機(jī)、電子、通信、自動(dòng)控制、傳感器等多領(lǐng)域的尖端技術(shù),代表了機(jī)電一體化的最高成就,是一個(gè)熱門(mén)的研究領(lǐng)域。從機(jī)器人的發(fā)展趨勢(shì)來(lái)看,與人類密切相關(guān)的仿人機(jī)器人被擺在越來(lái)越重要的位置,成為世界各國(guó)一致看好并為之努力發(fā)展的方向。而仿人機(jī)器人控制系統(tǒng)的設(shè)計(jì)為機(jī)器人學(xué)、控制理論、機(jī)電一體化及其它相關(guān)學(xué)科提供了良好的實(shí)驗(yàn)平臺(tái)。
本文在研究分析當(dāng)前舵機(jī)仿人機(jī)器人控制系統(tǒng)設(shè)計(jì)的基礎(chǔ)上,選擇響應(yīng)速度快、功耗低、并且輸入輸出可編程控制的Atmega16單片機(jī)作為整個(gè)控制系統(tǒng)的微控制器,并據(jù)此進(jìn)行了硬件和軟件部分的設(shè)計(jì)。最后將設(shè)計(jì)好的控制系統(tǒng)成功的運(yùn)用在設(shè)計(jì)好了的仿人競(jìng)速機(jī)器人上,并取得了良好的控制效果。
2舵機(jī)簡(jiǎn)介
根據(jù)人體的結(jié)構(gòu),人的直立行走是由于各個(gè)關(guān)節(jié)協(xié)調(diào)配合運(yùn)動(dòng)的結(jié)果。為了模擬人體的各個(gè)關(guān)節(jié)通常采用一個(gè)舵機(jī)來(lái)代表一個(gè)關(guān)節(jié)。仿人機(jī)器人在直立行走的過(guò)程中,運(yùn)動(dòng)的關(guān)節(jié)最少為16個(gè),因此所設(shè)計(jì)的控制系統(tǒng)所能控制的舵機(jī)數(shù)量必須大于或者等于16個(gè)。
舵機(jī)又叫Servo,是一種位置伺服電機(jī)。舵機(jī)內(nèi)部結(jié)構(gòu)包括控制電路、電位比較器、減速齒輪組以及直流電機(jī)。舵機(jī)的轉(zhuǎn)動(dòng)角度通過(guò)PWM波來(lái)控制,舵機(jī)內(nèi)部有一個(gè)基準(zhǔn)電路,產(chǎn)生周期20ms,寬度1.5ms的基準(zhǔn)信號(hào);一個(gè)比較器,將外加信號(hào)與基準(zhǔn)信號(hào)相比較,判斷出方向和大小,從而產(chǎn)生電機(jī)的轉(zhuǎn)動(dòng)信號(hào)。因此對(duì)于舵機(jī)的控制就是要控制單片機(jī)各個(gè)引腳產(chǎn)生的PWM波的脈寬也就是高電平的持續(xù)時(shí)間,不同的脈寬分別對(duì)應(yīng)舵機(jī)的不同轉(zhuǎn)動(dòng)角度。
3電路原理圖
本文利用Atmega16單片機(jī)做微控制芯片,因此電路要對(duì)單片機(jī)的最小系統(tǒng)進(jìn)行設(shè)計(jì)。單片機(jī)最小系統(tǒng)包括復(fù)位和晶振電路。同時(shí)根據(jù)機(jī)器人的控制特點(diǎn)需要進(jìn)行串口通信,因此為單片機(jī)設(shè)計(jì)了RS232通信接口。完整的電路原理圖如圖1所示。
4PWM波的產(chǎn)生
多路PWM波的輸出原理如下:舵機(jī)的控制脈沖周期為20ms,而用于舵機(jī)控制的可調(diào)脈寬為0.5-2.5ms。由于其工作正脈沖的寬度小于脈沖周期的1/8,所以可以把整個(gè)PWM周期分成8個(gè)時(shí)間段。每一個(gè)時(shí)間段作為一個(gè)PWM波輸出組每組包含M個(gè)輸出通道進(jìn)行PWM波輸出,每個(gè)時(shí)間段啟動(dòng)一組PWM信號(hào)正脈沖,這樣就可以在一個(gè)PWM周期內(nèi)同步輸出8×M路的PWM信號(hào)。原理如下圖2所示
根據(jù)多路PWM波的產(chǎn)生原理,結(jié)合ATmega16的片內(nèi)資源,可以利用ATmega16的定時(shí)器1來(lái)實(shí)現(xiàn)多路PWM波的輸出。ATmega16單片機(jī)的PA、PB、PC共24個(gè)引腳分別對(duì)應(yīng)每個(gè)舵機(jī)的接口,并把每個(gè)引腳用一個(gè)一維數(shù)組a[i]來(lái)表示,那么i總共有24個(gè)取值。同時(shí)將舵機(jī)的轉(zhuǎn)動(dòng)角度180 °,平均分成500份,每一個(gè)轉(zhuǎn)動(dòng)角度對(duì)應(yīng)一個(gè)a[i]的取值,那么a[i]的取值范圍為0-500。根據(jù)實(shí)驗(yàn)將每一份需要的高電平持續(xù)時(shí)間算出。同時(shí)測(cè)出Atmega16單片機(jī)執(zhí)行for循環(huán)所需要的時(shí)間,將倆個(gè)時(shí)間的對(duì)應(yīng)關(guān)系算出來(lái)。這樣就可以利用for循環(huán)來(lái)控制每一路高電平的持續(xù)時(shí)間。
將PWM周期20ms分成六組,則輸出PWM的時(shí)間為6×2.5=15ms,而舵機(jī)電路所識(shí)別的PWM周期為20ms,這時(shí)可以通過(guò)Atmega16單片機(jī)上的定時(shí)器1來(lái)對(duì)脈寬進(jìn)行定時(shí),從而保證周期為20ms。每一組根據(jù)期望值和實(shí)際值的差來(lái)確定高電平的持續(xù)時(shí)間,當(dāng)每一組開(kāi)始輸出PWM波時(shí),for循環(huán)開(kāi)始計(jì)時(shí),當(dāng)計(jì)到期望值與實(shí)際值之差時(shí),通過(guò)編程來(lái)使得端口電平翻轉(zhuǎn)。這樣就完成了多路PWM波的實(shí)時(shí)輸出。
5結(jié)束語(yǔ)
通過(guò)利用Atmega16單片機(jī)作為微控制芯片,設(shè)計(jì)出的小型仿人機(jī)器人控制系統(tǒng),不僅電路比較簡(jiǎn)單而且在實(shí)際的應(yīng)用上也有良好的表現(xiàn)。將此仿人機(jī)器人控制系統(tǒng)用在所設(shè)計(jì)的小型舵機(jī)仿人機(jī)器人上,仿人機(jī)器人進(jìn)行了穩(wěn)定快速的仿人直立行走。
參考文獻(xiàn)
[1]譚冠政,朱劍英,尉忠信.國(guó)內(nèi)外兩足步行機(jī)器人研究的歷史、現(xiàn)狀及發(fā)展趨勢(shì)[J].機(jī)器人,1992.
[2]李基輔.仿人機(jī)器人控制系統(tǒng)的設(shè)計(jì)及實(shí)現(xiàn)[D].廣州:廣東工業(yè)大學(xué),2012.
[3]李巖,孔凡讓,萬(wàn)小丹.基于AVR的雙足步行機(jī)器人舵機(jī)控制[J].機(jī)械與電子,2007,(12):7072.