西北民族大學(xué)電氣工程學(xué)院 尹錦山 尤振勇 冉 梯 潘 陽(yáng) 蘭昌漩
本文設(shè)計(jì)的疫情防控機(jī)器人由兩部分組成。第一部分為疫情防控裝置,其由芯片和相應(yīng)模塊組裝而成,具有基本疫情防控措施。裝置測(cè)量人體溫度并進(jìn)行分析,裝置主控芯片通過(guò)對(duì)溫度分析的結(jié)果控制警報(bào)裝置、酒精噴灑裝置、門禁的工作,各個(gè)模塊功能的配合實(shí)現(xiàn)疫情防控的目的。第二部分為信息采集小程序,使用微信提供的視圖層描述語(yǔ)言WXML和WXSS以及基于JavaScript的邏輯層框架制作的采集個(gè)人信息的微信小程序。本裝置可以減少人力資源的消耗,降低人與人之間接觸導(dǎo)致疫情傳播的風(fēng)險(xiǎn),也可以在疫情發(fā)生后排查相關(guān)人員。通過(guò)此次疫情敲響的警鐘,常態(tài)防疫成為我們?nèi)粘I畹囊徊糠郑搜b置可以有更大的用武之地。
(1)疫情防控裝置設(shè)計(jì)
在疫情防控裝置的控制上,使用處理速度更強(qiáng)、硬件資源更豐富的Cortex-M4內(nèi)核的STM32系列芯片。Cortex-M4內(nèi)核的芯片使用ARM架構(gòu),該架構(gòu)設(shè)計(jì)合理,其讓微控制器的功能非常強(qiáng)大,同時(shí)還可以滿足功耗低的要求;在供電上STM32微控制器只需要5V電源便可以進(jìn)行驅(qū)動(dòng),使用非常方便;同時(shí)還需用到其它模塊,比如:舵機(jī)模塊、紅外測(cè)溫模塊、語(yǔ)言播報(bào)模塊等,模塊的相互配合實(shí)現(xiàn)預(yù)期的功能。另外,還需要應(yīng)用電路、機(jī)械知識(shí),設(shè)計(jì)疫情防控機(jī)器人的電路以及內(nèi)部的機(jī)械結(jié)構(gòu),使疫情防控機(jī)器人可以在不同的環(huán)境都可以安裝使用。
(2)信息采集小程序設(shè)計(jì)
通過(guò)微信小程序與ID卡、人臉識(shí)別等采集人員信息方式進(jìn)行比較后,決定采用微信小程序作為信息采集的方式。因?yàn)槲⑿判〕绦蛟谖覈?guó)幾乎所有區(qū)域已普及,便于疫情防控機(jī)器人可以大面積推廣。人們使用微信掃描小程序二維碼,填寫(xiě)姓名以及聯(lián)系方式便可完成信息采集,簡(jiǎn)單易操作。
(1)疫情防控裝置難點(diǎn)
疫情防空裝置難點(diǎn)在于供電電路的設(shè)計(jì),人們使用時(shí)裝置供電工作,非使用時(shí)裝置進(jìn)入睡眠模式。由于本項(xiàng)目中使用了多個(gè)模塊,對(duì)于不同模塊使用了不同的通訊協(xié)議,所以在電路設(shè)計(jì)上,必須根據(jù)不同的IO口所具有的硬件資源將不同的模塊與合適的IO口連接到一起,以達(dá)到硬件資源利用最大化。
(2)信息采集小程序設(shè)計(jì)難點(diǎn)
信息采集小程序難點(diǎn)在于將采集到的人員信息與疫情防空裝置采集到的溫度信息相匹配,以便達(dá)到記錄每個(gè)人體溫的效果。
疫情防控裝置底層代碼的設(shè)計(jì),并不斷修復(fù)底層代碼漏洞,使其完美驅(qū)動(dòng)疫情防控機(jī)器人。此外,搭建好疫情防控裝置的各個(gè)模塊、電路和內(nèi)部機(jī)械結(jié)構(gòu)。信息采集小程序在不同年齡段的人中都可以簡(jiǎn)易操作,并且穩(wěn)定運(yùn)行。最終設(shè)計(jì)出代碼邏輯自洽、外表美觀,具有基本疫情防控措施的疫情防控裝置和簡(jiǎn)潔易操作的信息采集小程序。
疫情發(fā)生后,疫情防控機(jī)器人代替人力對(duì)疫情進(jìn)行監(jiān)測(cè),可以減少人力資源的壓力。人們進(jìn)出日常生活、工作場(chǎng)所時(shí),對(duì)人們體溫進(jìn)行檢測(cè)并對(duì)手部進(jìn)行酒精消毒,達(dá)到降低人與人之間的接觸而導(dǎo)致傳染的可能性。另外,收集進(jìn)出各個(gè)場(chǎng)所的人員信息與體溫?cái)?shù)據(jù),可以找到感染者接觸到的人進(jìn)行排查避免二次傳染,也可以通過(guò)地區(qū)的整體信息分析出地區(qū)疫情趨勢(shì)從而采取相應(yīng)措施。
為了項(xiàng)目功能的實(shí)現(xiàn),需要使主要裝置達(dá)到相應(yīng)的功能,主要裝置有溫度檢測(cè)裝置、酒精噴灑裝置、門禁裝置、語(yǔ)音播報(bào)裝置等。防控裝置所需模塊如圖1所示。

