單片機(jī)為核心接近360°全景式攝像機(jī)設(shè)計(jì)方案
0 引言
采用單片機(jī)為核心設(shè)計(jì)的云臺控制器在監(jiān)控場合能實(shí)現(xiàn)控制攝像機(jī)進(jìn)行大范圍、寬角度的移動,以使lcd液晶屏圖攝像機(jī)能夠達(dá)到接近360°全景式攝像,且其在經(jīng)濟(jì)性、靈活性、擴(kuò)展性和可維護(hù)性等方面都具有獨(dú)特的優(yōu)勢。
1 系統(tǒng)總體結(jié)構(gòu)
系統(tǒng)由以下幾部分構(gòu)成:①單片機(jī):設(shè)計(jì)的核心,在軟件的配合下實(shí)現(xiàn)對鍵盤所輸入信息的識別,根據(jù)輸入信息向云臺中的步進(jìn)電機(jī)發(fā)出指令,使其實(shí)現(xiàn)正/ 反轉(zhuǎn)、速度控制、程序控制等功能,并將步進(jìn)電機(jī)的轉(zhuǎn)速通過數(shù)碼管顯示出來;②步進(jìn)電機(jī)及驅(qū)動:負(fù)責(zé)云臺系統(tǒng)在豎直和水平兩個(gè)方向上的轉(zhuǎn)動,是系統(tǒng)的執(zhí)行部件;③鍵盤:外部信息的輸入器件,是控制人員指揮云臺系統(tǒng)工作的重要組成部分; ④顯示器件:將步進(jìn)電機(jī)的實(shí)時(shí)轉(zhuǎn)速顯示出來,以便lcd液晶屏圖控制人員根據(jù)轉(zhuǎn)速來確定對云臺的控制策略。
2 系統(tǒng)硬件設(shè)計(jì)
硬件電路按系統(tǒng)功能劃分為步進(jìn)電機(jī)及其驅(qū)動模塊、單片機(jī)及其外圍電路、鍵盤及顯示電路共三部分,系統(tǒng)硬件功能框圖如圖一所示。
2.1 步進(jìn)電機(jī)控制及驅(qū)動模塊的選擇
驅(qū)動器接收到脈沖信號之后,驅(qū)動步進(jìn)電機(jī)按設(shè)定的方向轉(zhuǎn)動一個(gè)固定的角度,它的旋轉(zhuǎn)是以固定的角度一步步運(yùn)行的??赏ㄟ^控制脈沖個(gè)數(shù)來控制角位移量,達(dá)到準(zhǔn)確定位的目的;同時(shí)可通過控制脈沖頻率來控制電機(jī)轉(zhuǎn)動的速度和加速度,達(dá)到調(diào)速的目的。所選步進(jìn)電機(jī)為兩臺混合式步進(jìn)電機(jī)57BYG250C,具有兩相/ 四相運(yùn)行能力,四拍工作時(shí)步距角為1.8°,八拍為0.9°。步進(jìn)電機(jī)驅(qū)動模塊型號為HB202A,具備4/8 拍轉(zhuǎn)換控制信號、脫機(jī)(FREE)控制信號、輸入信號光電隔離等功能。設(shè)計(jì)中增加了一個(gè)脫機(jī)控制鍵,在出現(xiàn)故障或調(diào)試時(shí)將兩臺電機(jī)置于脫機(jī)狀態(tài),可手工調(diào)節(jié)步進(jìn)電機(jī)。脫機(jī)控制鍵直接與單片機(jī)INT0 相接,設(shè)INT0 為最高優(yōu)先級,以便在故障時(shí)能迅速實(shí)現(xiàn)脫機(jī)控制。由于不經(jīng)過8279 而直接接在單片機(jī)上,則必須設(shè)置鍵盤去抖動電路,以免使單片機(jī)產(chǎn)生誤操作。
2.2 鍵盤及顯示電路設(shè)計(jì)
lcd液晶屏圖鍵盤及顯示電路采用INTEL8279 來實(shí)現(xiàn)。鍵盤采用N鍵循回方式,顯示為8 位左端送入。8279 外接2*8 鍵盤和八位顯示器,采用編碼掃描方式。8279 的IRQ 和單片機(jī)的INT1相接,只要有鍵按下,就會申請中斷。當(dāng)單片機(jī)外接12M 晶振時(shí),ALE 為2M,而其與CLK 相連,所以其分頻命令字為34H。通過8279 所擴(kuò)展的按鍵共16 個(gè),8 個(gè)負(fù)責(zé)兩個(gè)方向上的步進(jìn)電機(jī)的正反轉(zhuǎn),8 個(gè)是功能鍵,分別負(fù)責(zé)步進(jìn)電機(jī)的加減速、程序控制、步進(jìn)電機(jī)的限位開關(guān)。
3 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)的軟件主要由初始化程序、鍵盤程序、速度控制程序、轉(zhuǎn)速檢測及顯示程序組成。除初始化程序外,其余程序均采用中斷工作方式,提高了CPU 的利用率。
3.1 系統(tǒng)初始化程序設(shè)計(jì)
先對單片機(jī)各中斷源進(jìn)行初始化,使用五個(gè)中斷源:INT0、INT1、T0、T1、T2,INT0、T0、T1 為高優(yōu)先級,INT1、T2 為低優(yōu)先級。INT0 申請中斷,則程序立即使步進(jìn)電機(jī)進(jìn)入脫機(jī)控制程序,步進(jìn)電機(jī)不再受單片機(jī)的控制,且是電平觸發(fā),單片機(jī)始終執(zhí)行脫機(jī)程序,直至外部觸發(fā)信號由操作人員手工撤銷,系統(tǒng)才恢復(fù)正常工作。后設(shè)置T0、T1、T2 的工作方式,并寫入計(jì)數(shù)處置,開啟這幾個(gè)中斷源的允許位,打開CPU 中斷。
3.2 鍵盤程序的設(shè)計(jì)
鍵盤鍵按下后產(chǎn)生中斷申請,lcd液晶屏圖單片機(jī)響應(yīng)中斷后,開始執(zhí)行中斷程序。從8279 內(nèi)部將產(chǎn)生的鍵值讀出,并根據(jù)鍵值來執(zhí)行相應(yīng)的程序。CPU 接收到該信息后,并不立即動作。為保證步進(jìn)電機(jī)速度控制的穩(wěn)定性,先保存該鍵值所對應(yīng)的命令,在T0/T1 到達(dá)所設(shè)定的計(jì)數(shù)值之后,按一定的速度需要輸出脈沖時(shí),再將該信息送至步進(jìn)電機(jī)。
3.3 步進(jìn)電機(jī)的速度控制軟件設(shè)計(jì)
改變驅(qū)動模塊CP 信號的頻率來改變步進(jìn)電機(jī)的轉(zhuǎn)速,改變CP 信號的頻率可以通過定時(shí)/ 計(jì)數(shù)器來實(shí)現(xiàn)。先給定時(shí)/ 計(jì)數(shù)器裝載初置,后使其開始運(yùn)行,到達(dá)規(guī)定的時(shí)間后執(zhí)行中斷程序,此時(shí)可將產(chǎn)生CP 信號的程序放在此中斷程序中,就達(dá)到了改變步進(jìn)電機(jī)轉(zhuǎn)速的目的。S52 內(nèi)部的T0 和T1 分別對應(yīng)了兩個(gè)步進(jìn)電機(jī)的速度控制,其工作過程如圖二所示。
3.4 轉(zhuǎn)速檢測及顯示軟件設(shè)計(jì)
采用定時(shí)計(jì)數(shù)法,在一定的時(shí)間內(nèi)對單片機(jī)發(fā)送給步進(jìn)電機(jī)的步進(jìn)脈沖進(jìn)行計(jì)數(shù)。設(shè)單片機(jī)每50ms 檢測一次向步進(jìn)電機(jī)所發(fā)出脈沖的個(gè)數(shù)N,N 與轉(zhuǎn)速之間有如下關(guān)系:
只要將檢測到的脈沖數(shù)N 乘以3,就可以得到每分鐘的轉(zhuǎn)速。50ms 的定時(shí)由S52 內(nèi)部的第三個(gè)定時(shí)/ 計(jì)數(shù)器T2 來實(shí)現(xiàn)。
4 結(jié)束語
單片機(jī)構(gòu)成的云臺控制器不僅具有控制精度高、控制方式靈活、程序編制簡單、功耗低、可靠性高等特點(diǎn),且某些新型單片機(jī)更具有在線編程功能,不需把lcd液晶屏圖單片機(jī)從工作環(huán)境中剝離出來即可進(jìn)行程序更新,方便了軟件的維護(hù),并可根據(jù)需要,由預(yù)先編制的程序自動對兩方向上的lcd液晶屏圖驅(qū)動電機(jī)進(jìn)行協(xié)同控制。