高 麗,張 輝,孫 洋
(安徽師范大學(xué) 皖江學(xué)院,安徽 蕪湖 241000)
電磁彈射技術(shù)是一種新興的直線推進(jìn)技術(shù),采用電磁產(chǎn)生的能量推動(dòng)物體向外運(yùn)動(dòng),與傳統(tǒng)的機(jī)械彈射、能量彈射相比更加穩(wěn)定、可控、環(huán)保[1-3]。目前的電磁彈射裝置大多需要人工調(diào)節(jié)發(fā)射軌道,操作繁瑣且誤差較大[4,5]。測量方式一般使用超聲波、激光等。測量維度單一,容易受環(huán)境影響且只能測算固定目標(biāo)的位置[6-8]。本文設(shè)計(jì)的電磁彈射系統(tǒng)支持鍵盤輸入距離和角度值,自動(dòng)調(diào)節(jié)發(fā)射軌道,可以減少人為因素帶來的操作誤差。同時(shí),支持?jǐn)z像頭和紅外測距模塊作為測量工具來實(shí)時(shí)測算目標(biāo)的距離和角度,可在運(yùn)動(dòng)中鎖定并擊中目標(biāo)。
基于圖像處理的全自動(dòng)電磁彈射系統(tǒng)需實(shí)現(xiàn)按鍵輸入、顯示控制量、紅外光測量距離、攝像頭找尋目標(biāo)、云臺(tái)輸出方向、電磁彈射發(fā)射等功能[9]。選擇矩陣鍵盤、LCD 顯示、紅外測距、攝像頭、二維舵機(jī)云臺(tái)、電磁彈射等模塊進(jìn)行硬件電路設(shè)計(jì)。為整合所有設(shè)計(jì)模塊之間數(shù)據(jù)的處理,選擇STM32作為主控MCU。系統(tǒng)設(shè)計(jì)總體框圖如圖1所示。
圖1 系統(tǒng)總體框圖
全自動(dòng)電磁彈射系統(tǒng)主要由3部分組成,即:主控部分、數(shù)據(jù)采集及電磁彈射部分。其中,主控模塊選用STM32F103ZET6,負(fù)責(zé)數(shù)據(jù)的處理、控制指令的生成和協(xié)調(diào)其他模塊。
數(shù)據(jù)采集主要由攝像頭傳感器、紅外測距傳感器組成。攝像頭選擇openMV,openMV 上搭載了Micro Python 解釋器,方便在機(jī)器視覺算法中處理復(fù)雜的數(shù)據(jù)或執(zhí)行算法,在圖像處理方面有著高效快速的處理運(yùn)算機(jī)制。紅外測距模塊選擇TFmini Plus。
二維舵機(jī)云臺(tái)由兩個(gè)RDS3115 舵機(jī)、一個(gè)正副金屬舵盤、一個(gè)正切U 型支架以及若干底座支架構(gòu)成。主控運(yùn)算數(shù)據(jù)輸出PWM 波到舵機(jī)云平臺(tái)計(jì)算彈射軌道。
系統(tǒng)的硬件電路主要包括電磁彈射電路、穩(wěn)壓電路及升壓電路。穩(wěn)壓電路穩(wěn)定系統(tǒng)的輸入電壓,便于整個(gè)控制系統(tǒng)數(shù)據(jù)的采集和輸出數(shù)據(jù)的穩(wěn)定。升壓電路可以提升彈射電路的輸入電壓,彈射模塊獲得更高的能量,從而被彈射物體的初速度更大以提高整個(gè)裝置的彈射距離。彈射電路將從升壓電路獲得的電能轉(zhuǎn)化為被彈射物體的動(dòng)能,從而彈射目標(biāo)。
電磁彈射按照加速原理可分為線圈型、導(dǎo)軌型兩大類。其中導(dǎo)軌加速型體量大、不易控制且成本較高。本系統(tǒng)選擇線圈加速型,將銅絲繞成線圈構(gòu)成彈射軌道,銅絲的兩端接入儲(chǔ)能電路,當(dāng)銅絲上電流瞬間變化時(shí)會(huì)引起線圈軌道內(nèi)磁通量的變化,此時(shí)線圈內(nèi)的導(dǎo)體產(chǎn)生電動(dòng)勢從而獲得加速動(dòng)能[10]。因此實(shí)現(xiàn)電磁彈射需要彈射電路且具備瞬間放電的能力。如圖2 所示,選擇1000uf 大電容作為儲(chǔ)能元件,開始充電時(shí)穩(wěn)壓電路工作,電容C1 開始儲(chǔ)存電能,直到被充滿,按下按鍵使得加速線圈中的電流急劇增大,最終物體被彈出。
圖2 彈射電路
整個(gè)彈射系統(tǒng)需要用到兩種不同的供電,且總的實(shí)際供電電壓值會(huì)有波動(dòng),為保證整個(gè)系統(tǒng)每次采集的數(shù)據(jù)受到的硬件電路影響降低,使用下列兩種穩(wěn)壓方式進(jìn)行穩(wěn)定輸出電壓操作。
(1)7.2V 轉(zhuǎn)5V 電壓:通過AMS1086-5.0 穩(wěn)壓芯片進(jìn)行轉(zhuǎn)化,用于攝像頭、電磁彈射模塊和測距模塊,如圖3(a)所示。
(2)轉(zhuǎn)3.3V 電壓:使用AMS1086-3.3 穩(wěn)壓芯片進(jìn)行轉(zhuǎn)化,用于單片機(jī)的供電,如圖3(b)所示。
圖3 穩(wěn)壓電路
由于被彈射物體彈射出一定距離需要足夠的電能,系統(tǒng)最大只能提供5V 電壓,因此需要升壓。如圖4,SX1308 是一種實(shí)用的貼片升壓芯片,電路最高升壓可達(dá)28V,輸出電流最大為2A,并且可以在過流、過熱時(shí)保護(hù)電路。SX1308可以為彈射模塊提供足夠的驅(qū)動(dòng)能力。調(diào)節(jié)電阻的阻值可以控制電路實(shí)際電壓,具有一定的開放設(shè)計(jì)范圍,利于整體結(jié)構(gòu)的調(diào)整。
圖4 升壓電路
系統(tǒng)的軟件設(shè)計(jì)主要包括圖像位置控制算法及發(fā)射控制部分,整體軟件流程如圖5所示。
圖5 系統(tǒng)程序流程圖
系統(tǒng)完成初始化且各模塊能正常返回測量數(shù)據(jù)后,主控通過調(diào)節(jié)云臺(tái)方向角的變化控制攝像頭采集圖像,尋找目標(biāo)位置。同時(shí)利用算法處理,找到目標(biāo)后立即觸發(fā)中斷。進(jìn)入中斷后,首先測量目標(biāo)位置,然后計(jì)算并輸出云臺(tái)舵機(jī)仰角,控制舵機(jī)完成輸出的仰角數(shù)值并啟動(dòng)彈射裝置。將攝像頭找尋到目標(biāo)作為中斷觸發(fā)條件,距離測算和彈射仰角運(yùn)算放在中斷服務(wù)函數(shù)中執(zhí)行,將其作為整體軟件控制框架結(jié)構(gòu),并且可以通過節(jié)約MCU 的運(yùn)算資源來增強(qiáng)單個(gè)模塊數(shù)據(jù)處理的精度和速度。
實(shí)現(xiàn)自動(dòng)電磁彈射的第一步就是能夠?qū)崟r(shí)檢測到目標(biāo)的所在位置并控制彈射對(duì)準(zhǔn)目標(biāo)方向,因此需要提高攝像頭的數(shù)據(jù)采集速度、目標(biāo)位置鎖定的準(zhǔn)確性以及對(duì)輸出控制量的平穩(wěn)輸出。本系統(tǒng)采用邊緣檢測、腐蝕膨脹處理、PID 控制3 種算法來實(shí)現(xiàn)。
4.2.1 邊緣檢測算法
當(dāng)系統(tǒng)初始化完成后云臺(tái)開始旋轉(zhuǎn),便于攝像頭找尋目標(biāo),程序開始進(jìn)入圖像處理部分。當(dāng)攝像頭采集圖像并傳回后,對(duì)采集到的整體圖像進(jìn)行顏色識(shí)別和形狀識(shí)別找尋目標(biāo),與此同時(shí)在找尋目標(biāo)過程中加入邊緣檢測算法來提高攝像頭對(duì)目標(biāo)的反應(yīng)速度。
4.2.2 圖像腐蝕膨脹處理
為盡量減小環(huán)境光線對(duì)數(shù)據(jù)的影響以提高系統(tǒng)對(duì)目標(biāo)位置鎖定的準(zhǔn)確性,使用腐蝕、膨脹手段先后處理攝像頭掃描到的視野數(shù)據(jù),對(duì)目標(biāo)外的地方腐蝕處理,對(duì)目標(biāo)進(jìn)行膨脹處理。腐蝕處理可以將圖像的高亮部分減小,突出目標(biāo)區(qū)域。而膨脹會(huì)在目標(biāo)圖像的邊緣添加像素值,進(jìn)而達(dá)到突出目標(biāo)的目的,使結(jié)果更為準(zhǔn)確。
4.2.3 PID控制算法
利用位置PID算法來實(shí)時(shí)控制彈射對(duì)準(zhǔn)目標(biāo)方向,輸出PWM 波控制舵機(jī)偏轉(zhuǎn)角度,系統(tǒng)輸出的PWM 波也代表了位置PID處理后的數(shù)學(xué)期望,其時(shí)域表達(dá)式如下:
T0表示PID 控制器的采樣周期,利用millis()函數(shù)得到開機(jī)以來的毫秒數(shù),通過dalta_time()函數(shù)得到當(dāng)前時(shí)間,從而得到采樣周期。因?yàn)樵趯?shí)際控制中攝像頭每一次掃描到目標(biāo)需要的時(shí)間不同,所以需要實(shí)時(shí)測量實(shí)際的采樣周期,以達(dá)到精確控制的目的。
控制彈射模塊發(fā)射物體且準(zhǔn)確擊中目標(biāo),首先需測得目標(biāo)與彈射裝置的距離,分析云臺(tái)仰角與彈射距離對(duì)應(yīng)關(guān)系。通過紅外測距模塊測得離目標(biāo)的距離值并利用多次測量的數(shù)據(jù)推導(dǎo)出距離-仰角的對(duì)應(yīng)關(guān)系。
4.3.1 數(shù)據(jù)幀格式設(shè)計(jì)
當(dāng)攝像頭視野中心與目標(biāo)中心位置一致后開啟距離中斷,TFmini Plus測距模塊開始測量目標(biāo)與攝像頭之間的距離,通過飛行時(shí)間原理計(jì)算出距離數(shù)據(jù),使用USART 發(fā)送給主控。由紅外測距模塊發(fā)送主控的數(shù)據(jù)信息如表1所示。
表1 數(shù)據(jù)幀格式
數(shù)據(jù)格式為十六進(jìn)制。每一個(gè)數(shù)據(jù)幀的前兩個(gè)字節(jié)都為0X59,主控在接收數(shù)據(jù)幀時(shí)需要分析數(shù)據(jù)幀頭部并解析數(shù)據(jù),若數(shù)據(jù)幀的頭部為兩個(gè)0X59,則為有效數(shù),否則丟棄。解析出正確數(shù)據(jù)幀后,提取距離、信號(hào)強(qiáng)度信息。查詢數(shù)據(jù)幀協(xié)議可知,需要將高八位左移八位,在加上低八位才是正確的數(shù)據(jù),其中Dist 為距離信息,Str 為信號(hào)強(qiáng)度信息,范圍為0-65535,一般信號(hào)強(qiáng)度越低代表目標(biāo)物反射率越低,只有Str 值位于100-65535 時(shí),此次的距離測量值有效。
4.3.2 距離-仰角函數(shù)擬合設(shè)計(jì)
仰角采用舵機(jī)控制,因此需要建立目標(biāo)距離-仰角-PWM占空比之間的函數(shù)。
假設(shè)電磁彈射裝置每次發(fā)射時(shí)給被彈射物的動(dòng)能不變,則物體獲得的初速度不變定義為V,云臺(tái)的仰角為α,整個(gè)裝置的水平高度為H,在忽略空氣阻力的基礎(chǔ)下結(jié)合自由落體數(shù)學(xué)公式得到如下距離角度公式。
組裝舵機(jī)云臺(tái),固定攝像頭支架,將測距模塊中心點(diǎn)與攝像頭焦點(diǎn)對(duì)齊,將電磁彈射裝置固定于仰角舵機(jī)上。為了測量整個(gè)彈射系統(tǒng)的準(zhǔn)確性及速度,設(shè)置如圖6 所示的不同距離和不同角度的測試點(diǎn)。將電磁彈射裝置放置在坐標(biāo)定點(diǎn)處,目標(biāo)位置為圖中ABCDEFG7點(diǎn)。
圖6 測試點(diǎn)位置
利用圖像處理算法、控制算法、通信協(xié)議等,對(duì)實(shí)驗(yàn)數(shù)據(jù)進(jìn)行了多次采集擬合。為加快整個(gè)系統(tǒng)的反應(yīng)速度,通過以下3 種測量方式對(duì)整個(gè)系統(tǒng)的運(yùn)行狀況進(jìn)行測量。
(1)通過矩陣鍵盤輸入距離d值與中心軸線的偏離角度α,一鍵啟動(dòng)后,電磁彈射裝置自動(dòng)瞄準(zhǔn)射擊,取得輸入射擊數(shù)據(jù)表,測量準(zhǔn)確性。
表2 所示為輸入射擊數(shù)據(jù)表,其中,P 為輸入角度(°),S為輸入距離(cm),D為5次的誤差(cm),AD為里中心點(diǎn)的平均誤差。通過矩陣鍵盤輸入固定的角度及固定的距離得出誤差不超過6cm??梢娤到y(tǒng)的精確系數(shù)較高,且目標(biāo)距離越遠(yuǎn),彈射裝置的精度越差。
表2 輸入射擊數(shù)據(jù)表
(2)選取半徑為30cm 的圓形靶作為目標(biāo),電磁彈射裝置與環(huán)形靶的位置示意如圖7所示。電磁彈射裝置放在指定位置(定標(biāo)點(diǎn)),所有參數(shù)全部為初始值即水平方向夾角為0°、垂直方向夾角為0°。環(huán)形靶水平放置在地面,靶心位置在與定標(biāo)點(diǎn)距離200-300cm。通過引導(dǎo)標(biāo)識(shí)確定輸出量并計(jì)算軌道。
圖7 電磁彈射裝置與環(huán)形靶的位置示意圖
選擇固定住電磁彈射裝置,并將攝像頭偏轉(zhuǎn)角的初始值設(shè)為0°,然后選擇將標(biāo)靶隨機(jī)移動(dòng)到圖6的7 個(gè)測試點(diǎn),并在標(biāo)靶到達(dá)測試點(diǎn)固定不動(dòng)且一鍵啟動(dòng)裝置后開始計(jì)時(shí),測量系統(tǒng)的反應(yīng)時(shí)間。表3 所示為瞄準(zhǔn)射擊數(shù)據(jù)表,測量系統(tǒng)整體的反應(yīng)速度,其中,T 為5 次的時(shí)間誤差(s),AT 為平均時(shí)間誤差(s)。
表3 搜尋瞄準(zhǔn)射擊數(shù)據(jù)表
由表3 的實(shí)驗(yàn)數(shù)據(jù)可以得出,在前方180°的水平偏轉(zhuǎn)角度的范圍內(nèi),系統(tǒng)的搜尋目標(biāo)的時(shí)間不會(huì)超過21s。系統(tǒng)裝置在進(jìn)行目標(biāo)搜尋時(shí),先進(jìn)行向左5°的偏轉(zhuǎn)角偏轉(zhuǎn)到左極限,若沒有發(fā)現(xiàn)目標(biāo)則由左極限向右極限方向以5°的偏轉(zhuǎn)角偏轉(zhuǎn)到右極限依次循環(huán)。實(shí)驗(yàn)結(jié)果表明按照此方法運(yùn)行,系統(tǒng)的總體反映速度較快。
(3)將電磁彈射裝置固定不動(dòng),將目標(biāo)放置在E點(diǎn)即正對(duì)攝像頭中心距離為260cm 的點(diǎn),將攝像頭進(jìn)行左右勻速偏轉(zhuǎn)45°角并做往復(fù)偏轉(zhuǎn)運(yùn)動(dòng),在運(yùn)動(dòng)中對(duì)目標(biāo)進(jìn)行位置鎖定并彈射出去,得出運(yùn)動(dòng)瞄準(zhǔn)射擊數(shù)據(jù),如表4 所示,用來測量系統(tǒng)的整體穩(wěn)定性。
表4 運(yùn)動(dòng)瞄準(zhǔn)射擊數(shù)據(jù)表
本文設(shè)計(jì)并實(shí)現(xiàn)了一種基于圖像處理的全自動(dòng)電磁彈射系統(tǒng),解決了傳統(tǒng)電磁彈射裝置需要人工調(diào)整角度的問題,實(shí)現(xiàn)了自動(dòng)掃描鎖定目標(biāo)位置的功能。設(shè)計(jì)了整個(gè)硬件電路,編寫了控制系統(tǒng)的圖像處理算法,位置控制算法,各模塊之間的通信數(shù)據(jù)處理等。實(shí)驗(yàn)結(jié)果基本上實(shí)現(xiàn)了本文理論設(shè)計(jì)的功能。但文中提出的設(shè)計(jì)還有不足之處,如彈射電路的儲(chǔ)能大電容的能量無法一次釋放等,后期將繼續(xù)改進(jìn)。