吳 嘗,邊玉亮
(阜陽師范學(xué)院 信息工程學(xué)院,安徽 阜陽 236041)
基于單片機(jī)的舵機(jī)控制仿真實(shí)驗(yàn)研究
吳 嘗,邊玉亮
(阜陽師范學(xué)院 信息工程學(xué)院,安徽 阜陽 236041)
針對(duì)嵌入式系統(tǒng)專業(yè)學(xué)生,我們?cè)O(shè)計(jì)了基于AT89C52單片機(jī)的舵機(jī)控制仿真實(shí)驗(yàn)。本實(shí)驗(yàn)選擇舵機(jī)作為控制對(duì)象,具體闡述了舵機(jī)的結(jié)構(gòu)和控制原理、實(shí)驗(yàn)內(nèi)容和實(shí)驗(yàn)步驟。此實(shí)驗(yàn)選取AT89C52單片機(jī)作為主控制器產(chǎn)生PWM信號(hào)控制舵機(jī)的轉(zhuǎn)角,使用Proteus仿真軟件對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行仿真。通過單片機(jī)的舵機(jī)控制仿真實(shí)驗(yàn)可以加深學(xué)生對(duì)單片機(jī)定時(shí)器編程和舵機(jī)控制方法的掌握,增強(qiáng)學(xué)生分析和解決問題能力。
單片機(jī);舵機(jī);PWM;Proteus
舵機(jī)是一種位置(角度) 伺服的驅(qū)動(dòng)器,有著機(jī)電時(shí)間常數(shù)小、起步轉(zhuǎn)矩大、線性度好、反應(yīng)迅捷等特點(diǎn),適用于那些需要角度不斷變化并可以保持的控制系統(tǒng),例如機(jī)器人關(guān)節(jié)、無人機(jī)等。[1]比如:無人飛機(jī)的舵面,無人駕駛汽車的方向盤和油門等,都需要由舵機(jī)來驅(qū)動(dòng)。[2]在機(jī)器人、無人機(jī)等運(yùn)動(dòng)或執(zhí)行控制系統(tǒng)器的設(shè)計(jì)中, 舵機(jī)控制效果是系統(tǒng)性能的重要影響因素之一。[3]與此同時(shí),為了有效地解決以往單片機(jī)實(shí)驗(yàn)主要依賴于仿真機(jī)和單片機(jī)開發(fā)系統(tǒng),無法保證人手一機(jī)的問題,[4]本文結(jié)合單片機(jī)和Proteus仿真軟件設(shè)計(jì)了控制舵機(jī)的模擬仿真實(shí)驗(yàn),使學(xué)生進(jìn)一步掌握舵機(jī)的控制原理和單片機(jī)與Proteus聯(lián)合仿真實(shí)驗(yàn)方法。
舵機(jī)的基本結(jié)構(gòu)主要是由電位器、電機(jī)、減速齒輪組和控制電路等組成??刂齐娐犯鶕?jù)接收到的控制信號(hào)驅(qū)動(dòng)電機(jī)轉(zhuǎn)動(dòng),減速齒輪組實(shí)現(xiàn)電機(jī)的轉(zhuǎn)速控制,電位器用于檢測(cè)舵機(jī)的轉(zhuǎn)到角度。舵機(jī)通常通過接受PWM控制信號(hào),達(dá)到控制舵機(jī)轉(zhuǎn)角的目的。
本實(shí)驗(yàn)結(jié)合實(shí)際應(yīng)用,選擇舵機(jī)的型號(hào)為S3010舵機(jī),其技術(shù)參數(shù)如下:
輸出扭矩:6.0V時(shí)6.5±1.3[kg/cm]。
動(dòng)作速度:6.0V時(shí)0.16±0.02[Sec/60度]。
動(dòng)作方向:脈沖寬度變窄(1520us變化到920us),順時(shí)針轉(zhuǎn)動(dòng);脈沖寬度變寬(1520us變化到2120us),逆時(shí)針的轉(zhuǎn)動(dòng)。
動(dòng)作角度:(順時(shí)針)60±10[度],(逆時(shí)針)60±10[度]。
假設(shè)舵機(jī)處在中心位置時(shí),脈沖信號(hào)高電平時(shí)間為1520us,角度為0°,逆時(shí)針角度為正。根據(jù)舵機(jī)技術(shù)參數(shù)和控制原理可知,該型號(hào)舵機(jī)的控制信號(hào)是任意周期下,時(shí)鐘信號(hào)高電平時(shí)間從920us到1520us,舵機(jī)的轉(zhuǎn)角從-60°到0°,高電平時(shí)間從1520us到2120us,舵機(jī)的轉(zhuǎn)角從0°到60°。
本次實(shí)驗(yàn)可以在任意一臺(tái)安裝好Keil uVision3軟件和Proteus仿真軟件的電腦上進(jìn)行。
(1)了解并掌握常用舵機(jī)的結(jié)構(gòu)原理和控制方法。舵機(jī)控制信號(hào)的要求如下:PWM信號(hào)時(shí)鐘周期為20ms,時(shí)鐘高電平長度為0.92ms至2.12ms,舵機(jī)轉(zhuǎn)角范圍能夠達(dá)到-60°到60°。
(2)掌握AT89C52單片機(jī)的定時(shí)器功能和使用Keil uVision3軟件的編程方法。使用AT89C52單片機(jī)內(nèi)部的定時(shí)器0和定時(shí)器1中斷功能產(chǎn)生控制舵機(jī)轉(zhuǎn)角的PWM信號(hào)。使用Keil uVision3編寫相應(yīng)的測(cè)試程序,編譯調(diào)試無誤后生成 .hex文件為仿真實(shí)驗(yàn)做準(zhǔn)備。
(3)熟悉Proteus仿真軟件的設(shè)計(jì)流程和使用方法。使用Proteus仿真軟件繪制仿真電路原理圖,將程序下載到單片機(jī)中對(duì)舵機(jī)的控制進(jìn)行仿真,得出實(shí)驗(yàn)結(jié)果并記錄。
3.1 程序流程圖
程序的設(shè)計(jì)思路是使用單片機(jī)內(nèi)部的兩個(gè)定時(shí)器中斷共同產(chǎn)生PWM信號(hào),通過單片機(jī)的端口輸出PWM信號(hào)控制舵機(jī)的轉(zhuǎn)角。產(chǎn)生PWM控制信號(hào)的程序流程如圖1所示。
圖1 程序流程圖
其中,生成的PWM信號(hào)從P1_2端口輸出,定時(shí)器0中斷用于產(chǎn)生周期為20ms的時(shí)鐘信號(hào),定時(shí)器1中斷用于控制高電平的時(shí)間,通過改變定時(shí)器的初值,就能PWM信號(hào)的脈沖寬度,從而達(dá)到控制舵機(jī)轉(zhuǎn)角的目的。
3.2 中斷子程序
根據(jù)仿真實(shí)驗(yàn)要求編寫的兩個(gè)中斷子程序如下:
void Timer0Interrupt(void) interrupt 1
{
//定時(shí)器0產(chǎn)生20ms周期信號(hào)
TH0 = 0x0B1;
TL0 = 0x0E0;
ET1 = 1;
TR1 = 1;
P1_2= 1;
}
void Timer1Interrupt(void) interrupt 3
{
//定時(shí)器1產(chǎn)生高電平,此時(shí),初始值TH1 = 0xF8、TL1 = 0xE4,高電平時(shí)間為1.82ms
//舵機(jī)的理論轉(zhuǎn)角為30°
P1_2=0;
TH1 = 0xF8;
TL1 = 0xE4;
ET1 = 0;
TR1 = 0;
}
3.3 舵機(jī)參數(shù)設(shè)置
根據(jù)舵機(jī)的技術(shù)參數(shù)對(duì)Proteus中的舵機(jī)元件的參數(shù)進(jìn)行設(shè)置如圖2所示。
圖2 舵機(jī)參數(shù)設(shè)置
3.4 仿真電路原理圖
根據(jù)實(shí)驗(yàn)要求在Proteus中繪制出相應(yīng)的電路原理圖如圖3所示(注 電路僅考慮控制原理,沒有考慮舵機(jī)的驅(qū)動(dòng)問題)。
圖3 仿真電路原理圖
(1)使用Keil uVision3建立工程,根據(jù)程序設(shè)計(jì)思路使用C語言編寫相應(yīng)的控制程序,編譯、調(diào)式無誤后生成可執(zhí)行文件。
(2)根據(jù)已知條件和設(shè)計(jì)要求,選定電路方案,畫出設(shè)計(jì)電路原理圖,設(shè)置元器件的參數(shù),將程序?qū)氲絾纹瑱C(jī)中,運(yùn)行仿真,記錄實(shí)驗(yàn)數(shù)據(jù)。
(3)調(diào)整程序初始參數(shù),更改脈沖信號(hào)高電平時(shí)間,重復(fù)步驟1、2,觀察記錄實(shí)驗(yàn)結(jié)果。將實(shí)驗(yàn)結(jié)果整理統(tǒng)計(jì)如圖4所示。
圖4 仿真實(shí)驗(yàn)結(jié)果對(duì)比
根據(jù)上述實(shí)驗(yàn)數(shù)據(jù)可知,仿真結(jié)果與理論值相差僅0.3°,完全能夠滿足實(shí)驗(yàn)要求。根據(jù)對(duì)實(shí)驗(yàn)的內(nèi)容和設(shè)計(jì)分析可知,誤差的來源主要是與使用定時(shí)器中斷產(chǎn)生的PWM信號(hào)有關(guān)。本文使用C語言編寫的中斷程序進(jìn)行延遲以滿足高電平時(shí)間要求,但是,中斷子程序的調(diào)用以及中斷返回都會(huì)使理論上的延時(shí)時(shí)間變大。后期可以通過對(duì)定時(shí)器初始值的修訂來提高舵機(jī)的控制精度。
本文通過對(duì)舵機(jī)的結(jié)構(gòu)和控制原理進(jìn)行簡單介紹,在此基礎(chǔ)上,設(shè)計(jì)了控制舵機(jī)轉(zhuǎn)角的單片機(jī)程序,并在Proteus仿真軟件中設(shè)計(jì)相應(yīng)的電路進(jìn)行實(shí)際的仿真實(shí)驗(yàn),達(dá)到了預(yù)期的實(shí)驗(yàn)效果。對(duì)實(shí)驗(yàn)結(jié)果的分析可知,該實(shí)驗(yàn)可以通過進(jìn)一步優(yōu)化控制程序結(jié)構(gòu),調(diào)整定時(shí)器初始值,達(dá)到提高控制精度的目的。通過本次實(shí)驗(yàn)的學(xué)習(xí),可以加深學(xué)生對(duì)單片機(jī)定時(shí)器編程和舵機(jī)控制方法的掌握,增強(qiáng)學(xué)生分析和解決問題能力。
[1] 蔣辰飛,劉子龍,胡少凱,等.基于 AVR單片機(jī)的多舵機(jī)控制精度的研究[J].信息技術(shù),2014(3):35-37.
[2] 霍麗霞,羅衛(wèi)兵,遲曉鵬.多通道舵機(jī)控制器設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2010(21):73-75.
[3] 成光華,毛建國.四足機(jī)器人中各關(guān)節(jié)的控制[J].電子元器件應(yīng)用,2008(1): 44-47.
[4] 貢雪梅,肖川.基于單片機(jī)函數(shù)信號(hào)發(fā)生器的Proteus仿真設(shè)計(jì)[J].西安航空技術(shù)高等??茖W(xué)校學(xué)報(bào),2013(31):53-55.
責(zé)任編輯:力 草
Research on Simulation Experiment of Steering Gear Control Based on Single Chip Microcomputer
WU Chang, BIAN Yuliang
This experiment is for embedded systems specialized students. We designed the simulation experiment of steering gear control based on AT89C52 single chip microcomputer. This experiment chosses steering gear as control object, elaborates on the steering gear’s structure and control principle, experimental content and experimental steps. This article selects AT89C52 single chip microcomputer as the main controller to generate the PWM signal to control the rotation of the steering gear, and uses Proteus simulation software for the simulation experiment results. The experiment can deepen students’ grasp of the microcontroller timer programming and servo control method,and strengthen students’ abilities of analyzing and solving problems.
single chip microcomputer; steering gear; PWM; Proteus
2016-11-28
吳嘗(1972—),男,安徽望江人,實(shí)驗(yàn)師,碩士,研究方向:大學(xué)物理、單片機(jī)應(yīng)用、納米材料應(yīng)用。
TP368.2
A
1671-8275(2017)01-0136-03