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