基于STM32控制的物品分揀搬送裝置
段麗娜 李若南 陳明 程清垚 李金龍 武昌首義學院(湖北 武漢 430064)
本文引用地址:http://www.104case.com/article/201703/345090.htm基金項目:2015年度湖北省教育廳科研計劃指導性項目“多傳感器數據融合技術在獨輪車避障中的應用”(編號:B2015196)
引言
在傳統的物料分揀系統中,一般使用紙制書面文件記錄物料數據,在這樣的物料分揀系統中,大部分工作靠人力手工完成,嚴重影響物料的傳輸效率。隨著人們對物料的流動速度要求越來越高,這樣的物料分揀系統已遠遠不能滿足現代傳輸系統和物流管理的需要。傳統的自動分揀系統,大多采用先定位,然后再用機械臂等大型設備進行分揀運輸,這樣的系統結構復雜,成本高昂,傳輸效率低,不能普及化。為了解決這一問題,我們建立一個電機橫向/縱向掃描的平臺來提高傳輸效率;采用先集中再處理的方式來提高分揀的精確度。該系統結構獨特新穎,成本低廉,傳輸效率快,分揀物品的準確性高。
1系統控制方案
1.1系統總體方案
該物品分揀搬運系統可分為核心控制模塊、電源模塊、圖像識別模塊、顯示模塊、電機驅動模塊、聲光模塊等構成。其系統總體框圖如圖1所示:
圖1 系統總體框圖
整個系統采用電機橫向/縱向掃描平臺,在縱向軸上放置四個直流電機,其中一組電機實現縱向掃描,另一組實現左右運動的橫向掃描,完成物品分揀搬送。在二維基礎上再加裝攝像頭及舵機在固定的絲桿上面,通過帶編碼器的直流電機控制攝像頭和舵機在絲桿上移動,進而進行物品分揀搬送。
本系統采用TI公司的MSP430控制聲光模塊作為物品分揀裝置的聲光報警系統。一塊STM32-f1(1)系列的單片機控制觸控界面。另一塊STM32-f1(2)系列的單片機作為主控制,主要是進行以下幾個工作:一是對來自傳感器的信號進行判斷,進而驅動系統四個角的直流電機對橫向/縱向掃描平臺進行定位;二是對來自觸控界面的信號作出判斷,進而切換不同的運行模式;三是接收圖像處理的信號,驅動電機橫向/縱向掃描平臺;其中物品的檢測部分采用的是先集中在處理的方法:首先通過橫向/縱向掃描平臺將物品篩到一條直線上,并運送的物品檢測區域,該檢測區域的上方是一個固定的絲桿,絲桿上固定有攝像頭和舵機及舵機滑桿,樹莓派控制攝像頭在規定的檢測區域內對物品進行檢測,將檢測到的物品信息通過通信的方式傳送給k60,k60根據信息來控制舵機和和電機的運動,進而實現對物品的篩分,物品檢測完后,k60用通信的方式發信號給主控機(stm32-f1(2)),主控機控制橫向/縱向掃描平臺將篩分后物品搬運到指定區域。
1.2 系統硬件結構
硬件電路主要有電源模塊,聲光報警模塊,傳感器模塊,光耦隔離模塊,和驅動模塊這幾部分組成。下面主要介紹幾個重要硬件電路。
系統的驅動模塊采用雙BTN7971大電流(70A)H橋驅動;與單片機完全光耦隔離,有效保護單片機;板子上有5v電源指示;電機驅動輸出端電壓指示;電源支持7.2-25V;驅動電路圖如圖2所示。
圖2驅動電路圖
在物品運送過程中,物品搬送速度是由測速傳感器進行檢測,其電路圖如下圖3所示:
圖3測速傳感器電路圖
在物品分揀過程中定位采用紅外對管,為了保護電路采用了光耦隔離器,其電路如下圖4所示:
圖4 光電隔離器
1.3 系統軟件設計
整個系統在坐標內直接由二維結構控制電機運動,使物品搬送到指定位置,聲光報警后電機復位;整個系統通過TFT觸屏選擇模式實現不同的電機運動形式,X、Y軸上一個電機實現縱向掃描,另一個實現左右運動的橫向掃描,完成物品分揀搬送。在該區域內通過USB攝像頭識別物品,將其中黑色物品掃向一側,桔色物品掃向另一側,并將不同顏色的物品搬送到各自指定位置。系統軟件設計流程如下圖5所示:
圖5 軟件設計流程圖
2系統的調試
系統硬件的結構搭建完成后,基本就解決了物品運送的問題,所以現在主要的難題是物品的分揀,為了更好的進行分揀,我們采用一種新型的方法--先集中再處理即通過電機橫向/縱向掃描平臺將物品篩成一條直線(該直線與絲桿平行)并運送到指定區域(攝像頭正下方)進行分揀。通過直流電機+編碼器裝置來控制絲桿轉動(即控制攝像頭在物品上方移動對物品進行識別),通過舵機+連片裝置來控制對識別的物品進行分揀。下面主要介紹主要裝置的控制算法及數據分析。
2.1直流電機及編碼器裝置
在系統中絲桿的轉動采用的是編碼器加直流電機,電機轉一圈,電機可以輸出550個脈沖,倍頻之后是2200。編碼器的額定工作電壓是5V,集成了上 拉電阻和比較整形功能,可以直接輸出方波。
根據編碼器反饋的AB兩相的方波信號,可以對其進行計數,這樣就可以計
算出車輪電機的轉速。編碼器的脈沖信號是正方波,每一個周期內都有一個上升沿和下降沿,這樣就可以設置單片機的定時器對其進行捕獲。單片機的定時器可以設置為正交解碼模式,當編碼器的兩路信號同時傳輸的時候,可以分別識別其上升沿和下降沿,這樣其精度就可以乘以二。因為AB兩相信號的時間間隔剛好是四分之一周期,所以捕獲兩相信號的時候,可以實現倍頻的效果。
2.2圖像采集和處理
圖像的采集是通過在樹莓派上安裝中文字體和OpenCV的大型程序,搭建qt的開發環境,利用搭建好的開發環境實現對圖像的識別及處理,提取圖像的特征以及完成對圖像的基本變換,進而完成采集過程。
攝像頭獲取圖像信息的具體步驟如下:
(1)通過攝像頭讀取當前一幀的圖像;
(2)對圖像的大小進行調整(方便圖像像素點坐標與實際大小的換算);
(3)對圖像進行中值濾波消除噪聲點;
(4)對圖像進行灰度處理并二值化;
(5)提取像素點小于100的像素點進行反色處理;
(6)對圖像進行輪廓處理,并保存輪廓;
(7)對每個輪廓建立包圍矩形,通過左上角的坐標加上一定的比例參數確定中心坐標;
(8)當有黑色中心在圖像中心的范圍時輸出YES,否則輸出NO。
根據占空比,先利用分區差分法得出物品在某一區,再結合算法得到物品在該區內的偏移坐標,利用該區域在坐標軸的位置得出物品所在點的坐標。
表1 閾值與中心點坐標的關系
通過反復的測試,然后從測試閾值和中心點的關系表如表1所示可以看出當閾值設置為(10,255)時可以準確的讀出中心點的坐標。當然不同的光線,不同的位置對中心點坐標的位置有影響,所以需要具體的環境適當調整閾值。
2.3 樹莓派UART端口配置
圖像采集完后,需要將圖像信息傳送給從機(k60),從機驅動舵機進行分揀。其中圖像的信息傳輸是通過樹莓派UART端口進行傳輸,Linux對所有設備的訪問是通過設備文件來進行的,串口也是這樣,為了訪問串口,只需打開其設備文件即可操作串口設備。在Linux系統下面,每一個串口設備都有設備文件與其關聯,設備文件位于系統的/dev目錄下面。如Linux下的/ttyS0,/ttyS1分別表示的是串口1和串口2。
通過樹莓派UART通信將攝像頭采集的圖像的信息發送給單片機k60,單片機k60根據過來的信號控制絲桿上的電機和舵機運動,實現物品的分揀。
2.4舵機及連片裝置
舵機的控制脈沖周期 20ms,脈寬從0.5ms-2.5ms,分別對應-90 度到+90 度的位置。
表2 舵機輸入脈沖與轉動角度的關系
表2是舵機算法上加入偏差二次項ABC后舵機響應時間的變化。通過表格可以看出,加入偏差二次項后,舵機的響應時間得到了提高,進而轉向性能得到了極大的提升。
數字舵機可以以很高的頻率進行調節,這個周期和角度會變得非常小,并且有 PID 調節方式的存在,能夠在以很適當的 PID 參數進行調節,能夠讓舵機有很高的響應速度,不會出現超調。
3 系統整體測試數據與結果分析
測試儀器:示波器,秒表,精度0.1cm卷尺,數字萬用表。
測試方法:選用圖5所示的測試模型場地,測試過程是將4cm的正方體物品置于A區域內(距探測邊界≥5cm)任意一點,探測儀從探頭進入區進入進行檢測,在規定時限內對正方體物品進行定位并完成搬送。
圖6 物品分揀系統測試場地模型圖
系統各項運動指標的測試結果如下表3所示:
表3 各測試項目的測量結果
搬送裝置實現物品在規定時間內盡快達到目標區域,橫軸的右導軌向左方向運行,直到檢測到B區的右邊界時,停止右導軌的運動;縱軸的左導軌向下運動,直到檢測到B區的上邊界時,停止導軌的運動;通過GPIO發送完成信息,高電平,延時3秒,發送低電平;縱軸左導軌向上運動,檢測到左導軌起始點,停止導軌運行;橫軸右導軌向右運動,檢測到右導軌起始點,停止導軌運行。
由表3的數據可以得出,該系統能夠在一個 100cm×150cm的區域A內用小于10s的時間把區域A內的物品搬運到指定區域B或者C區域;并且能夠將散落在A區的不同物品分揀開,并以小于60s的時間內分別搬運到B區域和C區域。
4 結論
本文設計的物品分揀裝置結構新穎,不同于傳統的定位分揀。該系統硬件結構上采用電機橫向/縱向掃描平臺來實現物品的搬運,簡單高效。物品的分揀采用先集中后處理的方法,先通過掃描平臺不停的篩動物品,從而使物品集中在一條直線上,然后通過掃描平臺運送的指定區域進行分揀處理。方案新穎獨到,采用這一方案獲得2016TI杯全國大學生電子設計大賽湖北省一等獎。同時該系統也為我們提供一種新的解決物品分揀效率低難題的方案。隨著競爭的加劇,人們對物料的流動速度要求越來越高,這樣的物料分揀系統現代傳輸系統和物流管理具有一定實用價值。
評論