張清勇, 呂笑天, 李志勇, 李嘉豪
(武漢理工大學(xué)自動(dòng)化學(xué)院,武漢430070)
隨著機(jī)器視覺不斷發(fā)展以及人們對(duì)電磁場(chǎng)學(xué)科的不斷探索,電磁曲射炮逐漸步入人們的視野。針對(duì)高校對(duì)電磁場(chǎng)以及機(jī)器視覺的教學(xué),設(shè)計(jì)一種基于機(jī)器視覺的模擬電磁曲射炮系統(tǒng)可以更好地幫助學(xué)生掌握相關(guān)知識(shí)。
目前出現(xiàn)的電磁發(fā)射器按照發(fā)射原理和結(jié)構(gòu)不同主要分為軌道型、重接型和線圈型[1-2]。
軌道型電磁炮采用金屬軌道作為炮管、固體或等離子體作為電樞、運(yùn)用洛倫茲力實(shí)現(xiàn)電樞的發(fā)射,軌道型電磁炮起步較早,從構(gòu)造方面來看更加接近傳統(tǒng)炮概念,但因受軌道材料限制當(dāng)今發(fā)展較慢。
重接型電磁炮無炮管、電樞,采用磁場(chǎng)重接完成彈丸的發(fā)射,該電磁炮具有無接觸、無燒融等優(yōu)點(diǎn),但目前對(duì)重接型電磁炮的研究還不是很成熟,不適合本次設(shè)計(jì)使用。
線圈型電磁炮的炮管形式為驅(qū)動(dòng)線圈,使用金屬環(huán)作為電樞,運(yùn)用載流導(dǎo)體間的磁力完成彈丸的發(fā)射,此種電磁炮因驅(qū)動(dòng)線圈與炮彈無直接接觸,避免摩擦因素,并且相同電流下推進(jìn)力更大、可控性更好[3]。
本文使用線圈型電磁炮以及OpenMV機(jī)器視覺模塊,實(shí)時(shí)獲取所需顏色位置,實(shí)現(xiàn)炮口對(duì)引導(dǎo)標(biāo)識(shí)的實(shí)時(shí)追蹤,并實(shí)現(xiàn)對(duì)環(huán)形靶心的精準(zhǔn)打擊。系統(tǒng)方案實(shí)現(xiàn)難度較低,且精度極高,足夠滿足本次設(shè)計(jì)需要。
基于機(jī)器視覺的模擬電磁曲射炮系統(tǒng)機(jī)械結(jié)構(gòu)如圖1 所示。該結(jié)構(gòu)由兩個(gè)2 自由度云臺(tái)構(gòu)成,舵機(jī)1控制電磁炮、攝像頭以及超聲波模塊的橫向轉(zhuǎn)動(dòng);舵機(jī)2 控制電磁炮的縱向轉(zhuǎn)動(dòng);舵機(jī)3、4 控制超聲波模塊的角度,完成對(duì)超聲波模塊角度的微調(diào),實(shí)現(xiàn)超聲波模塊精準(zhǔn)正對(duì)引導(dǎo)標(biāo)識(shí),以達(dá)到對(duì)標(biāo)識(shí)距離的精準(zhǔn)測(cè)量。

圖1 系統(tǒng)機(jī)械結(jié)構(gòu)圖
模擬電磁曲射炮系統(tǒng)需要實(shí)現(xiàn)的功能有:識(shí)別引導(dǎo)標(biāo)識(shí),控制舵機(jī)1 運(yùn)動(dòng)使炮管正對(duì)引導(dǎo)標(biāo)識(shí),測(cè)出引導(dǎo)標(biāo)識(shí)與電磁炮的距離,完成對(duì)環(huán)形靶心的精準(zhǔn)打擊。
模擬電磁曲射炮系統(tǒng)硬件由主控制器、識(shí)別、運(yùn)動(dòng)控制、電磁炮控制和人機(jī)交互等模塊構(gòu)成,系統(tǒng)硬件總體框圖如圖2 所示。主控制器負(fù)責(zé)驅(qū)動(dòng)各傳感器、執(zhí)行相關(guān)運(yùn)算并負(fù)責(zé)輸出控制信號(hào)。識(shí)別模塊包括一個(gè)超聲波測(cè)距模塊和一個(gè)攝像頭,攝像頭自帶微處理器,運(yùn)行相關(guān)圖像處理算法,將獲得的結(jié)果發(fā)送給主控制器。運(yùn)動(dòng)控制模塊包括兩個(gè)大扭矩以及兩個(gè)普通舵機(jī)。人機(jī)交互模塊包括OLED顯示屏和紅外遙控接收發(fā)送裝置,實(shí)現(xiàn)模式選擇和相關(guān)信息的顯示。

