曹建平, 丁 坦, 楊 輝
(1.武昌首義學(xué)院機(jī)電與自動(dòng)化學(xué)院,武漢430064;2.華中科技大學(xué)水利水電學(xué)院,武漢430064;3.武漢聯(lián)特科技有限公司,武漢430064)
隨著工業(yè)4.0 的到來,機(jī)器人將廣泛應(yīng)用在國民生活的各行各業(yè)中。金屬探測小車可以看成是一種檢測金屬的輪式移動(dòng)機(jī)器人,它能根據(jù)指令執(zhí)行相應(yīng)的運(yùn)動(dòng)軌跡。金屬探測是通過利用金屬傳感器在一定范圍內(nèi)掃描金屬物體,并做出精確定位,在軍事、工業(yè)和安全等領(lǐng)域有著廣泛的應(yīng)用,如地雷探測、考古、采礦、采煤、食品檢測等[1-2]。WIFI 作為一種無線局域網(wǎng)運(yùn)用技術(shù),組網(wǎng)方便、傳輸速度快以及易于擴(kuò)展,應(yīng)用十分廣泛[3]。針對(duì)市面上金屬探測儀功能比較單一,將WIFI技術(shù)與金屬探測小車有機(jī)結(jié)合在一起,使小車具有無線通信、視頻傳輸、金屬檢測等功能。本文設(shè)計(jì)的金屬探測小車,以STM32 為數(shù)據(jù)處理核心,通過無線WIFI網(wǎng)絡(luò)傳輸視頻,在Android 手機(jī)端實(shí)現(xiàn)小車的控制、視頻畫面的傳輸和探測結(jié)果的顯示,探測安全而精準(zhǔn)。
系統(tǒng)中的金屬探測采用LDC1000 電感數(shù)字轉(zhuǎn)換器,它可以和單片機(jī)進(jìn)行SPI通信,只需要外接一個(gè)線圈就可以實(shí)現(xiàn)非接觸式電感檢測。LDC1000 探測金屬是利用法拉第電磁感應(yīng)原理,金屬導(dǎo)體置于變化的磁場中,導(dǎo)體內(nèi)將產(chǎn)生呈渦旋狀的感應(yīng)電流,稱之為電渦流或渦流,這種現(xiàn)象稱為渦流效應(yīng)[4-5]。LDC1000工作原理圖如圖1 所示,在LDC1000 線圈中加上一個(gè)交變電流I1,線圈周圍產(chǎn)生交變磁場H1,如果有金屬物體進(jìn)入該磁場,金屬物體會(huì)產(chǎn)生表面渦流I2,I2的方向與I1的方向相反,故渦流產(chǎn)生新的磁場H2方向與H1的方向相反,使原磁場消弱,從而導(dǎo)致線圈的電感量、阻抗和品質(zhì)因素發(fā)生變化[6-7]。
圖1 傳感器LDC1000工作原理圖
渦流是物體大小、距離、成分的函數(shù),渦流產(chǎn)生的反向磁場同探測線圈耦合,可以等效為變壓器,渦流效應(yīng)作次級(jí)線圈,探測線圈為初級(jí)線圈,根據(jù)變壓器互感作用,在探測線圈這邊就可以檢測到金屬物體的參數(shù),如圖1 所示。圖中L1和R1分別是LDC1000 線圈的電感值和寄生電阻,L2和R2則是互感值和互感寄生電阻,M(x)是互感函數(shù)[8-9]。交變電流I1產(chǎn)生交變磁場H1的同時(shí)會(huì)消耗大量的能量,為了降低能量損耗,在設(shè)計(jì)時(shí)通常給線圈并聯(lián)一個(gè)電容,構(gòu)成并聯(lián)諧振回路,損耗僅僅產(chǎn)生在R1和R2上,通過檢測(R1+R′2)的損耗可以間接地檢測金屬物體。
基于STM32 的WIFI控制金屬探測小車系統(tǒng)由控制板(集成了STM32 單片機(jī)和電機(jī)驅(qū)動(dòng)模塊)、無線路由器、LDC1000 金屬探測模塊、直流電機(jī)驅(qū)動(dòng)輪、攝像頭、電源模塊組成,手機(jī)控制端通過和WIFI 板的雙向通信,實(shí)現(xiàn)對(duì)小車的運(yùn)動(dòng)控制以及數(shù)據(jù)接收??傮w結(jié)構(gòu)如圖2 所示。
系統(tǒng)以STM32F105 為核心,利用LDC1000 傳感器實(shí)現(xiàn)金屬探測。搭載一個(gè)監(jiān)視攝像頭,通過無線路由模塊實(shí)現(xiàn)和Android手機(jī)控制端的無線連接,手機(jī)控制端控制小車的運(yùn)動(dòng),并在手機(jī)界面上實(shí)時(shí)顯示金屬探測結(jié)果和視頻監(jiān)控畫面。
圖2 系統(tǒng)總體結(jié)構(gòu)圖
小車在機(jī)械結(jié)構(gòu)上采用差速驅(qū)動(dòng)式的四輪輪式機(jī)構(gòu),每個(gè)輪子都帶有獨(dú)立的執(zhí)行機(jī)構(gòu)(直流減速電動(dòng)機(jī)),左側(cè)和右側(cè)兩電動(dòng)機(jī)分別串聯(lián)。小車的直線運(yùn)動(dòng)通過兩側(cè)驅(qū)動(dòng)輪以相同的速率和方向轉(zhuǎn)動(dòng)來實(shí)現(xiàn),而轉(zhuǎn)彎動(dòng)作則是通過兩側(cè)驅(qū)動(dòng)輪椅相同速率和不同方向轉(zhuǎn)動(dòng)來實(shí)現(xiàn)。這種機(jī)械結(jié)構(gòu)的優(yōu)點(diǎn)在于,通過直線運(yùn)動(dòng)和轉(zhuǎn)彎動(dòng)作,探測小車可以輕松完成任意運(yùn)動(dòng)路徑,有效降低運(yùn)動(dòng)的復(fù)雜性。探測小車機(jī)械結(jié)構(gòu)示意圖如圖3 所示。
圖3 小車機(jī)械結(jié)構(gòu)示意圖
2.2.1 微處理器模塊
微處理器模塊是控制與數(shù)據(jù)處理的核心,金屬探測小車系統(tǒng)采用的是集成度高、功耗低、成本低的ARM Cortex-M3 內(nèi)核的STM32F105 單片機(jī),其內(nèi)部包含I2C、SPI、USART等多個(gè)通信接口,時(shí)鐘頻率達(dá)到72 MHz,集成了許多常用的外圍設(shè)備及接口電路[10]。
2.2.2 電源模塊
電源模塊主要由電池組和電壓轉(zhuǎn)換器組成。電池組給控制板、WIFI板、LDC1000 模塊和電動(dòng)機(jī)供電,考慮到小車整體機(jī)械結(jié)構(gòu)的布局和穩(wěn)定以及各模塊供電的大小,選用由2 節(jié)18650 鋰電池串聯(lián)的7.4 V 電池組,并帶有保護(hù)板對(duì)電池組進(jìn)行充放電保護(hù)。
電池組輸出電壓為7.4 V,而直流電動(dòng)機(jī)輸入電壓范圍為3 ~9 V,LDC1000 模塊和無線路由模塊需要5 V供電,STM32 工作電壓為3.3 V,通過電壓變換器78M05 和AMS1117-3.3 將7.4 V電壓進(jìn)行轉(zhuǎn)換5 V和3.3 V給各模塊供電[11]。
2.2.3 電動(dòng)機(jī)及驅(qū)動(dòng)模塊
系統(tǒng)中采用直流減速電動(dòng)機(jī)作為動(dòng)力裝置,直流電動(dòng)機(jī)的驅(qū)動(dòng)選用雙極型H 橋型脈寬調(diào)制方式(PWM)的L298N 芯片,L298N 芯片內(nèi)部包含兩個(gè)H橋高電壓大電流橋式驅(qū)動(dòng)器,接受標(biāo)準(zhǔn)的TTL 邏輯電平信號(hào),可以驅(qū)動(dòng)46 V、2 A以下的電動(dòng)機(jī)[12-13]。改變單片機(jī)I/O口狀態(tài)可以控制電動(dòng)機(jī)的正反轉(zhuǎn),使能端ENA、ENB 輸出PWM 信號(hào),改變直流電動(dòng)機(jī)的速度。L298N芯片每個(gè)輸出采用兩個(gè)IN4001 二極管來保護(hù)芯片,驅(qū)動(dòng)電路圖如圖4 所示。
圖4 電動(dòng)機(jī)驅(qū)動(dòng)電路
2.2.4 無線信息傳輸模塊
系統(tǒng)中無線信息傳輸模塊由路由器和攝像頭構(gòu)成。無線路由模塊的主要功能是實(shí)現(xiàn)網(wǎng)絡(luò)-串口指令轉(zhuǎn)發(fā),是下位機(jī)和上位機(jī)數(shù)據(jù)的中心[14]。設(shè)計(jì)中采用的是TP-LINK 703N無線路由器,對(duì)它進(jìn)行改造,通過刷入OpenWrt 固件實(shí)現(xiàn)雙向數(shù)據(jù)轉(zhuǎn)發(fā),該模塊執(zhí)行IEEE 802.11b/g/n標(biāo)準(zhǔn),增設(shè)外置2dBi天線放大發(fā)射功率,同時(shí)內(nèi)置視頻服務(wù)器,可以采集USB 攝像頭圖像。攝像頭選擇高清穩(wěn)定的天敏S605 型攝像頭,通信接口為USB協(xié)議,攝像頭通過USB接口連接無線路由器,配合路由器內(nèi)置480P 視頻服務(wù)器輸出MJPEG 視頻流,通過WIFI信道將視頻傳送給上位機(jī)。
軟件部分是金屬探測小車實(shí)現(xiàn)功能的核心,它控制系統(tǒng)所有的運(yùn)行狀態(tài),主要包括通信協(xié)議、上、下位機(jī)軟件。上位機(jī)軟件顯示環(huán)境畫面和控制小車運(yùn)動(dòng),下位機(jī)軟件通過接受上位機(jī)的命令,執(zhí)行相應(yīng)的動(dòng)作,而通信協(xié)議則是連接上位機(jī)和下位機(jī)的紐帶。
金屬探測小車系統(tǒng)通過STM32 USART 串口與無線路由器建立通信。上位機(jī)發(fā)送命令數(shù)據(jù)包到路由器,路由器把數(shù)據(jù)包解開,由串口發(fā)送到STM32 并通過控制模塊執(zhí)行相關(guān)操作[15]。
下行數(shù)據(jù)通信協(xié)議如表1 所示。上行數(shù)據(jù)通信協(xié)議如表2 所示。
上位機(jī)手機(jī)控制端主界面用于顯示視頻信息,并且通過前、后、左、右4個(gè)虛擬按鍵控制金屬探測小車的運(yùn)動(dòng)。上位機(jī)程序使用Eclipse +SDK +ADT 開發(fā),Eclipse是一個(gè)基于Java 的集成開發(fā)環(huán)境,擴(kuò)展安裝Android SDK(軟件開發(fā)工具包)以及插件ADT創(chuàng)建一個(gè)Android控制端應(yīng)用軟件[16]。上位機(jī)程序流程圖如圖5 所示。
表1 下行通信協(xié)議
表2 上行通信協(xié)議
初始化后,使用Socket 方法建立Android 手機(jī)和WIFI板的連接,控制端信號(hào)的發(fā)送和下位機(jī)上傳信號(hào)的接收都通過該通道;使用HTTPURLConnetion 方法請求和WIFI 板上內(nèi)置視頻服務(wù)器連接,接收視頻流信號(hào)并在Surfaceview上顯示。設(shè)置前、后、左、右4 個(gè)按鈕事件,監(jiān)視對(duì)應(yīng)的4 個(gè)按鈕控件,一旦觸發(fā)事件就發(fā)送相應(yīng)的數(shù)據(jù)。接收數(shù)據(jù)放在字符型變量里面,判斷變量的值,然后刷新主線程UI顯示金屬探測結(jié)果。
圖5 上位機(jī)程序流程圖
下位機(jī)是以STM32 為核心的驅(qū)動(dòng)與檢測系統(tǒng),其主要功能是接收路由器轉(zhuǎn)發(fā)的上位機(jī)命令,來控制小車運(yùn)動(dòng)和探測環(huán)境金屬。在IAR 集成開發(fā)環(huán)境用C語言進(jìn)行編程,流程圖如圖6 所示。
圖6 下位機(jī)程序流程圖
首先完成引腳、定時(shí)器、串口以及LDC1000 的初始化,然后進(jìn)入循環(huán)體,執(zhí)行SPI 方式讀取LDC1000的采樣數(shù)據(jù),判斷該數(shù)據(jù),將相應(yīng)的指令通過串口中斷發(fā)送給路由器;當(dāng)上位機(jī)發(fā)出指令時(shí),下位機(jī)串口則觸發(fā)接收中斷接收數(shù)據(jù),然后調(diào)用命令解釋函數(shù)對(duì)數(shù)據(jù)進(jìn)行判斷,根據(jù)命令下達(dá)驅(qū)動(dòng)指令驅(qū)動(dòng)電機(jī)。
首先選擇5 種不同的金屬體,在距離LDC1000 探測線圈中心點(diǎn)投影不同距離進(jìn)行了測試,并記錄下LDC1000 采樣數(shù)據(jù),如表3 所示。
表3 LDC1000 采樣數(shù)據(jù)
根據(jù)測試的數(shù)據(jù)分析,金屬物體的大小、成分和探測線圈的距離都會(huì)影響LDC1000 采樣輸出的數(shù)據(jù)。對(duì)LDC1000 采樣數(shù)據(jù)進(jìn)行處理,編寫代碼見表4。具體的思路是,對(duì)LDC1000 采樣濾波函數(shù)返回的參數(shù)值進(jìn)行判斷,當(dāng)返回參數(shù)值不大于0x3000 時(shí),向串口發(fā)送字節(jié)0x00,這個(gè)指令表示當(dāng)前小車沒有探測到金屬,此時(shí)感應(yīng)強(qiáng)度為0,依照通信協(xié)議向上位機(jī)發(fā)送過去,手機(jī)界面顯示綠色的“當(dāng)前金屬感應(yīng)強(qiáng)度為0”;當(dāng)參數(shù)值在0x3000 ~0x3050 之間時(shí),向串口發(fā)送字節(jié)0x01,表示此時(shí)探測到金屬,感應(yīng)強(qiáng)度為1,手機(jī)界面顯示黃色的“當(dāng)前金屬感應(yīng)強(qiáng)度為1”;依此類推,設(shè)置10 個(gè)感應(yīng)強(qiáng)度級(jí)別。
表4 LDC1000 采樣數(shù)據(jù)處理
然后對(duì)小車探測金屬性能進(jìn)行測試,在地面放置一部iPhone手機(jī),手機(jī)初始界面顯示為綠色的“0”,如圖7 所示。通過界面虛擬按鍵控制小車向手機(jī)的位置移動(dòng),當(dāng)小車探測線圈檢測到iPhone 手機(jī),手機(jī)控制端最終顯示感應(yīng)強(qiáng)度為紅色的“當(dāng)前金屬感應(yīng)強(qiáng)度為10”,如圖8 所示。
圖7 探測手機(jī)性能測試
圖8 探測到手機(jī)時(shí)的手機(jī)界面
圖9 和10 分別是檢測1 元硬幣的初始狀態(tài)和檢測到硬幣時(shí)的手機(jī)界面。分別對(duì)其他面值的硬幣和鑰匙進(jìn)行了測試,小車都能根據(jù)手機(jī)端指令做出動(dòng)作,手機(jī)控制端也能實(shí)時(shí)收到金屬探測結(jié)果,視頻監(jiān)控畫面也在實(shí)時(shí)更新,測試結(jié)果準(zhǔn)確,這里不再一一贅述它們的測試結(jié)果。
圖9 探測1元硬幣性能測試
圖10 探測到1元硬幣時(shí)的手機(jī)界面
本文設(shè)計(jì)了一種基于STM32 的WiFI控制金屬探測小車系統(tǒng),LDC1000 傳感器為小車金屬探頭,完成了探測小車的整體設(shè)計(jì)、各部分硬件模塊的設(shè)計(jì)以及軟件程序的編寫與調(diào)試。金屬探測小車系統(tǒng)的測試性能表明,WIFI無線控制靈敏度高,獲取攝像頭的視頻信息清晰、流暢,檢測金屬的準(zhǔn)確度高,探測小車穩(wěn)定性良好、適用性強(qiáng)。該小車系統(tǒng)可以有效的避免危險(xiǎn)場合探測金屬物體的二次傷害,具有一定的推廣價(jià)值和實(shí)際意義。