王自珍,殳國華
(上海交通大學(xué) 電氣工程系,上海 200240)
舵機(jī)也稱伺服電機(jī),其特點(diǎn)是結(jié)構(gòu)緊湊、易安裝調(diào)試、控制簡單、大扭力、成本較低等,是一種位置伺服的驅(qū)動(dòng)器,適用于那些需要角度不斷變化并能夠保持的控制系統(tǒng),廣泛應(yīng)用于電氣自動(dòng)化工業(yè)控制系統(tǒng)特別是機(jī)器人機(jī)電控制系統(tǒng)中,作為微機(jī)電系統(tǒng)和航?;镜妮敵鰣?zhí)行機(jī)構(gòu)。舵機(jī)的主要性能取決于最大力矩和工作速度(一般是以秒/60度為單位),而且簡單的控制和輸出使得單片機(jī)系統(tǒng)很容易與之接口。運(yùn)用Proteus軟件結(jié)合Keil開發(fā)工具對設(shè)計(jì)進(jìn)行聯(lián)合實(shí)時(shí)仿真調(diào)試,不但可以減少實(shí)驗(yàn)過程損耗,并能盡快排查系統(tǒng)的軟硬件錯(cuò)誤提高設(shè)計(jì)效率[1-3]。
系統(tǒng)以AT89C52單片機(jī)為主控制芯片實(shí)現(xiàn)對舵機(jī)輸出轉(zhuǎn)角的控制,產(chǎn)生周期為20 ms的PWM控制信號(hào),設(shè)置兩個(gè)按鍵進(jìn)行角度從0°到180°步進(jìn)為45°的可增可減的角度調(diào)節(jié),并且通過LM032L液晶顯示模塊進(jìn)行舵機(jī)角度顯示。
單片機(jī)作為舵機(jī)的控制部分,能使PWM信號(hào)的脈沖寬度實(shí)現(xiàn)微秒級(jí)的變化,從而提高舵機(jī)的轉(zhuǎn)角精度。單片機(jī)完成控制算法,再將計(jì)算結(jié)果轉(zhuǎn)化為PWM信號(hào)輸出到舵機(jī),由于單片機(jī)系統(tǒng)是一個(gè)數(shù)字系統(tǒng),其控制信號(hào)的變化完全依靠硬件技術(shù),所以受外界干擾小,整個(gè)系統(tǒng)工作可靠。系統(tǒng)運(yùn)用Proteus軟件進(jìn)行仿真調(diào)試。系統(tǒng)結(jié)構(gòu)框圖如圖1。
標(biāo)準(zhǔn)的舵機(jī)有三條引線,分別為電源線VCC、地線GND和控制信號(hào)線,如圖2所示。
舵機(jī)的內(nèi)部有一個(gè)基準(zhǔn)電路,產(chǎn)生周期為20 ms、寬度為1.5 ms的基準(zhǔn)信號(hào),并將獲得的直流偏置電壓和電位器的電壓比較,獲得電壓輸出。最后,將電壓差的正、負(fù)輸出到電機(jī)芯片決定電機(jī)的正、反轉(zhuǎn)。當(dāng)電機(jī)轉(zhuǎn)速一定時(shí),通過級(jí)聯(lián)減速齒輪帶動(dòng)電位器旋轉(zhuǎn),使電壓差為0,電機(jī)停止轉(zhuǎn)動(dòng)。舵機(jī)的控制信號(hào)也是PWM信號(hào),利用占空比的變化改變舵機(jī)的位置[4-7]。
系統(tǒng)選用 AT89C52單片機(jī)作為主控芯片,AT89C52是一種低功耗、高性能CMOS8位微控制器,具有8 K在系統(tǒng)可編程Flash存儲(chǔ)器。使用Atmel公司高密度非易失性存儲(chǔ)技術(shù)制造,與工藝80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位 CPU和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提高靈活、超有效的解決方案。
本實(shí)驗(yàn)利用AT89S52控制單個(gè)舵機(jī),開始時(shí)舵機(jī)角度自轉(zhuǎn)為0°,通過實(shí)現(xiàn)兩個(gè)獨(dú)立按鍵實(shí)現(xiàn)對舵機(jī)角度在 0°、45°、90°、135°、180°五種角度上的加減,并在20×2的LM032L液晶顯示模塊上顯示舵機(jī)轉(zhuǎn)角角度。
LM032L液晶顯示模塊集成LCD顯示屏、背景光源、線路板和驅(qū)動(dòng)集成電路等部件,引腳可與單片機(jī)通用I/O口,使用十分方便。
Proteus ISIS是目前最好的模擬單片機(jī)外圍器件的工具可以仿真51系列、AVR,PIC等常用的MCU及其外圍電路。將系統(tǒng)在仿真軟件中搭建,如圖3所示。單片機(jī)P3.0為PWM信號(hào)輸出端接軟件自帶的虛擬示波器便于觀察 PWM信號(hào),按鍵分別接P3.6和P3.7,LM032L經(jīng)上拉電阻接單片機(jī)通用I/O口。
單片機(jī)控制單個(gè)舵機(jī)比較簡單,利用一個(gè)定時(shí)器即可。假設(shè)僅控制舵機(jī)5個(gè)角度轉(zhuǎn)動(dòng),其控制思路如下:只利用一個(gè)定時(shí)器T0,定時(shí)時(shí)間為0.5 ms;定義一個(gè)角度標(biāo)識(shí),數(shù)值可以為 1,2,3,4,5,實(shí) 0.5,1,1.5,2,2.5 ms高電平的輸出;再定義一個(gè)變量,數(shù)值最大為40,實(shí)現(xiàn)周期為20 ms。每次進(jìn)入定時(shí)中斷,判斷此時(shí)的角度標(biāo)識(shí),進(jìn)行相應(yīng)的操作。比如此時(shí)為5,則進(jìn)入前5次中斷期間,信號(hào)輸出為高電平,即2.5 ms的高電平;剩下的35次中斷期間,信號(hào)輸出為低電平,即17.5 ms的低電平。這樣總的時(shí)間是20 ms,為一個(gè)周期。圖4為舵機(jī)輸出轉(zhuǎn)角與輸入信號(hào)脈沖寬度的關(guān)系,其脈沖寬度在0.5到2.5 ms變化時(shí),舵機(jī)輸出軸轉(zhuǎn)角在 0°到 180°變化[8-9]。
利用Proteus與Keil軟件對系統(tǒng)進(jìn)行軟硬件聯(lián)合仿真調(diào)試。Keil軟件是一個(gè)支持匯編語言和C語言等高級(jí)語言的軟件開發(fā)平臺(tái),本設(shè)計(jì)的系統(tǒng)程序在此平臺(tái)上進(jìn)行開發(fā)編譯,并與Proteus結(jié)合對系統(tǒng)實(shí)時(shí)仿真。實(shí)驗(yàn)程序流程圖如圖5所示。
Proteus軟件與Keil軟件聯(lián)合對系統(tǒng)進(jìn)行實(shí)時(shí)仿真,通過按鍵增加或減少舵機(jī)角度,仿真結(jié)果如圖6,7,8,9,10。虛擬示波器中顯示的是單片機(jī)輸出驅(qū)動(dòng)舵機(jī)的PWM波一個(gè)周期內(nèi)的波形,對應(yīng)的角度顯示在液晶顯示模塊上。
圖10 角度為180度時(shí)控制舵機(jī)的PWM波
本設(shè)計(jì)采用PWM信號(hào)控制舵機(jī),實(shí)現(xiàn)了角度可設(shè)定,角度可顯示,電路簡單可靠,控制靈活,成本低,可移植性強(qiáng)。系統(tǒng)經(jīng)實(shí)物硬件搭建進(jìn)行調(diào)試,效果良好。通過Proteus和Keil對系統(tǒng)的聯(lián)合仿真提高了設(shè)計(jì)效率和可靠性,降低了設(shè)計(jì)的硬件損耗,為今后舵機(jī)的廣泛精確地應(yīng)用提供了一種良好的設(shè)計(jì)模式。
[1]王曉明.電動(dòng)機(jī)的單片機(jī)控制[M].北京,北京航空航天出版社,2007.
[2]顏嘉男.伺服電機(jī)應(yīng)用技術(shù)[M].北京,科學(xué)出版社,2010.
[3]余永權(quán).單片機(jī)應(yīng)用系統(tǒng)的功率接口技術(shù)[M].北京,北京航空航天出版社,1992.
[4]陳海宴.51單片機(jī)原理及應(yīng)用基于Keil C與 Proteus[M].北京,科學(xué)出版社,2004.
[5]孫凌燕,黃允千.Proteus與Keil軟件的整合在單片機(jī)實(shí)驗(yàn)開發(fā)中的應(yīng)用[J].實(shí)驗(yàn)室研究與探索,2008,27(4):59 -61.
[6]伍馮潔,謝斌.基于Proteus與Keil的單片機(jī)實(shí)驗(yàn)教學(xué)改革[J].實(shí)驗(yàn)室研究與探索,2009,28(7):125 -127.
[7]郭天祥.51單片機(jī)C語言教程[M].北京,電子工業(yè)出版社,2008.
[8]王幸之,鐘愛琴.AT89系列單片機(jī)原理及接口技術(shù)[M].北京,北京航空航天大學(xué)出版社,2004.
[9]康華光.電子技術(shù)基礎(chǔ)(第五版)[M].北京,高等教育出版社,2005.