圖2 系統(tǒng)硬件總體框圖
模擬電磁曲射炮系統(tǒng)主控模塊選用STM32F407VGT6 芯片,該款微處理器采用ARM -CortexM4 核心,最高工作頻率168 MHz[4],采用LQFP100 的封裝形式。FLASH 大小為1 024 KBytes,共有82 個(gè)GPIO,具有10 個(gè)16 bit通用定時(shí)器、2 個(gè)16 bit高級(jí)定時(shí)器和2 個(gè)16 bit 基本定時(shí)器。還有10.5 Mbit/ s的串口4 個(gè),通過串口可以和OV7725 攝像頭系統(tǒng)進(jìn)行通信,使系統(tǒng)獲取目標(biāo)點(diǎn)的位置信息,實(shí)現(xiàn)對(duì)引導(dǎo)標(biāo)識(shí)的獲取。
模擬電磁曲射炮系統(tǒng)識(shí)別模塊中包括US-100 超聲波測(cè)距模塊以及基于OV7725 攝像頭的OpenMV Cam H7 視覺模塊,如圖3 所示。

圖3 識(shí)別模塊實(shí)物圖
US-100 超聲波測(cè)距模塊可實(shí)現(xiàn)2 cm ~4.5 m 的非接觸測(cè)距功能,擁有2.4 ~5.5 V 的寬電壓輸入范圍,靜態(tài)功耗低于2 mA,自帶溫度傳感器對(duì)測(cè)距結(jié)果進(jìn)行矯正,同時(shí)具有GPIO、串口等多種通信方式,內(nèi)帶看門狗,工作穩(wěn)定可靠譜且精度較高。
OpenMV Cam H7 機(jī)器視覺模塊由板載微處理器STM32H743VI 和OV7725 攝像頭構(gòu)成。其具有400MHz的主頻、1MB 的RAM 和2Mb 的Flash,可以使用MicroPython對(duì)其進(jìn)行編程,實(shí)現(xiàn)機(jī)器視覺相關(guān)任務(wù)[5],例如:顏色識(shí)別、形狀識(shí)別、人臉識(shí)別、邊緣檢測(cè)和特征點(diǎn)追蹤等。在顏色追蹤[6]、3D 定位識(shí)別[7]和特征檢測(cè)人臉識(shí)別[8]等領(lǐng)域均獲得了應(yīng)用。在本系統(tǒng)的設(shè)計(jì)中,通過對(duì)目標(biāo)顏色識(shí)別,將獲取到的坐標(biāo)點(diǎn)發(fā)送給主控芯片以進(jìn)行后續(xù)的運(yùn)算與處理。
模擬電磁曲射炮系統(tǒng)運(yùn)動(dòng)控制模塊由2 個(gè)小型舵機(jī)、2個(gè)大扭矩舵機(jī)組成。大扭矩舵機(jī)采用BLS-825 型舵機(jī),該舵機(jī)在8.4 V電壓時(shí)具有3.5 N·m的扭矩,并且具有0.11 s/ 60°的相應(yīng)速度。該舵機(jī)如圖4所示。

圖4 BLS-825型舵機(jī)
模擬電磁曲射炮系統(tǒng)人機(jī)交互模塊由一片2.44 cm OLED 屏幕、紅外接收頭HS0038 和紅外遙控器組成。
系統(tǒng)中OLED屏幕采用2.44 cm 128 × 64 SPI/ IIC OLED屏幕,如圖5 所示。其OLED 顯示驅(qū)動(dòng)器為SSD1306,該OLED 屏幕具有以下特點(diǎn):對(duì)比度高,顯示清晰;接線方式豐富,具有串行SPI 和IIC 接口方式,且接線方便、節(jié)約微處理器的I/ O 口。OLED 屏幕用來顯示當(dāng)前的模式和相關(guān)信息。

