黃志芳,李偉鑫,謝宋汕,李喆滔
(嘉應(yīng)學(xué)院物理與電子工程學(xué)院,廣東梅州 514015)
隨著科學(xué)技術(shù)的不斷發(fā)展和進(jìn)步,很多具有一定危險(xiǎn)性的工作也逐步被智能化的設(shè)備所取代,如采煤行業(yè)中執(zhí)行安全隱患排查和生命探測(cè)的設(shè)備、在地形地貌較為復(fù)雜地區(qū)執(zhí)行特殊任務(wù)的探測(cè)小車、在具有環(huán)境風(fēng)險(xiǎn)地區(qū)執(zhí)行環(huán)境采集數(shù)據(jù)的無人機(jī)等[1-3]。上述的智能化設(shè)備在以上特殊場(chǎng)景中使用較為廣泛,然而無人機(jī)在一些樹木茂密、建筑物密集區(qū)域限制了其使用,此時(shí)需要靈活機(jī)動(dòng)的多功能探測(cè)車,利用車上搭載的各種傳感器實(shí)現(xiàn)對(duì)相關(guān)參數(shù)的監(jiān)測(cè),搭載的高清攝像頭實(shí)時(shí)傳輸現(xiàn)場(chǎng)畫面到終端[4-5]。與3G網(wǎng)絡(luò)通信相比,4G通信的速度成倍提升,基于低延時(shí)、高清圖傳、多功能、智能化的探測(cè)小車在電子消費(fèi)、工業(yè)應(yīng)用、特種搶險(xiǎn)救災(zāi)等領(lǐng)域具有十分廣泛的應(yīng)用前景[6]。文中設(shè)計(jì)了一種以STM32F407ZGT6 和TM32F103CET6 為小車端和遙控端的核心處理器,小車端搭載DHT11 以及MQ2 采集溫濕度、空氣顆粒濃度等參數(shù),通過NRF24L01 在遙控端和小車端傳輸數(shù)據(jù),遙控端既能遠(yuǎn)程控制小車又能通過OLED屏幕上獲得環(huán)境數(shù)據(jù)。小車端使用Cortex-A7 處理器將圖像數(shù)據(jù)轉(zhuǎn)為rtmp 格式,F(xiàn)Fmpeg 編解碼器將rtmp 推流到搭建在阿里云平臺(tái)上的Nginx 流媒體服務(wù)器。用戶可在移動(dòng)終端通過拉取流媒體服務(wù)器上的rtmp 數(shù)據(jù)流,實(shí)現(xiàn)實(shí)時(shí)查看現(xiàn)場(chǎng)環(huán)境圖像。
探測(cè)小車的整體是由智能小車終端和遠(yuǎn)程遙控端兩部分構(gòu)成。小車終端以STM32 作為處理器,搭載溫濕度檢測(cè)模塊,空氣質(zhì)量檢測(cè)模塊,無線收發(fā)模塊及USB 攝像頭,實(shí)時(shí)采集溫濕度、空氣質(zhì)量參數(shù)信息,通過無線收發(fā)模塊(NRF24L01)接收遙控端的指令信息,并向遙控端回傳溫濕度和空氣質(zhì)量參數(shù)信息。4G 模塊將通過開源軟件FFmpeg 將圖像數(shù)據(jù)壓縮后推流至流媒體服務(wù)器。遠(yuǎn)程遙控端同樣使用STM32 作為處理器,具有無線收發(fā)模塊、OLED 顯示屏、A/D 轉(zhuǎn)換搖桿按鍵等外設(shè)。OLED 實(shí)時(shí)顯示通過無線收發(fā)模塊接收到的溫濕度、空氣質(zhì)量參數(shù)信息,遙桿按鍵控制小車前進(jìn)后退以及攝像頭轉(zhuǎn)動(dòng)。用戶可通過PC 端或APP 實(shí)時(shí)查看小車所處區(qū)域的畫面。
智能小車是由STM32 微處理器、DHT11 溫濕度模塊、可燃?xì)怏w檢測(cè)模塊、NRF24L01 無線傳輸模塊、180°舵機(jī)模塊、攝像頭模塊和L298N 電機(jī)驅(qū)動(dòng)模塊等7個(gè)模塊組成。STM32驅(qū)動(dòng)NRF24L01接收遙控端的指令來控制L298N 電機(jī),完成小車運(yùn)動(dòng)狀態(tài)控制和舵機(jī)旋轉(zhuǎn)等操作。STM32 驅(qū)動(dòng)DHT11 模塊和氣體檢測(cè)模塊,將采集到的溫濕度和空氣質(zhì)量參數(shù)信息傳送到遙控端,在Linux 開發(fā)板上通過FFmpeg 開源程序?qū)D像以rtmp 格式推送到流媒體服務(wù)器[7],智能小車終端的硬件系統(tǒng)框圖和實(shí)物圖如圖1、圖2 所示。
圖1 小車端硬件系統(tǒng)圖
圖2 小車端實(shí)物圖
遙控終端是由STM32、電源管理芯片、5 V 微型電池、OLED 顯示模塊、NRF24L01 無線傳輸模塊、搖桿按鍵模塊6 部分組成,遙控端使用5 V 微型電池。工作時(shí),單片機(jī)通過內(nèi)置的A/D 轉(zhuǎn)換模塊獲得遙感按鍵輸出模擬量[8],通過NRF24L01 將指令發(fā)送至小車端,在OLED 上顯示溫濕度、空氣質(zhì)量參數(shù)信息,遙控終端的實(shí)物圖如圖3 所示。
圖3 遙控終端實(shí)物圖
在目前的單片機(jī)應(yīng)用市場(chǎng),ARM 系列單片機(jī)因處理速度更快、搭配的資源更多,從而占據(jù)了單片機(jī)主流應(yīng)用市場(chǎng)[9]。小車端和遙控端的單片機(jī)選擇了STM32系列。遙控端的單片機(jī)選擇STM32F103CET6,小車端選擇STM32F407ZGT6,因?yàn)樾枰獙?shí)現(xiàn)圖像實(shí)時(shí)傳輸,圖像采集和處理數(shù)據(jù)較為龐大,所以選擇Cortex-A7 處理器完成圖像數(shù)據(jù)處理。
攝像頭采集的圖像原始數(shù)據(jù)巨大,需要對(duì)圖像信息進(jìn)行壓縮編碼。使用不同的編碼器得到不同的壓縮格式,如今比較主流的視頻編碼為H.264 編碼和MPEG-2 編碼[10]。推流端編解碼器中比較常用的是FFmpeg,它是一套非常成熟的開源代碼,支持絕大多數(shù)的編碼格式和流媒體協(xié)議,功能強(qiáng)大且資料非常齊全,所以選擇其為推流端編碼器[11]。
流媒體服務(wù)器的主要功能是以流式協(xié)議(RTO/RTSP、MMS、RTMP 等)將視頻文件傳輸至用戶端,用戶可以實(shí)時(shí)查看圖像,用戶實(shí)時(shí)查看的功能要求服務(wù)器必須做到外網(wǎng)與云平臺(tái)連接。阿里云是各項(xiàng)功能較為豐富的云平臺(tái),流媒體服務(wù)器選擇購(gòu)買云服務(wù)器來實(shí)現(xiàn)。當(dāng)下比較流行的Web 流媒體服務(wù)器有3種,分別是Apache、Nginx、Lighttpd。Lighttpd的穩(wěn)定性不足,Apache 對(duì)該設(shè)計(jì)的系統(tǒng)壓力較大,所以選擇Nginx 流媒體服務(wù)器搭建于阿里云服務(wù)器上[12]。
通過4G技術(shù)實(shí)現(xiàn)圖像數(shù)據(jù)傳輸?shù)皆破脚_(tái),小車端和遙控端兩者之間通過NRF24L01 模塊來完成數(shù)據(jù)傳輸,傳輸距離在空曠環(huán)境下最大能達(dá)到1 000 m,滿足性能需求。NFR24L01是一款工作在2.4~2.5 GHz的ISM 頻段的單片無線收發(fā)器芯片,最低供電電壓為1.9 V,最大數(shù)據(jù)傳輸速率為2 000 kbps,發(fā)送模式(0 dBm)和接收模式(2 000 kbps)狀態(tài)下的電流消耗分別為11.3 mA 和12.3 mA,使用的溫度范圍為-40~+85 ℃[13]。
DHT11 數(shù)字傳感器是一款含有已校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度復(fù)合傳感器。濕度測(cè)量范圍在20%RH~90%RH,溫度在0~50 ℃,在25 ℃下,溫度的誤差范圍在±2 ℃之間,濕度誤差在±5%RH 之間,具有感應(yīng)快、抗干擾能力強(qiáng)、體積小、性價(jià)比極高的優(yōu)點(diǎn)[14]。
小車的硬件系統(tǒng)包括STM32 系統(tǒng)板、12 V 轉(zhuǎn)5 V供電電路、L298N 電機(jī)驅(qū)動(dòng)模塊、兩對(duì)直流電機(jī)、無線收發(fā)模塊、溫濕度傳感器、可燃?xì)怏w傳感器和180°轉(zhuǎn)向舵機(jī)。硬件SPI 驅(qū)動(dòng)無線收發(fā)模塊接收指令,需連接到小車端單片機(jī)的特定引腳上,自帶的A/D 轉(zhuǎn)換獲取氣體檢測(cè)模塊的模擬輸出,單總線方式驅(qū)動(dòng)DHT11傳感器獲取溫濕度信息,內(nèi)置的PWM 波產(chǎn)生器輸出周期為20 ms占空比不同的PWM,控制舵機(jī)轉(zhuǎn)動(dòng)帶動(dòng)攝像頭轉(zhuǎn)動(dòng)[15],小車端的電路原理圖如圖4所示。
圖4 小車端電路原理圖
遙控端的硬件系統(tǒng)包括了STM32MCU 核心板、USB 充電口、5 V 微型電池、電源管理芯片、OLED、無線收發(fā)模塊和一對(duì)遙感按鍵。系統(tǒng)使用5 V 電池充電,為遙控手柄提供電源支持。使用遙感按鍵時(shí),需將遙感按鍵的兩個(gè)模擬量輸出引腳接入遙控端單片機(jī)的A/D 轉(zhuǎn)換引腳,用來判斷遙感按鍵按下的狀態(tài)。系統(tǒng)通過SPI 驅(qū)動(dòng)無線收發(fā)模塊,遙控端中的無線收發(fā)模塊需連接到單片機(jī)對(duì)應(yīng)的引腳上,通過模擬IIC 驅(qū)動(dòng)OLED 屏幕顯示信息。遙控端的電路原理圖如圖5 所示。
圖5 遙控終端電路原理圖
小車端的總體程序設(shè)計(jì)可以分為5 個(gè)模塊程序,包括定時(shí)器初始化、DHT11 初始化、MQ2 初始化、無線模塊初始化以及無線模塊接收程序,主程序流程如圖6 所示。系統(tǒng)上電后開始進(jìn)行初始化,如配置單片機(jī)的A/D轉(zhuǎn)換模塊(讀取傳感器輸出的數(shù)據(jù)),配置I/O口的輸入、輸出和復(fù)用模式,配置硬件SPI 參數(shù)(驅(qū)動(dòng)無線收發(fā)模塊)等[16]。小車端需要接收和發(fā)送數(shù)據(jù),為了避免在兩種不同模式下頻繁切換,造成系統(tǒng)資源的浪費(fèi),NRF24L01 無線模塊配置為帶應(yīng)答確認(rèn)信號(hào)及有效載荷的接收模式。在主程序循環(huán)中,系統(tǒng)首先讀取傳感器的數(shù)據(jù)并處理,處理完成后,檢測(cè)是否有來自遙控端的無線收發(fā)模塊信息,如有就執(zhí)行相應(yīng)指令信息內(nèi)容,且因?yàn)樾≤嚩私邮盏叫畔⒑笮枰l(fā)送確認(rèn)收到信息給遙控端的無線模塊,則溫濕度等空氣質(zhì)量參數(shù)信息放入應(yīng)答信號(hào)的有效載荷中回傳給遙控端。
圖6 小車端程序流程圖
遙控端的總體程序設(shè)計(jì)分為9 個(gè)模塊,包括定時(shí)器初始化、NRF 初始化、ADC 初始化、按鍵初始化、OLED 初始化、掃描AD 值、按鍵檢測(cè)、NRF 發(fā)送程序和OLED屏顯示程序,主程序流程如圖7所示。系統(tǒng)上電后,程序開始對(duì)模塊進(jìn)行初始化,如配置使用I/O口模擬軟件(驅(qū)動(dòng)OLED 屏幕),配置DMA 參數(shù)(方向、是否循環(huán)、每次搬運(yùn)字節(jié)大?。┯脕戆徇\(yùn)A/D 轉(zhuǎn)換結(jié)果,暫存寄存器的值放入RAM 中數(shù)組中,并將系統(tǒng)中的無線收發(fā)模塊配置為應(yīng)答確認(rèn)信號(hào)及有效載荷的發(fā)送模式。在主程序循環(huán)中,讀取DMA 自動(dòng)搬運(yùn)到數(shù)組中的A/D 轉(zhuǎn)換值,判斷遙感按鍵按下的方向,將對(duì)應(yīng)的指令通過無線收發(fā)模塊發(fā)送到小車端。配置成帶應(yīng)答信號(hào)的發(fā)送模塊,需要接收小車端的應(yīng)答信號(hào),在發(fā)送完成后將在OLED 屏上顯示讀取應(yīng)答信號(hào)中小車端發(fā)送的空氣質(zhì)量信息。
圖7 遙控終端程序流程圖
系統(tǒng)上電后,將小車移動(dòng)到離遙控端一定距離外,控制搖桿方向遠(yuǎn)程控制小車的運(yùn)動(dòng)狀態(tài),轉(zhuǎn)動(dòng)舵機(jī)控制按鍵,舵機(jī)能按照指令帶動(dòng)攝像頭完成轉(zhuǎn)動(dòng),并用手機(jī)播放器連接到阿里云服務(wù)器,查看車載攝像頭的實(shí)時(shí)傳輸回來的畫面,人為改變小車周邊溫濕度等環(huán)境參數(shù),判斷溫濕度模塊工作是否正常,遙控端是否顯示對(duì)應(yīng)的溫濕度及變化。經(jīng)過一系列的調(diào)試后,遙控端能實(shí)現(xiàn)對(duì)小車和航機(jī)的控制,小車能夠檢測(cè)周圍環(huán)境的溫濕度、可燃?xì)怏w濃度,并將相應(yīng)的數(shù)據(jù)傳輸至遙控端的OLED 屏進(jìn)行顯示。運(yùn)行在Linux 上的推流程序?qū)tmp 推流到搭建在阿里云平臺(tái)上的流媒體服務(wù)器,通過PC 端或者移動(dòng)端播放器拉取流媒體服務(wù)器的數(shù)據(jù)視頻流進(jìn)行播放,實(shí)時(shí)查看小車的圖像畫面,視頻時(shí)延控制在2.5s以內(nèi)。
基于4G 的實(shí)時(shí)圖傳智能探測(cè)車的研究,達(dá)到了初期的性能指標(biāo),實(shí)現(xiàn)了監(jiān)測(cè)空氣質(zhì)量數(shù)據(jù)、遠(yuǎn)程控制、圖像實(shí)時(shí)傳輸?shù)墓δ堋Mㄟ^搭載支持UVC 協(xié)議的USB 攝像頭,圖像數(shù)據(jù)信息通過4G 推送到阿里云服務(wù)器上,使得公網(wǎng)網(wǎng)絡(luò)能對(duì)流媒體數(shù)據(jù)進(jìn)行拉流,即圖像支持的傳輸距離非常遠(yuǎn),突破了距離的限制,支持多用戶同時(shí)訪問?;?G 的實(shí)時(shí)圖傳智能探測(cè)車能夠代替人工監(jiān)測(cè),應(yīng)用于煤炭生產(chǎn)、探測(cè)、救援、排雷等相關(guān)行業(yè),具有較為廣泛的研究和應(yīng)用價(jià)值。