王健,李志剛,賈鈞堯
( 遼寧科技大學(xué) 電子與信息工程學(xué)院,遼寧 鞍山 114000)
隨著人工智能的發(fā)展,研究者們提出了眾多智能跟隨的設(shè)計(jì)方案,這些方案雖然都達(dá)到了其設(shè)計(jì)目的但是還需要進(jìn)行改進(jìn)。就比如說(shuō)現(xiàn)如今的隨行行李箱利用紅外線探測(cè)技術(shù)進(jìn)行自跟隨,但是其紅外線的穿透能力有限;現(xiàn)有的自跟隨行李箱通過(guò)物聯(lián)網(wǎng)、PID控制算法使其進(jìn)行跟隨,因其系統(tǒng)所占用的帶寬非常高,最終可能會(huì)使其無(wú)線通信系統(tǒng)遭受的不小的干擾,同時(shí)這個(gè)制作價(jià)格比較昂貴不太適合大眾使用;還有就是通過(guò)其圖像識(shí)別算法進(jìn)行隨行跟蹤,現(xiàn)有的識(shí)別隨行功能還算強(qiáng)大,但其還具有設(shè)計(jì)結(jié)構(gòu)過(guò)于復(fù)雜、制作成本昂貴等問(wèn)題。針對(duì)以上問(wèn)題,本文提出了一種結(jié)合式的跟隨方式。此設(shè)計(jì)基于現(xiàn)有單片機(jī)控制結(jié)合激光測(cè)距技術(shù)、紅外線技術(shù)等實(shí)現(xiàn)小車的隨行和避障等功能,具有跟隨性強(qiáng)、性價(jià)比高,利于購(gòu)物等優(yōu)點(diǎn)。
自跟隨購(gòu)物小車整體設(shè)計(jì)是以stm32103zet6單片機(jī)為其主要的主控芯片,并且還有外圍電路的設(shè)計(jì),購(gòu)物小車通過(guò)stm32103zet6單片機(jī)的內(nèi)部自帶資源,如 IIC協(xié)議、PWM輸出、AD采集、定時(shí)器中斷、外部中斷、 串口通信等諸多功能[2]。通過(guò)其自身的激光測(cè)距模塊進(jìn)行距離的數(shù)據(jù)的采集,然后通過(guò)連線與其主控的IO口連接,主控通過(guò)程序再運(yùn)用算法對(duì)采集到的數(shù)據(jù)進(jìn)行融合處理,得到最終的距離數(shù)據(jù)將其進(jìn)行顯示。也可以為了更好的觀察結(jié)果,用串口將數(shù)據(jù)發(fā)送到電腦上位機(jī)顯示來(lái)進(jìn)行調(diào)試,用以加快工程的進(jìn)展。通過(guò)顏色識(shí)別攝像頭OpenMV4可識(shí)別指定顏色和編號(hào)進(jìn)行跟隨,用戶進(jìn)入超市購(gòu)物只需拿取夠物牌掛在自己身上,自跟隨購(gòu)物小車上的攝像頭對(duì)其識(shí)別進(jìn)行跟隨這樣不會(huì)發(fā)生和其他用戶混淆,通過(guò)激光測(cè)距模塊所測(cè)得的數(shù)據(jù)主控進(jìn)行處理以防止在跟隨過(guò)程中撞到用戶。stm32103zet6單片機(jī)通過(guò)IO口PWM輸出方式對(duì)其電機(jī)驅(qū)動(dòng)模塊TB6612的控制進(jìn)而使其對(duì)2個(gè)直流電機(jī)的轉(zhuǎn)速以及轉(zhuǎn)向進(jìn)行控制,從而最終實(shí)現(xiàn)購(gòu)物小車的自動(dòng)跟蹤功能。
購(gòu)物小車的硬件電路可分為其供電電路、單片機(jī)最小系統(tǒng)、激光測(cè)距電路、TB6612電機(jī)驅(qū)動(dòng)電路。下面分別介紹下單片機(jī)最小系統(tǒng),供電電路和電機(jī)驅(qū)動(dòng)電路。
stm32103zet6的最小系統(tǒng)電路主要包括其主控芯片stm32103zet6以及外設(shè)電路。其外設(shè)電路有其復(fù)位電路、JTAG下載調(diào)試電路如圖2、BOOT0/1設(shè)置電路、晶振電路,以及濾波部分如圖1。因?yàn)閱纹瑱C(jī)對(duì)其程序處理速度非??欤M(jìn)而為了保證電路的穩(wěn)定性需要在布線的時(shí)候進(jìn)可能合理高效,避免運(yùn)行過(guò)程中發(fā)生問(wèn)題。
圖1 濾波電路
圖2 JTAG 下載調(diào)試電路
購(gòu)物小車整個(gè)供電是通過(guò) 12V 的鋰電池進(jìn)行供電,其單片機(jī)主控需要的是 3.3V電源,而傳感器模塊工作電壓為5V 電源。所以我們需要對(duì)電源電壓進(jìn)行降壓。采用LM2937-3.3V芯片對(duì)其進(jìn)行降壓將12v電壓降至3.3.V供給主控,采用LM2937-5V芯片對(duì)其進(jìn)行降壓將12v電壓降至5V給激光測(cè)距模塊以及攝像頭供電。
圖3 降壓電路
本項(xiàng)目的自跟隨購(gòu)物小車在其系統(tǒng)設(shè)計(jì)上具有自跟隨系統(tǒng)和避障系統(tǒng)相輔相成共同工作實(shí)現(xiàn)其購(gòu)物小車的自跟隨功能。其跟隨系統(tǒng)主要用于對(duì)其用戶進(jìn)行鎖定跟著用戶一起運(yùn)動(dòng),通過(guò)自身的攝像頭對(duì)其用戶進(jìn)行鎖定。其避障系統(tǒng)用來(lái)防止在跟隨過(guò)程中遇見(jiàn)障礙所要進(jìn)行的控制操作,通過(guò)激光測(cè)距模塊對(duì)其周圍環(huán)境進(jìn)行檢測(cè)對(duì)其相應(yīng)數(shù)據(jù)進(jìn)行處理最后控制電機(jī)進(jìn)而實(shí)現(xiàn)避障功能。
跟隨系統(tǒng)是根據(jù)OpenMV4攝像頭進(jìn)行目標(biāo)選定,采用其顏色識(shí)別和數(shù)字解析,識(shí)別出用戶所拿購(gòu)物牌特征進(jìn)行跟隨。通過(guò)購(gòu)物小車前端兩個(gè)激光測(cè)距模塊對(duì)其用戶進(jìn)行監(jiān)測(cè),測(cè)量出準(zhǔn)確距離主控采用算法控制其電機(jī)的轉(zhuǎn)速和轉(zhuǎn)向。其跟隨距離在0.7m以內(nèi),如果兩個(gè)激光測(cè)距模塊所測(cè)距離差過(guò)大就進(jìn)行校準(zhǔn),如果右側(cè)距離過(guò)大左側(cè)距離過(guò)小則小車左側(cè)輪加速運(yùn)行使其車輛向右偏經(jīng)行調(diào)整,如果其差距不大就進(jìn)行直行。
STM32系列的單片機(jī)適用于C 語(yǔ)言進(jìn)行編程燒錄。所以本次購(gòu)物小車的程序設(shè)計(jì)采用C語(yǔ)言編程 ,編譯環(huán)境為keil 5編程軟件。對(duì)其主控控制的程序流程如圖 4所示。購(gòu)物小車的工作流程為:剛開(kāi)始是其系統(tǒng)要進(jìn)行初始化,初始化程序里設(shè)定左右激光測(cè)距模塊所測(cè)得的距離初始值,然后再通過(guò) OLED顯示屏顯示激光測(cè)距模塊測(cè)得的距離,通過(guò)兩側(cè)的激光測(cè)距模塊對(duì)其障礙的實(shí)時(shí)距離進(jìn)行檢測(cè)然后通過(guò)程序進(jìn)行判斷是否需要避障。如果是則避開(kāi)障礙物;不是則保持運(yùn)動(dòng)狀態(tài)。購(gòu)物小車前端激光測(cè)距模塊測(cè)距對(duì)其用戶和自己的距離進(jìn)行測(cè)量,然后比較左右兩側(cè)距離長(zhǎng)短,利用OpenMV4顏色和數(shù)字識(shí)別攝像頭來(lái)對(duì)用戶定位,進(jìn)行跟隨;主控通過(guò)程序?qū)ζ洳杉木嚯x值與其設(shè)定值進(jìn)行對(duì)比,如果小于設(shè)定值則購(gòu)物小車停止運(yùn)動(dòng)進(jìn)行緩慢后退,如果距離和其設(shè)定值差值較小則停止,如何差值過(guò)大且測(cè)量距離大則需要前進(jìn)。最后,程序再進(jìn)行一遍以上流程不停循環(huán),進(jìn)而實(shí)現(xiàn)其自跟隨功能,如此反復(fù)運(yùn)行系統(tǒng)直至用戶購(gòu)物完畢將其購(gòu)物牌放回原處。
圖4 主控控制程序流程框圖
本項(xiàng)設(shè)計(jì)是基于單片機(jī)對(duì)智能小車功能的開(kāi)發(fā),使用激光測(cè)距模塊、攝像頭等設(shè)備與單片機(jī)進(jìn)行交互形成一個(gè)實(shí)時(shí)定位跟隨的系統(tǒng),而且附帶有避障等功能。最后經(jīng)過(guò)我們的測(cè)試購(gòu)物小車可以跟著用戶進(jìn)行移動(dòng),其反應(yīng)迅速跟隨準(zhǔn)確,避障精準(zhǔn)。該自跟隨購(gòu)物小車不僅適應(yīng)于室內(nèi)超市的隨行,其抗干擾性強(qiáng),也可適用于室外隨行避障??赏ㄟ^(guò)改造其外型、使用大功率電機(jī)大轉(zhuǎn)矩以及提高電能的供電裝置等改進(jìn),可構(gòu)成一種性價(jià)比較高的智能跟隨裝置可用于工廠跟隨運(yùn)輸。