趙雨初,王 慧,楊 潔
(江陰職業技術學院,江蘇 江陰 214400)
在當今社會,無損檢測技術能夠在不破壞產品的基礎上檢測工件是否存在缺陷,保證產品使用的安全性[1],尤其在食品檢測以及兒童玩具安全性能指標檢測中都發揮著重要的作用。隨著人們對生活品質要求的提高,特別是在兒童用品方面一直存在著不完善的因素。在機器生產兒童玩具時難免會出現混入金屬雜質,給兒童產品帶來嚴重的安全隱患。隨著金屬檢測技術的提高,出現了許多金屬探測器的廠商,但在兒童玩具加工和檢測方面仍存在不足。由于金屬檢測有著許多不同的檢測方法,但在兒童玩具的檢測中采用電渦流和電磁場檢測的方式居多,因為其具有小巧耐用、靈敏度和精確度較高的特點。針對兒童玩具質量的安全問題,本文提出了一種基于Arduino研發的金屬探測器。
本檢測系統結構如圖1所示。采用PS17-5DN作為主要的金屬檢測傳感器,針對檢測的問題,給出了一種脈沖渦流檢測的方法[2]。PS17-5DN作為直流三線NPN接近開關,具有靈敏精確的特點。
PS17-5DN作為電感式接近開關,利用直流三線PNP接法,當檢測到金屬后由于內部結構輸出信號轉變成低電平,用傳感器實現對金屬零件數據進行收集和儲存[3],所以本設計中采用Arduino Uno控制板來接受信號改變的方式來對金屬進行檢測的方案。使用傳感器實現對金屬零件數據進行收集和儲存。
為了保證該設計在金屬檢測時系統的準確性,因而在金屬傳感器和Arduino Uno信號輸入口之間加入光電耦合開關。從而提高了金屬檢測的抗干擾性,加強整體系統的穩定性。通過Arduino Uno板對輸入信號的檢測來控制THB6128步進電機驅動器控制模塊,從而對X、Y軸電機進行準確控制,提高檢測的可靠性。
THB6128步進電機驅動器控制模塊輸入電壓為12V,板載有78L05穩壓塊可提供+5V電壓輸出。為了保證供電的可靠性及便捷性,本設計利用THB6128步進電機驅動器控制模塊的這一特性為Arduino控制板提供+5V供電,而它采用由12V鋰電池充電頭為其供電的的方案。

圖1 檢測系統結構簡圖
PS17-5DN接近開關是一種無需與運動部件進行機械直接接觸而可以操作的位置開關,當金屬物體接近開關的感應面到距離時,不需要機械及施加任何壓力即可使開關,從而通過輸送給單片機數字信號的改變完成指令控制。
PS17-5DN接近開關內部金屬檢測為電感式檢測,如圖2所示。

圖2 金屬探測原理
本設計所使用的PS17-5DN接近開關是NPN型,外部接線圖如圖3所示,棕色線接直流12V,藍色線接地,當檢測到金屬時黑色信號線輸出電平由“高電平”轉變為“低電平”,最終通過光耦把電位變化輸送給單片機。

圖3 傳感器外部接線圖
THB6128步進電機驅動器控制模塊(如圖4所示)。所用電機驅動器可以驅動2.2A電流以下混合式兩相步進電機。THB6128步進電機驅動器控制模塊功能強大并具有以下特點:支持多種細分方式,可以通過四個撥碼按鍵來控制;可以調節電流大小和衰減模式;輸出電壓范圍寬范(DC10-30V),并配有電源指示燈。

圖4 THB6128模塊外觀圖
THB6128步進電機驅動模塊具有共陽極和共陰極兩種接法,為方便理解和程序編寫,本設計采用共陽極接法。脈沖控制輸入端后接高速光電耦合器,方向和使能端分別后接兩個低速光電耦合器,其信號輸入原理圖如圖5所示。
其中高速光耦與低速光耦最大的區別在存儲時間上,高速光耦響應時間為納秒級別,適用于高頻脈沖信號,而低速光耦最大響應時間為微秒級別,適用于低頻脈沖信號。

圖5 THB6128信號輸入原理圖
本設計中主控采用Arduino Uno[4]控制板。Arduino Uno是一款基于ATmega328P的微控制器板。它有14個數字輸入/輸出引腳(其中6個可用作PWM輸出),6個模擬輸入,16MHz晶振時鐘[5]。只需要通過USB數據線連接電腦就能供電、程序下載和數據通訊。Arduino IDE的軟件編程環境可通過串口監視器進行對串口實時返回數據的監視,因此通過對串口返回數據的動態監視。
金屬檢測平臺是一個300mm×300mm的二維移動平臺。平面雙軸運動控制系統是生產中比較常見的控制系統[6],X軸和Y軸在步進電機的帶動下可以獨立運動。當裝置檢測到金屬物體后,便進入精確定位階段,通過對脈沖周期的計數和換算在液晶上準確顯示出被檢測金屬所在位置。
本設計采用的二維金屬檢測平臺的結構如圖6所示。主要由金屬支架、直線導軌、滑塊軸承、步進電機、同步帶、亞克力底板等構成[7]。在步進電機的轉動下帶動金屬滑塊在掃描區域規則運動并快速準確定位被測金屬。

