嵇前銘,陳勝笛,周伊琳,侯鴻濤,劉舒祺
(江蘇理工學院 電氣信息工程學院,江蘇常州,213001)
隨著互聯網技術和電商的蓬勃發展,消費的方式開始發生轉變,網絡購物開始成為人們購物的主要手段[1]。年輕人逐漸成為新型消費主力,尤其大學生的消費方式也發生了改變。據數據顯示,每年校園快遞量都在增長,校園快遞量的增長隨之而來的是面臨著校園最后一公里配送難題。當前,校園快遞采取集中投放和管理的方式,快遞“最后一公里”的配送模式還是傳統的送貨上門或定點取貨[2~3]。結合防疫需求,很多高校實行封閉管理,學生網購需求增加,不斷增長的快遞需求與校園的防疫秩序之間矛盾凸顯。在當前疫情不斷反復的情況下,按照傳統的快遞投放方式,需要投入大量的人力,物力對快遞物品進行消毒、靜置。另外,校園快遞驛站數量少和快遞量大的問題,造成學生取件不便,尤其到了下課取件高峰期,排長隊取快遞屢見不鮮[4~7]。以上諸多問題,對傳統的配送方式產生了巨大的考驗,在物聯網和電子技術發展背景下,智能化配送也逐步走進現實?;诖耍嫦蛐@的智能車配送系統研究顯得尤為重要。
系統工作時,小車首先在取貨點對物品進行掃描二維碼獲得物品信息及需要派送到的位置,然后小車執行派送任務,在配送過程中通過攝像頭對路況進行判斷,并將貨物送到指定地點,在配送過程中,小車的運行位置、車速和貨物信息等既在顯示屏上,又通過無線模塊發送給云平臺,用戶端可通過微信小程序瀏覽云端的信息,掌握貨物的配送情況[5]。當然用戶也可以通過微信小程序在校園內購物,用戶在微信小程序上指定所需商品,微信小程序給用戶分配取貨號碼,由人工把商品放至智能車內,智能車通過攝像頭循跡將貨物送達指定地點后,用戶通過智能車上的矩陣鍵盤模塊輸入密碼,打開車廂,拿走商品。系統框圖如圖1所示,在該系統中,主要由STM32控制模塊、OneNet云平臺、微信小程序三大部分組成。其中STM32控制模塊包括ML302-GNSS 4G通信模塊、LCD顯示模塊、矩陣鍵盤模塊、Open MV 4 H7 Plus攝像頭。

圖1 系統設計框圖
系統硬件采用STM32F103RCT6作為主控芯片的核心板,并根據所需功能包括如下模塊:OpenMV4 H7 Plus攝像頭模塊、ML302-GNSS 4G CAT 1通信模塊、LCD顯示模塊、矩陣按鍵、TB6612直流電機驅動模塊實現信號的輸入輸出等功能。系統設計原理圖如圖2所示,具體功能結合硬件個模塊設計詳細講解。硬件部分的設計框圖如圖3所示。

圖2 芯片與各模塊的引腳圖

