基于AT89S52單片機(jī)的無線光電靶控制器的設(shè)計(jì)
0 引言針對(duì)部隊(duì)瞄準(zhǔn)訓(xùn)練的實(shí)際需要,這里研制了一套電路簡(jiǎn)單、體積小、重量輕、造價(jià)低、便于移動(dòng)和自動(dòng)報(bào)靶的無線光電靶系統(tǒng),較好地解決了日常訓(xùn)練中的問題。
1 整體設(shè)計(jì)
該無線光電靶系統(tǒng)主要由懸掛于移動(dòng)裝置上的光電靶;置于操炮手附近的光電靶控制器;一個(gè)固定在炮身上并與炮身同步移動(dòng)的半導(dǎo)體激光器三部分組成。
當(dāng)操炮手訓(xùn)練中,瞄準(zhǔn)靶標(biāo)時(shí)踩動(dòng)射擊踏板,激光器發(fā)出一束激光,照射在靶標(biāo)上,靶標(biāo)上的光敏元件接收到激光,由單片機(jī)采集光敏元件的信息,利用無線裝置將信息發(fā)送到光電靶控制器,由控制器顯示激光照射的位置,同時(shí)用語音報(bào)告環(huán)數(shù)和偏離的方向系統(tǒng)圖如圖1所示。
2 光電靶電路設(shè)計(jì)
從圖1可以看出,光電靶由單片機(jī)、光敏元件陣列、無線通信模塊和夜間指示燈4部分組成。
2.1 單片機(jī)模塊
這里采用51系列單片機(jī)中的新型號(hào)AT89S52,因?yàn)檫@款設(shè)計(jì)需要擴(kuò)展5個(gè)8位并行口,主要考慮其具有比較好的擴(kuò)展能力,其他特性無需贅述。
2.2 光電測(cè)量模塊的設(shè)計(jì)
光敏元件采用光敏二極管,在反向電壓作用下,其電流隨光線強(qiáng)度成正比。將光敏二極管在規(guī)定的范圍內(nèi)(直徑60 mm)形成陣列(按照?qǐng)A環(huán))排列,由AT89S52單片機(jī)擴(kuò)展的接口電路對(duì)光敏元件的輸出信號(hào)進(jìn)行采集。
以前有的方案是利用光纖將采集的激光信號(hào)傳導(dǎo)到光敏元件,這里為了降低成本減少體積,將光敏管直接布置在靶面上,每個(gè)光敏元件由一個(gè)遮光管套住,可避免大部分散射光的影響。光敏電路是光電靶的核心,也是本設(shè)計(jì)的創(chuàng)新之處,其他電路圍繞光敏電路展開設(shè)計(jì)。利用比較器進(jìn)行光電檢測(cè)的模數(shù)轉(zhuǎn)換,圖2是光敏電路的基本原理圖。其中LM324是運(yùn)算放大器,作為比較器使用,當(dāng)電壓V2>V1時(shí),運(yùn)算放大器正向飽和,輸出電壓V。接近電源電壓,稱為高電平1;當(dāng)電壓V2
在靶面安排上,參考光檢測(cè)元件放在靶標(biāo)周圍不遠(yuǎn)處,使得其接受的環(huán)境光照條件與光電靶測(cè)光元件相同。當(dāng)沒有激光照射時(shí),參考光檢測(cè)元件和光電靶測(cè)光元件同時(shí)受到環(huán)境光線的照射,調(diào)整電位器RV1,使得V1略大于V2,運(yùn)算放大器LM3243的輸出電壓V0為O;當(dāng)有激光照射到光電靶測(cè)光元件的時(shí)候,V2就會(huì)大于V1,使V0為1。當(dāng)激光照射脫離光電靶的范圍,哪怕只照射到參考光檢測(cè)元件,運(yùn)放的輸出始終為0。利用這種方法實(shí)現(xiàn)光電信號(hào)的采集和A/D轉(zhuǎn)換,省去了速度慢且價(jià)格高的模數(shù)轉(zhuǎn)換器,電路得到簡(jiǎn)化,速度得到提高,同時(shí)也排除了環(huán)境光線的變化的影響。
在實(shí)際電路中,一個(gè)參考光檢測(cè)元件為多個(gè)光電靶測(cè)光元件提供參考電壓,電路得到進(jìn)一步簡(jiǎn)化。在這種情況下,要求多個(gè)光電靶測(cè)光元件的光電特性一致,或者接近一致,才不至于出現(xiàn)誤差。經(jīng)過篩選的測(cè)光元件完全可以滿足這種要求。
實(shí)際實(shí)驗(yàn)證明,在陽光強(qiáng)烈的室外,只要沒有陽光直射到靶面,就工作正常;在夜晚星光下(遠(yuǎn)處有路燈),也工作正常。
光敏元件的排列與LED的排列方式基本一致,不同的地方是,7環(huán)有16個(gè)光敏元件均布,6環(huán)有24個(gè)光敏元件均布。這樣排列的目的是減小各個(gè)光敏元件的間距,以免激光束照射不到。
利用51系列單片機(jī)擴(kuò)展的多個(gè)并行接口來讀取光電靶的信息,然后進(jìn)行數(shù)據(jù)處理,就可以判定激光束所照射的中心點(diǎn),從而給出射擊成績(jī)。擴(kuò)展電路使用了數(shù)據(jù)收發(fā)器74HC244和譯碼器74HCl388。
2.3 無線通信模塊
光電靶需要接收光電靶控制器發(fā)送來的操作命令,還需要把采集的射擊成績(jī)發(fā)送給光電靶控制器,所以無線模塊需要雙向通信(半雙工)。這里采用市場(chǎng)比較常見的工業(yè)無線通信模塊并加以改造,基本滿足功能需要,并且成本低廉。無線通信模塊與單片機(jī)的連接利用一個(gè)擴(kuò)展的并行口和幾根控制線。2.4 夜間指示燈
為了夜間訓(xùn)練方便,設(shè)計(jì)了由發(fā)光二極管組成的靶標(biāo)指示燈,在夜間可以打開此指示燈,以便觀瞄。此指示燈是由靶心燈(內(nèi)燈)和靶周燈(外燈)組成,可以由光電靶控制器無線控制其開關(guān)。
3 光電靶控制器電路設(shè)計(jì)
從圖1可以看出,光電靶控制器由單片機(jī)、發(fā)光二極管陣列、無線通信模塊、激光模塊和語音播放模塊組成。另外還有用于操作的按鍵。
3.1 單片機(jī)電路
使用的單片機(jī)仍然是AT89S52,擴(kuò)展5個(gè)8位并行口,其中4個(gè)并行口用來控制LED發(fā)光,1個(gè)用來連接無線通信模塊。
3.2 發(fā)光二極管顯示陣列
由AT89S52單片機(jī)擴(kuò)展的并行口來驅(qū)動(dòng)發(fā)光二極管(LED)的亮和滅,用來顯示擊中的位置。LED的排列方式與光敏元件的排列方式一致,便于指示射擊結(jié)果,如圖3所示。
圖3中,一個(gè)最小的圓圈代表一個(gè)LED。可以看出,10環(huán)只用1個(gè)LED,亮的時(shí)候表示擊中10環(huán);9環(huán)只用4個(gè)LED,可以指示上下左右4種偏差,上邊的LED亮表示9環(huán)偏上等;8,7,6環(huán)都是8個(gè)LED,可以表示8種偏差。
3.3 激光器
購(gòu)買市場(chǎng)常見的筆形半導(dǎo)體激光器。
3.4 無線通信裝置
購(gòu)買市場(chǎng)常見的無線收發(fā)器,加以改造以適合與單片機(jī)匹配。光電靶和控制器均為雙向收發(fā)(半雙工)。
3.5 語音電路
在單片機(jī)的控制下播放事先錄制好語音內(nèi)容。
4 光電靶程序設(shè)計(jì)
4.1 光電靶的主程序
整個(gè)光電靶的程序由開機(jī)自檢,光信號(hào)檢測(cè),數(shù)據(jù)處理,向控制器發(fā)送檢測(cè)結(jié)果,無線命令接收和執(zhí)行等子程序組成,由主程序根據(jù)條件調(diào)用子程序。主程序框圖如圖4所示。
無線接收利用中斷完成。每次接收到一個(gè)有效的命令,就會(huì)將命令保存在一個(gè)指定地址,然后建立一個(gè)標(biāo)志位,通知主程序。主程序根據(jù)命令內(nèi)容,調(diào)用相應(yīng)的子程序,完成命令要求的任務(wù)。中斷服務(wù)程序框圖略。
4.2 數(shù)據(jù)處理程序
數(shù)據(jù)處理程序的功能是根據(jù)讀取的光敏檢測(cè)數(shù)據(jù),計(jì)算出激光擊中的位置。
由于民用激光器的光斑直徑有的比較大,有的比較小。在幾十米的距離上,一般光斑直徑在10~30 mm。激光照射靶標(biāo),往往是同時(shí)照射幾個(gè)光敏元件,該程序就是要確定光斑的中心位置。
對(duì)照?qǐng)D3,假設(shè)光斑中心在10環(huán),可能被照射光敏元件只有10環(huán)的,也可能還有9環(huán)的4個(gè),還有可能8環(huán)的8個(gè)也被照射等。要確定10環(huán),除了10環(huán)的光敏元件被照射,還有9環(huán)、8環(huán)、7環(huán)可能被照射,并且全環(huán)都被照射,否則不能確定10環(huán)。
10環(huán)以外的其他環(huán)數(shù)的確定,需要根據(jù)光斑照射到的環(huán)數(shù)和區(qū)數(shù)來確定。環(huán)號(hào),就是10,9,8,7,6環(huán);環(huán)數(shù)就是光斑照射到的環(huán)有幾個(gè),比如光斑照射到9,8,7環(huán),環(huán)數(shù)就是3。區(qū)號(hào)和區(qū)數(shù):正上方為1區(qū),右上方為2區(qū),按照順時(shí)針方向分為8個(gè)區(qū),編號(hào)為1~8號(hào)區(qū);光斑照射到3,4,5,6區(qū),則區(qū)數(shù)為4。
中心環(huán)號(hào)計(jì)算:首先要根據(jù)所有照射到的環(huán)號(hào)計(jì)算出環(huán)數(shù),然后計(jì)算出中心環(huán)號(hào)。最大環(huán)號(hào)減去環(huán)數(shù)除以2取整,這就是光斑中心的環(huán)號(hào)。取整的目的是小數(shù)的環(huán)數(shù)不好顯示。如果用數(shù)碼顯示則可以保留小數(shù)。
中心區(qū)號(hào)計(jì)算:根據(jù)所照射的所有區(qū)號(hào)計(jì)算出區(qū)數(shù),再計(jì)算出中間區(qū)號(hào),就是光斑的中心區(qū)號(hào)。這里有一個(gè)問題:當(dāng)被照射的區(qū)號(hào)是7,8,1,2,3的時(shí)候,要把最大區(qū)號(hào)確定為11,最小區(qū)號(hào)確定為7,再計(jì)算出區(qū)數(shù)和中心區(qū)號(hào)。如果計(jì)算的中心區(qū)號(hào)大于8則減去8才是真正結(jié)果。以區(qū)號(hào)是7,8,1,2,3為例:區(qū)數(shù)=11-7+1=5,5/2=2.5,2.5取整=2,最大區(qū)號(hào)減去區(qū)數(shù)的一半取整,即11-2=9,由于9大于8,要減去8,即9-8=1,這就是中心區(qū)號(hào),即偏上方。
中心環(huán)號(hào)和區(qū)號(hào)確定,數(shù)據(jù)處理完畢。
圖5是8個(gè)區(qū)的區(qū)號(hào)計(jì)算子程序框圖,其他子程序略。
從圖5中可以看出,如果原始數(shù)據(jù)的最大區(qū)號(hào)不是8,那就直接計(jì)算中心區(qū)號(hào)。如果原始數(shù)據(jù)的最大區(qū)號(hào)是8,就要判斷1區(qū)是否有被激光照射,如果沒有,那就直接計(jì)算中心區(qū)號(hào)。如果1區(qū)有激光照射,最大區(qū)號(hào)要加1,然后還要判斷2區(qū),依此類推,直到?jīng)]有照射,最大區(qū)號(hào)確定。這里判斷到6區(qū),已經(jīng)留有余地,實(shí)際上不大可能出現(xiàn)這種情況(參照?qǐng)D3分析)。第一次計(jì)算的中心區(qū)號(hào),還要判斷其值是否大于8,如果大于8還要減1,得到最終的結(jié)果。
5 光電靶控制器的程序設(shè)計(jì)
光電靶控制器的程序主要由開機(jī)自檢,操作命令的接收和執(zhí)行,無線數(shù)據(jù)信號(hào)的接收和顯示,聲音的播放控制等幾個(gè)部分組成,其主程序的框圖如圖6所示。
從圖6可以看出,主程序開機(jī)自檢之后,進(jìn)入主循環(huán)。在主循環(huán)中,除了按照各種標(biāo)志位來控制LED的顯示和語音播放之外,就是檢查按鍵,一旦有鍵盤命令,立即啟動(dòng)無線發(fā)送模塊進(jìn)行發(fā)送。這幾個(gè)鍵盤命令都是針對(duì)光電靶的命令,內(nèi)燈命令和外燈命令是對(duì)光電靶的夜間指示燈的控制命令,擊發(fā)命令和重發(fā)命令解釋如下:
擊發(fā)命令 在操炮手瞄準(zhǔn)靶標(biāo)踩下開炮開關(guān)時(shí),接通激光器電源發(fā)出激光,并同時(shí)產(chǎn)生一個(gè)信號(hào)給光電靶控制器的單片機(jī),由單片機(jī)通過無線信號(hào)傳送給光電靶。光電靶接收到擊發(fā)命令,開始對(duì)光敏元件進(jìn)行掃描,得到原始數(shù)據(jù)。在對(duì)掃描的數(shù)據(jù)處理之后得到激光光斑中心位置的信息,就是環(huán)號(hào)和區(qū)號(hào)。光電靶將此環(huán)號(hào)和區(qū)號(hào)通過無線模塊發(fā)送回光電靶控制器。光電靶控制器據(jù)此控制LED的顯示和語音播放。
重發(fā)命令 這個(gè)命令是要光電靶將上次擊發(fā)產(chǎn)生的信息重新發(fā)送一次,以便核對(duì)。
數(shù)據(jù)的接收每當(dāng)無線模塊接收到一次有效的信號(hào),就會(huì)申請(qǐng)一次中斷。在中斷服務(wù)程序中讀取接收的數(shù)據(jù),并保存在一個(gè)指定的地址里,以便主程序處理。數(shù)據(jù)的內(nèi)容是激光光斑中心的環(huán)號(hào)和區(qū)號(hào)。中斷服務(wù)程序的框圖如圖7所示。
6 結(jié)語
利用參考光和比較器進(jìn)行模數(shù)轉(zhuǎn)換,電路簡(jiǎn)單可靠,速度快。光敏元件圓環(huán)狀排列,可以充分利用元件。利用單片機(jī)的程序處理可以很容易得到光斑的中心位置。經(jīng)中國(guó)人民解放軍高炮某部使用效果很好,達(dá)到了設(shè)計(jì)要求,解決了動(dòng)態(tài)靶瞄準(zhǔn)的訓(xùn)練問題。而且光電靶重量輕、移動(dòng)方便,很適合各種野外訓(xùn)練需要。如果將激光器安裝在其他槍械上,還可以用在步兵的射擊訓(xùn)練上?,F(xiàn)在正在改進(jìn),準(zhǔn)備添加射擊成績(jī)統(tǒng)計(jì)功能,在光電靶控制器上加一個(gè)數(shù)碼顯示器,實(shí)時(shí)顯示射擊次數(shù)、總環(huán)數(shù)等,同時(shí)還可以與上位機(jī)聯(lián)網(wǎng),便于數(shù)據(jù)的儲(chǔ)存和管理。