延安大學(xué)西安創(chuàng)新學(xué)院 王海軍
我們把專門用于探測金屬的電子儀器稱為金屬探測器,最初,它經(jīng)常會被用在戰(zhàn)爭中排查地雷,或者去排查墻體或者地底下是否存在電纜,還能讓科考隊用來進行地下探寶,探測埋在地底下一些有價值的金屬物體。現(xiàn)如今,金屬探測器更是被廣泛應(yīng)用于各大場所及領(lǐng)域,如監(jiān)獄系統(tǒng)來檢測罪犯是否私藏管制刀具、各種大小型車站用來檢測乘客有沒有帶金屬危險物品上車、還有一些超市以及自主購物、自主用餐的一些場所用來做防偷檢查,也可用于考試時檢測考生有沒有帶違禁物品進入考場。
系統(tǒng)整體方案:
使用Arduino Mega 2560作為該簡易金屬探測器主控芯片,由MOSFET和Arduino微控制器組成脈沖發(fā)生器。當(dāng)線圈檢測到有金屬時,通過藍牙模塊hc-05將信息發(fā)送給應(yīng)用程序“spirit PI”,通過應(yīng)用程序的計算,如果線圈下有金屬,手機會發(fā)出聲音并且震動,用于提示發(fā)現(xiàn)金屬。系統(tǒng)整體方案設(shè)計如圖1所示。
圖1 系統(tǒng)整體方案設(shè)計圖
Arduino Mega 2560與市場上其他主板相比,它具有更多的存儲空間和I/O引腳。板上集成了54個數(shù)字I/O引腳和16個模擬引腳,54個數(shù)字I/O中有15個可實現(xiàn)PWM功能。板上添加了一個16MHz頻率的晶體振蕩器。該最小系統(tǒng)采用USB端口將代碼從計算機寫入微控制器。
HC-05是一款操作簡單的串口協(xié)議模塊,使用該模塊的目的在于無線串行連接設(shè)置。該系統(tǒng)采用了CSR藍核04-外部單片藍牙系統(tǒng)。使用互補金屬氧化物半導(dǎo)體技術(shù),具有自適應(yīng)跳頻特性。它的占地面積只有12.7mmx27mm。此模塊通常支持30多道AT命令(操控藍牙模塊的指令)。
HC-05藍牙模塊的兩種工作模式分別為:一是自動聯(lián)機和透通模式,另一是命令響應(yīng)又稱為AT模式。動聯(lián)機和透通模式即把從接收數(shù)據(jù)引腳進來的數(shù)據(jù),變?yōu)闊o線信號發(fā)送出去;以及收的數(shù)據(jù),從發(fā)送數(shù)據(jù)引腳發(fā)送給控制器,其自身不能分析數(shù)據(jù),同時不能被控制。下面我們詳細介紹一下這兩種工作模式。在自動聯(lián)機工作模式下模塊又可分為主、從和回環(huán)三種工作角色。1)當(dāng)模塊處于自動聯(lián)機工作模式的時候,將會自動根據(jù)事先設(shè)定的方式連接的數(shù)據(jù)傳輸;2)當(dāng)模塊處于命令響應(yīng)模式的時候,便可以執(zhí)行AT命令,我們就可以向模塊發(fā)送各種AT命令,為模塊設(shè)置控制參數(shù)或者發(fā)布控制命令。
來自Vishay的第三代功率MOSFETs為設(shè)計人員提供了快速開關(guān)、堅固的器件設(shè)計、低導(dǎo)通電阻和高性價比的最佳組合,集諸多優(yōu)點于一身。這個系列的產(chǎn)品有更低的柵電荷,這款功率MOSFET是使用該公司基于條帶布局的統(tǒng)一MESHOVERLAY工藝設(shè)計的。與來自各種來源的標(biāo)準(zhǔn)零件相比,該技術(shù)可以匹配并提高性能。一般會用于切換大功率設(shè)備、逆變電路、DC-DC轉(zhuǎn)換器、電機控制速度、LED調(diào)光器或閃光燈、高速開關(guān)應(yīng)用。
實物圖和引腳圖分別如圖2、圖3所示:
圖2 MOSFET IRF740實物圖
圖3 MOSFET IRF740引腳圖
TL072是結(jié)型場效應(yīng)晶體管它具有寬共模電壓、低偏置電壓、低輸入失調(diào)電流、內(nèi)部頻率補償、輸出短路保護、低噪聲、低功耗、高壓擺率、無閂鎖操作、低溫度系數(shù)等特點??梢杂糜赨PS、音頻混合器、逆變器、示波器等電子產(chǎn)品。
上述各個模塊芯片還有必要的常用元器件構(gòu)成了整個硬件電路,硬件電路原理圖如圖4所示。
圖4 硬件電路原理圖
此次設(shè)計的軟件開發(fā)環(huán)境是Arduino IDE,開源Arduino軟件(IDE)使得編寫代碼和將其上傳到開發(fā)板上變得容易。該環(huán)境使用Java編寫,簡單、清晰,對于一個初學(xué)者來說比較容易使用,高級用戶也可以利用。并基于Processing和其他開源軟件。它還可以和Arduino的其它型號的開發(fā)板一起使用。
初始化函數(shù):void setup()作為Arduino必不可少的入口函數(shù),其主要功能為對串口的波特率、特殊的數(shù)值以及腳位的模式進行初始化設(shè)置;該程序在此函數(shù)中將串口波特率設(shè)置為115200,對脈沖寬度的占空比以及脈沖的頻率進行了初始化操作并將其數(shù)值存儲于Arduino自帶的EEPROM(電可擦可編程只讀存儲器)芯片中,以防斷電數(shù)據(jù)丟失;與此同時將連接線圈的數(shù)字腳位設(shè)置為OUTPUT模式。初始化函數(shù)流程圖如圖5所示。
圖5 初始化函數(shù)流程圖
設(shè)置占空比和頻率函數(shù):setDutyAndFreq(char value)為設(shè)置占空比和頻率的函數(shù),該函數(shù)將從串口獲取的數(shù)值作為參數(shù),并判斷參數(shù)的值對占空比以及頻率作出相應(yīng)的改變后存儲于EEPROM芯片中。設(shè)置占空比和頻率函數(shù)如圖6所示。
圖6 設(shè)置占空比和頻率函數(shù)流程圖
讀取電壓函數(shù):readVolt()為讀取電壓函數(shù),當(dāng)在單個線圈中建立電流后,關(guān)閉該電流會使該場崩潰,從而產(chǎn)生電磁場,當(dāng)磁場消失時,會感應(yīng)出一個電壓回線圈,該函數(shù)則是用來讀取該電壓,通過讀取連接線圈的模擬信號A7口的數(shù)值,并將該數(shù)值轉(zhuǎn)化為電壓,然后利用分壓原理對該電壓進行重復(fù)計算后取平均值。
loop循環(huán)函數(shù):該函數(shù)調(diào)用了Arduino庫中的micros()和millis()函數(shù)來獲取Arduino運行程序時的微秒數(shù)和毫秒數(shù),用來判斷程序運行的時間是否超過以初始化頻率計算出的單個周期,在判斷該條件之前,Arduino先對串口進行判斷是否有數(shù)據(jù)輸入,如果有數(shù)據(jù)輸入則讀取該數(shù)值,并將該數(shù)值作為函數(shù)setDutyAndFreq()的參數(shù),來對EEPROM中存儲的占空比以及頻率的數(shù)值進行改變;此判斷結(jié)束后,判斷程序運行時間是否超過單個周期,超過則重新計算周期,并對線圈進行快速的上電和斷電操作從而獲取相關(guān)數(shù)值,最終利用藍牙傳輸數(shù)據(jù)。
有以上對程序的分析畫出如圖7所示的流程圖。
圖7 總程序流程圖
Arduino單片機模塊功能強大,使用起來方便簡易,它的開發(fā)應(yīng)用系統(tǒng)可用JAVA、C語言等來編寫,而且Arduino IDE具有語言簡潔、表達能力強、表達方式靈活、可以直接控制計算機硬件系統(tǒng)、生成代碼質(zhì)量高等很多有優(yōu)點。
(1)首先根據(jù)系統(tǒng)要求,在Arduino IDE中用C語言編寫程序。
(2)確認程序編寫正確無誤后,將其進行程序加載、運行。
結(jié)論:設(shè)計了一款簡易金屬探測器,主芯片采用Arduino最小系統(tǒng)板。其原理主要是依據(jù)脈沖感應(yīng)原理,只用一個線圈就行,即該線圈既是發(fā)射線圈Tx也是接收線圈Rx。同一線圈發(fā)送信號,然后接收信號。該金屬檢測器在60Hz的極低頻率下工作,在Arduino微控制器的幫助下,能夠更輕松地處理信號,為了使其具有無線性,使用藍牙模塊hc-05,將線圈接收的數(shù)據(jù)發(fā)送到智能手機。由漆包銅線所制成的線圈發(fā)送巨大的短脈沖電流,每個脈沖產(chǎn)生一個短暫的磁場。當(dāng)一塊金屬進入磁場線的范圍內(nèi)時,接受線圈RX就可以檢測接收到信號的幅度和相位變化。幅度變化量和相位變化量表示金屬的尺寸和距離,Arduino Mega微控制器探測到變化后將該數(shù)據(jù)通過藍牙模塊傳至智能手機,利用spirit PI軟件進行智能手機的數(shù)據(jù)處理,并通過控制手機揚聲器來判斷是否探測到金屬。