圖5 OLED屏幕
紅外遙控器使用NEC協(xié)議,數(shù)據(jù)格式為:同步碼、地址碼、地址反碼、控制碼和控制反碼。同步碼由一個(gè)低電平和一個(gè)高電平組成,低電平時(shí)長(zhǎng)9 ms、高電平時(shí)長(zhǎng)4.5 ms,數(shù)據(jù)中剩下的4 部分均由8 bit 數(shù)據(jù)組成。
模擬電磁曲射炮系統(tǒng)電磁炮控制模塊由電磁炮控制電路組成,該電路具有40 mF電解電容構(gòu)成儲(chǔ)能部分、一個(gè)OPA548 功率運(yùn)放、一個(gè)SS8050 三極管構(gòu)成可控充電部分、一個(gè)CSD19535 MOS管構(gòu)成放電部分,該電路充電電壓可控,輸出電流恒定,該電路模塊的實(shí)物圖如圖6 所示。

圖6 電磁炮控制電路
(1)電磁炮控制電路。電磁炮控制電路原理如圖7 所示,使用OPA548 功率運(yùn)放搭建10 倍同相放大電路,通過采集單片機(jī)D/ AC輸出的電壓,并對(duì)電壓進(jìn)行10 倍放大,作為電容的充電電壓,以達(dá)到控制電容能量作用;通過SS8050NPN 型三極管控制功率運(yùn)放的E / S端,完成運(yùn)放的通斷功能。

圖7 電磁炮控制電路原理圖
由數(shù)據(jù)手冊(cè)得知,該運(yùn)放的輸出電流:

由電容儲(chǔ)能公式得知,電容儲(chǔ)能與電容量C 成正比,與電容電壓U 的平方成正比,本設(shè)計(jì)使用40 mF的電容以減小充電電壓的大小,提高整體安全性。
電磁炮控制電路控制端與STM32F407VGT6 的接線方式見表1。

表1 電磁炮控制電路與STM32F407VGT6 接線方式
(2)運(yùn)動(dòng)控制模塊電路。運(yùn)動(dòng)控制模塊中,舵機(jī)的控制端須連接到主控的PWM 輸出引腳上。4 個(gè)舵機(jī)控制端與STM32F407VGT6 的接線方式見表2。

表2 舵機(jī)與STM32F407VGT6 接線方式
(3)識(shí)別模塊電路。OpenMV Cam H7 機(jī)器視覺模塊使用串口與STM32F407ZGT6 微處理器進(jìn)行通信。OpenMV Cam H7 機(jī)器視覺模塊的VIN 引腳連接電源正極,使用5V電源進(jìn)行供電,P4 引腳和P5 引腳與STM32F407VGT6 微處理器的接線方式見表3。

表3 OpenMV Cam H7 與STM32F407VGT6 接線方式
US-100 超聲波測(cè)距模塊同樣使用串口與STM32F407ZGT6 微處理器進(jìn)行通信。US-100 超聲波測(cè)距模塊的VIN 引腳連接電源正極,使用5V 電源進(jìn)行供電,TX 引腳和RX 引腳與STM32F407VGT6 微處理器的接線方式見表4。

表4 US-100 超聲波測(cè)距模塊與STM32F407VGT6 接線方式
(4)人機(jī)交互模塊電路。人機(jī)交互模塊中,紅外接收頭HS0038 與STM32F407ZGT6 的PB1 通過10 kΩ電阻相連。
OLED 顯示屏,采用4 線串口模式,通過VCC給OLED屏幕進(jìn)行供電,使用3.3 V 電源,OLED 屏幕的D0、D1、RES、DC 和CS 引腳與STM32F407VGT6 微處理器的接線方式如表5 所示。

表5 OLED屏幕與STM32F407VGT6 接線方式
基于機(jī)器視覺的模擬電磁曲射炮系統(tǒng)的硬件電路如圖8 所示。