圖3 硬件結構框圖
STM32F103RCT6單片機是一種嵌入式-微控制器的集成電路,是由ST公司開發的STM32F1系列的其中一種,芯體尺寸是32位,速度是72MHz,程序存儲容量是256KB,程序存儲器類型是FLASH,RAM容量是48K。本設計中采用AT指令對ML302-GNSS 4G CAT 1移動通信模塊進行控制連網,主要用到主控制芯片中USART2串口通信,其他功能模塊主要用到了控制器的I/O口。
ML302-GNSS 4G CAT 1通信模塊支持TD-LTE/FDDLTE通信制式,采用LCC+LGA封裝方式。該模塊供電電壓為3 3V~4 2V,內置GPS定位模塊,可以實現信息的傳輸和小車位置信息的獲取。通信時必須保證電壓穩定,不然容易造成設備與云平臺出現斷連的的情況,導致設備停止工作。在本系統設計中將ML302的VCC、GND、RXD、TXD分別與STM32F103RCT6單片機的VCC、GND、PA2、PA3相連,既用于連接云平臺以及實現終端控制器與云平臺間的通信,又可以實時獲取小車的位置信息。
OpenMV攝像頭是一款小巧,低功耗,低成本的電路板,可以很輕松的完成機器視覺應用,通過高級語言Python腳本控制OpenMV。本系統設計中主要用到該模塊的UART與STM32F103RCT6單片機通信,具體將OpenMV的VCC、GND、PB10(TXD)和 PB11(RXD)分 別 與 STM32F103RCT6單片機的VCC、GND、PA9和PA10相連完成循跡和標識功能。
本設計采用的是2 8寸顯示分辨率為320×240的LCD觸摸屏。它的液晶顯示屏的每一個像素上都設置有一個薄膜晶體管,可以有效地克服非選通時的串擾,使顯示液晶屏的靜態特性與掃描線數無關,因此大大提高了圖像質量。本系統設計中LCD與STM32F103RCT6單片機的具體引腳連接如圖2所示。
TB6612FNG是東芝半導體公司生產的一款直流電機驅動器件,它具有大電流MOSFET-H橋結構,雙通道電路輸出,可同時驅動2個電機。具有4種電機控制模式:正轉/反轉/制動/停止;PWM支持頻率高達100kHz。本系統設計中,將TB6612的AIN1、AIN2、BIN1、BIN2分別與STM32F103RCT6單片機的PA1、PA4、PC0、PC7相連。
本系統設計采用TELESKY 4×4直插式矩陣鍵盤與STM32F103RCT6連接,用行列掃描法原理識別按鍵按下。用戶在取外賣或者快遞時在該鍵盤上輸入取貨密碼取貨。本系統設計中,將STM32F103RCT6單片機的PA8、PC2、PC3、PA11、PA12、PA13、PA14和PA15設置成浮空輸入模式用于外接矩陣鍵盤。
蜂鳴器驅動方式為GPIO切換高低電平。平時不工作,三極管由于I/O端口輸出高電平從而截止。當取貨密碼輸入正確時發出提示音;當配送小車停止工作或發生故障時發出警報。本系統設計中采用STM32F103RCT6單片機上自帶的蜂鳴器模塊(BUZZ PC1)。
LED是一個發光二極管器件。通過控制I/O端口的高低電平狀態從而控制LED的亮滅。LED正極與I/O端口之間連接了限流電阻,防止通過LED的電流過大導致損壞。LED1和LED2用于顯示OpenMV4 H7 Plus攝像頭與STM32F103RCT6之間的正常運行。本系統設計中采用STM32F103RCT6單片機上自帶的LED模塊。
系統軟件部分主要由4G移動通信模塊、攝像頭模塊、LCD顯示模塊、直流電機驅動模塊、矩陣鍵盤模塊、蜂鳴器模塊、LED模塊和外圍設備控制模塊程序組成,程序開始后要依次對各個模塊進行初始化,然后小車進入待命狀態,等待微信小程序端下發運行的命令。待收到配送命令和目的地信息時開始工作,系統工作程序流程圖如圖4所示,STM32程序執行流程如5圖所示。

圖4 系統工作流程圖

圖5 STM32程序執行流程圖
小車收到客戶需求并且OpenMV識別即將送往的目的地信息后,變量start被置1,小車開始工作。OpenMV將采集到的實時路況信息通過UART發送給STM32的USART1,小車由此選擇路線并巡線前往目的地。此外STM32通過PI控制小車運動。在小車運動過程中,通過定時器定時每隔1s向云平臺發送小車實時位置。當OpenMV識別到目的地標識后,小車停止運動,變量start被置0,并向云平臺發送“訂單已送達”的通知。待客戶正確輸入密碼取貨后,start被置2,TB6612控制舵機運轉,使小車掉頭原路返回,其中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(" ")# 發送幀頭
uart write(" ")
uart write(d1)
uart write(d2)
uart write(d3)
微信小程序采用MINA小程序框架,頁面結構由WXML(Wei Xin Markup Language)構建,頁面樣式由WXSS(Wei Xin Style Sheets)編寫。軟件邏輯采用App Service實現,邏輯編程語言采用JavaScript。
微信小程序有2個導航欄,分別為首頁、關于?!笆醉摗辈糠钟?個模塊組成,分別為發布需求、配送路線、訂單查詢、小車位置,如圖6所示?!瓣P于”部分則是顯示了智慧校園的一些信息,如電話、微信、郵件、地址,如圖7所示。

圖6 小程序首頁界面

圖7 小程序關于界面
通過微信開發者工具的調試器驗證測試,系統能夠成功接收One Net云平臺的數據,圖8展示了微信小程序后端調用wx requset()獲取配送單號的信息,圖9展示了微信小程序后端調用wx requset()獲取小車位置的信息。圖10、圖11是與之對應的微信小程序用戶端界面。

圖8 配送單號輸出框

圖9 小車位置輸出框

圖10 訂單查詢界面

圖11 小車實時位置
本文設計了一套基于STM32的物聯網智能小車配送系統,通過STM32作為主控制單元,協調各模塊工作,將貨物準確無誤地配送到目的地并安全返回。其中包括將小車位置和訂單配送狀態在微信小程序中顯示等。重點在于用戶用微信小程序通過HTTPS協議發布需求到OneNET云平臺,OneNET云平臺再通過HTTP協議與終端進行連接,從而達到數據傳輸的目的。從系統的整體上來看,制作成本較低,軟件程序的可調性較高,能夠應對較為復雜的環境變化和挑戰。該智能小車配送系統在目前的校園配送中前景較好,尤其疫情當下,采用智能車配送服務既符合疫情封閉管理的措施,又能為人們提供便捷、安全可靠的服務。