AVR單片機在無(wú)線(xiàn)自動(dòng)報靶系統中的應用
目前,在野外射擊訓練考核中,大部分還是通過(guò)人工報靶的方法,帶有很多人為因素(如報靶人員的主觀(guān)性、情緒等),影響報靶的結果,使得射手不能正確了解自己的成績(jì),不利于打靶水平的提高。雖然現在市面上出現了一些自動(dòng)報靶產(chǎn)品,但這些產(chǎn)品的成本高、系統比較復雜,并且占用場(chǎng)地。因此,本文根據實(shí)際訓練需要,研制出了集輕武器射擊訓練所需的所有功能于一體的、基于AVR單片機的一種無(wú)線(xiàn)自動(dòng)報靶系統。該系統包括精確和非精確報靶,射擊成績(jì)的自動(dòng)實(shí)時(shí)顯示、統計和打印,可以滿(mǎn)足多種武器和多種射擊模式的訓練需求,對目標的隱顯時(shí)機、次數、間隔等均按訓練大綱要求由電腦自動(dòng)控制,既可同時(shí)監控多個(gè)(25個(gè))靶位的射擊情況,也可單獨監控一個(gè)靶位的射擊情況。
1 系統組成
無(wú)線(xiàn)自動(dòng)報靶系統由傳感器(特制頭靶、胸靶、身靶等)、數據采集、無(wú)線(xiàn)傳輸、數據處理、顯示和打印機等構成。報靶傳感器為特制的靶子,其兩面各有一層導電橡膠(或其他導電軟材料),反面導電橡膠接地線(xiàn),正面按胸環(huán)靶樣式用絕緣材料分隔成不同環(huán)位和方位區域,不同區域分別引出信號線(xiàn)。當子彈穿越靶子,射擊目標的報靶可以精確到5~10環(huán)(以胸環(huán)靶為例),彈著(zhù)點(diǎn)的顯示可以精確到圓周的1/8,即將每一環(huán)分為8個(gè)區域,報靶信息即為射擊的環(huán)數和所處的區域。圖1為紙上對環(huán)和區域的劃分情況。
當子彈穿過(guò)目標時(shí),在瞬間會(huì )連通其中的一個(gè)環(huán)和一個(gè)區域,完成數據采集,單片機由此確定報靶信息,編碼后由收發(fā)模塊調制發(fā)出,完成射擊成績(jì)的報靶。子彈擊中目標的情況如圖2所示。
2 單片機控制電路設計
在本系統中,單片機采用Atmel公司的AVR單片機Atmega32。在如圖3所示的單片機控制電路圖中,PB端口和PC端口用于檢測靶的環(huán)和區的信號,當有子彈穿過(guò)靶時(shí),會(huì )將連接在PB和PC端口對應的環(huán)和區引腳導通,通過(guò)讀取PB和PC端口的引腳電平狀態(tài),即可分析出子彈擊中了靶中哪個(gè)環(huán)和區。
圖3中,PA0引腳的ADC用于將采樣電機過(guò)載電流信號傳送給MCU,PD4~PD7用于驅動(dòng)全橋電路的4個(gè)臂端,以保證電機正常運轉。K1、K2按鍵的功能是手動(dòng)啟動(dòng)電機將靶拉起或放倒。PD0、PD1引腳是串行通信接口的RXD和TXD,這兩個(gè)引腳與無(wú)線(xiàn)發(fā)射/接收模塊的TXD和RXD相連接,當ATmega32單片機檢測到子彈擊中靶子時(shí),將計算出來(lái)的環(huán)和區的信號通過(guò)RXD和TXD引腳發(fā)射出去,傳送到計算機軟件系統。
由于子彈的速度很快(達到1 000 m/s),靶的內部鋁層厚度為5 mm,使穿透鋁層最小時(shí)間只需5 μs。而在這5 μs時(shí)間之內,Atmega32單片機必須通過(guò)PB和PC端口完成實(shí)時(shí)的采樣,并同時(shí)計算出子彈是穿透哪個(gè)環(huán)和區。因此,必須為Atmega32配置高速的時(shí)鐘源。由于A(yíng)tmega32單片機頻率最高可以達到25 MHz,但同時(shí)還要滿(mǎn)足串行通信的波特率要求,因此,Atmega32采用18.432 MHz的時(shí)鐘源,為整個(gè)系統高速運算提供保證。
在實(shí)際測試中,Atmega32單片機從檢測到子彈開(kāi)始發(fā)射到子彈穿透鋁層,并確定子彈穿透的是哪個(gè)環(huán)和區,不到2 μs就可以完成采樣。
3 單片機軟件設計
單片機軟件主要功能:(1)實(shí)時(shí)檢測是否有子彈穿透訓練靶,若檢測到有子彈穿過(guò),程序獲取靶被擊中的環(huán)和區,并將該靶的環(huán)和區信息通過(guò)串口發(fā)送出去。由于這部分程序對時(shí)間要求極為苛刻,因此將這部分內容由INT0外部中斷服務(wù)程序來(lái)完成。(2)單片機串口實(shí)時(shí)監測是否有控制中心發(fā)來(lái)的數據幀,若有,則讀取數據幀內容,并分析是否為合法數據幀,若是非法幀,則丟棄該幀;若是合法數據幀,則分析該幀的內容,并置接收幀成功標志。由于控制中心可能隨時(shí)會(huì )發(fā)送數據幀過(guò)來(lái),這部分內容交給串口的中斷服務(wù)程序來(lái)完成。(3)主程序中,除了完成相關(guān)初始化內容之外,主要判斷按鍵K1和K2是否按下,若有則執行電機驅動(dòng)的拉起和放倒動(dòng)作;同時(shí),還檢測接收到的數據幀標志是否成功,若成功,則根據數據幀的命令字來(lái)分析夜間指示燈的開(kāi)或關(guān)閉、啟動(dòng)電機作拉起或放倒動(dòng)作等。
評論