蔡镕澤,陳章鑫,陳銀樹,江永鑫
(廈門理工學院 電氣工程與自動化學院,福建 廈門 361024)
隨著新零售商業(yè)模式的快速形成與發(fā)展,智能化購物體驗思想對傳統(tǒng)零售以及制造業(yè)造成極大沖擊[1]。超市的誕生給人們的日常生活帶來極大的便利,但我國普遍存在的超市購物車目前只滿足裝載商品的功能[2]。如今隨著智能跟隨技術廣泛的應用,凸顯出傳統(tǒng)購物車存在著很多弊端,如在收費時排隊過長、找不到所需商品等。超市購物作為顧客主要的線下消費方式之一,購物模式的改變迫在眉睫[3],因此跟隨購物車應運而生。
本研究旨在設計一款自動跟隨購物車,能通過識別消費者身上的二維碼實現(xiàn)自動跟隨,并根據(jù)消費者行走路徑和速度來控制自身的方向和速度;在跟隨過程中,車上顯示屏能夠實時顯示購物車位置信息;最后,在消費者結完賬時,購物車能循跡回到初始存放位置,在此過程中購物車能夠自動避障。對此,本次設計采用HT66F70A單片機作為控制核心,實現(xiàn)購物車的啟動、速度和方向控制;通過UWB室內定位系統(tǒng)實時獲取購物車的位置信息以便于消費者確定目標方向,并通過OpenMV機器視覺模塊、超聲波傳感器、灰度傳感器獲取購物車具體狀態(tài),進而采用脈沖寬度調制(PWM)技術[4]控制購物車。
該設計不僅可以解決傳統(tǒng)購物車人力托運的不便,實現(xiàn)自動化購物,提升消費者的購物體驗,還可以降低超市人力成本,提高工作效率。
本設計使用HT66F70A單片機作為控制核心,通過接收攝像頭和超聲波模塊的數(shù)據(jù),輸出PWM值控制電機轉速,當購物車與前方障礙物小于安全距離時,單片機對購物車發(fā)出停止信號,使購物車停止;當購物車方向需發(fā)生偏移時,單片機通過控制各個電機的轉速矯正購物車的方向,以此實現(xiàn)購物車前進、左轉、右轉、停止功能。同時,結合UWB室內定位系統(tǒng)實現(xiàn)購物車室內定位功能,以實時顯示購物車的位置信息。此外,單片機還可以根據(jù)灰度傳感器所返回的數(shù)據(jù)控制購物車,使購物車沿軌跡返回至初始位置,并通過超聲波模塊實現(xiàn)其在返回途中遇障停止的功能。該購物車的整體系統(tǒng)結構框圖如圖1所示。
整體的技術路線具體如下:
⑴ 攝像頭實時捕捉二維碼的位置信息傳遞給單片機;
⑵ 合泰單片機通過控制購物車啟動自動跟隨模式;
⑶ 消費者可以通過顯示屏實時獲取當前所在的購物區(qū)域;
⑷ 合泰單片機通過接收灰度傳感器的信號控制購物車實現(xiàn)自動返回功能;
⑸ 超聲波模塊和灰度傳感器實時傳遞數(shù)據(jù)給單片機以調整購物車的位置。
跟隨購物車主要由合泰單片機、繼電器、STM32單片機、超聲波傳感器、灰度傳感器、UWB室內定位、OpenMV機器視覺模塊、電機驅動模塊等硬件組成,相關型號和參數(shù)具體見表1。

