袁文昊,王鵬輝,侯保軍,徐素莉
(河南科技大學(xué)信息工程學(xué)院,河南 洛陽 471003)
金屬探測(cè)儀是一種可在合適環(huán)境中探測(cè)出金屬,同時(shí)可以精確定位的儀器。在現(xiàn)代社會(huì)中金屬探測(cè)儀已經(jīng)被廣泛應(yīng)用,比如食品加工廠或者是一些非金屬物品制造廠等等這些地方都需要嚴(yán)格控制金屬顆粒物的存在量。目前手持金屬探測(cè)儀在市面上比較常見,然而手持金屬探測(cè)儀只能局限于人體或小型物體的粗略檢測(cè),存在著掃描區(qū)域不全面,誤差大的不足。為此文章中我們?cè)O(shè)計(jì)出一種基于STM32單片機(jī)的XY軸平面金屬探測(cè)儀,具有無人操作,掃描效率高,可顯示金屬物精確位置坐標(biāo)等特點(diǎn)。
金屬探測(cè)儀的基本組成結(jié)構(gòu)框圖如圖1所示。系統(tǒng)中,主控采用STM32,金屬檢測(cè)傳感器采用LDC1000電感數(shù)字轉(zhuǎn)換器。驅(qū)動(dòng)器采用MOS驅(qū)動(dòng)芯片和直流電機(jī),機(jī)械裝置采用同步帶導(dǎo)向器。LED屏幕同時(shí)顯示坐標(biāo)數(shù)據(jù),獨(dú)立按鍵的設(shè)置可對(duì)裝置啟動(dòng)或停止。蜂鳴器在探測(cè)金屬物體時(shí)起到提醒作用。一個(gè)完整的探測(cè)過程是,由STM32控制驅(qū)動(dòng)芯片使驅(qū)動(dòng)電機(jī)開始運(yùn)轉(zhuǎn),同時(shí)LDC1000電感數(shù)字轉(zhuǎn)換器開始采集數(shù)據(jù),并實(shí)時(shí)通過SPI通訊發(fā)回到核心板進(jìn)行處理。如果在傳感器下方檢測(cè)到金屬,電機(jī)會(huì)立刻停止運(yùn)轉(zhuǎn),同時(shí)蜂鳴器發(fā)出提示,并且在LED屏上顯示當(dāng)前LDC1000電感數(shù)字轉(zhuǎn)換器相對(duì)于導(dǎo)軌初設(shè)好原點(diǎn)后的坐標(biāo)。
圖1 系統(tǒng)基本組成結(jié)構(gòu)框圖
探測(cè)儀的關(guān)鍵技術(shù)是LDC1000電感數(shù)字轉(zhuǎn)換器檢測(cè)到金屬后與單片機(jī)開始SPI通訊。接通交流電,LDC1000的線圈內(nèi)的磁場(chǎng)會(huì)發(fā)生轉(zhuǎn)變[3]。由于金屬物體自身會(huì)在磁場(chǎng)中產(chǎn)生一定的渦電流,而這一定量的渦電流足以影響原本磁場(chǎng)的分布,只要LDC1000的傳感器檢測(cè)到磁場(chǎng)的波動(dòng)變化高于正常值便可判定下方有金屬存在。產(chǎn)生渦電流原理如圖2所示。
圖2 電磁感應(yīng)產(chǎn)生渦電流
為了使整個(gè)裝置簡(jiǎn)單易操作,單片機(jī)最小系統(tǒng)選擇單片機(jī)、晶振振蕩電路、復(fù)位電路、串口及下載接口5個(gè)必要模塊。其中單片機(jī)最小系統(tǒng)核心為STM32,晶振電路提供基礎(chǔ)的時(shí)鐘周期,增加復(fù)位按鍵可在程序調(diào)試失控時(shí)復(fù)位,串口用于單片機(jī)與外部模塊的數(shù)據(jù)傳輸交互,單片機(jī)最小系統(tǒng)可用下載接口與計(jì)算機(jī)連接下載程序。
直流電機(jī)驅(qū)動(dòng)板設(shè)計(jì)如圖3所示,直接采用直流電機(jī)進(jìn)行慢速移動(dòng)更好的配合LDC1000數(shù)字傳感器檢測(cè)待測(cè)物。LDC1000檢測(cè)精確度是LDC1000檢測(cè)到金屬到單片機(jī)發(fā)出電機(jī)停止運(yùn)轉(zhuǎn)指令之間的時(shí)間。在程序調(diào)試過程中,可以將LDC1000檢測(cè)精確度和電機(jī)運(yùn)轉(zhuǎn)速度二者結(jié)合,適當(dāng)提高電機(jī)運(yùn)轉(zhuǎn)速度,從而提高探測(cè)效率。
圖3 直流電機(jī)驅(qū)動(dòng)板
設(shè)計(jì)中采用mc33886芯片,該芯片具有較好的性能。內(nèi)部MOSFET電阻為120 mΩ,最大工作電流為5 A。由于離散N溝道MOSFET的電阻很低,大大降低了電樞電路的總電阻,從而提高了PWM波輸出和驅(qū)動(dòng)的效率。
穩(wěn)壓芯片采用LM2940電壓調(diào)節(jié)電路如圖4所示。LM2940是一種線性穩(wěn)壓芯片,系統(tǒng)的外圍電源需要使用5 V,所以可以使用LM2940降低到5 V。
系統(tǒng)的人機(jī)交互電路原理圖如圖5所示。
圖4 穩(wěn)壓降壓電路
圖5 人機(jī)交互電路原理圖
采用上拉式獨(dú)立按鍵,當(dāng)按鍵被按下時(shí)返回低電平。LED五個(gè)信號(hào)端口分別連接到STM32的PTD1、PTD2、PTD3、PTD4、PTC15端口。三極管導(dǎo)通時(shí)蜂鳴器響鈴。
SPI是一種高速、全雙工、同步串行通信總線[4]。芯片的引腳通常只占用四線(MISO,MOSI,NSS,SCK)。為了與外圍設(shè)備交換數(shù)據(jù),SCM輸出時(shí)鐘信號(hào)具有幾種不同的狀態(tài)。
1) 時(shí)鐘的極性(CPOL)指定時(shí)鐘空閑狀態(tài)的電平。CPOL=0是低電平,時(shí)鐘是空閑的。CPOL=1是高電平,時(shí)鐘工作。
2) 時(shí)鐘相位(CPHA)指定數(shù)據(jù)的采樣時(shí)間。在每個(gè)時(shí)鐘周期中,MCFA=0的第一跳和MCU后的低電平沿外部數(shù)據(jù)采樣,并且第二跳沿輸出數(shù)據(jù)跳躍。在每個(gè)時(shí)鐘周期中的CPHA=1和高電平的第一跳是沿著輸出數(shù)據(jù),并且第二跳沿外部數(shù)據(jù)采樣。時(shí)鐘極性(CPOL)和相位(CPPHA)的不同組合可以形成四種數(shù)據(jù)傳輸定時(shí),如圖6所示。
圖6 SPI通信時(shí)序原理圖
為使LDC1000與STM32之間能進(jìn)行SPI通信協(xié)議,決定選用單片機(jī)中PA4~PA7作為串口。當(dāng)STM32和LDC1000通信時(shí),所選信號(hào)為零,STM32將LDC1000地址從SDI線路寫入LDC1000。最大位為0,其余7位為寄存器地址。訪問寄存器占用8個(gè)時(shí)鐘周期,期間SDO線處于高阻態(tài)[4]。當(dāng)讀取命令時(shí),地址寄存器的8位字節(jié)可以在SDO線路上讀取。當(dāng)寫入命令時(shí),8字節(jié)數(shù)據(jù)可以寫入SDI線路上的相應(yīng)寄存器。最后選擇信號(hào)是高的,并且對(duì)LDC1000的控制被解除。
系統(tǒng)選用的是獨(dú)立按鍵,通過判斷“消抖”后的高低電平來確定按鍵是否被按下。獨(dú)立按鍵的主要功能是實(shí)現(xiàn)人為控制裝置的啟動(dòng)與停止或是復(fù)位。當(dāng)探測(cè)器檢測(cè)到金屬時(shí),核心板輸出高電平送到蜂鳴器使其發(fā)聲做出提示,同時(shí)核心板處理數(shù)據(jù)后將金屬坐標(biāo)位置顯示在LED屏上。
系統(tǒng)主程序流程圖如圖7所示。由STM32產(chǎn)生PWM信號(hào)控制直流電機(jī)掃描二維平面,同時(shí)讀取LDC1000傳感器數(shù)據(jù)并進(jìn)行處理。如果檢測(cè)到金屬,其坐標(biāo)將同步顯示在LED屏幕上。
將金屬物體放入軌道區(qū)域內(nèi),啟動(dòng)金屬探測(cè)儀,Y軸上的電機(jī)帶動(dòng)探頭沿Y軸往復(fù)運(yùn)動(dòng)一次(此時(shí)探頭停在最下端靠近X軸),然后X軸上的電機(jī)帶動(dòng)Y軸軌道向X軸正半軸運(yùn)動(dòng)約2 cm。X軸上的電機(jī)沿Y軸往復(fù)運(yùn)動(dòng)一次Y軸。當(dāng)X軸上的電機(jī)移動(dòng)到坐標(biāo)的末端時(shí),電機(jī)在相反的方向上移動(dòng)直到X軸的末端。如果期間檢測(cè)到金屬,便發(fā)出提示并記錄位置,提示結(jié)束后再繼續(xù)移動(dòng)。
基于STM32-XY軸金屬探測(cè)儀能夠在一定范圍內(nèi)對(duì)金屬實(shí)現(xiàn)精確定位。通過測(cè)試,系統(tǒng)有如下特點(diǎn):
圖7 系統(tǒng)主程序流程圖
1) 能從任意位置開始掃描,并且掃描一次能記錄多個(gè)位置。
2) 一鍵啟動(dòng)之后無再需任何手動(dòng)操作,裝置開始自動(dòng)掃描直到結(jié)束。
3) 二維平面金屬自動(dòng)掃描裝置性能穩(wěn)定,發(fā)現(xiàn)目標(biāo)速度快。
論文設(shè)計(jì)的金屬探測(cè)儀也需要進(jìn)一步改進(jìn),例如掃描面積不足,只能局限于二維導(dǎo)軌覆蓋平面之內(nèi);儀器體積大,攜帶不便。只能辨認(rèn)是不是金屬,無法判定金屬類別。有必要對(duì)算法和機(jī)械結(jié)構(gòu)進(jìn)行進(jìn)一步的研究。