圖8 系統(tǒng)硬件電路圖
模擬電磁曲射炮系統(tǒng)軟件設(shè)計(jì)部分主要包括STM32F407VGT6主程序設(shè)計(jì)、顏色追蹤功能的實(shí)現(xiàn)以及測(cè)距功能的實(shí)現(xiàn)。
模擬電磁曲射炮系統(tǒng)軟件設(shè)計(jì)采用狀態(tài)機(jī)的思想,主程序流程如圖9 所示。打開系統(tǒng)后,首先完成STM32 主控芯片的系統(tǒng)配置:初始化中斷優(yōu)先級(jí)、定時(shí)器中斷、USART 中斷和相關(guān)I/ O 端口;之后對(duì)外設(shè)模塊進(jìn)行初始化配置:OLED 顯示屏初始化。之后進(jìn)入任務(wù)控制循環(huán),通過等待紅外遙控輸入信號(hào)來進(jìn)行任務(wù)的選擇。當(dāng)TASK 被置為相應(yīng)序號(hào),則進(jìn)行相應(yīng)指令的執(zhí)行。
配置串口中斷,使OpenMV 攝像頭模塊以及US-100 超聲波測(cè)距模塊的數(shù)據(jù)傳輸?shù)街骺刂菩酒⑼ㄟ^主控制芯片對(duì)坐標(biāo)位置進(jìn)行運(yùn)算。

圖9 主程序流程圖
使用OpenMV Cam H7 機(jī)器視覺模塊實(shí)時(shí)監(jiān)測(cè)引導(dǎo)標(biāo)識(shí)的坐標(biāo)信息,引導(dǎo)標(biāo)識(shí)處設(shè)計(jì)為紅色,在周圍沒有其他紅色物體的場(chǎng)地,采用顏色追蹤的方式進(jìn)行坐標(biāo)識(shí)別。OpenMV使用MicroPython 進(jìn)行編程,首先對(duì)攝像頭寄存器進(jìn)行配置:使用RGB565 色彩模式和QVGA級(jí)別分辨率,關(guān)閉白平衡和自動(dòng)增益。之后進(jìn)入程序主循環(huán),不斷進(jìn)行色塊檢測(cè)并將色塊位置使用串口發(fā)送給STM32F407VGT6。USART 每次傳輸8 bit數(shù)據(jù),攝像頭圖像平面坐標(biāo)水平方向數(shù)據(jù)范圍為0 ~319,將水平方向數(shù)據(jù)拆成2 次進(jìn)行發(fā)送,STM32F407VGT6 端將數(shù)據(jù)重新組合進(jìn)行使用。
STM32F407VGT6接收到坐標(biāo)信息后,進(jìn)行數(shù)據(jù)校驗(yàn)和濾波等預(yù)處理,接著進(jìn)行坐標(biāo)變換,然后驅(qū)動(dòng)舵機(jī)1 進(jìn)行轉(zhuǎn)動(dòng),直至檢測(cè)到引導(dǎo)標(biāo)識(shí)位于圖像橫向正中心。
測(cè)距功能的實(shí)現(xiàn)采用超聲波測(cè)距輔以單目攝像頭測(cè)距[9]。顏色追蹤步驟完成后,引導(dǎo)標(biāo)識(shí)位于圖像橫向正中心,此時(shí)攝像頭正對(duì)引導(dǎo)標(biāo)識(shí),攝像頭所成圖像與實(shí)際引導(dǎo)表示大小的關(guān)系如圖10 所示。

