龔 瑩,阮學(xué)云,時(shí)金成,陳迎冬,李佳靜
(安徽理工大學(xué) 機(jī)械工程學(xué)院,安徽 淮南 232001)
近二十年來(lái),我國(guó)電商行業(yè)飛速發(fā)展,快遞包裹量也隨之急速增長(zhǎng)。這對(duì)物流行業(yè)分揀效率提出了極大要求,從而衍生出一系列針對(duì)物流行業(yè)的自動(dòng)化分揀裝置,這些裝置的工作效率直接影響著物流成本和包裹分揀效率。目前,我國(guó)快遞公司的主要環(huán)節(jié),如運(yùn)輸、包裝、裝卸等通常都是由人工操作的[1]?,F(xiàn)有的快遞自動(dòng)化供包裝置需要布置大量工業(yè)相機(jī)。該裝置成本高,并且快遞包裹的單件分離效率低,快遞掃描難度大,這些問(wèn)題已成為目前快遞行業(yè)發(fā)展的痛點(diǎn)和瓶頸[2]。
為了解決上述問(wèn)題,本文設(shè)計(jì)了一套基于全向輪運(yùn)輸平臺(tái)的自動(dòng)供包裝置系統(tǒng)。本系統(tǒng)通過(guò)頂部、側(cè)面和透明輸送帶底部三方位工業(yè)相機(jī),并結(jié)合全向輪旋轉(zhuǎn)控制系統(tǒng)實(shí)現(xiàn)對(duì)包裹的六面掃描。本系統(tǒng)解決了由人工將快遞面單向上放置到掃描裝置上和人工搬運(yùn)的問(wèn)題。通過(guò)對(duì)全向輪模塊及控制系統(tǒng)的設(shè)計(jì),能夠?qū)崿F(xiàn)對(duì)快遞的碼垛、輸送、排序、六面掃描和輸送方向控制。
供包系統(tǒng)整體裝置結(jié)構(gòu)如圖1所示,主要由多個(gè)全向輪運(yùn)輸模塊、工業(yè)相機(jī)掃描識(shí)別模塊、PU透明帶傳輸平臺(tái)組成。全向輪平臺(tái)區(qū)域是由多個(gè)正方形模塊組成,模塊數(shù)量可根據(jù)實(shí)際需求和場(chǎng)地面積自行增加或者減少,圖1中包含3×6個(gè)全向輪模塊。全向輪運(yùn)輸平臺(tái)的前半部分3×3模塊安裝光電傳感器,用于檢驗(yàn)包裹是否通過(guò)此模塊區(qū)域,便于后續(xù)安排包裹依次通過(guò)工業(yè)相機(jī)掃描區(qū)域;全向輪平臺(tái)的后半部分3×3模塊是包裹的掃描識(shí)別區(qū)域,用于實(shí)現(xiàn)旋轉(zhuǎn)包裹,側(cè)面和頂端的工業(yè)相機(jī)可以掃描快遞面單上的單號(hào)并讀取單號(hào)信息,將所識(shí)別的信息傳輸給主控電腦進(jìn)行存儲(chǔ)。透明傳輸帶區(qū)域由PU透明帶和下方的工業(yè)相機(jī)構(gòu)成,包裹經(jīng)過(guò)全向輪平臺(tái)后若未被識(shí)別到面單信息,則會(huì)被運(yùn)輸至PU透明輸送帶上,同時(shí)啟動(dòng)透明輸送帶下方的工業(yè)相機(jī),對(duì)快遞面單進(jìn)行掃描并識(shí)別,然后將信息傳輸至主控電腦。
圖1 自動(dòng)供包裝置整體結(jié)構(gòu)
包裹在經(jīng)過(guò)整個(gè)供包裝置運(yùn)輸以后,由于快遞面單已經(jīng)被裝置的工業(yè)相機(jī)掃描識(shí)別并上傳數(shù)據(jù),從而改善目前人工手持讀碼器給快遞包裹掃碼的情況,減少了掃碼人員和讀碼器的數(shù)量,既節(jié)省了人力成本和設(shè)備成本,還提高了掃描工作的效率并降低了掃碼的失誤率。
常用的控制方案主要有分布式和集中式兩種[3]。本裝置控制系統(tǒng)主要采用分布式控制,采用一個(gè)主控制芯片連接多個(gè)從控制芯片,通過(guò)主控制芯片和從控制芯片之間的協(xié)同工作,完成對(duì)系統(tǒng)的控制[4]。本裝置采用STM32F103型控制芯片。STM32F103型單片機(jī)選用了Cortex-M3處理器作為內(nèi)核,CPU最高速度為72MHz[5]??紤]到主控制器要實(shí)現(xiàn)不同的功能,既要與上位機(jī)進(jìn)行通信,又要向從控制器發(fā)送指令,因而選擇STM32F103ZET6為主控制器芯片。從控制器的主要功能是接收主控制器的命令及驅(qū)動(dòng)電機(jī),綜合考慮從控制器的可靠性和成本,選擇了STM32F103C8T6作為從控制器芯片。
自動(dòng)供包裝置的控制系統(tǒng)包括上位機(jī)部分、下位機(jī)部分、硬件部分等。上位機(jī)采用串口通信的方式與下位機(jī)進(jìn)行通信;下位機(jī)部分包括一個(gè)主控制芯片和多個(gè)從控制芯片。工作時(shí),首先是由上位機(jī)發(fā)送指令,下位機(jī)的主控制芯片接收到來(lái)自上位機(jī)的指令后,STM32主控制器先對(duì)收到的指令進(jìn)行分析,然后給相應(yīng)的STM32從控制器和相關(guān)傳感器發(fā)送控制命令,控制硬件部分的電機(jī)驅(qū)動(dòng)器,電機(jī)根據(jù)電機(jī)驅(qū)動(dòng)器發(fā)出的信號(hào)完成相應(yīng)的動(dòng)作??刂葡到y(tǒng)總體設(shè)計(jì)方案如圖2所示。
圖2 系統(tǒng)總體設(shè)計(jì)方案
2.2.1 串口通信電路設(shè)計(jì)
本裝置采用串行通信的數(shù)據(jù)傳輸方式。主控制器采用串口通信,包含5個(gè)USART,其中每個(gè)UASRT都是由VCC電源線、TX發(fā)射端口、RX接收端口和GND組成,這樣只需要通過(guò)4根數(shù)據(jù)線即可實(shí)現(xiàn)兩個(gè)設(shè)備之間的數(shù)據(jù)傳輸,主控制器芯片的串口引腳如表1所示。在主控制器和從控制器之間進(jìn)行串口通信時(shí),將主控制器的Tx引腳和Rx引腳分別與從控制器的Rx引腳和Tx引腳相連,GND引腳接地,這樣即可實(shí)現(xiàn)兩個(gè)芯片之間的通信。
表1 主從控制芯片串口引腳
本裝置采用的USB轉(zhuǎn)串口轉(zhuǎn)換芯片為CH340G,使用時(shí)將CH340G中的UD+和USB的D+連接,CH340G的UD-與USB的D-相連,CH340G中的串口發(fā)射端TX引腳連接主控制器USART1的PA10,CH340G的接收端RX引腳連接主控制器USART1的PA9[6],其具體連接電路如圖3所示。
圖3 USB轉(zhuǎn)串口電路設(shè)計(jì)
2.2.2 CAN通信電路設(shè)計(jì)
為了實(shí)現(xiàn)自動(dòng)供包裝置各個(gè)全向輪模塊與主控系統(tǒng)及傳感器之間的實(shí)時(shí)通信,采取了一主多從的分布式控制方案。在物理層,網(wǎng)絡(luò)采用了CAN總線的方式將主控制器CPU與各個(gè)從控制器CPU相連接,從控制器和對(duì)應(yīng)的全向輪模塊相連接,這樣便可實(shí)現(xiàn)主控制器利用CAN總線收發(fā)數(shù)據(jù)給從控制器,進(jìn)而控制全向輪平臺(tái)內(nèi)部的電機(jī)速度和轉(zhuǎn)向。
STM32中的CAN控制器在進(jìn)行CAN總線架構(gòu)時(shí)需要外接CAN收發(fā)器,本系統(tǒng)采用TJA1050芯片作為CAN收發(fā)器[7]。TJA1050封裝為8個(gè)引腳,主要包括VCC、GND、數(shù)據(jù)發(fā)送和數(shù)據(jù)接收引腳。在主控制器和TJA1050連接時(shí),TJA1050模塊上的串行數(shù)據(jù)輸出線TX與主控制器及從控制器的PB9(CANTx)端相連,串行數(shù)據(jù)接收線RX與主控制器及從控制器的PB8(CANRx)端相連[8]。TJA1050模塊[9-10]的CANH和CANL分別掛載至CAN總線對(duì)應(yīng)的兩條線上,其具體電路連接如圖4所示。
圖4 CAN電路連接
2.2.3 步進(jìn)電機(jī)電路設(shè)計(jì)
本裝置選用42步進(jìn)電機(jī),采用4線接法,通過(guò)4根線A+、A-、B+、B-來(lái)控制電機(jī)的正轉(zhuǎn)和反轉(zhuǎn)。
控制器的輸出電流很微小,無(wú)法被步進(jìn)電機(jī)直接識(shí)別,因而需要一個(gè)中間橋梁步進(jìn)電機(jī)驅(qū)動(dòng)器TB6600去連接控制器和步進(jìn)電機(jī)。步進(jìn)電機(jī)驅(qū)動(dòng)器的電機(jī)線接口分別與步進(jìn)電機(jī)的A+、A-、B+、B-連接,電機(jī)使能信號(hào)接口ENA+、方向控制信號(hào)DIR+和脈沖信號(hào)PUL+分別與設(shè)置好的STM32從控制器的引腳相連,ENA-、DIR-和PUL-都接STM32從控制器的GND口[11]。根據(jù)電機(jī)驅(qū)動(dòng)器的說(shuō)明,撥動(dòng)電機(jī)驅(qū)動(dòng)器上的撥碼開(kāi)關(guān)SW1~SW3,設(shè)置驅(qū)動(dòng)器的輸出細(xì)分?jǐn)?shù)為32細(xì)分,撥動(dòng)撥碼開(kāi)關(guān)SW4~SW6,將電流設(shè)置為1A,此時(shí)需要接收到6400個(gè)脈沖信號(hào)才能使步進(jìn)電機(jī)轉(zhuǎn)動(dòng)一圈[12-13]。
根據(jù)裝置系統(tǒng)設(shè)計(jì),1個(gè)從控制器控制1個(gè)全向輪模塊,1個(gè)全向輪模塊控制兩2個(gè)步進(jìn)電機(jī)。本裝置選用STM32從控制器的通用定時(shí)器3的4個(gè)輸出通道,輸出4路PWM波,與2個(gè)電機(jī)驅(qū)動(dòng)器的對(duì)應(yīng)引腳相連,以實(shí)現(xiàn)系統(tǒng)工作時(shí)信號(hào)的正確傳輸和電機(jī)的正常運(yùn)行。單個(gè)模塊步進(jìn)電機(jī)具體電路連接如圖5所示。
圖5 單個(gè)模塊步進(jìn)電機(jī)電路連接
2.3.1 控制系統(tǒng)主程序設(shè)計(jì)
控制系統(tǒng)的軟件搭建使用KeiluVision5開(kāi)發(fā)環(huán)境進(jìn)行程序編寫??刂葡到y(tǒng)在工作時(shí),首先進(jìn)行系統(tǒng)初始化,啟動(dòng)PC上位機(jī)和硬件供電,連接主控制器和PC上位機(jī)的通信,連接完成后,主控制器進(jìn)行系統(tǒng)自檢,檢查CAN通信連接、傳感器的連接和串口通信的連接。若自檢結(jié)果有問(wèn)題,則反饋給PC上位機(jī)并重新進(jìn)行自檢;若自檢結(jié)果沒(méi)有問(wèn)題,則將結(jié)果反饋給PC上位機(jī)并運(yùn)行主程序,然后開(kāi)啟中斷、等待中斷、判斷中斷的標(biāo)志位,再根據(jù)不同的中斷去處理不同的事件,并進(jìn)行相應(yīng)的控制??刂葡到y(tǒng)主程序設(shè)計(jì)工作流程如圖6所示。
圖6 主程序啟動(dòng)流程
2.3.2 中斷配置設(shè)計(jì)
本系統(tǒng)采用中斷的方式協(xié)調(diào)主控制器與外設(shè)之間的工作。用戶根據(jù)事件的重要性設(shè)置中斷優(yōu)先級(jí),從而使系統(tǒng)發(fā)生的事件按照規(guī)定順序進(jìn)行。當(dāng)在系統(tǒng)運(yùn)行過(guò)程中出現(xiàn)某些優(yōu)先級(jí)更高的事件時(shí),系統(tǒng)會(huì)暫停正在運(yùn)行的程序,轉(zhuǎn)而去執(zhí)行優(yōu)先級(jí)更高的事件命令,處理完成后再運(yùn)行之前被暫停的程序。
中斷配置設(shè)計(jì)流程如圖7所示,首先進(jìn)行中斷配置:先聲明NVIC結(jié)構(gòu)體,設(shè)置中斷分組,選擇中斷通道,為該中斷指定優(yōu)先級(jí),再使能中斷;其次設(shè)置中斷端口:配置GPIO引腳、EXTI結(jié)構(gòu)體、中斷請(qǐng)求及中斷觸發(fā)方式,再使能中斷線路功能;最后是中斷處理環(huán)節(jié):中斷來(lái)臨時(shí),進(jìn)行中斷請(qǐng)求,判斷面臨的中斷事件與當(dāng)前正進(jìn)行事件的優(yōu)先級(jí),若此中斷事件的優(yōu)先級(jí)高于當(dāng)前事件時(shí)就會(huì)響應(yīng)中斷并進(jìn)入中斷服務(wù)程序,直至當(dāng)前中斷程序結(jié)束,完成中斷處理環(huán)節(jié)[14]。
圖7 中斷配置流程
2.3.3 單個(gè)全向輪模塊程序設(shè)計(jì)
裝置中的每一個(gè)全向輪模塊都是由一個(gè)從控制器STM32進(jìn)行控制的。當(dāng)從控制器工作時(shí),首先進(jìn)行系統(tǒng)初始化,與主控制器進(jìn)行連接,配置相應(yīng)的GPIO引腳,開(kāi)啟定時(shí)器時(shí)鐘,設(shè)置數(shù)據(jù)使定時(shí)器輸出相應(yīng)頻率的PWM方波,其頻率決定了步進(jìn)電機(jī)的轉(zhuǎn)速大??;其次配置從控制器的中斷,等候主控制器的發(fā)送指令,接收主控制器的指令并執(zhí)行,根據(jù)指令驅(qū)動(dòng)相應(yīng)電機(jī)旋轉(zhuǎn),執(zhí)行指令完成后由從控制器發(fā)送動(dòng)作已完成指令給主控制器,并等待主控制器發(fā)送新的指令。單個(gè)模塊程序設(shè)計(jì)流程如圖8所示。
圖8 單個(gè)模塊程序設(shè)計(jì)流程
按照裝置的整體設(shè)計(jì)方案,在實(shí)物樣機(jī)搭建過(guò)程中,先對(duì)各個(gè)功能模塊進(jìn)行搭建,模塊組裝完成以后再將各個(gè)模塊組合搭建為整體裝置,完成樣機(jī)的搭建。
搭建好的實(shí)物樣機(jī)如圖9所示,樣機(jī)的全向輪運(yùn)輸平臺(tái)由3×3個(gè)全向輪平臺(tái)構(gòu)成,每個(gè)全向輪平臺(tái)內(nèi)部都安裝了步進(jìn)電機(jī)和驅(qū)動(dòng)器。透明傳輸帶結(jié)構(gòu)安裝在全向輪平臺(tái)的一側(cè),將3個(gè)工業(yè)相機(jī)掃描裝置分別安裝在全向輪平臺(tái)上方支架的頂部和一側(cè),以及透明輸送帶的下方。
圖9 裝置樣機(jī)實(shí)物
根據(jù)實(shí)際情況,將全向輪單個(gè)平臺(tái)進(jìn)行編號(hào),如圖10 所示。記錄樣機(jī)的功能測(cè)試情況如表2所示。
表2 模塊測(cè)試功能
圖10 全向輪平臺(tái)編號(hào)
從實(shí)際的測(cè)試結(jié)果來(lái)看,包裹在整個(gè)裝置上可以平穩(wěn)前進(jìn),在旋轉(zhuǎn)裝置部分,包裹能夠按照要求旋轉(zhuǎn)一定角度并停留,實(shí)現(xiàn)了側(cè)面工業(yè)相機(jī)對(duì)包裹側(cè)面面單的掃描,包裹前進(jìn)到透明輸送帶區(qū)域底部時(shí),工業(yè)相機(jī)也可以正常工作??傮w來(lái)說(shuō),樣機(jī)實(shí)現(xiàn)了預(yù)期的基本功能,滿足了裝置的設(shè)計(jì)要求。
基于全向輪模塊的自動(dòng)供包裝置控制系統(tǒng),提出了具體的設(shè)計(jì)方案,完成了硬件選型工作,對(duì)控制系統(tǒng)的電路模塊設(shè)計(jì)進(jìn)行了簡(jiǎn)單介紹。通過(guò)Keil uVision5 軟件開(kāi)發(fā)平臺(tái)進(jìn)行軟件程序編寫,介紹了單個(gè)全向輪模塊的程序運(yùn)行過(guò)程,主、從控制器利用CAN 通信收發(fā)信息,主控制器通過(guò)設(shè)置中斷優(yōu)先級(jí)的方式處理收到的不同事件指令。在樣機(jī)測(cè)試實(shí)驗(yàn)中,完成了對(duì)包裹的碼垛、排序,實(shí)現(xiàn)了對(duì)包裹的六面掃描和輸送方向的控制,基本實(shí)現(xiàn)了預(yù)期功能。