劉騰飛 呂償 潘光煥 王廷軒
摘 要:自新冠疫情暴發(fā)以來,疫情對生命、財產(chǎn)和社會帶來了極大的挑戰(zhàn)。病毒極強(qiáng)的感染能力使公共場所的防疫消殺工作面臨著極大的挑戰(zhàn)。同時,對公共場所進(jìn)行消殺工作的醫(yī)務(wù)人員而言,其面臨著極大的壓力。為了實現(xiàn)全自動智能防疫消殺,且要滿足適應(yīng)性強(qiáng)、反應(yīng)迅速、結(jié)構(gòu)緊密等技術(shù)要求,本研究基于OpenMV與STM32設(shè)計出一款智能視覺防疫消殺機(jī)器人,該機(jī)器人采用STM32F427的OpenMV模塊作為視覺識別與處理模塊,實現(xiàn)對信息的識別、讀取與傳輸。STM32F407芯片作為防疫消殺機(jī)器人的控制核心,與OpenMV傳輸信息進(jìn)行結(jié)合,實現(xiàn)對四個大功率電機(jī)的精準(zhǔn)預(yù)定控制,通過繼電器的供電來實現(xiàn)對機(jī)械臂與液壓泵的控制,且機(jī)械臂旋轉(zhuǎn)噴灑操作可以通過藍(lán)牙模塊實現(xiàn)遠(yuǎn)程控制。經(jīng)過試驗測試,該研究設(shè)計的防疫消殺機(jī)器人具有穩(wěn)定可靠、調(diào)節(jié)方便、低功耗等特點,根據(jù)預(yù)定圖像進(jìn)行視覺循跡與遙控控制,并且能夠?qū)崿F(xiàn)機(jī)械臂旋轉(zhuǎn)大規(guī)模噴灑??蓪崿F(xiàn)對相距0.7 m的10 cm×10 cm的圖形進(jìn)行識別判斷,并可進(jìn)行準(zhǔn)確循跡,完全滿足在視覺循跡的條件下進(jìn)行防疫消殺工作。
關(guān)鍵詞:STM32;OpenMV;防疫消殺
中圖分類號:TP391.41;TP23 ? 文獻(xiàn)標(biāo)志碼:A 文章編號:1003-5168(2022)6-0024-04
DOI:10.19968/j.cnki.hnkj.1003-5168.2022.06.005
Based on OpenMV and STM32 Epidemic Prevention and Elimination Car Design
LIU Tengfei ? ?LYU Chang ? ?PAN Guanghuan ? ?WANG Tingxuan
(School of Mechanical and Electrical Engineering,Guangdong Baiyun University,Guangzhou 510450,China)
Abstract:Since the outbreak of COVID-19,lives,property and society have been greatly challenged.The strong infection capacity of the virus makes the epidemic prevention and elimination of public places a great challenge.At the same time,for medical personnel who kill in public places,they are facing great pressure.In order to realize automatic intelligent epidemic prevention and elimination,and make it meet the technical requirements of strong adaptation,rapid response,compact structure.In this study,an intelligent visual epidemic prevention and elimination robot based on OpenMV and STM32 is designed.The robot uses OpenMV of STM32F427 as a visual recognition and processing module to recognize,read and transmit information.As the control core of the epidemic prevention and elimination car,STM32F407 chip combined with OpenMV transmission information to achieve precise predetermined control of four high-power motors.Moreover,mechanical arm rotation spraying control can be realized through relay power supply,and Bluetooth control can be realized through Bluetooth module.Experimental tests show that the vehicle is stable,reliable,easy to adjust,low power consumption and other characteristics,and can achieve visual tracking and remote control according to the predetermined image and achieve large-scale spraying with mechanical arm rotation.It can recognize and judge the graphics of 10 cm×10 cm at a distance of 0.7 m and accurately track them,which can fully meet the requirements of epidemic prevention and elimination under the condition of visual tracking.
Keywords:STM32;OpenMV;epidemic prevention and elimination
0 引言
新冠疫情是全球突發(fā)性公共衛(wèi)生事件,具有威脅范圍廣、感染性強(qiáng)的特點。為了能夠更好地進(jìn)行防疫消殺,世界各國都在積極進(jìn)行防疫消殺機(jī)器人的研究。在國外,印度學(xué)者設(shè)計出自動切換紫外線消毒的機(jī)器人,用于檢測人體與物體,在檢測到人體時就自動停止,檢測到物體時自動進(jìn)行防疫消殺。馬來西亞學(xué)者設(shè)計出噴霧消毒機(jī)器人,以Arduino作為其控制核心,并且結(jié)合相機(jī)、超聲波傳感器、電機(jī)、藍(lán)牙等裝置進(jìn)行防疫消殺。在國內(nèi),北京達(dá)闥科技有限公司研發(fā)一款消毒機(jī)器人,可以實現(xiàn)對室內(nèi)環(huán)境的建圖,并且在運行時可以自主避障[1]。北京中部戰(zhàn)區(qū)疾病預(yù)防控制中心成功研制出霧炮型履帶式防疫機(jī)器人,可以實現(xiàn)噴射超低容量的霧狀藥劑,對白蟻群進(jìn)行消殺。綜上所述,可以發(fā)現(xiàn)世界各國雖然對防疫機(jī)器人有著多樣化的設(shè)計,但無論是國內(nèi)還是國外的研究,由于消殺環(huán)境的復(fù)雜性,導(dǎo)致防疫消殺機(jī)器人都存在著一定的功能缺陷,很難滿足防疫消殺的需求。
本研究針對公共環(huán)境消殺的需求,在對現(xiàn)有消殺方法研究后,設(shè)計出基于OpenMV與STM32防疫的消殺機(jī)器人,其采用STM32F407作為核心處理器,配合OpenMV可以實現(xiàn)遠(yuǎn)距離識別AprilTagc,并跟隨AprilTagc行駛。為了能夠?qū)崿F(xiàn)在多種環(huán)境中完成工作,又為其添加了藍(lán)牙模塊,可以實現(xiàn)藍(lán)牙控制,并配合機(jī)械臂、液壓水泵噴灑桿,實現(xiàn)視覺跟隨防疫消殺與藍(lán)牙控制防疫消殺。
1 總體設(shè)計方案
本研究設(shè)計的防疫消殺機(jī)器人由STM32F407ZGT6(控制核心)、機(jī)械臂、電機(jī)、電機(jī)驅(qū)動模塊、藍(lán)牙模塊、OpenMV4、電池模組、噴灑桿、藥箱、底盤、繼電器組成??梢酝ㄟ^手機(jī)藍(lán)牙實現(xiàn)對防疫消殺機(jī)器人的控制。防疫消殺機(jī)器人的整體設(shè)計如圖1所示。
2 關(guān)鍵技術(shù)
2.1 機(jī)械設(shè)計
防疫消殺機(jī)器人的機(jī)械結(jié)構(gòu)由3個部分組成,分別是載重部分、驅(qū)動部分以及機(jī)械臂。在底盤載重設(shè)計方面,為了增強(qiáng)其承載能力,用四根工字形鋁型材采用打孔穿釘方式進(jìn)行組裝,采用這種方式可以增加其承重能力,最大可以承受45 kg的重物。在驅(qū)動設(shè)計方面,采用四輪差速驅(qū)動式輪式機(jī)構(gòu),每個輪子都有獨立的執(zhí)行機(jī)構(gòu),可以獨立進(jìn)行驅(qū)動。當(dāng)機(jī)器人前進(jìn)或后退時,四個輪子采取同樣的轉(zhuǎn)速與方向進(jìn)行驅(qū)動;當(dāng)機(jī)器人進(jìn)行轉(zhuǎn)彎時,通過改變相應(yīng)車輪的轉(zhuǎn)速及轉(zhuǎn)向來實現(xiàn)。這樣可以降低機(jī)器人轉(zhuǎn)彎的復(fù)雜性,使其變得靈活精準(zhǔn),可以在更多路徑上行駛[2]。在機(jī)械臂設(shè)計方面,由于機(jī)械臂需要控制噴桿,從而實現(xiàn)多角度噴灑。為了能夠更好地實現(xiàn)噴灑,核心控制器(STM32F407)控制繼電器,采用對水泵間接供電的方式,實現(xiàn)控制噴灑。水泵的一端通過水管與噴灑桿件連接,另一端則接至水箱中,從而實現(xiàn)供水。在機(jī)械臂控制方面,采用LDX-218舵機(jī)對其進(jìn)行控制。在多次測試試驗中發(fā)現(xiàn),若使用兩個以上的舵機(jī)對機(jī)械臂進(jìn)行控制,水管容易發(fā)生纏繞現(xiàn)象。
2.2 驅(qū)動部分
本研究采用直流減速電機(jī)作為防疫消殺機(jī)器人的動力裝置,直流減速電機(jī)的驅(qū)動選用H橋大功率驅(qū)動模塊BTS796模塊。在機(jī)器人行駛過程中,為了減少車輪與地面的摩擦,采用PWM脈沖進(jìn)行調(diào)速,通過改變輸出高低電平的頻率,從而實現(xiàn)對電機(jī)轉(zhuǎn)速的控制。由于機(jī)器人采取四驅(qū)控制的方式,所以需要定義五個子函數(shù),對機(jī)器人的前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、停止進(jìn)行控制。其中,定義左前輪控制信號為PA1、PC2,右前輪控制信號為PA2、PC3,左后輪控制信號為PA3、PC4,右后輪控制信號為PA4、PC5,通過改變四個電機(jī)端口I/O狀態(tài),實現(xiàn)對電機(jī)運動狀態(tài)進(jìn)行改變,從而實現(xiàn)電機(jī)的相對運動[3]。
2.3 OpenMV4
OpenMV4作為防疫消殺機(jī)器人的視覺模塊,其核心處理器是STM32H743VI ARM Cortex M7處理器,感光元件為OV7725的 OPENMV4 H7攝像頭,使用Python語言進(jìn)行編程 [4]。在OpenMV IDE平臺上進(jìn)行編寫,為了能夠?qū)崿F(xiàn)較遠(yuǎn)距離的精準(zhǔn)識別,采用AprilTagc中的TAG16H5,由于OpenMV能識別AprilTagc標(biāo)簽,可以根據(jù)其3D定位功能,實現(xiàn)空間中的精準(zhǔn)定位。當(dāng)OpenMV識別到AprilTagc標(biāo)簽后,程序會先調(diào)用img.find_apriltags()函數(shù),獲取相應(yīng)的6個坐標(biāo)軸信息,然后進(jìn)行輸出。為了能夠更加貼近現(xiàn)實環(huán)境,實現(xiàn)精準(zhǔn)識別,即調(diào)用X、Y坐標(biāo)軸值,然后將其轉(zhuǎn)化為相應(yīng)的角度與距離數(shù)據(jù)[5]。隨后將獲取到的信息反饋傳輸?shù)絊TM32單片機(jī)上,STM32單片機(jī)發(fā)出相應(yīng)指令,驅(qū)動電機(jī)對轉(zhuǎn)速和轉(zhuǎn)向進(jìn)行調(diào)節(jié),程序流程見圖2。
2.4 機(jī)械臂控制
在機(jī)械臂控制程序方面,為了能夠更好地實現(xiàn)消殺效果,所以僅選用一個底層舵機(jī)進(jìn)行驅(qū)動。為了使舵機(jī)能夠?qū)崿F(xiàn)準(zhǔn)確地控制,采用TIM4定時器的PWM波控制[6]。PWM信號由接收通道進(jìn)入信號解調(diào)電路進(jìn)行解調(diào),從而獲得一個直流偏置電壓。通過對該直流偏置電壓與電位器的電壓進(jìn)行比較,實現(xiàn)電壓差輸出的獲取。隨后將信號從PD12口輸出,送入到電機(jī)驅(qū)動電路中,實現(xiàn)對電機(jī)相應(yīng)的正反轉(zhuǎn)。當(dāng)電機(jī)轉(zhuǎn)動時,通過級聯(lián)減速齒輪帶動電位器進(jìn)行旋轉(zhuǎn)運動,直到電壓差為0 V,電機(jī)停止轉(zhuǎn)動[7]。為了能夠?qū)崿F(xiàn)循環(huán)旋轉(zhuǎn),定義一個PWM波周期為2 500 ms,分為五個階段進(jìn)行轉(zhuǎn)動控制,每個階段轉(zhuǎn)動45°,每個階段轉(zhuǎn)動后延遲500 ms,如此執(zhí)行5次,一個周期結(jié)束。如此往復(fù)循環(huán)執(zhí)行,直至機(jī)器人停止運行 [8]。
2.5 藍(lán)牙控制
選擇BT08藍(lán)牙模塊與手機(jī)端進(jìn)行通信,從而實現(xiàn)藍(lán)牙控制。工作時有命令響應(yīng)與自動連接兩種模式。在命令響應(yīng)模式下,用戶可以向模塊發(fā)送相應(yīng)的AT命令,包括模塊的控制參數(shù)以及控制自動連接模式下的有主(Master)、從(Slave)和回環(huán)(Loopback)三種工作模式[9]。本研究設(shè)計的防疫消殺機(jī)器人工作時,先進(jìn)行系統(tǒng)初始化,再初始化藍(lán)牙與串口,串口檢測藍(lán)牙端是否發(fā)出指令,若未檢測到指令,則重新檢測。若檢測到指令,則將向相應(yīng)的電機(jī)驅(qū)動器發(fā)送指令,進(jìn)行驅(qū)動。控制流程見圖3。
2.6 通信程序設(shè)定
整個機(jī)器人中最重要的程序部分就是STM32F407與OpenMV之間的串口通信,這直接決定機(jī)器人能否實現(xiàn)視覺跟隨消殺的功能,對此本系統(tǒng)采用USART進(jìn)行串口通信。首先對串口與GPIO的時鐘進(jìn)行使能,其次對引腳復(fù)用器映射進(jìn)行相應(yīng)設(shè)置,接著使用GPIO_InitStructure()函數(shù),將GPIO端口設(shè)置為推挽復(fù)用輸出,使其具有輸出功能。為了滿足串口的通信功能,調(diào)用USART_InitStructure()函數(shù)對串口的波特率、字長、收發(fā)模式等進(jìn)行設(shè)置。再次開啟中斷初始化NVIC(為了能夠更好地實現(xiàn)功能,對串口接收信息時采用觸發(fā)中斷事件,配置相應(yīng)串口的中斷優(yōu)先級),使能中斷,隨后對串口進(jìn)行使能。最后編寫相應(yīng)的中斷處理函數(shù),并命名為USART_IRQHandler[10]。
3 實物測試
試驗設(shè)置兩個主要任務(wù):一是機(jī)器人(見圖4)使用OpenMV識別AprilTag,進(jìn)行視覺跟隨;二是機(jī)器人通過藍(lán)牙控制實現(xiàn)相應(yīng)的運動。布置試驗場地并進(jìn)行清空,保證光源情況良好。第一項測試,先啟動機(jī)器人,在距離機(jī)器人0.7 m處,設(shè)置一塊10 cm×10 cm AprilTagc標(biāo)簽,并且為了保證試驗的成功率,保證AprilTagc標(biāo)簽與機(jī)器人OpenMV的高度相等。在直道與彎道內(nèi),機(jī)器人隨著 AprilTagc標(biāo)簽位置的不斷變換而移動,OpenMV 不斷更新數(shù)據(jù),同時調(diào)整對應(yīng)的車速與差速,并且機(jī)械臂在開啟后能夠正常噴灑,得到的結(jié)果符合試驗預(yù)期,見圖5。第二項測試,在同等條件下,盡可能地使試驗場地空曠,減少電子儀器的出現(xiàn)。先開啟機(jī)器人,手機(jī)APP與藍(lán)牙進(jìn)行連接,手機(jī)APP操控相應(yīng)的動作按鈕,機(jī)器人可以完美地實現(xiàn)前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)的動作,且機(jī)械臂運轉(zhuǎn)正常,試驗結(jié)果達(dá)到預(yù)期目標(biāo)。
4 結(jié)語
通過STM32F407與OpenMV等多個模塊的結(jié)合,實現(xiàn)對防疫消殺機(jī)器人的設(shè)計,可實現(xiàn)在光源條件良好,且場地開闊的條件下,實現(xiàn)視覺跟隨消殺、藍(lán)牙遙控消殺。經(jīng)過試驗測試,機(jī)器人消殺效果良好可靠。但在本設(shè)計中尚存在一定的不足之處,即在光源條件較差或是場地較為雜亂時,視覺跟隨消殺將會受到一定影響,機(jī)器人的視覺跟隨能力下降,消殺效果較差。在藍(lán)牙遙控下,機(jī)器人雖然有著不錯的消殺效果,但由于藍(lán)牙控制的操作距離較短,不利于遠(yuǎn)距離防疫消殺,且藍(lán)牙操控易受到環(huán)境的干擾。接下來,將會對基于OpenMV與STM32防疫消殺機(jī)器人的缺陷進(jìn)行改進(jìn)與完善,以滿足多場景下的防疫消殺工作。
參考文獻(xiàn):
[1] 袁鵬.防疫消毒機(jī)器人的設(shè)計與開發(fā)研究[D].濟(jì)南:山東大學(xué),2021.
[2] 曹建平,丁坦,楊輝.基于STM32的WIFI控制金屬探測小車系統(tǒng)設(shè)計[J].實驗室研究與探索,2020(9):79-83.
[3] 李萌,于洋.基于STM32F407的巡防智能小車設(shè)計[J].科技風(fēng),2019(20):8-9.
[4] 張文青,龍奕帆.基于OpenMV視覺模塊的智能小車巡線系統(tǒng)設(shè)計[J].集成電路應(yīng)用,2021(10):232-233.
[5] 梅妍玭,傅榮.基于OpenMV的3D定位識別系統(tǒng)[J].新技術(shù)新工藝,2018(2):50-52.
[6] 歐雪霞.基于STM32的智能掃地小車的設(shè)計與實現(xiàn)[J].電子制作,2021(21):27-30.
[7] 何苗,吳永剛,陳金花.基于STM32的數(shù)字舵機(jī)控制系統(tǒng)[J].水雷戰(zhàn)與艦船防護(hù),2015(1):52-54.
[8] 寧春雷,劉凡齊,孫在尚.基于STM32的多自由度機(jī)械臂設(shè)計[J].電子世界,2017(9):118.
[9] 崔承毅,王開宇,高慶華,等.基于智能小車的模塊化教學(xué)系統(tǒng)設(shè)計[J].實驗技術(shù)與管理,2018(8):192-195.
[10] 張洋,劉軍,嚴(yán)漢宇.原子教你玩STM32(庫函數(shù)版)[M].北京:北京航空航天大學(xué)出版社,2013.