游依婷 周章玉


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