夏 凡,王 粟,汪 峰
(湖北工業(yè)大學(xué)電氣與電子工程學(xué)院,湖北 武漢430068)
本設(shè)計采用型號為28BYJ48的步進(jìn)電機(jī),它是四相八拍永磁式減速電機(jī),步距角度為5.625/64,減速比為1∶64,定位轉(zhuǎn)矩大于或等于300Nm[1].本設(shè)計通過控制脈沖的個數(shù)來控制角位移,達(dá)到準(zhǔn)確定位的目的;同時通過控制脈沖頻率來控制電機(jī)轉(zhuǎn)動的速度和加速度,達(dá)到調(diào)速的目的.
由于步進(jìn)電機(jī)不能直接采用直流或者普通交流供電,必須采用專門的步進(jìn)電機(jī)驅(qū)動控制器,步進(jìn)電機(jī)驅(qū)動控制器基本原理見圖1,由脈沖發(fā)生與分配單元、功率驅(qū)動單元、反饋與保護(hù)單元組成.
圖1 步進(jìn)電機(jī)驅(qū)動控制基本原理框圖
綜合28BYJ48型步進(jìn)電機(jī)的參數(shù)與步進(jìn)電機(jī)的驅(qū)動特點,本設(shè)計采用四只9012的三極管,共集電極安放,將MC0-3電平反向輸出,以此增強(qiáng)電流驅(qū)動能力,具體原理圖如下:
當(dāng)對步進(jìn)電機(jī)施加一系列連續(xù)不斷的控制脈沖時,它可以連續(xù)不斷地轉(zhuǎn)動.每一個脈沖信號對應(yīng)步進(jìn)電機(jī)的某一相或兩相繞組的通電狀態(tài)改變一次,也就對應(yīng)轉(zhuǎn)子轉(zhuǎn)過一定的角度(一個步距角).步進(jìn)電機(jī)旋轉(zhuǎn)一周所需要的指令個數(shù)
其中m=8,即可以得到S′=4096.
那么旋轉(zhuǎn)一度所需要的指令數(shù)為4096/360,要旋轉(zhuǎn)N度,所需要的指令數(shù)
通過式(1)和式(2),達(dá)到準(zhǔn)確控制步進(jìn)電機(jī)旋轉(zhuǎn)角度的目的.
圖2 步進(jìn)電機(jī)設(shè)計原理圖
當(dāng)通電狀態(tài)的改變完成一個循環(huán)時,轉(zhuǎn)子轉(zhuǎn)過一個齒距.四相步進(jìn)電機(jī)可以在不同的通電方式下運行,常見的通電方式有單(單相繞組通電)四拍(A-B-C-D-A…),雙(雙相繞組通電)四拍(ABBC-CD-DA-AB…),八拍(A-AB-B-BC-C-CD-D-DA-A…).驅(qū)動方式見圖3.
圖3 步進(jìn)電機(jī)驅(qū)動方式示意圖
由運行人員通過單片機(jī)實時控制兩個不同平面的步進(jìn)運轉(zhuǎn),步進(jìn)電機(jī)通過機(jī)械耦合連接到監(jiān)控攝像頭上,當(dāng)步進(jìn)電機(jī)運行時,會帶動其監(jiān)控攝像頭的相應(yīng)旋轉(zhuǎn).
具體而言,就是通過紅外通信遙控器和按鍵輸入器件,控制兩個步進(jìn)電機(jī)的相應(yīng)運轉(zhuǎn),并由LED顯示出步進(jìn)電機(jī)實時工作狀態(tài),調(diào)節(jié)兩個不同平面的步進(jìn)電機(jī)轉(zhuǎn)向時,監(jiān)控攝像頭會在三維空間中任意角度旋轉(zhuǎn);同時合理控制兩個步進(jìn)電機(jī)轉(zhuǎn)速,使監(jiān)控攝像頭勻速或加速度旋轉(zhuǎn);預(yù)設(shè)步進(jìn)電機(jī)的轉(zhuǎn)動圈數(shù),讓運行人員自定義監(jiān)控攝像頭的運轉(zhuǎn)時間,達(dá)到監(jiān)控攝像頭定時旋轉(zhuǎn)的效果.系統(tǒng)結(jié)構(gòu)框圖見圖4.
圖4 系統(tǒng)結(jié)構(gòu)框圖
在清楚了解整個系統(tǒng)的原理后,即可對整個系統(tǒng)的硬件進(jìn)行設(shè)計,主要有下面內(nèi)容:單片機(jī)控制模塊,LED顯示模塊,紅外遙控模塊,按鍵輸入模塊,攝像頭組裝模塊等.
以STC89C51高性能CMOS 8位單片機(jī)為核心器件,具有以下標(biāo)準(zhǔn)功能:8KB Flash存儲器,256BRAM,32位I/O口線,看門狗定時器,2個數(shù)據(jù)指針,3個16位定時器/計數(shù)器,1個6向量2級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時鐘電路[1],它使用高密度、非易失性存儲器技術(shù)制造,按照設(shè)計原理一般化設(shè)計,不再贅述.
本系統(tǒng)采用的LCD是1602字符液晶模塊,能夠同時顯示16字、2行即32個字符.
由于硬件設(shè)計原因,該處I/O比較緊缺,故將P1口左側(cè)的JP14跳線跳帽到Motor一側(cè)(左側(cè)),LCD模塊的ADDR0到ADDR3四個口需要用杜邦線引出來,連接相對應(yīng)的P3.0,P3.1,P3.2和P3.5口,以使LCD正常工作.
圖5 顯示譯碼與步進(jìn)電機(jī)的選擇接口
采用HS0038作為紅外遙控接收端,HS0038是一個集紅外線信號接收和放大為一體的三端元器件,其中心接收頻率為38kHz,3個引腳分別為:1—地,2—電源,3—數(shù)據(jù)輸出.當(dāng)接收到38kHz的紅外信號時,輸出端為低電平;沒有接收到38kHz的紅外信號時,輸出端為高電平.HS0038的具體硬件電路見圖6.
圖6 HS0038的硬件電路
由于系統(tǒng)中的其他模塊對端口占有不多,所以在鍵盤連接上采用每一排按鍵組成獨立式按鍵進(jìn)行控制,共4排獨立式按鍵形成了矩陣按鍵(圖7).
本設(shè)計采用軟件去斗,即檢測出鍵閉合后執(zhí)行一個延時程序,產(chǎn)生5~10ms的延時,讓前沿抖動消失后再一次檢測鍵的狀態(tài),如果仍保持閉合狀態(tài)電平,則確認(rèn)為真正有鍵按下[2].
圖7 按鍵電路
攝像頭組裝就是用來使監(jiān)控攝像頭與兩個不同平面上的步進(jìn)電機(jī)機(jī)械連接的部分.具體處理辦法是在步進(jìn)電機(jī)的輸出軸上套裝一個齒輪套,該齒輪套與一個帶齒輪的支柱相嚙合,再將該支柱與監(jiān)控攝像頭底座齒輪組相嚙合[3],由此,當(dāng)步進(jìn)電機(jī)左右旋轉(zhuǎn)時會帶動監(jiān)控攝像頭底座齒輪旋轉(zhuǎn),達(dá)到監(jiān)控攝像頭自由旋轉(zhuǎn)的目的.
系統(tǒng)采用C語言模塊化結(jié)構(gòu)軟件設(shè)計.隨著代碼量不斷加大,將所有代碼放在同一個C文件中使得程序結(jié)構(gòu)混亂,可讀性和可移植性較差,采用模塊化設(shè)計,能夠有效解決此類問題.
仿真系統(tǒng)的程序在KEIL C51Vision3環(huán)境下編譯.程序主要包括:數(shù)據(jù)讀取程序、正反轉(zhuǎn)判斷程序、步進(jìn)電機(jī)驅(qū)動程序和紅外遙控解碼程序(圖8).
圖8 主程序流程圖
程序設(shè)計過程中,分別將紅外DS1302、1602、蜂鳴器等程序模塊進(jìn)行封裝,等待主函數(shù)的調(diào)用.從圖9中可以看出,單片機(jī)上電工作后,LCD顯示初始狀態(tài)信息平臺,控制步進(jìn)電機(jī)驅(qū)動的定時器0子程序和控制紅外解碼的外部中斷1子程序等待相應(yīng)指令.首先在主函數(shù)進(jìn)行系統(tǒng)的初始化過程,設(shè)置定時器0的初始值、顯示LCD初始態(tài)等,當(dāng)按鍵或紅外遙控輸入信號時,定時器0中斷子程序進(jìn)行運行,對T0進(jìn)行重裝初值,不停的統(tǒng)計脈沖個數(shù),當(dāng)滿足相關(guān)條件后,步進(jìn)電機(jī)進(jìn)行對應(yīng)的驅(qū)動程序,程序運行代碼如下:
void motor_onoff()interrupt 1
{
TL0=0x33;
TH0=0xf5;
q++;
if(q<rate)
{return;}
else
{q=0;
number++;}//脈沖計數(shù)
if(number==4096)//64個脈沖電機(jī)轉(zhuǎn)一圈{snum--;
number=0;
number1++;}//電機(jī)轉(zhuǎn)動圈數(shù)
if(direction==1)//方向標(biāo)志
{if(v<8)
{P1= FFW[v];v++;}//取數(shù)據(jù),正轉(zhuǎn)
if(v==8)
{v=0;}
}
else
{if(v<8)
{P1= REV[v];v++;}//取數(shù)據(jù),反轉(zhuǎn)
if(v==8)
{v=0;}
}
}
在外部中斷1子程序中,通過紅外遙控接收器獲取紅外信號,再通過紅外解碼程序進(jìn)行紅外通信的解碼,將所獲取的鍵碼值存入相關(guān)數(shù)組,等待主程序的調(diào)用[4].
在運行主程序中,通過預(yù)設(shè)判斷是否滿足四種條件要求,如果滿足進(jìn)入相應(yīng)狀態(tài),對步進(jìn)電機(jī)進(jìn)行控制;如果不滿足,則直接返回到等待獲取紅外程序,繼續(xù)等待.
圖9 中斷子程序流程圖
本文提出了一種基于51單片機(jī)紅外遙控監(jiān)控攝像頭的方案,將在不同平面上的兩個步進(jìn)電機(jī)機(jī)械組裝從而達(dá)到控制監(jiān)控攝像頭的旋轉(zhuǎn)的目的.通過KEIL51軟件與Proteus軟硬件仿真驗證了本方案的可行性.和傳統(tǒng)的控制攝像頭方案相比,本設(shè)計特點是:穩(wěn)定性好,可靠性高,實時性強(qiáng),操作簡明.
在應(yīng)用于實際中時,本設(shè)計的系統(tǒng)還存在一定不足,還需要考慮很多實際影響因素,比如兩個步進(jìn)電機(jī)協(xié)調(diào)度問題,如何更加精準(zhǔn)地控制監(jiān)控攝像頭的旋轉(zhuǎn)角度,同時考慮如何將該系統(tǒng)產(chǎn)業(yè)化等等一些實際問題,展望未來,隨著技術(shù)朝著高精度、更穩(wěn)定方向發(fā)展,設(shè)計中的一些死角問題也將得到很好的解決,從方案到實際應(yīng)用還有一段路要走.
[1]劉波文,劉向宇,黎勝容.51單片機(jī)C語言應(yīng)用開發(fā)[M].北京:北京航空航天大學(xué)出版社,2011:138-149.
[2]高 偉,曹國君.AT89單片機(jī)原理及應(yīng)用[M].北京:國防工業(yè)出版社,2008:39.
[3]李少遠(yuǎn),王景成.智能控制[M].北京:機(jī)械工業(yè)出版社,2005:53-83.
[4]戴仙金.51單片機(jī)C語言程序開發(fā)實例[M].北京:清華大學(xué)出版社,2008:323-429.