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

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