高芳 王屹



摘要 本文設計了一款采用Arduinomega 2560單片機作為核心芯片的高性能、低成本、低功耗和精準度高的圓片直徑檢測及識別裝置。本裝置能夠實現(xiàn)對圓片直徑進行檢測、識別、顯示和語音播報等功能。實驗表明,系統(tǒng)完全達到了設計要求,檢測精度高、響應速度快。
【關鍵詞】Arduino mega 2560 直徑檢測步進電動機
1 引言
目前國內相關院校及非研究單位測量直徑手段依然停留在傳統(tǒng)的機械方法上,如千分尺、銅帶尺和Ⅱ等、這些方法只能測量IT7、IT8級精度的零件,對于高精度的零件、工件,其尺寸實際上處于無法測量的狀態(tài),而關鍵零件的尺寸精度是保證重大技術裝備制造質量的一個重要因素。因此直徑高精度測量是國內外裝備制造企業(yè)中普遍提出又急需要解決的共性測量技術問題,其中直徑測量點的瞄準和定位是國內外都未能很好解決的技術難題。針對該問題,本檢測裝置采用旋轉固定平臺,通過圓片的旋轉,與激光光電開關的直線運動,通過一定算法,精確得到圓片直徑大小,實現(xiàn)了圓片直徑檢測與識別的功能。
2 工作系統(tǒng)原理分析
圓片直徑檢測及識別裝置由六個模塊組成作,系統(tǒng)整體結構框圖如圖l所示。系統(tǒng)由開關電源進行供電,待檢測圓片隨著圓片固定模塊轉動,激光光電開關隨步進電機座直線運動,記錄第一次檢測到圓片的時間與最后一次檢測到圓片的時間,系統(tǒng)采用Arduino mega2560單片機的I/O口獲取穩(wěn)定后的數(shù)據(jù),通過算法得出相應數(shù)據(jù),數(shù)據(jù)會在顯示模塊上顯示,并語音播報出相應數(shù)據(jù),同時打印機打印出當前獲取數(shù)據(jù)。
3 系統(tǒng)硬件設計
本設計主要實現(xiàn)的功能是為圓片進行直徑檢測與識別,通過采用多個模塊來完成整體設計,達到預期目的。
3.1 控制系統(tǒng)的論證與選擇
方案一:STM32系列是基于ARMCortex-M3內核,是為要求高性能、低成本、低功耗的嵌入式應用專門設計的。但缺點是編程復雜,調試困難。
方案二: Arduino Mega2560是采用USB接口的核心電路板,具有54路數(shù)字輸入輸出,適合需要大量I/O接口的設計。處理器核心是ATmega2560,同時具有54路數(shù)字輸入/輸出口(其中16路可作為PWM輸出),16路模擬輸入,4路UART接口,一個16MHz晶體振蕩器,一個USB口,一個電源插座,一個ICSP header和一個復位按鈕。ArduinoMega2560也能兼容為Arduino UNO設計的擴展板。故選擇此方案。
如圖2所示,主控制板以Atmel mega2560作為主控芯片,設有兩個按鍵,在開機時選擇顯示等待檢測,單片機的引腳為串口接收端,通過串口通信接收光電傳感器發(fā)回的檢測參數(shù),繼而做到調整方向前進。
3.2 動力驅動模塊
用開關電源為動力,步進電機驅動。
3.3 圓片直徑檢測模塊
方案一:采用紅外光檢測法。紅外檢測電路較為簡單,容易實現(xiàn)。
方案二:采用激光檢測法。精確度高,易于調整,可檢測最小體積更小,響應速度快。故本系統(tǒng)采用激光檢測法。
3.4 圓片固定模塊
方案一:選用直流高速馬達,可調正反轉,使用簡單。
方案二:選用直流減速馬達模塊,速度較直流馬達低,能滿足基本要求,轉速可通過PWM調節(jié),使用方便。
綜上所述,雖然方案一使用較為簡便,但是因為本項目設計對角度測量精度要求較高,并且裝置的抖動會對測量直徑帶來較大干擾。而方案二中的轉速可調制穩(wěn)定狀態(tài),故選用方案二。
3.5 顯示模塊紐成
方案一:采用數(shù)碼管顯示,由于數(shù)碼管只能顯示簡單的數(shù)字,而且其電路復雜,占用資源較多,顯示信息量少,故不采用此方案。
方案二:采用點陣(128 64)液晶DM12864 (LCD)顯示模塊。由于液晶屏顯示顯示信息量小、功耗高、使用價值低不高,只適合學習使用,故不采用此方案。
方案三:采用TFT 2.2寸液晶屏,該顯示屏體積小,點陣密,顯示內容較以上兩種多,控制也較為簡單綜合考慮,該顯示屏十分適合本項目設計,故采用此方案。
4 軟件設計
4.1 顯示部分程序流程圖
如圖3所示。
4.2 圓片檢測部分程序流程圖
如圖4所示。
對圓片的檢測,由于單次運動可能存在隨機性,所以單次檢測值存在很大的偶然性。綜合考慮這種狀況,采用了多次檢測(長時間間隔,避免極端事件多次采樣)、去極值、取平均的方法,最終的檢測結果波動在允許范圍內,該方法效果令人滿意。由于光電傳感器的返回值并非是準確的圓片信息,可通過一定的程序調整誤差。
5 功能測試
5.1 功能檢測
檢測外徑:步進電機帶動滾珠絲杠,滑臺做一次往復運動,觸發(fā)一次傳感器從而測得相關數(shù)據(jù),計算圓片外徑。
檢測內徑:步進電機帶動滾珠絲杠,滑臺做一次往復運動,觸發(fā)四次傳感器從而測得相關數(shù)據(jù),計算圓片內徑。
檢測不均勻圓度:步進電機帶動滾珠絲杠,滑臺做多次次往復運動,多次觸發(fā)傳感器從而測得相關數(shù)據(jù),計算圓片不均勻圓度。
5.2 測試數(shù)據(jù)
如表1所示。
結果分析:幾次測試中圓片直徑波動較大,可能原因是光電傳感器不穩(wěn)定造成,后加了緊固裝置,效果明顯提升。
表2測試為圓片內孔直徑。在使用緊固裝置后,檢測內徑誤差一直控制在限定以內,較為滿意。
表3為圓片不均勻圓度測量。測試結果有較大的波動,其中第六次波動最大,可見整個系統(tǒng)穩(wěn)定性存在不足,還需改進。
通過以上調試可知,該裝置能實現(xiàn)以下要求:
(1)顯示模塊的液晶顯示屏上能夠顯示運動圓片的外徑和內徑、不均勻圓度、圓片直徑分類;
(2)內外徑的數(shù)據(jù)可以換算成公制、英制;
(3)語音播報模塊能對測得的圓片的數(shù)據(jù)進行語音播報;
(4)用按鍵開關可以控制圓片的左右移動;
(5)直徑測量與顯示誤差小于0.5cm;
(6)能夠存儲六個圓片的檢測數(shù)據(jù),并且能夠打印。
6 結語
基于Arduino mega 2560單片機的圓片直徑檢測及識別工作系統(tǒng)中,圓片檢測信號的獲取十分方便;使用步進電機作為系統(tǒng)的運動執(zhí)行機構,可以使檢測裝置位置控制更為精確容易;采用開關電源作為供電系統(tǒng),能夠提供穩(wěn)定長效的輸出電流,延長系統(tǒng)的工作時間,解決了步進電機效率較低的問題。實驗結果表明,系統(tǒng)各項性能指標都達到控制任務要求,檢測精度高。
參考文獻
[1] Arduino mega 2560參考手冊,
[2]姚尚朗,《Android開發(fā)入門與實戰(zhàn)》(第二版)[M],北京:人民郵電出版社,2013.
[3]黃智偉,全國大學生電子設計競賽訓練教程[M].北京:電子工業(yè)出版社,2012.
[4]譚浩強.C語言程序設計(第二版)[M].北京:清華大學出版社,2014.