表1 跟隨購物車各硬件模塊及其參數(shù)表
該跟隨購物車的硬件電路主要包括5部分:HT66F70A芯片、電機驅動電路、OpenMV機器視覺模塊、傳感器模塊、UWB室內定位模塊。硬件設計如圖2所示。
本設計使用HT66F70A單片機作為跟隨購物車的控制核心,通過PD0、PD1、PD2、PD3四個引腳來連接第一個電機驅動模塊L298N,驅動購物車的4個輪子;P2連接STM32最小系統(tǒng)板,接收超聲波模塊通過STM32引腳E0、E1傳回的信號,實現(xiàn)單片機的數(shù)據(jù)采集;通過PC0、PC1分別控制購物車左右2個灰度傳感器,識別用黑膠帶鋪設而成的循跡軌跡,實現(xiàn)購物車的循跡回歸功能。OpenMV通過攝像頭識別二維碼,并通過P0、P1、P2、P3、P7、P8控制第二個L298N實現(xiàn)購物車自動跟隨消費者功能。繼電器連接2個L298N實現(xiàn)購物車的功能切換。UWB定位標簽通過T、R引腳將位置相關數(shù)據(jù)傳遞給STM32單片機,經(jīng)三邊測距算法[5]測出購物車的位置信息并在顯示屏上顯示。
模擬超市設計出超市平面圖,如圖3所示。本設計在超市模型圖的3個相鄰直角處放置了3個UWB Mini 3基站,用于接收購物車上定位標簽傳來的信號數(shù)據(jù),通過三邊測距算法完成對定位標簽與基站之間的測距,最后將數(shù)據(jù)返回給標簽,經(jīng)STM32單片機處理完畢后在顯示屏上實時顯示出購物車的位置信息。
軟件設計采用模塊化程序設計思路,整體程序主要包括4部分,分別為主程序、循跡子程序、自動跟隨子程序和室內定位子程序。各個程序的流程圖及相應功能具體如下。
購物車上電后,程序開始運行。首先進行攝像頭、傳感器、GPIO等的初始化,接著進入主循環(huán)判斷定時器二是否開啟,如果是則執(zhí)行空語句,反之則顯示地圖。主程序流程圖如圖4所示。
如圖5所示,開啟定時器中斷,每到定時時間就進入此中斷,根據(jù)超聲波傳感器判斷前方是否有障礙物,如果有就向單片機發(fā)送停止信號,反之則根據(jù)灰度傳感器傳回的信號是否偏移來判斷,再通過電機的差速來矯正購物車的方向,并判斷是否到達終點,如果是則停止尋跡,否則重新進入定時器中斷。
如圖6所示,進入定時器中斷2后,首先清除定時器中斷2標志位,將攝像頭和傳感器傳回的數(shù)據(jù)進行處理和判斷。根據(jù)S的值調整購物車的狀態(tài),最后退出定時器中斷2。
如圖7所示,啟動室內定位功能后,將數(shù)據(jù)傳給單片機,經(jīng)過3遍測距算法確定購物車位置信息并在顯示屏上顯示,之后進入判斷程序,直至購物車位置不變或檢測到黑線,退出室內定位功能。
將程序寫入單片機后完成該跟隨購物車的組裝,作品如圖8所示。
對該跟隨購物車的功能進行測試:首先,模擬超市搭載購物車運行環(huán)境,打開UWB室內定位系統(tǒng)并給跟隨購物車上電。其次,在購物車正前方移動二維碼引導購物車在模擬環(huán)境內隨意走動,檢測其定位功能和自動跟隨功能,如圖9和圖10所示。通過二維碼將購物車引導至收銀臺后的黑膠帶區(qū),打開循跡開關觀察其循跡情況,如圖11所示。
經(jīng)測試,所設計的購物車可以跟隨二維碼移動,左右轉彎較為平滑。其在鋪有黑膠帶的地面上能循跡前進,且在循跡過程中遇到障礙物時會停止運行。購物車移動過程中定位較為準確,能定位出其當前所在超市分區(qū)的位置,并在顯示屏上顯示。整體運行穩(wěn)定,功耗低,使用方便。
本文設計了一種基于HT66F70A的跟隨購物車。該購物車具有自動跟隨、循跡、自動避障、室內定位等功能。該購物車運用PWM技術以及OpenMV模塊實現(xiàn)購物車自動跟隨消費者的功能,通過直流電機L298N來控制購物車停止、前進、左轉和右轉的功能。購物車通過識別消費者身后的二維碼,跟隨在其身后并與之保持一定距離。工作時購物車通過UWB室內定位系統(tǒng)在顯示屏上實時顯示其當前所在的區(qū)域。在消費者結賬完畢后,購物車通過灰度傳感器檢測黑膠帶,循跡回歸初始存放位置,并在循跡過程中啟動超聲波傳感器檢測障礙物,遇障停止。
與傳統(tǒng)的購物車相比,本設計消除了傳統(tǒng)購物車人力托運的不便,降低了超市的人力成本,實現(xiàn)了自動化的購物方式,為消費者帶來更舒適的購物體驗。