圖1 防控裝置所需模塊
(1)溫度檢測(cè)裝置
采用溫度傳感器GY-906,采集到人體溫度數(shù)據(jù)后,將其以電壓形式傳輸?shù)叫酒ㄟ^(guò)AD轉(zhuǎn)換為相應(yīng)數(shù)字信息得到人體溫度信息。人體溫度信息經(jīng)過(guò)主控芯片分析作為其他模塊運(yùn)行的標(biāo)志。
(2)酒精噴砂裝置
通過(guò)紅外傳感器控制繼電器,再通過(guò)繼電器控制水泵,當(dāng)人們將手伸入工作區(qū)域,紅外傳感器向繼電器輸出電壓到繼電器,當(dāng)繼電器的輸入電壓達(dá)到吸合電壓就會(huì)吸合,則系統(tǒng)會(huì)為水泵供電使其工作。水泵工作抽取酒精通過(guò)花灑噴灑到手部,達(dá)到手部消毒。
(3)門禁裝置
主控芯片完成溫度檢測(cè)且溫度正常,再經(jīng)過(guò)酒精消毒后,就會(huì)控制舵機(jī)運(yùn)行,打開(kāi)門禁達(dá)到控制人員進(jìn)出的功能。
(4)語(yǔ)音播報(bào)裝置
本設(shè)計(jì)使用SYN6288語(yǔ)音合成模塊。在人們使用裝置時(shí),主控芯片通過(guò)進(jìn)入人員的身體信息,讓語(yǔ)音模塊能夠發(fā)出一定的聲音。在溫度檢測(cè)正常時(shí),語(yǔ)音模塊發(fā)出“溫度正常”的語(yǔ)句,反之發(fā)出“溫度異常”的語(yǔ)句。可以根據(jù)場(chǎng)景和需求加入自己所需的語(yǔ)句。
由于不同模塊的工作電壓不同,舵機(jī)驅(qū)動(dòng)需要的最好電壓為11V左右,所以使用12V的電池作為總的電源輸入,并且直接對(duì)舵機(jī)驅(qū)動(dòng)供電。對(duì)STM32F4主控芯片需要5V的電壓,所以需要在電路中加入可調(diào)降壓模塊,整個(gè)系統(tǒng)需要使用到多個(gè)可調(diào)降壓模塊使鋰電池電源提供調(diào)節(jié)電壓,以滿足系統(tǒng)需要。另外,保證能夠?yàn)镸CU及所用到的模塊提供其所需電壓使它們正常工作,這是完成疫情防空裝置工作的前提。
根據(jù)MCU不同I/O口所具有的硬件資源將不同模塊接在合適的I/O口上,以實(shí)現(xiàn)硬件資源的合理使用。此外,大多數(shù)模塊采用到串口通信,為了滿足模塊能夠?qū)崿F(xiàn)其功能并能夠進(jìn)行相互間的通信從而滿足項(xiàng)目需要,需要將MCU的串口資源進(jìn)行分配,使其不存在沖突順利完成項(xiàng)目所需要的功能。
本項(xiàng)目的整體構(gòu)造采用椴木層板進(jìn)行搭建,首先在稿紙上設(shè)計(jì)出來(lái)利于項(xiàng)目完成的門禁外箱的整體構(gòu)造,然后使用AutoCAD軟件根據(jù)設(shè)計(jì)紙畫(huà)出來(lái)對(duì)木板需要切割的形狀及長(zhǎng)度,然后再使用激光雕刻機(jī)進(jìn)行切割,最后通過(guò)釘子熱熔膠等進(jìn)行搭建,從而得到符合要求的自制門禁。
圖2是程序執(zhí)行流程圖。本項(xiàng)目中使用的編程語(yǔ)言是C語(yǔ)言,使用的編譯器為MDK。MDK編譯器支持使用C語(yǔ)言對(duì)STM32 系列芯片的驅(qū)動(dòng),該編譯器功能非常強(qiáng)大,支持在線仿真功能,可以更加直觀的看到程序設(shè)計(jì)時(shí)出現(xiàn)的錯(cuò)誤并及時(shí)改正,對(duì)于程序的調(diào)試非常有幫助的。程序編寫(xiě)時(shí)使用模塊化編程,把不同模塊的初始化及驅(qū)動(dòng)過(guò)程封裝在不同的.c文件中,在main.c文件中只實(shí)現(xiàn)調(diào)用的過(guò)程,不同文件中函數(shù)的調(diào)用通過(guò)對(duì)相應(yīng).h文件的文件調(diào)用來(lái)實(shí)現(xiàn)。模塊化編程最大的好處就是程序的可閱讀力比較強(qiáng),編程思路的體現(xiàn)的引更加清晰,對(duì)于程序的分模塊調(diào)試以及程序修改也非常方便。通過(guò)代碼編寫(xiě)控制各個(gè)模塊相互協(xié)調(diào)以實(shí)現(xiàn)項(xiàng)目所需功能。此外,本項(xiàng)目中使用到IO口復(fù)用、IIC通訊、SPI通訊、串口通訊、定時(shí)器、定時(shí)器中斷等,這些功能的正確使用也是項(xiàng)目功能完成的前提,其中特別注意串口資源的分配與使用。因?yàn)榇蠖鄶?shù)模塊都會(huì)用到串口通信,解決好這一問(wèn)題是模塊功能順利實(shí)現(xiàn)的基礎(chǔ)。