圖10 單目攝像頭測(cè)距原理圖
由于攝像頭內(nèi)圖像呈現(xiàn)為像素點(diǎn)形式,而像素點(diǎn)形式換算成圖像的大小時(shí)具有一定范圍的誤差[10-11]。已知引導(dǎo)標(biāo)識(shí)大小、所測(cè)圖像像素點(diǎn)大小以及相機(jī)焦距,可粗略估計(jì)引導(dǎo)標(biāo)識(shí)距攝像頭距離的范圍[12-15],并使其作為引導(dǎo)標(biāo)識(shí)距超聲波傳感器精確距離的范圍,然后使舵機(jī)3 進(jìn)行小范圍擺動(dòng)并獲取超聲波傳感器的讀數(shù),取超聲波傳感器在精處理的估計(jì)范圍中讀數(shù)的最大值作為超聲波傳感器距離。
模擬電磁曲射炮實(shí)物如圖11 所示,云臺(tái)1 的結(jié)構(gòu)由鋁板構(gòu)成,電磁炮支撐結(jié)構(gòu)、云臺(tái)2 支撐結(jié)構(gòu)由3D打印件組成。環(huán)形靶由10 個(gè)直徑分別為5、10、15、…、50 cm 的同心圓組成,外徑50 cm,靶心直徑5 cm;環(huán)形靶引導(dǎo)標(biāo)識(shí)為直徑20 cm 的紅色圓形平板,在距靶心30 cm 處與靶平面垂直固定安裝,圓心距靶平面高度30 cm。并設(shè)定平均環(huán)數(shù)測(cè)試指標(biāo),換算公式為:平均環(huán)數(shù)=總環(huán)數(shù)/測(cè)試次數(shù)。

圖11 模擬電磁曲射炮實(shí)物圖
(1)手動(dòng)環(huán)形靶打擊測(cè)試。首先進(jìn)行手動(dòng)環(huán)形靶打擊功能測(cè)試,用鍵盤給電磁炮輸入環(huán)形靶中心與定標(biāo)點(diǎn)的距離d 及與中心軸線的偏離角度a,一鍵啟動(dòng)后,電磁炮自動(dòng)瞄準(zhǔn)射擊,記錄擊中環(huán)數(shù)。相關(guān)測(cè)試結(jié)果見表6。

表6 手動(dòng)環(huán)形靶打擊測(cè)試記錄表
(2)自動(dòng)環(huán)形靶打擊測(cè)試。進(jìn)行自動(dòng)環(huán)形靶打擊功能測(cè)試,在指定范圍內(nèi)任意位置放置環(huán)形靶,一鍵啟動(dòng)后,電磁炮自動(dòng)搜尋目標(biāo)并炮擊環(huán)形靶4 次均擊中9 環(huán)。
通過多次測(cè)試,手動(dòng)環(huán)形靶打擊平均環(huán)數(shù)為9.4環(huán),自動(dòng)環(huán)形靶打擊測(cè)試平均環(huán)數(shù)為9.35 環(huán)。實(shí)驗(yàn)結(jié)果表明使用機(jī)器視覺追蹤引導(dǎo)標(biāo)識(shí)精度高,并且測(cè)距精度高,手動(dòng)打靶與自動(dòng)打靶環(huán)數(shù)極為接近。但同時(shí)暴露出一系列問題。電磁炮距離與電磁炮俯仰角度關(guān)系模型建立精度較低,在電磁炮距引導(dǎo)標(biāo)識(shí)235 ~240 cm時(shí)精度較低,偏差較大。
設(shè)計(jì)一種基于機(jī)器視覺的模擬電磁曲射炮實(shí)驗(yàn)系統(tǒng),該系統(tǒng)結(jié)合了機(jī)器視覺與顏色追蹤技術(shù),實(shí)現(xiàn)了通過追蹤引導(dǎo)標(biāo)識(shí)使電磁炮對(duì)環(huán)形靶精準(zhǔn)打擊功能。系統(tǒng)使用較為簡(jiǎn)單的方案實(shí)現(xiàn)了較高顏色追蹤以及環(huán)形靶打擊準(zhǔn)確性。該系統(tǒng)應(yīng)用于教學(xué)與實(shí)驗(yàn),可幫助學(xué)生更好地掌握電磁場(chǎng)和機(jī)器視覺領(lǐng)域相關(guān)知識(shí)。
整個(gè)系統(tǒng)仍有一定改進(jìn)空間:通過更換云臺(tái)1 的舵機(jī)為步進(jìn)電機(jī),實(shí)現(xiàn)對(duì)云臺(tái)角度更精準(zhǔn)的控制;通過增加對(duì)電磁炮電壓的控制,實(shí)現(xiàn)對(duì)電磁炮射擊距離的更精準(zhǔn)控制。