劉鵬,王雅欣,李晟堯,羅元澤,于夢龍
(天津職業(yè)技術(shù)師范大學(xué) 電子工程學(xué)院,天津, 300222)
隨著電子工業(yè)的發(fā)展,智能技術(shù)廣泛應(yīng)用于各種領(lǐng)域,智能小車也因此快速發(fā)展起來,目前,國外已經(jīng)開始研發(fā)無人駕駛汽車,并取得了明顯的進(jìn)展;相比于國外,我國對(duì)于智能車的研究開發(fā)起步較晚,但是隨著這些年的不斷努力,我們也取得了顯著的成果?;赟TM32的無線智能小車更是我們以后研究智能車過程中的基礎(chǔ),我們要結(jié)合我國國情,在這一方面,對(duì)智能小車進(jìn)行深入研究,為它今后的發(fā)展和應(yīng)用打下堅(jiān)實(shí)的基礎(chǔ)。本設(shè)計(jì)研究的無線視頻監(jiān)控防疫智能小車是一種最新的設(shè)計(jì)理念,其主要功能是視頻監(jiān)控,口罩識(shí)別,貨物的運(yùn)輸?shù)?。它相?duì)于其他智能小車具有無線操控的優(yōu)點(diǎn),可以靠WiFi來進(jìn)行操控,便于工作開展,同時(shí),它具有的視頻監(jiān)控功能也可以做一個(gè)實(shí)時(shí)監(jiān)控使用,能夠極大方便防疫工作者,它還可以在突發(fā)情況下執(zhí)行危險(xiǎn)任務(wù),可以極大地減少人力成本,并且降低了受傷的風(fēng)險(xiǎn)??偟膩碚f,無線視頻監(jiān)控防疫智能小車人們的現(xiàn)代化生活起著不可缺失的作用[1~6]。
本文研究設(shè)計(jì)的智能小車以STM32C8T6單片機(jī)為主控芯片,其具備強(qiáng)大的數(shù)據(jù)運(yùn)算和控制能力。小車系統(tǒng)主要由以下幾大模塊組成:STM32最小系統(tǒng)、K210視覺模塊、無線通訊模塊、電機(jī)驅(qū)動(dòng)模塊和循跡模塊,可以實(shí)現(xiàn)視頻監(jiān)控,口罩識(shí)別等功能。通過攝像頭采集小車前方信息,把采集到的信息反饋給用戶。同時(shí),用戶也可以發(fā)送指令信息給小車,控制小車的移動(dòng)。
本文設(shè)計(jì)的基于STM32的智能小車能夠?qū)崿F(xiàn)的功能如下:
(1)自動(dòng)循跡:通過三路紅外采集場景的最大值和最小值,紅外傳感器的值與最大值和最小值做差比和算法作為偏差PID的輸入值,開始循跡,通過手柄與NRFL2G4模塊輸入與輸出的轉(zhuǎn)換來自動(dòng)循跡。
(2)口罩識(shí)別:通過K210視覺模塊實(shí)現(xiàn)口罩的佩戴檢測,K210能夠捕捉每一幀畫面,通過對(duì)人臉的檢測與分析,從而判斷客人是否戴口罩,并進(jìn)行進(jìn)一步處理。
(3)移動(dòng)控制:控制手柄控制小車的前進(jìn)、后退、左轉(zhuǎn)彎和右轉(zhuǎn)彎等功能。
(4)視頻監(jiān)控:采用K210作為視頻信息的采集模塊,通過小車前面的攝像頭采集視頻信息,傳送到上位機(jī)端,從而使用戶可以清晰地獲取視頻信息。
該小車系統(tǒng)總體設(shè)計(jì)分為兩大類,硬件設(shè)計(jì)和軟件設(shè)計(jì)。
其設(shè)計(jì)的總體框架圖如圖1所示。
圖1 無線視頻監(jiān)控防疫智能小車總體設(shè)計(jì)
用戶到達(dá)指定位置按下開關(guān)按鍵無人小車將會(huì)從起點(diǎn)出發(fā)到達(dá)指定位置,到達(dá)指定位置將會(huì)在小車的OLED屏幕進(jìn)行提示,此時(shí)用戶可以通過OLED提示將所需運(yùn)輸?shù)奈锲贩胖糜谛≤囍校瓿珊髶軇?dòng)手柄的操作按鍵,小車便可以自動(dòng)返回起始位置。
開始時(shí)手柄的NRFL2G4模塊為輸出模式,小車的NRFL2G4模塊為輸入模式,小車收到手柄發(fā)來的開始信號(hào)時(shí)小車的NRFL2G4模塊轉(zhuǎn)為輸出模式,手柄轉(zhuǎn)為輸入模式,小車開始掃描環(huán)境,通過三路紅外采集場景的最大值和最小值,紅外傳感器的值與最大值和最小值做差比和算法作為偏差PID的輸入值,開始循跡,小車速度閉環(huán)以編碼器的采集的值與目標(biāo)速度做差作為速度閉環(huán)PID的輸入,偏差PID的輸出值與速度閉環(huán)PID的輸出值相加作為電機(jī)的PWM值發(fā)給進(jìn)電機(jī),當(dāng)小車達(dá)到目標(biāo)位置時(shí)電機(jī)速度值為零停轉(zhuǎn),并向手柄發(fā)送信號(hào),手柄與小車NRFL2G4模塊輸入輸出轉(zhuǎn)換,等用戶物品放置完成后,小車轉(zhuǎn)動(dòng)再次開始循跡返回原點(diǎn)。
本文采用了K210模組來進(jìn)行口罩識(shí)別。K210擁有強(qiáng)大的功能,智能小車可以在公共場所,比如藥店、菜市場門口、醫(yī)院入口等人員密集的地方使用,提醒人們佩戴口罩。
首先打開攝像頭,攝像頭捕捉每一幀畫面,從而檢測出人臉,在單個(gè)人臉區(qū)域的基礎(chǔ)上通過分析人臉屬性,進(jìn)行區(qū)域剪裁,識(shí)別對(duì)比,從而判斷人臉是否佩戴口罩。如果未戴口罩,則反饋信息給STM32。經(jīng)STM32處理后,通過語音來提示客人佩戴口罩。
手柄的設(shè)計(jì)如圖2所示,通過手柄來實(shí)現(xiàn)小車的移動(dòng)控制,攝像頭實(shí)時(shí)獲取路況,通過無線通訊模塊把信息發(fā)送到手柄,手柄接收到信息后,用戶通過操控手柄的方向鍵來實(shí)現(xiàn)小車的基本移動(dòng)功能。
圖2 遙控手柄的設(shè)計(jì)
攝像頭的基本工作原理為:攝像頭把采集到的物體景象生成光學(xué)圖像投射到圖像傳感器表面上,從而轉(zhuǎn)化為電信號(hào),將此模擬電信號(hào)經(jīng)過數(shù)模轉(zhuǎn)換為數(shù)字圖像信號(hào),再對(duì)此信號(hào)進(jìn)行數(shù)字信號(hào)處理和加工,即可在顯示器上看到相應(yīng)的圖像了[7]。文獻(xiàn)[8-10]采用單片機(jī)分析人臉特征點(diǎn),檢測其與頭部姿態(tài)的關(guān)系,實(shí)現(xiàn)了攝像頭的自動(dòng)追蹤,但程序較為復(fù)雜。本文小車采用K210作為視頻信息的采集模塊,簡化了設(shè)計(jì)過程。當(dāng)主控制器發(fā)出采集視頻指令,攝像頭便開始實(shí)時(shí)采集視頻信息,并且通過無線通訊模塊把采集到的信息傳輸?shù)缴衔粰C(jī)端。從而使用戶可以清晰地獲取視頻信息。
電源模塊的作用主要是為控制系統(tǒng)提供穩(wěn)定的工作電壓。LM2596是降壓型電源管理單片集成電路的開關(guān)電壓調(diào)節(jié)器,能夠輸出3A的驅(qū)動(dòng)電流,而且它還具有很好的線性和負(fù)載調(diào)節(jié)特性??梢暂敵龆喾N電壓,比如3.3V、5V、12V,可調(diào)節(jié)版本可以輸出小于37V的各種電壓值。
本次設(shè)計(jì)采用LM2596作為穩(wěn)壓電路,該芯片可以通過電路設(shè)計(jì)實(shí)現(xiàn)多電壓輸出,與線性穩(wěn)壓電路相比,雖然電壓轉(zhuǎn)換效率相對(duì)低一些,但是產(chǎn)熱卻要低得多,防止主板被燒壞。LM2596電路原理圖如圖3所示。
圖3 LM2596電路圖
本設(shè)計(jì)采用的電機(jī)驅(qū)動(dòng)模塊是TB6612,它是一款新型驅(qū)動(dòng)器件,能獨(dú)立雙向控制2個(gè)直流電機(jī)。它占用體積小,發(fā)熱也少,輸出PWM也很簡單。TB6612電路原理圖如圖4所示。
圖4 TB6612電路原理圖
引腳功能描述,VM:最大可接+15V電源,本文采用+12V。VCC采用5V供電。板子上的三個(gè)GND、電源以及STM32的GND都要接在一起(共地)。STBY:使能端口,加3.3V或者5V電壓(高電平)。AIN1、AIN2、BIN1、BIN2:單片機(jī)對(duì)驅(qū)動(dòng)模塊的輸入。AO1、AO2、BO1、BO2:驅(qū)動(dòng)模塊對(duì)電機(jī)的輸入。PWMA、PWMB:對(duì)A和B口輸出PWM,通過PWM來調(diào)節(jié)電機(jī)的轉(zhuǎn)速。假如要驅(qū)動(dòng)一個(gè)直流電機(jī),那么PWMA口接單片機(jī)的PWM口,A01,A02 接電機(jī)的兩個(gè)腳。STBY置1,通過AIN1 AIN2,BIN1,BIN2 來控制正反轉(zhuǎn)。驅(qū)動(dòng)一個(gè)直流電機(jī)的真值表如表1所示。
表1 真值表
小車采用了以K210為控制器的攝像頭模組,如圖5所示,該處理器使用Python語言來開發(fā)。Python的強(qiáng)大之處是封裝了大量的庫,用戶通過調(diào)用庫函數(shù)就可以高效地完成大量復(fù)雜的開發(fā)工作,零基礎(chǔ)的用戶也可以快速上手。K210集成了24P攝像頭接口,可以直接連接標(biāo)準(zhǔn)OV2640等24P攝像頭模塊,排線接線方式均為下接(排線金手指朝下)。由于攝像頭的排針均沒有電氣連接,所以可以根據(jù)自己需要任意擺放位置。大大增強(qiáng)了我們使用的靈活性。
圖5 攝像頭模組
隨著時(shí)代的進(jìn)步,無線通訊技術(shù)也在快速地發(fā)展。WiFi作為一種無線局域網(wǎng)運(yùn)用技術(shù),組網(wǎng)方便、傳輸速度快以及易于擴(kuò)展,應(yīng)用十分廣泛[11]。與傳統(tǒng)通信方式相比,該通信方式覆蓋面積更大,傳輸速度高,適用于遠(yuǎn)程操控和一些危險(xiǎn)環(huán)境中使用。
本設(shè)計(jì)無線模塊選擇的是NRF24L01,它是一款工作2.4~2.5GHz世界通用ISM頻段的單片收發(fā)芯片,無線收發(fā)器包括:頻率發(fā)生器、模式控制器、功率放大器、晶體放大器、調(diào)制器、解調(diào)器。輸出功率頻道選擇和協(xié)議的設(shè)置可以通過SPI接口進(jìn)行設(shè)置極低的電流消耗,通過單片機(jī)軟件模擬SPI與其通信調(diào)整輸入輸出模式,以及數(shù)據(jù)位。小車初始為接收模式,手柄調(diào)為發(fā)送模式。
K210作為識(shí)別模塊,主要實(shí)現(xiàn)口罩識(shí)別的功能,并將識(shí)別到的信息通過串口傳遞給STM32。首先通過MaixHub訓(xùn)練一個(gè)口罩模型。準(zhǔn)備至少100張戴口罩的圖片和至少100張不戴口罩的圖片。然后對(duì)這些圖片進(jìn)行大小處理,建議設(shè)置為224*224,如果太大了訓(xùn)練起來時(shí)間比較久。再對(duì)這些圖片進(jìn)行標(biāo)注,最后讓機(jī)器去學(xué)習(xí),圖片越多識(shí)別率越高,當(dāng)然訓(xùn)練時(shí)間也越長。然后使用KFlash軟件,將模型下載到K210的flash中??谡謾z測流程圖如圖6所示。
圖6 口罩檢測流程圖
首先攝像頭讀取圖片,如果檢測到鼻子,則說明沒有佩戴口罩。如果沒有檢測到鼻子,則接著檢測眼睛,如果沒有檢測到眼睛,則結(jié)束。如果檢測到眼睛,則把RGB顏色空間轉(zhuǎn)為HSV顏色空間,進(jìn)行口罩區(qū)域的檢測。最后,在知道口罩區(qū)域后,然后對(duì)像素點(diǎn)進(jìn)行判斷就可以得出是否佩戴口罩。
紅外采用三路模擬輸出模塊,通過三路紅外采集場景的最大值和最小值,紅外傳感器的值與最大值和最小值做差比和算法作為偏差PID的輸入值,小車速度閉環(huán)以編碼器采集的值與目標(biāo)速度做差作為速度閉環(huán)PID的輸入,偏差PID的輸出值與速度閉環(huán)PID的輸出值相加作為電機(jī)的PWM值給步進(jìn)電機(jī)。移動(dòng)控制系統(tǒng)流程圖如圖7所示。
圖7 移動(dòng)控制系統(tǒng)流程圖
首先把編寫好的程序燒錄到開發(fā)板中,通過對(duì)Kp進(jìn)行調(diào)整通過串口向主機(jī)發(fā)送數(shù)據(jù)通過VOFA的軟件觀察速度變化圖像,在Kp確定后引入Ki在消除穩(wěn)態(tài)誤差后引入Kd,使抖動(dòng)減小至系統(tǒng)穩(wěn)定來調(diào)試參數(shù),調(diào)參過程和結(jié)果分別如圖8,表2,圖9所示。
圖8 PID控制原理
圖9 不同Kp、Ki、Kd的輸出圖像
表2 不同Kp、Ki、Kd所對(duì)應(yīng)的狀態(tài)
通過PID控制系統(tǒng)來對(duì)電機(jī)進(jìn)行控制,數(shù)據(jù)結(jié)果如表3所示,然后對(duì)小車各個(gè)功能進(jìn)行終測。小車可以正常掃描場地,可以從起始位置完整地運(yùn)行到目標(biāo)位置,通信方面在100m外仍然可以正常接收與發(fā)送信息,發(fā)送與接收模式的轉(zhuǎn)化也沒有問題。其中ad3為P0.2的檢測值,ad1為P0.0的檢測值,adelast為上一次的ade。
表3
圖10為作者本人口罩佩戴識(shí)別測試圖。首先K210會(huì)對(duì)檢測獲取到的目標(biāo)框位置以及對(duì)人臉是否佩戴口罩進(jìn)行打分。從圖10(a)中可以看到當(dāng)K210檢測到人臉佩戴了口罩時(shí),在顯示屏中會(huì)顯示綠框,并給出預(yù)測評(píng)分。從圖10(b)圖中可以看出當(dāng)K210檢測到人臉未佩戴口罩時(shí),則會(huì)在顯示屏中顯示紅框,并且會(huì)并給出預(yù)測評(píng)分。當(dāng)分?jǐn)?shù)超過65就判定為佩戴了口罩,在顯示屏當(dāng)中顯示綠框標(biāo)記;如果分?jǐn)?shù)小于設(shè)定的閾值(本文設(shè)置為52),則判定為沒有佩戴口罩,在顯示屏當(dāng)中顯示紅框標(biāo)記,顯示對(duì)應(yīng)的預(yù)測評(píng)分,然后返回繼續(xù)執(zhí)行上述口罩識(shí)別的過程。
圖10 人臉口罩佩戴識(shí)別測試圖
經(jīng)測試,隨著檢測距離的增加,口罩識(shí)別的準(zhǔn)確性會(huì)慢慢下降。測試距離大于2m后,測試結(jié)果顯示沒有戴口罩,K210測試結(jié)果不準(zhǔn)確。由此得出當(dāng)距離在1.5m內(nèi)測試結(jié)果比較準(zhǔn)確。測試距離在0.5m時(shí)測試準(zhǔn)確性最高。0.85~1.5m之間最為穩(wěn)定。測試結(jié)果如表4所示。
表4 測試評(píng)分隨距離的變化
小車自動(dòng)循跡測試圖如圖11所示,小車可以實(shí)現(xiàn)自動(dòng)循跡功能。
圖11 小車循跡測試圖
本文設(shè)計(jì)的小車基本達(dá)到了預(yù)期的設(shè)計(jì)要求,可以在復(fù)雜環(huán)境中平穩(wěn)運(yùn)行,具有穩(wěn)定的功能,實(shí)用的操作能力,有著高負(fù)載低功耗的優(yōu)點(diǎn),可以精準(zhǔn)的識(shí)別是否佩戴口罩。它還可以減少社區(qū)人員交叉感染的風(fēng)險(xiǎn),對(duì)疫情的防控和管理有著積極的作用。隨著自動(dòng)化和智能化的普及,工業(yè)生產(chǎn)對(duì)于智能小車的要求也越來越高。本文的小車只是智能化小車的一個(gè)分支,設(shè)計(jì)的小車硬件比較簡單,功能不夠完善,但為以后更加智能化的設(shè)計(jì)打下了一個(gè)基礎(chǔ)。小車未來可以增加對(duì)人體體溫的檢測和二維碼的識(shí)別功能,并且結(jié)合人工智能大數(shù)據(jù)分析技術(shù),對(duì)采集到的數(shù)據(jù)進(jìn)行深入的研究和分析,在疫情防控中實(shí)現(xiàn)對(duì)日常人群的健康監(jiān)控檢測[12]。