游依婷 周章玉
摘 要 本文介紹了一種可自主導購的智能跟隨購物車,主要包括手機和車架、購物筐、觸摸顯示屏、車輪、直流電機、紅外通信模塊、超聲波傳感器、視覺識別系統(tǒng)和語音播報等。動力車輪和萬向輪組成四輪行進系統(tǒng),可讓車體進行360°轉向;視覺識別系統(tǒng)由兩個攝像頭以及MiniPC構成,可對目標消費者的位置進行捕捉,從而達到較為精準的跟隨效果;紅外通信模塊組成較為精準的區(qū)域定位系統(tǒng),可實時定位消費者的具體位置。購物車可提供跟隨導購與傳統(tǒng)導購兩種購物模式,隨時為消費者提供智能導購、語音提醒等服務,讓消費者有較好的購物體驗。
關鍵詞 圖像識別;紅外通信;智能跟隨;導購;自動避障
隨著社會的快速發(fā)展,人工智能的理念深入人心,人們的生活離不開購物,而在各類大型購物商場中卻還未普及可自動跟隨的智能購物車,因此我們提出了具有跟隨和導購功能的智能購物車。此購物車采用Cortex-M4控制差速底盤,Openmv圖像識別以及算法處理實現(xiàn)目標定位;采用紅外通信實現(xiàn)區(qū)域定位,與語音播報相結合,共同打造出友好的導購系統(tǒng);采用超聲波模塊實現(xiàn)自主避障。多個功能模塊結合使購物車可實現(xiàn)智能跟隨、智能導購和智能提醒。
1系統(tǒng)總體框架
此購物車系統(tǒng)的功能主要分為四部分——目標追蹤、自動避障、區(qū)域定位和人機交互。整個購物車系統(tǒng)的總體框圖如圖 1所示。目標的定位采用Openmv攝像頭對目標物體進行數(shù)據(jù)采集。當Openmv自動檢測到目標物體的特征后,會直接框選目標物體,建立坐標系,通過計算公式得到目標物的相對坐標、相對距離并傳輸給主控板。車體四周安裝多組超聲波傳感器,保證車體前方180度范圍內的障礙物可被識別,但存在0.3cm的盲區(qū)??傮w指標良好,可進行較順暢的自動避障。利用紅外通信可實現(xiàn)區(qū)域定位,在下位機紅外發(fā)射端周圍0.5m范圍內可收到相關區(qū)域代碼,從而實現(xiàn)區(qū)域定位,并結合語音與導購系統(tǒng)實現(xiàn)人機交互,完成導購功能?;贘Q8XX的語音播報,結合紅外區(qū)域定位后可實現(xiàn)在特定場景下的語音提示功能。此語音播報功能的運行速度尚佳、反應較迅速,語音流暢且清晰。采用Qt對導購系統(tǒng)進行編程設計,消費者可直接通過導購系統(tǒng)的界面選擇自己的購物模式,導購系統(tǒng)設有一鍵導購、輔助導購兩種導購模式[1]。
2硬件的配置及其原理
此購物車系統(tǒng)使用的硬件設備模塊主要有——STM32F407核心板、Openmv識別模塊、HC-SR04超聲波模塊、STC12紅外通信核心板、MiniPC顯示屏和電機驅動模塊。車體部分主要是長方體形狀的車筐、推手及裝有2個萬向輪和2個橡膠輪的差速底盤。其中硬件設備功能模塊可主要分為三部分:
(1)第一部分為目標定位系統(tǒng)。硬件采用Openmv模塊進行信息采集以及圖像識別,通過算法處理可得到目標的坐標值以及與車體的距離;采用UART通信實現(xiàn)Openmv模塊與Cortex-M4通信;采用Cortex-M4通信接受目標信息并對PWM參數(shù)進行調整,實現(xiàn)實時調整車體位于目標正后方并保持一定距離,具體實現(xiàn)過程為——第一步,先對購物者進行特征識別和特征信息存儲,首先對感興趣區(qū)中的目標物體進行特征點采集,目標物體特征點識別記憶后自動儲存。第二步,根據(jù)綜合功能模塊降低環(huán)境因素對攝像頭的采集信息的影響。攝像頭將采集的圖像信息經(jīng)過處理后傳給底層的Cortex-M4主控芯片,主控Cortex-M4芯片對購物車跟隨方向進行調整。當運動模式開啟,Openmv將目標物體用方型邊框自動框選,邊框內有十字叉代表目標的中心坐標。
Openmv視覺界面被坐標線性化,坐標系統(tǒng)為160×120,其中一幀圖像的中心點為(80,60)。具體測距原理如圖 2所示,其中,Lm是長度,Bpix是攝像頭中球所占的像素(直徑的像素)。Rm是球真實的半徑,Apix是固定的像素,a是視角的一半。測距公式如下:
(2)第二部分為自動避障系統(tǒng)。傳感器采用IO口TRIG觸發(fā)測距,給TRIG端口一個大于10us的高電平信號;模塊發(fā)送8個40KHz的方波后自動檢測是否有信號返回;有信號返回,通過端口ECHO輸出一個高電平,高電平持續(xù)的時間就是超聲波從發(fā)射到返回的時間。測試距離=(高電平時間*聲速(340m/s))/2。當距離小于20cm時,Cortex-M4核心板控制電機進行避障。
(3)第三部分為區(qū)域定位系統(tǒng)。下位機采用MCU核心板以及紅外發(fā)射頭構成自制紅外發(fā)射電路,通過脈寬調制向上位機發(fā)送帶有信息的紅外光波,以傳輸相應區(qū)域信息。發(fā)射部分:發(fā)射部分由STC12C5602AD模塊,指令編碼系統(tǒng),信號調制系統(tǒng)和發(fā)射電路組成。指令編碼系統(tǒng)將本商城各區(qū)域對應的編號進行編碼,指令編碼信號經(jīng)過38K載波進行調制,然后再由驅動電路來進行功率放大,再由發(fā)射電路把調制后的編碼指令信號發(fā)射出去。
上位機采用自制紅外接收電路以及STM32核心板接收紅外信息實現(xiàn)定位,同時通過串口與QT通信。接收部分由紅外接收電路、信號解調系統(tǒng)、信號解碼系統(tǒng)、顯示電路和操作執(zhí)行電路組合而成。接收電路把接收到的已調信號進行信號放大后送給信號解調系統(tǒng)解調,再由信號解碼系統(tǒng)把已調信號還原為編碼信號。指令譯碼器將會把指令信號編碼進行譯碼,最后再由驅動電路來執(zhí)行各種指令相對應的操作控制[2]。
語音播報采用JQ8XX的語音模塊,當STM32接收到區(qū)域代碼時,觸發(fā)模塊功能,模塊播放存儲于其中的音頻。
人機交互界面采用UP-MAGIC 7 INCH TFT LCD PANEL,同時用HanRun驅動,以顯示相關位置信息。
3軟件流程設計
軟件程序由以下部分組成——Openmv模塊識別目標并傳送位置信息、紅外通信模塊進行區(qū)域定位傳送區(qū)域信息、超聲波模塊進行自動避障,STM32接受信息后控制底盤的行進和語音模塊的播報。程序功能主要分為以下三部分:
(1)Openmv模塊聯(lián)合STM32實現(xiàn)目標識別與追蹤。Openmv的坐標系統(tǒng)為160×120,其中一幀圖像的中心點為(80,60)。系統(tǒng)啟動后,Openmv首先會對感興趣區(qū)域中的目標進行顏色、像素點和特征點的信息采集,得到先驗信息。運動模式開始后,Openmv將根據(jù)先驗信息,實時地對目標進行識別,使用方框框出目標,并將方框中心點的x坐標值通過串口通信傳給STM32控制板;同時還將根據(jù)識別圖中目標所占像素點與先驗信息比對,根據(jù)相應距離計算方法,得出大致距離并發(fā)送至STM32控制板,完成目標識別[3]。
控制板將得到的x坐標值與圖像中心點的x坐標值80進行比較,可得知該目標在車體前方的左右位置,再根據(jù)該坐標值與中心坐標值的偏差大小利用PID算法,控制購物車的轉向,實現(xiàn)購物車實時處于目標的正后方;同時,控制板將根據(jù)大致距離利用PID算法控制車體前進,做到距離遠時速度大,距離近時速度小的行進,實現(xiàn)實時跟隨。
若Openmv未識別到目標信息,則將傳送-1至STM32控制板,控制板收到-1后將控制車體緩慢轉動以輔助攝像頭的目標識別,若長時間未能識別,則購物車將處于報錯狀態(tài):原地打轉。
(2)STC12控制板和紅外發(fā)射頭組成的發(fā)射模塊以及STM32核心板和紅外接收頭組成的接收部分共同實現(xiàn)區(qū)域定位。發(fā)射部分程序主要由38kHz載波產(chǎn)生函數(shù)、引導碼函數(shù)、數(shù)據(jù)1和數(shù)據(jù)0編碼函數(shù)、結束碼函數(shù)和信息整合發(fā)送函數(shù)組成。在信息整合函數(shù)中依次發(fā)送引導碼、數(shù)據(jù)碼和結束碼。接收部分程序主要是嵌套循環(huán)和判斷,判斷收到高低電平時間以確定脈沖間隔時間從而解碼。
(3)HC-SR04超聲波模塊聯(lián)合STM32實現(xiàn)自動避障。此部分程序主要由中斷觸發(fā)程序、高電平計數(shù)器和調整電機PWM三部分組成。程序一開始即為觸發(fā)函數(shù),其功能是將Trig電平拉高,使得超聲波模塊工作并觸發(fā)定時器中斷,開啟計數(shù)器功能,得到物體距離=計數(shù)器當前值/(時鐘周期/預分頻值)*340/2。STM32根據(jù)讀取的距離值調整左右輪的轉速,從而實現(xiàn)避障[4]。
4系統(tǒng)調試
(1)將攝像頭采集到的圖片信息通過處理后傳給Cortex-M4控制板,根據(jù)識別結果調整參數(shù),通過串口通信將結果顯示于電腦的串口調試助手中,結果將顯示攝像頭與Cortex-M4控制板通信正常、數(shù)據(jù)處理正常,PID參數(shù)調整成功。
(2)調試紅外發(fā)射模塊。通過定時器產(chǎn)生38kHz的脈沖并帶有載波信號,為保證通信成功,可通過示波器觀察波形數(shù)據(jù)。根據(jù)示波器顯示的結果可知輸出波形正確無誤,接通紅外接收模塊,進行通信測試,接收模塊可接收信號并解碼。
(3)其他模塊測試如超聲波模塊、編碼器PWM參數(shù)調整算法測試均采用步驟一中的串口打印方式輔助測試,經(jīng)調試后測試結果正常。
(4)確定PID跟隨目標參數(shù)。車體搭好后根據(jù)實際跟隨結果,多次調整Kp、Kd參數(shù)值,使跟隨達到最佳效果,最后中心定位PID算法中Kp=0.15,Kd=0.35;車距調整PID算法中Kp=0.1,Kd=0.2[5]。
5結束語
本智能商城購物車采用圖像識別即顏色識別以及特征點監(jiān)測,結合感興趣區(qū)域減小誤差,并通過攝像頭測距算法,實現(xiàn)目標的坐標與距離的定位;通過主控板對購物車的控制,能夠讓車體靈活移動;基于QT開發(fā)人機交互界面,能夠通過觸屏控制車體;通過超聲波測距,讓購物車實現(xiàn)自動避障;通過紅外通信,上位機可根據(jù)下位機所發(fā)送信息判斷當前位置,并用語音播出。
各項功能相結合,此購物車系統(tǒng)可實現(xiàn)作品初始時的功能設想——既實現(xiàn)實時跟隨,也可以自主避障,而且能隨時定位區(qū)域位置,同時具有導購、人機交互以及語音播報等功能。綜上,本購物車可為用戶提供一個良好的導購體驗。
參考文獻
[1] 郭天祥.新概念51單片機C語言教程[M].北京:電子工業(yè)出版社,2009:221.
[2] 胡漢才.單片機原理及其接口技術(第2版)[M].北京:清華大學出版社,2004:81.
[3] 肖景和,趙健.紅外線熱釋電與超聲波控制電路[M].北京:人民郵電出版社,2003:215.
[4] 凌志斌,鄧超平,葉芃生.紅外遙控技術及其解碼方案[J].微處理機,2003(6):59-62.
[5] 王維波,粟寶鵑,猴春望.QT5.9C++開發(fā)指南[M].北京:人民郵電出版社,2018:65.
作者簡介
游依婷(1999-),女,四川成都人;學生,現(xiàn)就讀學校:西南石油大學電氣信息學院電子信息工程專業(yè),研究方向:嵌入式控制和信號處理。
周章玉(1999-),女,四川內江人;學生,現(xiàn)就讀學校:西南石油大學電氣信息學院電子信息工程專業(yè),研究方向:嵌入式控制和信號處理。