宮瑤 李玉衡 徐夏怡 姚磊
摘 ?要: 本文基于對電磁線圈的理論分析及工作過程的解析,設計了以STM32F407單片機為核心,采用OpenMV視覺檢測技術的模擬電磁炮系統(tǒng),包括硬件電路及軟件設計。介紹了通過二自由度云臺的旋轉對電磁炮彈丸發(fā)射距離及發(fā)射偏轉角的控制以及利用OpenMV進行圖像處理獲得引導標識位置的方法。實驗及測試結果表明,該裝置實現(xiàn)了確定距離和偏轉角后電磁炮的準確瞄準和發(fā)射,以及自動搜索瞄準發(fā)射功能。
關鍵詞:?電磁炮設計;STM32單片機;舵機云臺;OpenMV
中圖分類號: TP273????文獻標識碼:?A????DOI:10.3969/j.issn.1003-6970.2020.02.004
本文著錄格式:宮瑤,李玉衡,徐夏怡,等. 基于STM32的模擬電磁曲射炮設計[J]. 軟件,2020,41(02):18-22+32
【Abstract】: Based on the theoretical analysis of the electromagnetic coil and the analysis of its working process, this paper designs an analog electromagnetic gun system with STM32F407 as the core and OpenMV vision detection technology, including hardware circuit and software design. This paper introduces the control of projectile launching distance and deflection angle of electromagnetic gun by rotation of two-degree-of-freedom platform, and the method of obtaining the position of guidance mark by image processing with OpenMV. Experiments and test results show that the device realizes the accurate aiming and launching of the electromagnetic gun after determining the distance and deflection angle, as well as the automatic searching aiming and launching function.
【Key words】: Electromagnetic gun design; STM32 microcontroller; Steering gear holder; OpenMV
0??引言
電磁炮是利用電磁發(fā)射技術制成的一種殺傷力極強的新型武器,它利用電磁場產(chǎn)生的洛倫茲力對彈丸進行加速,從而使彈丸獲得擊中目標所需的動能。在識別鎖定目標以后,彈丸可以比傳統(tǒng)火藥推動的發(fā)射器更大的速度發(fā)射,使彈丸射程大大增加。將電磁炮小型化,最終成為單兵武器的想法逐漸成熟[1]。
本文從模擬電磁炮發(fā)射原理切入,對實現(xiàn)模擬電磁炮準確發(fā)射,瞄準和自動搜索瞄準發(fā)射等功能進行了硬件電路和軟件系統(tǒng)的研究。
1 ?模擬電磁曲射炮理論分析及計算
1.1 ?線圈電磁炮理論分析及參數(shù)計算
廣義上講,所有驅動部分由線圈構成的電磁發(fā)射器都可成為線圈炮。所謂線圈炮,一般是指使用脈沖或交變電流產(chǎn)生磁行波來驅動帶有線圈的彈丸或磁性材料彈丸的發(fā)射裝置[2]。加速線圈固定在炮管中,當它通入交變電流時,產(chǎn)生的交變磁場就會在彈丸線圈中,產(chǎn)生感應電流。感應電流的磁場與加速線圈電流的磁場相互作用,使彈丸線圈加速運動并發(fā)射。
如果線圈中只有持續(xù)的恒定電流通過,彈丸受洛倫茲力會在磁場中做往復運動,為了彈丸可以成功發(fā)射出去,需要選擇合適電容量的電容,在彈丸減速前切斷或減弱對線圈的供電。當彈丸接近運動到炮管的中點時[3],電容放電基本完成,根據(jù)慣性彈丸繼續(xù)運動發(fā)射出去。則電磁炮設計成功。
可得充電電壓越高,電容值越高,存儲能量越高。而電容值也決定充電時間的長短,電容值越高充電時間越長[5]?;陔娙莩潆姇r間和儲能能量的綜合考慮,選取電容值為4500?uF耐壓值為470?V的電容。采用100?V直流電源對其充電,根據(jù)上式得電容最大儲能為497?J。
經(jīng)檢測,當對電容值為4500?uF的電容充電時,電壓達到100?V時,彈丸的水平發(fā)射距離可達300?cm。
2 ?模擬電磁曲射炮系統(tǒng)硬件設計
硬件設計的思路為:彈丸從固定長度的彈道中發(fā)射,彈丸的垂直發(fā)射角度由舵機一控制,OpenMV的水平偏轉角度由舵機二控制,兩個舵機及固定裝置組成二自由度舵機云臺。
3 ?模擬電磁曲射炮系統(tǒng)電路設計
3.1??系統(tǒng)方案
模擬電磁炮系統(tǒng)中硬件結構主要由控制電路和電磁炮電路兩部分組成。控制電路由[7]光耦模塊,輔助電源模塊,MOSFET管驅動模塊組成,通過STM32主控直接控制。電磁炮部分由繼電器模塊,MOSFET管開關模塊,電解電容及線圈組成。系統(tǒng)原理:開始工作前,繼電器和MOSFET管均斷開,在電容兩端加高壓,接受到STM32的控制信號后,MOSFET管閉合,電容開始充電,在電容充電完成之后,MOSFET管斷開,繼電器閉合,電解電容開始放電,在放電完成后,彈丸發(fā)射出去,并且繼電器斷開,回到初始狀態(tài)。
3.2??光耦控制功率繼電器模塊
本系統(tǒng)選用光耦來控制功率繼電器,由于光耦能夠有效隔絕輸入輸出的電信號,使電信號單向傳輸,因而具有良好的電絕緣能力和抗干擾能力。工作原理為:當光耦接受到單片機的信號時,光耦內(nèi)三極管導通。繼電器兩端加24?V電壓,繼電器閉合,電解電容開始放電。
功率繼電器光耦驅動電路如圖5所示。
3.3??MOS管驅動及開關模塊
本系統(tǒng)中MOSFET管用來控制電解電容的充電,其驅動電路的選擇尤為重要。
對MOSFET管驅動電路需滿足以下幾個條件:1.當開關管開通時,驅動電路應可以保證提供足夠大的充電電流,使MOSFET管柵極間電壓迅速上升到所需值。2.開關導通時驅動電路應保證MOSFET管柵極間電壓保持穩(wěn)定。3.關斷瞬間驅動電路應能提供低阻抗通路使MOSFET管柵極間電容電壓能快速釋放,保證迅速關斷。4.關斷期間驅動電路能防止MOSFET管誤導通。綜上選擇適合此硬件電路的MOSFET管驅動。驅動電路圖如圖6所示。
4 ?模擬電磁炮系統(tǒng)的軟件設計
系統(tǒng)軟件采用模塊化設計,整個軟件設計分為若干模塊,主要有主程序模塊,其次為電源模塊,鍵盤模塊,LCD顯示模塊,OpenMV攝像頭捕捉模塊,舵機模塊。
4.1??主程序模塊
本軟件設計是以STM32單片機為核心,采用視覺檢測技術的模擬電磁曲射炮系統(tǒng),通過二自由度云臺的旋轉,實現(xiàn)電磁炮彈丸發(fā)射距離及發(fā)射偏轉角的控制。
該系統(tǒng)有兩種發(fā)射方式:手動發(fā)射及自動發(fā)射。手動發(fā)射通過按鍵輸入彈丸發(fā)射的距離及偏轉角,確認發(fā)射后,STM32F407VG控制器傳遞控制信號給驅動電路,從而完成發(fā)射。自動發(fā)射通過攝像頭捕捉引導標識所在圖像,然后用OpenMV進行相應的圖像處理算法處理圖像,獲得引導標識在捕捉圖像中的位置,將位置傳送給STM32F407VG系統(tǒng)控制器,控制舵機水平轉動,直到引導標識處于圖像正中心時,測量攝像頭與引導標識之間距離,將距離傳送給STM32F407VG系統(tǒng)控制器,控制舵機垂直轉動。在舵機上進行控制算法,控制兩個舵機在云臺轉動從而來控制電磁炮完成各項任務的要求。系統(tǒng)框圖如圖7所示。
4.2 ?按鍵及顯示模塊
首先判斷按鍵是否被按下,如果按鍵被按下后,進行延時消抖并判斷按下鍵號。當按鍵一被按下時,進行任務模式選擇;當按鍵二被按下時,根據(jù)任務模式選擇,設置距離和偏移角度(改變十位);當按鍵三被按下時,根據(jù)任務模式選擇,設置距離和偏移角度(改變個位);當按鍵四被按下時,對當前的任務模式進行確認;當按鍵五被按下時,執(zhí)行掃描發(fā)射功能。LCD顯示屏實時顯示當前任務模式,更改后的距離和角度及OpenMV攝像頭返回的像素距離值。按鍵流程如圖8所示。
4.3 ?OpenMV攝像頭模塊
本設計利用OpenMV單顏色彩色識別技術及測距技術。工作流程為:OpenMV隨舵機在水平方向上轉動,在采集范圍內(nèi),進行圖像預處理[8],識別紅色引導標識的位置,自動返回紅色標識的像素點及距紅色標識的距離,通過距離控制舵機旋轉而使電磁炮實現(xiàn)自動掃描發(fā)射追蹤等功能。
4.3.1 ?單顏色彩色識別技術
以識別紅色引導標識為例,首先進行程序初始化,設置thresholds(顏色閾值)={30, 100,15,?127,?15,127},重置感光元件及攝像機,設置顏色格式及圖像大小,并關閉白平衡和自動增益;然后在while中調用find_blobs(),并設置其重要參數(shù)。利用find_blobs(),,返回識別像素點坐標,顯示在STM32單片機LCD顯示屏上,可作為調整并固定電磁炮放置角度的參考依據(jù)。
4.3.2??測距技術
OpenMV中有兩種測距方法:第一種為利用Apriltag標簽進行測距,第二種為利用OpenMV捕捉到物體的像素數(shù)進行測距。Apriltag標簽法較為簡單,將標簽貼到需測距物體上,攝像頭識別到標簽后,即可返回距離位置及坐標。但不是所有物體都可以貼上標簽后再進行測距,所以我們采用第二種更為普遍的方法。
利用像素數(shù)進行測距,需要得到實際距離和像素數(shù)的關系來計算比例系數(shù)K值,K=實際距離/像素數(shù)。在具體實踐中,需要通過大量測試得到多組像素數(shù)和實際距離的數(shù)據(jù),去掉不合理的值,通過MATLAB中polyfit()函數(shù),擬合得到函數(shù)關系,得到最符合準確的K值。但是本技術受物體大小和形狀的影響,如更換了物體,則需重新測量K值。
在編程時,首先進行程序初始化,調用色塊識別函數(shù)find_blobs()。blob[0]設置為識別到的第一個色塊,b[2]和b[3]為檢測物體的長和寬,因為引導標識為紅色圓形,所以取像素數(shù)為(b[2]+b[3])/2。然后代入得到的K值,計算距離即可。將得到的距離返回STM32單片機,用于控制彈丸的發(fā)射角度。
4.4??舵機控制模塊
能夠實現(xiàn)炮管及攝像頭旋轉的電機有三種選擇方案。方案一:采用步進電機。電機旋轉角度正比于脈沖數(shù),具有良好的位置精度和運動的重復性。但容易產(chǎn)生共振,難以運轉到較高的轉速。方案二:采用直流電機。直流電機具有良好的啟動特性和調速特性,轉矩比較大。結構復雜,維護不方便。方案三:采用舵機。比例控制,轉動角度是以脈沖占空比決定的,使用舵機帶動連接軸即可控制平臺的傾角,響應速度較快,力矩大,使用方便。綜上所述選擇MG996舵機。
在編程時,首先自定義函數(shù)initServoPWM()初始化定時器,開啟TIM時鐘并設置分頻數(shù);然后初始化PWM輸出通道;最后通過setServoAngle()函 ?數(shù)改變占空比控制舵機的旋轉角度,利用已知角度與占空比的關系servo_temp=angle*200/180+?50,計算出占空比控制舵機旋轉。舵機控制流程圖如圖9所示。
5??實驗驗證
(1)驗證模擬電磁曲射炮在不同距離條件下的瞄準準確度。
將環(huán)形靶放置在靶心距離定標點 200~300?cm 間,且在中心軸線上的位置處。多次改變模擬電磁炮與環(huán)形靶之間的距離,記錄不同距離時,彈丸發(fā)射后擊中的環(huán)數(shù)。
(2)驗證模擬電磁曲射炮在不同距離及不同水平發(fā)射角條件下的瞄準準確度。
將環(huán)形靶放置在靶心距離定標點 200~300?cm 間,且在中心軸線上的位置處,多次改變模擬電磁炮與環(huán)形靶之間的距離及水平發(fā)射角度,記錄不同距離及不同水平發(fā)射角時,彈丸擊中環(huán)形靶環(huán)數(shù)。
(3)驗證模擬電磁曲射炮在自動瞄準發(fā)射條件下的瞄準準確度。
在一定角度內(nèi)(–30°至30°)任意位置放置環(huán)形靶(有引導標識),一鍵啟動后,電磁炮自動搜尋目標并發(fā)射彈丸,記錄不同位置處,彈丸發(fā)射擊中環(huán)形靶環(huán)數(shù)。
驗證結果:在不同發(fā)射距離,不同水平發(fā)射角以及自動搜索引導標識的發(fā)射條件下,彈丸發(fā)射擊中的環(huán)數(shù)與理論計算環(huán)數(shù)偏差均小于等于2環(huán)(20cm),且無脫靶及識別失敗的現(xiàn)象,實驗結果較為理想,驗證了彈丸發(fā)射距離曲線擬合的準確性和控制二自由度舵機云臺偏轉角度的精確性。
6??結論
本文主要從硬件和軟件兩個方面,介紹了以STM32F407單片機為核心,采用OpenMV視覺檢測技術的模擬電磁炮系統(tǒng)。設計中基于OpenMV的圖像處理技術和基于STM32F407的二自由度舵機控制技術,使模擬電磁炮具有自動跟蹤掃描,發(fā)射瞄準的功能。同時通過MATLAB擬合彈丸發(fā)射曲線,使電磁炮的瞄準率大大提高。對提高模擬電磁曲射炮瞄準率和識別的準確度,未來有待進一步研究。本文研究的模擬電磁炮系統(tǒng),適應時代發(fā)展的潮流,具有廣闊的發(fā)展前景。
參考文獻
李如年,?王敬, 王海.?新概念動能武器:?電磁炮[J].?中國電子科學研究院學報, 2011, 10(2):?25-27.
蔡冬如,?毛桂平,?曹靖偉,?等.?微型電磁線圈炮的設計與實現(xiàn)[J].?價值工程,?2018,?37(29):?156-158.
黃強, 郭東橋, 卞光榮.?電磁炮的原理與技術發(fā)展[J].?現(xiàn)代物理知識,?2007, 19(1):?43-45.
電磁學[M].?高等教育出版社,?趙凱華,?1985.
王偉祥.?基于STM32控制的便攜式模擬電磁炮設計[J/OL].武漢交通職業(yè)學院學報:?1-4[2019-1007].?http://kns.cnki.?net/kcms/detail/42.1746.U.20190929.1721.012.html.
劉尚昊.?斜拋運動最大射程問題分析[J].?科技資訊,?2018,?16(25):?233-234.
徐萬彬,?萬華.?觸發(fā)開關電路的設計與應用[J].?電子世界,?2019(03):?150+152.
何玉.?基于Python語言圖像邊緣檢測及其算法分析[J].?計算機產(chǎn)品與流通,?2018(6):?147.