圖2 程序執(zhí)行流程圖
疫情防控機(jī)器人在開(kāi)始程序啟動(dòng)后,完成各個(gè)模塊初始化,當(dāng)人進(jìn)出場(chǎng)所使用該裝置時(shí),首先人將手部伸入溫度檢測(cè)區(qū)域內(nèi),檢測(cè)溫度,正常則酒精噴灑裝置對(duì)手部進(jìn)行消毒,人們可通過(guò)掃描二維碼獲得個(gè)人信息,最后門禁打開(kāi)人員進(jìn)入。如果人體溫度異常則裝置發(fā)出警報(bào),通知工作人員進(jìn)行處理。
微信小程序開(kāi)發(fā)框架可以讓開(kāi)發(fā)者們能夠通過(guò)簡(jiǎn)便、高效的方式開(kāi)發(fā)具有原生App體驗(yàn)的服務(wù)。一個(gè)微信小程序結(jié)構(gòu)主要由主體文件和頁(yè)面文件兩部分組成,主體文件部分主要由app.json、app.wxss和app.js三個(gè)文件構(gòu)成。app.json文件用來(lái)對(duì)微信小程序進(jìn)行全局配置,它決定了頁(yè)面文件的路徑、設(shè)置網(wǎng)絡(luò)超時(shí)時(shí)間、窗口表現(xiàn),http請(qǐng)求跳轉(zhuǎn)、設(shè)置多個(gè)tab等,注意app.json是不可以添加注釋的。app.wxss文件是小程序的全局樣式文件,作用于每一個(gè)頁(yè)面,用于描述WXML的組件樣式。app.js文件使用系統(tǒng)的方法處理全局文件,在整個(gè)小程序中,每一個(gè)框架頁(yè)面和文件都可以使用this獲取app.js文件中規(guī)定的數(shù)據(jù)和函數(shù),每一個(gè)小程序都會(huì)有一個(gè)app.js文件,有且只有一個(gè),位于項(xiàng)目的根目錄中。
酒精噴灑裝置如何在人們伸手進(jìn)入裝置工作區(qū)域的時(shí)候水泵工作,水泵運(yùn)作將酒精抽出噴灑出來(lái),非工作時(shí)水泵停止工作,進(jìn)入休眠狀態(tài)。針對(duì)其供電做出設(shè)計(jì),在伸手的時(shí)候供電,其他情況下不供電。針對(duì)這一思路采用繼電器來(lái)解決這一問(wèn)題,而如何達(dá)到繼電器運(yùn)作的條件,便由紅外傳感器控制。在紅外傳感器檢測(cè)到人們把手伸入裝置便讓繼電器工作來(lái)給水泵供電,把酒精噴灑出來(lái)。
本項(xiàng)目使用多個(gè)模塊,模塊的工作協(xié)議不同,如何讓各個(gè)模塊合理運(yùn)作達(dá)到預(yù)期的工作效果。
系統(tǒng)使用模塊為Cortex-M4內(nèi)核的STM32系列芯片,各個(gè)模塊被主控芯片集中控制,通過(guò)程序控制相應(yīng)的硬件資源輸出各個(gè)模塊可以識(shí)別的信號(hào)。通過(guò)以上信息,可以通過(guò)芯片內(nèi)部時(shí)鐘來(lái)控制各個(gè)模塊的運(yùn)行時(shí)機(jī),以達(dá)到各個(gè)模塊的配合實(shí)現(xiàn)預(yù)期功能。
信息采集小程序?yàn)槲⑿判〕绦颍鴾囟葌鞲衅鞑杉降臏囟却鎯?chǔ)到主控芯片中,如何將兩個(gè)不同系統(tǒng)的信息匹配起來(lái)?雖然兩個(gè)系統(tǒng)無(wú)法連接,但是可以通過(guò)標(biāo)號(hào)的辦法分別將信息采集小程序和主控芯片中的數(shù)據(jù)進(jìn)行標(biāo)號(hào),信息采集小程序中的一號(hào)數(shù)據(jù)對(duì)應(yīng)主控信號(hào)中的一號(hào)數(shù)據(jù)。
總結(jié)與展望:本項(xiàng)目研究的是“疫情防控機(jī)器人”,該裝置具有基本的疫情防控功能,可以進(jìn)行溫度檢測(cè)、酒精消毒、人流量的控制等;也可以采集到進(jìn)出各個(gè)場(chǎng)所的人員的個(gè)人信息,可以通過(guò)與溫度信息匹配,在疫情感染者出現(xiàn)后避免二次傳染。最重要的是采用的芯片模塊,具備模型搭建材料價(jià)格上相對(duì)便宜且裝置易安裝操作,適合普遍推廣,達(dá)到疫情防控常態(tài)化,全面化。
在實(shí)現(xiàn)項(xiàng)目的基本功能后,排除如環(huán)境、氣候、溫度等干擾因素后,根據(jù)實(shí)驗(yàn)情況對(duì)所做項(xiàng)目的安全性等進(jìn)行評(píng)估,后期繼續(xù)進(jìn)行思考研究,以增加項(xiàng)目的更多功能去實(shí)現(xiàn)項(xiàng)目擴(kuò)展,從而去更好的提升項(xiàng)目的實(shí)用性。