圖6 二維金屬檢測平臺
金屬檢測裝置以開發板為核心來控制THB6128步進電機驅動器控制模塊驅動步進電機移動并檢測定位物體。PS17-5DN接近開關作為核心金屬檢測傳感器,用于識別并處理檢測到金屬物體后電位的變化,并通過數字輸入口送至Arduino開發板。其程序流程圖如圖7所示。

圖7 程序流程圖
本設計采用的金屬檢測平臺尺寸為300mm×300mm,考慮到檢測速度和準確性故采用兩獨立自由運動軸按照S型循環檢測的方式。為提高檢測效率,X軸步進電機掃描速度可通過細分調節加快,Y軸每次上升的高度應不大于檢測金屬物體的最大直徑或金屬物件的最小寬度,故Y軸步進電機掃描速度適當減低來提高檢測精度。利用圖8所示的掃描方式進行循環檢測,當檢測到被測物體后等待進入精確定位狀態。

圖8 檢測路徑規劃
由于PS17-5DN接近開關掃描的有效區域為圓形,所以取掃描區域的圓心作為檢測點,定位方法如圖9所示。
當檢測到金屬物體點A時,暫時停頓并按照原運動方向繼續掃描直到碰到另一邊緣側B,線段AB即為圓的弦。再從弦AB的中點向下掃描直到碰到圓的下邊緣C,接著向上掃描到圓的上邊緣D,線段AB即為圓的直徑,通過兩次準確定位,即可確定被測圓形的圓心O點。

圖9 精確定位示意圖
考慮到檢測傳感器會以四種方式掃描到被測金屬(被測物中心點以上的左右側以及被測物中心點以下的左右側),為確保掃描的準確可靠性,首先讓檢測傳感器按原X軸掃描方向繼續掃描,并在開始檢測到金屬物體邊緣A時記脈沖信號個數,當檢測到被測金屬另一側邊緣B時停止計數。通過脈沖個數換算出弦AB的長度,再命令檢測滑桿反方向運行弦AB一半的距離,從而確定下X軸方向上的中心點X1。
Y軸方向中心點檢測與X軸相似,當傳感器位于點X1位置時Y軸滑桿先向下運動,運動到最下端C點時開始記脈沖信號個數,同時讓Y軸滑桿再向上運動,直至掃描到被測物體的最上端D時停止計數。通過脈沖個數換算出直徑CD的長度,再命令檢測滑桿反方向向下運行直徑CD一半的距離,從而確定下被金屬測物體的中心(X0,Y0)。
圖10分別為兩種起始檢測運動方向不同的兩種檢測情況。設起始點均為(X,Y),被測金屬物體中心點為(X0,Y0)。
當掃描情況為圖10左圖時有:

當掃描情況為圖10右圖時有:

考慮到金屬傳感器在邊緣判斷時可能存在反應延時或檢測不到位的情況發生,所以在程序設計時可以采用多次測量取平均值的方法來縮小實驗誤差。

圖10 被測物體中心定位算法
為了建立一個方便觀察的顯示界面,對檢測到的金屬物體的中心坐標進行顯示,并可以利用當前的方位數據來計算誤差值。
本設計所采用的是12864液晶顯示[8],第一行顯示X軸的定位結果(單位mm),第二行顯示Y軸的定位結果(單位mm),第三行顯示檢測中心與實際中心誤差值(單位mm),顯示效果如圖11所示。

圖11 12864液晶顯示
本設計所采用的二維自由移動平臺在通電后自行復位,在判斷到啟動按鍵按下后開始對平臺區域面進行掃描,當檢測到金屬物體的大致位置后隨即進入精確掃描,最終定位出被測金屬的中心點,并通過12864液晶顯示其當前坐標,利用Arduino系統對實際金屬物體坐標與實測金屬物體坐標進行誤差計算并顯示。系統調試結果如表1所示。

表1 不同金屬被測物中心點定位誤差表(單位:mm)
本設計采用了以PS17-5DN金屬接近開關為核心傳感器,由于PS17-5DN金屬接近開關具有反應速度快、原理簡單、環境適應性強的特點,用其對對外界環境信息的收集,從而大大減低了整個設計的成本。而采用Arduino系列單片機控制板用以代替傳統的51單片機則在編程上方便了許多。采用THB6128步進電機驅動器控制模塊對步進電機進行驅動控制,通過對出入脈沖信號的控制實現X軸和Y軸滑軌交替掃描。
基于Arduino研發的二維平臺金屬檢測系統,能夠實現對在兒童玩具生產過程中進行有效檢測可能混雜在兒童玩具中的金屬,從而有效降低購買后的風險。本設計的二維檢測平臺具有X、Y軸方向獨立可控的特點,通過系統對不同形狀的金屬物體調試結果可以看出,本次設計的二維金屬檢測系統可以對被測金屬進行判別和定位,對相關兒童玩具加工企業產品出廠檢驗具有一定的應用價值。