嵇前銘,陳勝笛,周伊琳,侯鴻濤,劉舒祺
(江蘇理工學(xué)院 電氣信息工程學(xué)院,江蘇常州,213001)
隨著互聯(lián)網(wǎng)技術(shù)和電商的蓬勃發(fā)展,消費(fèi)的方式開始發(fā)生轉(zhuǎn)變,網(wǎng)絡(luò)購物開始成為人們購物的主要手段[1]。年輕人逐漸成為新型消費(fèi)主力,尤其大學(xué)生的消費(fèi)方式也發(fā)生了改變。據(jù)數(shù)據(jù)顯示,每年校園快遞量都在增長,校園快遞量的增長隨之而來的是面臨著校園最后一公里配送難題。當(dāng)前,校園快遞采取集中投放和管理的方式,快遞“最后一公里”的配送模式還是傳統(tǒng)的送貨上門或定點(diǎn)取貨[2~3]。結(jié)合防疫需求,很多高校實(shí)行封閉管理,學(xué)生網(wǎng)購需求增加,不斷增長的快遞需求與校園的防疫秩序之間矛盾凸顯。在當(dāng)前疫情不斷反復(fù)的情況下,按照傳統(tǒng)的快遞投放方式,需要投入大量的人力,物力對快遞物品進(jìn)行消毒、靜置。另外,校園快遞驛站數(shù)量少和快遞量大的問題,造成學(xué)生取件不便,尤其到了下課取件高峰期,排長隊(duì)取快遞屢見不鮮[4~7]。以上諸多問題,對傳統(tǒng)的配送方式產(chǎn)生了巨大的考驗(yàn),在物聯(lián)網(wǎng)和電子技術(shù)發(fā)展背景下,智能化配送也逐步走進(jìn)現(xiàn)實(shí)?;诖?,面向校園的智能車配送系統(tǒng)研究顯得尤為重要。
系統(tǒng)工作時(shí),小車首先在取貨點(diǎn)對物品進(jìn)行掃描二維碼獲得物品信息及需要派送到的位置,然后小車執(zhí)行派送任務(wù),在配送過程中通過攝像頭對路況進(jìn)行判斷,并將貨物送到指定地點(diǎn),在配送過程中,小車的運(yùn)行位置、車速和貨物信息等既在顯示屏上,又通過無線模塊發(fā)送給云平臺(tái),用戶端可通過微信小程序?yàn)g覽云端的信息,掌握貨物的配送情況[5]。當(dāng)然用戶也可以通過微信小程序在校園內(nèi)購物,用戶在微信小程序上指定所需商品,微信小程序給用戶分配取貨號(hào)碼,由人工把商品放至智能車內(nèi),智能車通過攝像頭循跡將貨物送達(dá)指定地點(diǎn)后,用戶通過智能車上的矩陣鍵盤模塊輸入密碼,打開車廂,拿走商品。系統(tǒng)框圖如圖1所示,在該系統(tǒng)中,主要由STM32控制模塊、OneNet云平臺(tái)、微信小程序三大部分組成。其中STM32控制模塊包括ML302-GNSS 4G通信模塊、LCD顯示模塊、矩陣鍵盤模塊、Open MV 4 H7 Plus攝像頭。
圖1 系統(tǒng)設(shè)計(jì)框圖
系統(tǒng)硬件采用STM32F103RCT6作為主控芯片的核心板,并根據(jù)所需功能包括如下模塊:OpenMV4 H7 Plus攝像頭模塊、ML302-GNSS 4G CAT 1通信模塊、LCD顯示模塊、矩陣按鍵、TB6612直流電機(jī)驅(qū)動(dòng)模塊實(shí)現(xiàn)信號(hào)的輸入輸出等功能。系統(tǒng)設(shè)計(jì)原理圖如圖2所示,具體功能結(jié)合硬件個(gè)模塊設(shè)計(jì)詳細(xì)講解。硬件部分的設(shè)計(jì)框圖如圖3所示。
圖2 芯片與各模塊的引腳圖
圖3 硬件結(jié)構(gòu)框圖
STM32F103RCT6單片機(jī)是一種嵌入式-微控制器的集成電路,是由ST公司開發(fā)的STM32F1系列的其中一種,芯體尺寸是32位,速度是72MHz,程序存儲(chǔ)容量是256KB,程序存儲(chǔ)器類型是FLASH,RAM容量是48K。本設(shè)計(jì)中采用AT指令對ML302-GNSS 4G CAT 1移動(dòng)通信模塊進(jìn)行控制連網(wǎng),主要用到主控制芯片中USART2串口通信,其他功能模塊主要用到了控制器的I/O口。
ML302-GNSS 4G CAT 1通信模塊支持TD-LTE/FDDLTE通信制式,采用LCC+LGA封裝方式。該模塊供電電壓為3 3V~4 2V,內(nèi)置GPS定位模塊,可以實(shí)現(xiàn)信息的傳輸和小車位置信息的獲取。通信時(shí)必須保證電壓穩(wěn)定,不然容易造成設(shè)備與云平臺(tái)出現(xiàn)斷連的的情況,導(dǎo)致設(shè)備停止工作。在本系統(tǒng)設(shè)計(jì)中將ML302的VCC、GND、RXD、TXD分別與STM32F103RCT6單片機(jī)的VCC、GND、PA2、PA3相連,既用于連接云平臺(tái)以及實(shí)現(xiàn)終端控制器與云平臺(tái)間的通信,又可以實(shí)時(shí)獲取小車的位置信息。
OpenMV攝像頭是一款小巧,低功耗,低成本的電路板,可以很輕松的完成機(jī)器視覺應(yīng)用,通過高級(jí)語言Python腳本控制OpenMV。本系統(tǒng)設(shè)計(jì)中主要用到該模塊的UART與STM32F103RCT6單片機(jī)通信,具體將OpenMV的VCC、GND、PB10(TXD)和 PB11(RXD)分 別 與 STM32F103RCT6單片機(jī)的VCC、GND、PA9和PA10相連完成循跡和標(biāo)識(shí)功能。
本設(shè)計(jì)采用的是2 8寸顯示分辨率為320×240的LCD觸摸屏。它的液晶顯示屏的每一個(gè)像素上都設(shè)置有一個(gè)薄膜晶體管,可以有效地克服非選通時(shí)的串?dāng)_,使顯示液晶屏的靜態(tài)特性與掃描線數(shù)無關(guān),因此大大提高了圖像質(zhì)量。本系統(tǒng)設(shè)計(jì)中LCD與STM32F103RCT6單片機(jī)的具體引腳連接如圖2所示。
TB6612FNG是東芝半導(dǎo)體公司生產(chǎn)的一款直流電機(jī)驅(qū)動(dòng)器件,它具有大電流MOSFET-H橋結(jié)構(gòu),雙通道電路輸出,可同時(shí)驅(qū)動(dòng)2個(gè)電機(jī)。具有4種電機(jī)控制模式:正轉(zhuǎn)/反轉(zhuǎn)/制動(dòng)/停止;PWM支持頻率高達(dá)100kHz。本系統(tǒng)設(shè)計(jì)中,將TB6612的AIN1、AIN2、BIN1、BIN2分別與STM32F103RCT6單片機(jī)的PA1、PA4、PC0、PC7相連。
本系統(tǒng)設(shè)計(jì)采用TELESKY 4×4直插式矩陣鍵盤與STM32F103RCT6連接,用行列掃描法原理識(shí)別按鍵按下。用戶在取外賣或者快遞時(shí)在該鍵盤上輸入取貨密碼取貨。本系統(tǒng)設(shè)計(jì)中,將STM32F103RCT6單片機(jī)的PA8、PC2、PC3、PA11、PA12、PA13、PA14和PA15設(shè)置成浮空輸入模式用于外接矩陣鍵盤。
蜂鳴器驅(qū)動(dòng)方式為GPIO切換高低電平。平時(shí)不工作,三極管由于I/O端口輸出高電平從而截止。當(dāng)取貨密碼輸入正確時(shí)發(fā)出提示音;當(dāng)配送小車停止工作或發(fā)生故障時(shí)發(fā)出警報(bào)。本系統(tǒng)設(shè)計(jì)中采用STM32F103RCT6單片機(jī)上自帶的蜂鳴器模塊(BUZZ PC1)。
LED是一個(gè)發(fā)光二極管器件。通過控制I/O端口的高低電平狀態(tài)從而控制LED的亮滅。LED正極與I/O端口之間連接了限流電阻,防止通過LED的電流過大導(dǎo)致?lián)p壞。LED1和LED2用于顯示OpenMV4 H7 Plus攝像頭與STM32F103RCT6之間的正常運(yùn)行。本系統(tǒng)設(shè)計(jì)中采用STM32F103RCT6單片機(jī)上自帶的LED模塊。
系統(tǒng)軟件部分主要由4G移動(dòng)通信模塊、攝像頭模塊、LCD顯示模塊、直流電機(jī)驅(qū)動(dòng)模塊、矩陣鍵盤模塊、蜂鳴器模塊、LED模塊和外圍設(shè)備控制模塊程序組成,程序開始后要依次對各個(gè)模塊進(jìn)行初始化,然后小車進(jìn)入待命狀態(tài),等待微信小程序端下發(fā)運(yùn)行的命令。待收到配送命令和目的地信息時(shí)開始工作,系統(tǒng)工作程序流程圖如圖4所示,STM32程序執(zhí)行流程如5圖所示。
圖4 系統(tǒng)工作流程圖
圖5 STM32程序執(zhí)行流程圖
小車收到客戶需求并且OpenMV識(shí)別即將送往的目的地信息后,變量start被置1,小車開始工作。OpenMV將采集到的實(shí)時(shí)路況信息通過UART發(fā)送給STM32的USART1,小車由此選擇路線并巡線前往目的地。此外STM32通過PI控制小車運(yùn)動(dòng)。在小車運(yùn)動(dòng)過程中,通過定時(shí)器定時(shí)每隔1s向云平臺(tái)發(fā)送小車實(shí)時(shí)位置。當(dāng)OpenMV識(shí)別到目的地標(biāo)識(shí)后,小車停止運(yùn)動(dòng),變量start被置0,并向云平臺(tái)發(fā)送“訂單已送達(dá)”的通知。待客戶正確輸入密碼取貨后,start被置2,TB6612控制舵機(jī)運(yùn)轉(zhuǎn),使小車掉頭原路返回,其中OpenMV中的部分代碼如下:
out_data = int(code payload())
d1 = str(int(out_data/100))
d2 = str(int((out_data%100)/10))
d3 = str(int(out_data%10))
print('you send:',out_data)
uart write(" ")# 發(fā)送幀頭
uart write(" ")
uart write(d1)
uart write(d2)
uart write(d3)
微信小程序采用MINA小程序框架,頁面結(jié)構(gòu)由WXML(Wei Xin Markup Language)構(gòu)建,頁面樣式由WXSS(Wei Xin Style Sheets)編寫。軟件邏輯采用App Service實(shí)現(xiàn),邏輯編程語言采用JavaScript。
微信小程序有2個(gè)導(dǎo)航欄,分別為首頁、關(guān)于?!笆醉摗辈糠钟?個(gè)模塊組成,分別為發(fā)布需求、配送路線、訂單查詢、小車位置,如圖6所示?!瓣P(guān)于”部分則是顯示了智慧校園的一些信息,如電話、微信、郵件、地址,如圖7所示。
圖6 小程序首頁界面
圖7 小程序關(guān)于界面
通過微信開發(fā)者工具的調(diào)試器驗(yàn)證測試,系統(tǒng)能夠成功接收One Net云平臺(tái)的數(shù)據(jù),圖8展示了微信小程序后端調(diào)用wx requset()獲取配送單號(hào)的信息,圖9展示了微信小程序后端調(diào)用wx requset()獲取小車位置的信息。圖10、圖11是與之對應(yīng)的微信小程序用戶端界面。
圖8 配送單號(hào)輸出框
圖9 小車位置輸出框
圖10 訂單查詢界面
圖11 小車實(shí)時(shí)位置
本文設(shè)計(jì)了一套基于STM32的物聯(lián)網(wǎng)智能小車配送系統(tǒng),通過STM32作為主控制單元,協(xié)調(diào)各模塊工作,將貨物準(zhǔn)確無誤地配送到目的地并安全返回。其中包括將小車位置和訂單配送狀態(tài)在微信小程序中顯示等。重點(diǎn)在于用戶用微信小程序通過HTTPS協(xié)議發(fā)布需求到OneNET云平臺(tái),OneNET云平臺(tái)再通過HTTP協(xié)議與終端進(jìn)行連接,從而達(dá)到數(shù)據(jù)傳輸?shù)哪康摹南到y(tǒng)的整體上來看,制作成本較低,軟件程序的可調(diào)性較高,能夠應(yīng)對較為復(fù)雜的環(huán)境變化和挑戰(zhàn)。該智能小車配送系統(tǒng)在目前的校園配送中前景較好,尤其疫情當(dāng)下,采用智能車配送服務(wù)既符合疫情封閉管理的措施,又能為人們提供便捷、安全可靠的服務(wù)。