国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于嵌入式的可移動環(huán)境監(jiān)測機(jī)器人系統(tǒng)設(shè)計(jì)與研究

2023-03-04 13:25劉怡沛江龍韜
計(jì)算機(jī)測量與控制 2023年2期
關(guān)鍵詞:搖桿舵機(jī)藍(lán)牙

劉怡沛,江龍韜,秦 嶺,張 卓

(河海大學(xué) 物聯(lián)網(wǎng)工程學(xué)院,江蘇 常州 213002)

0 引言

隨著國內(nèi)智慧環(huán)保理念的發(fā)展,如何推動智慧環(huán)保落地成為各地政府關(guān)心的問題[1-3]。在推進(jìn)智慧環(huán)保落地的過程中,最重要的是環(huán)境監(jiān)測任務(wù)[4]。但由于部分地區(qū)環(huán)境復(fù)雜多樣,傳統(tǒng)的非移動式監(jiān)測無法檢測空間狹小,環(huán)境惡劣、位置險要的環(huán)境[5-6];人力監(jiān)測方式耗費(fèi)過多力資源,且效率低下;部分地區(qū)森林火災(zāi)頻發(fā),如何在保障消防員安全的前提下進(jìn)行環(huán)境監(jiān)測,避免不必要的犧牲,也成為當(dāng)下的焦點(diǎn)問題[7-8]。

因此設(shè)計(jì)出一種可遠(yuǎn)程控制的環(huán)境監(jiān)測機(jī)器人成為亟待解決的問題[9]。針對此需求,郭威[9]等設(shè)計(jì)了一種可移動滑桿式環(huán)境監(jiān)測機(jī)器人,環(huán)境監(jiān)測效果良好,但對環(huán)境要求高,需搭建滑桿供機(jī)器人滑行;趙靜[10]等設(shè)計(jì)了一種基于樹莓派的VR環(huán)境監(jiān)測機(jī)器人,解決了監(jiān)測對環(huán)境要求高的問題,但樹莓派成本較高。本文設(shè)計(jì)了一種基于STM32嵌入式系統(tǒng)的可移動環(huán)境監(jiān)測機(jī)器人。通過控制平臺的搖桿模塊控制檢測平臺的移動,檢測平臺上通過藍(lán)牙實(shí)時傳送監(jiān)測數(shù)據(jù)給控制平臺,并將環(huán)境參數(shù)等顯示在遠(yuǎn)程控制平臺的OLED上,且當(dāng)前方存在障礙物時,檢測平臺發(fā)出警報,操控者此時需改變行進(jìn)方向。該機(jī)器人具備環(huán)境監(jiān)測、無線傳輸、遠(yuǎn)程控制的功能,解決了監(jiān)測環(huán)境受限的問題,也降低了成本,對于推動智慧環(huán)保的建設(shè)和檢查火災(zāi)等災(zāi)情情況,保障消防員安全等具有重要幫助。

1 系統(tǒng)方案設(shè)計(jì)

該系統(tǒng)方案采用意法半導(dǎo)體公司生產(chǎn)的STM32F103C8T6微控制器作為機(jī)器人的主控芯片。其中,該系統(tǒng)由遠(yuǎn)程控制平臺和檢測平臺兩部分組成。其中,硬件電路由溫濕度傳感器模塊、光照傳感器、煙霧傳感器和超聲波測距模塊、OLED顯示模塊、蜂鳴器報警模板等組成。主要完成對環(huán)境中溫度、濕度、光照強(qiáng)度、障礙物距離和空氣中顆粒的濃度的測量及障礙物判斷和報警。軟件部分主要由藍(lán)牙、測試平臺的行進(jìn)算法和舵機(jī)控制算法組成。檢測平臺和遠(yuǎn)程控制平臺通過HC-05藍(lán)牙傳遞數(shù)據(jù)。遠(yuǎn)程控制設(shè)備的主控輸入有按鍵模塊和搖桿模塊;機(jī)器人的主控輸入有和超聲波測距模塊,4個傳感器的數(shù)據(jù)通過藍(lán)牙傳遞給遠(yuǎn)程控制設(shè)備的主控,再通過OLED分別顯示。通過按鍵模塊的4個按鍵實(shí)時更新對應(yīng)的4個傳感器的數(shù)據(jù)并通過OLED顯示,搖桿模塊控制機(jī)器人行進(jìn)方向的目標(biāo)?;谇度胧降沫h(huán)境監(jiān)測機(jī)器人系統(tǒng)總體設(shè)計(jì)如圖1所示。

圖1 系統(tǒng)構(gòu)成

具體實(shí)現(xiàn)流程如下:

1)操控遠(yuǎn)程控制平臺上的搖桿控制檢測平臺的行進(jìn)方向,搖桿的偏移度控制行進(jìn)速度。檢測平臺能夠?qū)崟r讀取與障礙物的距離,設(shè)定安全距離閾值,當(dāng)實(shí)時讀取的距離小于安全閾值時,蜂鳴器報警,操控人員需改變行進(jìn)方向。

2)遠(yuǎn)程控制平臺上有4個按鍵,分別對應(yīng)機(jī)器人的溫濕度檢測模塊、光照檢測模塊、空氣質(zhì)量檢測模塊和超聲波測距模塊的數(shù)據(jù)讀取,并更新顯示在遠(yuǎn)程控制平臺的OLED上。

1.1 系統(tǒng)目標(biāo)

系統(tǒng)目標(biāo)為實(shí)現(xiàn)可遠(yuǎn)程控制的環(huán)境監(jiān)測機(jī)器人。能夠?qū)崟r監(jiān)測環(huán)境狀態(tài)、解決日常環(huán)境下監(jiān)測低效的難題,提高了測量精度,實(shí)現(xiàn)了智能化控制,因此需要實(shí)現(xiàn)以下兩個目標(biāo)。

1)高效性:若檢測平臺的MCU實(shí)時采集4個環(huán)境傳感器的監(jiān)測數(shù)據(jù),則系統(tǒng)總體的反應(yīng)速度將會被影響,且過于頻繁的數(shù)據(jù)接收將會使系統(tǒng)內(nèi)部系統(tǒng)穩(wěn)定性降低。因此設(shè)計(jì)的機(jī)器人系統(tǒng)通過按鍵控制讀取目標(biāo)傳感器的數(shù)值并在OLED更新顯示,避免了長時間連續(xù)的接收冗雜傳感器數(shù)據(jù)的問題,能夠有效提高環(huán)境監(jiān)測的效率和實(shí)際情況下工作的穩(wěn)定性[11]。

2)智能化:環(huán)境監(jiān)測機(jī)器人前行的過程中會出現(xiàn)障礙物或道路崎嶇的困境,系統(tǒng)設(shè)定了障礙物安全距離閾值,當(dāng)真實(shí)距離小于閾值時,蜂鳴器發(fā)出警報,提示操作者更改行進(jìn)方向。

1.2 系統(tǒng)相關(guān)參數(shù)

系統(tǒng)設(shè)計(jì)中需滿足硬件的使用要求及設(shè)計(jì)要求,參數(shù)的具體范圍如表1所示。

表1 系統(tǒng)相關(guān)參數(shù)表

2 系統(tǒng)硬件設(shè)計(jì)

系統(tǒng)硬件涉及到的硬件模塊主要有主控模塊、溫濕度傳感器電路、光照傳感器電路、煙霧傳感器電路和超聲波測距電路。

2.1 主控模塊

系統(tǒng)主控選擇意法半導(dǎo)體公司的基于Cortex-M3內(nèi)核的32位微控制器STM32F103C8T6作為主芯片,系統(tǒng)最高工作頻率可達(dá)72 MHz,內(nèi)存包含64 Kb的Flash和20 Kb的SRAM。其系統(tǒng)主要由4個控制單元和4個受控單元(SRAM、FLASH、FSMC和AHB2APBx)組成,其中AHB是一種高性能的系統(tǒng)總線,用于連接CPU和DMA等高性能模塊,由主模塊、從模塊和基礎(chǔ)結(jié)構(gòu)3個部分過程;APB是一種高級外圍總線,主要用于UART等外設(shè)的連接,其主模塊是APB橋,數(shù)據(jù)的傳輸均由主模塊發(fā)起、從模塊回應(yīng)。

且含有3個16位的計(jì)時器和1個16位的PWM計(jì)時器、2個SPI、3個UART,37個GPIO口和12位的ADC,由于其外設(shè)資源眾多,工作的時鐘頻率不盡相同,因此采用5個時鐘源,有8 MHz的系統(tǒng)內(nèi)部時鐘振蕩器HSI,40 MHz的實(shí)時時鐘振蕩器。芯片的封裝體積小,性價比高,更具實(shí)用性。

2.2 溫濕度傳感器電路

溫濕度傳感器選擇的型號是DHT11,是一款經(jīng)校準(zhǔn)后傳輸數(shù)字信號的復(fù)合型傳感器。該傳感器與MCU間通過DATA數(shù)據(jù)線傳輸,傳輸方式屬于半雙工通信方式。數(shù)據(jù)傳輸格式為一次傳輸40 bit,順序依次為:8 bit的溫度整數(shù)部分+8 bit的溫度小數(shù)部分+8 bit的濕度整數(shù)部分+8 bit的濕度小數(shù)部分+8 bit的校驗(yàn)和[12]。通過校驗(yàn)位判斷傳輸過程是否出錯,提高傳輸?shù)姆€(wěn)定性和高效性。

其電路應(yīng)包含一個電阻式感濕元件和一個NTC感溫元件。外界濕度越高,電阻值越??; NTC感溫元件與1 kΩ的電阻串聯(lián),通過采集電阻兩端電壓值的變化來確定環(huán)境溫度。其中需要加入一個4.7 kΩ的上拉電阻,可以提高輸入信號的噪聲容限,增強(qiáng)電路的抗干擾能力。電路設(shè)計(jì)如圖2所示。

圖2 溫濕度傳感器的電路設(shè)計(jì)

2.3 光照傳感器電路

光照傳感器選擇的型號是GY-30,采用BH1750FVI芯片。該傳感器有5個端口,除VCC和GND外,還有SCL、SDA和ADDR,因此BH1750FVI通過IIC協(xié)議與MCU進(jìn)行通信,其中ADDR在該傳感器中的作用為控制讀寫指令,當(dāng)ARRD=0xB8/0x46時為寫操作,ARRD=0xB9/0x47時為讀操作。MCU傳遞8 bit控制字,由7 bit的發(fā)送器地址和1 bit的寫命令組成,BH1750FVI收到后應(yīng)答,再由MCU發(fā)送測量指令,BH1750FVI收到后發(fā)送高8位的數(shù)據(jù),在單片機(jī)應(yīng)答后,在傳送低8位數(shù)據(jù),此時一次通信結(jié)束[13]。

BH1750內(nèi)部由光敏二極管、運(yùn)算放大器、ADC采集和晶振等組成。光敏二極管將光信號轉(zhuǎn)變?yōu)殡娏餍盘?,?jīng)過運(yùn)算放大器放大后,通過ADC采集電壓,轉(zhuǎn)換成16位二進(jìn)制數(shù)存貯到內(nèi)部寄存器中。且光照強(qiáng)度越高,光電流越大,采集到的電壓越大。光照強(qiáng)度與電壓之間存在對應(yīng)關(guān)系,但二者之間不是嚴(yán)格的線性關(guān)系。BH1750FVI芯片內(nèi)部對于采集到的電壓又進(jìn)一步地進(jìn)行了線性處理,因此處理后的電壓與光照強(qiáng)度近似線性。

從BH1750采集到的數(shù)據(jù)并不是最終的光照強(qiáng)度,需要下列公式進(jìn)行轉(zhuǎn)換,其中,Value為實(shí)際值,Measured為測量值,trans為透光率,mode為模式:

(1)

圖3中,C3電源的濾波電容,能夠使工作性能更加穩(wěn)定。光照傳感器的電路設(shè)計(jì)如圖3所示。

圖3 光照傳感器電路設(shè)計(jì)

2.4 煙霧傳感器電路

煙霧傳感器選擇的型號是MQ-135。對空氣中的硫化物、氨氣和污染氣體的靈敏度高,是適應(yīng)森林火災(zāi)監(jiān)測、城市環(huán)保等多場合的低成本傳感器。MQ-135有兩種輸出:AOUT和DOUT,分別對應(yīng)模擬量輸出和數(shù)字量輸出,選擇模擬量輸出,將LM393的輸出電壓作為參考值,按照換算關(guān)系:電壓每升高0.1 V,實(shí)際被測氣體的濃度增加200 pm。滿足以下?lián)Q算公式:

(2)

煙霧傳感器常用電路有兩種,本文選用比較器電路監(jiān)控。將MQ135的2引腳,即隨煙霧濃度變化的直流信號做比較器的2腳,IN作為比較器的門檻電壓。當(dāng)煙霧濃度高于門檻電壓時,LM393的輸出電平為0 V,則D1燈亮;當(dāng)煙霧濃度低于門檻電壓時,LM393的輸出電平為VCC,D1燈滅。電路設(shè)計(jì)如圖4所示。

圖4 煙霧傳感器的電路設(shè)計(jì)

2.5 超聲波測距電路

超聲波測距模塊選擇的型號為HC-SR04,有4個端口:VCC、GND、Trig(控制端)、Echo(接收端)。其中模塊會自動發(fā)送方波,即通過TRIG端通過傳輸10 μs的高電平型號觸發(fā)測距,此時模塊會自動發(fā)送8個40 kHz的方波,并檢測是否有信號返回。若前方存在障礙物,則通過Echo輸出高電平,則距障礙物的距離dis(m)為:

(3)

其中:Vvoice為聲速,t為超聲波從發(fā)射到返回的時間。

圖5 超聲波測距的電路設(shè)計(jì)

超聲波電路主要由放大電路、選頻電路和比較電路組成。其中Net端是漏極開路。當(dāng)開始測距時,TRIG端發(fā)送一個10 μs的高電平觸發(fā)脈沖,此時NET端引腳置低,濾除干擾信號,此時該模塊發(fā)送8個40 kHz的脈沖來啟動定時器和開中斷,等待接收到接收觸發(fā)中斷信號后再關(guān)閉定時器、中斷,計(jì)算計(jì)時器的時間。在此電路中,用到兩級運(yùn)放,均由GS324運(yùn)算放大器放大,該放大器具有低輸入偏置電流、失調(diào)電流和快速電壓轉(zhuǎn)換率的優(yōu)點(diǎn)。在第一級放大中,放大倍數(shù)為6.2倍,二級放大倍數(shù)為7.5倍。超聲波的電路設(shè)計(jì)如圖5所示。

3 系統(tǒng)軟件設(shè)計(jì)

系統(tǒng)的軟件部分采用STM32F103C8T6系統(tǒng)進(jìn)行C語言的編輯,Keil 5 MDK編譯軟件作為系統(tǒng)的編譯平臺。

首先完成各類傳感器的初始化和藍(lán)牙配對,OLED顯示各傳感器參數(shù)的顯示界面,若此時按鍵未按下,機(jī)器人跟隨遠(yuǎn)程控制設(shè)備的控制狀態(tài)行進(jìn)或停止;若按鍵按下,則讀取對應(yīng)傳感器的數(shù)據(jù),并通過OLED更新顯示,并判斷此時距障礙物的距離是否小于安全閾值,若小于安全閾值,則蜂鳴器報警,發(fā)出警告。軟件設(shè)計(jì)部分主要分為三方面:藍(lán)牙配對、串口中斷算法和機(jī)器人行進(jìn)控制算法。具體流程如圖6所示。

圖6 軟件系統(tǒng)的設(shè)計(jì)流程圖

3.1 藍(lán)牙配對

環(huán)境監(jiān)測機(jī)器人的藍(lán)牙選擇了正點(diǎn)原子公司的HC-05模塊。該模塊是一款高性能、主從一體的藍(lán)牙串口,支持波特率范圍為4 800~1 382 400 baud,機(jī)器人的藍(lán)牙波特率設(shè)定為38 400 baud,8位數(shù)據(jù)位,1位停止位,無校驗(yàn)位。機(jī)器人傳輸讀取到的傳感器數(shù)據(jù)至遠(yuǎn)程控制設(shè)備,需通過藍(lán)牙的AT指令完成藍(lán)牙配對,并設(shè)置主機(jī)和從機(jī)。

實(shí)際應(yīng)用中的步驟如下:

1)進(jìn)入AT模式。將AT引腳置高,當(dāng)藍(lán)牙模塊state燈變?yōu)槁W,則表明已經(jīng)進(jìn)入AT模式;

2)恢復(fù)藍(lán)牙的默認(rèn)狀態(tài):打開串口調(diào)試助手,調(diào)用AT+ORGL/r/n 即恢復(fù)默認(rèn)設(shè)置;

3)設(shè)置藍(lán)牙名稱:配置第一個藍(lán)牙的名稱:AT+NAME= Bluetooth-Marster/r/n(主),第二個藍(lán)牙:AT+NAME= Bluetooth-Slave/r/n(從);

4)設(shè)置藍(lán)牙的配對碼為:AT+PSWD= 0000/r/n;

5)將第一個藍(lán)牙設(shè)置為主機(jī): AT+ROLE=1/r/n,并將第二個藍(lán)牙設(shè)置為從機(jī):AT+ROLE=0/r/n;

6)配置串口參數(shù):配置波特率、停止位和校驗(yàn)位:AT+UART=115 200,0,0/r/n,設(shè)置藍(lán)牙通信串口波特率為9 600,停止位1位,無校驗(yàn)位;

7)查詢地址: AT+ADDR?/r/n,得到地址為:2015:2:120758;

8)綁定藍(lán)牙: AT+CMODE=1/r/n(調(diào)節(jié)為綁定模式) AT+BIND=2015,2,120758/r/n

至此,藍(lán)牙已完成配對。此時機(jī)器人可實(shí)現(xiàn)與遠(yuǎn)程控制設(shè)備的數(shù)據(jù)傳輸。

3.2 串口中斷算法

3.2.1 遠(yuǎn)程控制設(shè)備的傳輸協(xié)議

藍(lán)牙完成配對后,通過串口傳輸數(shù)據(jù)。遠(yuǎn)程控制設(shè)備控制機(jī)器人運(yùn)動和按鍵選擇對應(yīng)的傳感器讀取數(shù)據(jù)需要通過串口函數(shù)USART_SendData()傳遞給機(jī)器人,串口通信協(xié)議如表2所示,采用數(shù)據(jù)幀格式:{0xFF、0xFE、spe_dat,x_value&0x00FF、x_value&0xFF00、y_value&0x00FF、y_value&0xFF00}。

表2 遠(yuǎn)程控制設(shè)備傳輸協(xié)議的語法解釋

由數(shù)據(jù)幀順序,0xFF和0xFE為數(shù)據(jù)幀的幀頭,兩個幀頭能夠大幅提高數(shù)據(jù)傳遞的準(zhǔn)確性,同時避免過多幀頭導(dǎo)致的數(shù)據(jù)傳輸效率低的問題。spe_dat是中斷檢測到的被按下按鍵的值,取值為0-4,0則是未按下,無需檢測,1-4分別對應(yīng)遠(yuǎn)程控制設(shè)備上的4個按鍵、也對應(yīng)檢測平臺的4個傳感器:空氣質(zhì)量傳感器、溫濕度傳感器、光照傳感器和超聲波傳感器。x_value&0x00FF和x_value&0xFF00分別代表x_value的低八位和高八位,y_value&0x00FF和y_value&0xFF00分別代表y_value的第八位和高八位。通過將高八位左移八位,與低八位相加,即可恢復(fù)x_value和y_value的原始數(shù)據(jù)。

x_value=x_value&0x00FF+x_value&0xFF00?8

(4)

y_value=y_value&0x00FF+y_value&0xFF00?8

(5)

檢測平臺獲得x_value和y_value的原數(shù)據(jù)后,可按照機(jī)器人的行進(jìn)控制算法,計(jì)算運(yùn)行方向。

3.2.2 機(jī)器人的傳輸協(xié)議

檢測平臺接收到通過串口傳遞來的按鍵數(shù)值后,讀取響應(yīng)的傳感器數(shù)據(jù),將讀取到的參數(shù)再次通過串口傳輸,串口傳輸協(xié)議如表3所示。

由于一次僅傳輸一個傳感器的讀取數(shù)據(jù),此次的傳輸?shù)木唧w值根據(jù)檢測平臺接收到的按鍵值變化。當(dāng)檢測平臺收到遠(yuǎn)程控制設(shè)備傳來的參數(shù)spe_dat=1時,此時對應(yīng)空氣質(zhì)量傳感器,讀取到空氣質(zhì)量數(shù)據(jù)air,則Temp1此時為空氣質(zhì)量air的低八位,Temp2此時為空氣質(zhì)量air的高八位,光照傳感器和距離傳感器的格式也是如此。當(dāng)機(jī)器人收到遠(yuǎn)程控制設(shè)備傳來的參數(shù)spe_dat=2時,此時對應(yīng)溫濕度傳感器,讀取到溫度數(shù)據(jù)wendu、濕度數(shù)據(jù)shidu,則Temp1此時為溫度值,Temp2此時為濕度值。

表3 系統(tǒng)間傳輸協(xié)議的語法解釋

3.3 檢測平臺行進(jìn)控制算法

3.3.1 舵機(jī)控制算法

舵機(jī)是一種帶有輸出軸的伺服電機(jī),是由可變寬度的脈沖信號進(jìn)行控制的。PWM信號是脈寬調(diào)制信號,即通過改變脈沖時間寬度實(shí)現(xiàn)信號控制,舵機(jī)的PWM信號控制周期是20 ms,基準(zhǔn)寬度為1.5 ms,即對應(yīng)圖7中的中間位置,此時的轉(zhuǎn)動角度為90°。脈沖持續(xù)時間每增加/減少0.5 ms,對應(yīng)轉(zhuǎn)動順時針/逆時針45°。本系統(tǒng)中,檢測平臺選用的舵機(jī)型號為MG995R,為180°可轉(zhuǎn)動舵機(jī),可控制的角度范圍為0~180°,脈沖寬度范圍為0.5~2.5 ms[14],脈沖范圍對應(yīng)的多級轉(zhuǎn)動如圖7所示。

圖7 PWM信號控制舵機(jī)示意圖

1)分頻值的確定:脈沖輸出是利用通用定時器通過GPIO引腳輸出。檢測平臺的主控中選用定時器3,先初始化TIM3,選擇向上計(jì)數(shù)模式[15]。由舵機(jī)信號的控制周期20 ms計(jì)算對應(yīng)頻率脈沖50 Hz。

設(shè)置自動重裝載寄存器周期的值為1 999,TIMx時鐘頻率的預(yù)分頻值為719,根據(jù)分頻計(jì)算公式可知:

(6)

式中,arr為PWM輸出高電平的計(jì)數(shù)時間,psc為預(yù)分頻計(jì)數(shù)器的值。

2)由信號控制舵機(jī)轉(zhuǎn)動:定時器輸出模式選擇PWM1模式。在輸出不同高電平占空比的過程中需要通過調(diào)用定時器通道1比較函數(shù)TIM_SetCompare1(TIM2,arr)來裝填TIMx->CCR1寄存器的值。第一個參數(shù)TIM2是操作的定時器,第二個參數(shù)arr是輸出PWM的高電平計(jì)數(shù)時間。通過設(shè)定不同的計(jì)數(shù)時間,就可以輸出不同高電平占空比的PWM方波[16]。通過輸出的舵機(jī)信號來控制檢測平臺的方向轉(zhuǎn)動角度,定義函數(shù)Steer_Angle(u16arr);

void Steer_Angle(u16 arr)

{

TIM_SetCompare1(TIM2,arr);

}

其中,arr的值為機(jī)器人接收到的搖桿模塊x值經(jīng)過轉(zhuǎn)換后,范圍在[50,250]之間。將arr值裝填進(jìn)入TIMx->CCR1之后,arr的值將會與TIMx_CNT寄存器的計(jì)數(shù)值對比,當(dāng)計(jì)數(shù)值低于arr時引腳為高電平,當(dāng)計(jì)數(shù)值高于arr時引腳為低電平,因此,通過控制arr的值就可以控制舵機(jī)輸出對應(yīng)的角度中arr的值與角度轉(zhuǎn)換關(guān)系如下所示:

(7)

其中:θ為舵機(jī)輸出角度,當(dāng)其為90°時,檢測平臺方向回正。

3.3.2 檢測平臺行進(jìn)控制算法

圖8為行進(jìn)控制算法的流程圖,通過遠(yuǎn)程控制設(shè)備的搖桿模塊轉(zhuǎn)動控制檢測平臺前進(jìn)、后退和左右轉(zhuǎn)彎的方向,搖桿模塊具有(X,Y)2軸模擬輸出,且輸出電壓值x和y的范圍為0~4 095。x和y的數(shù)值由藍(lán)牙通過USART通信傳遞給檢測平臺的主控。由于檢測平臺是由舵機(jī)控制轉(zhuǎn)向,因此將轉(zhuǎn)化后用于控制舵機(jī)的參數(shù)tempx控制范圍在[50,250],對應(yīng)舵機(jī)的占空比(0.5~2.5 ms),同時對應(yīng)舵機(jī)的轉(zhuǎn)動角度[-90°,90°]。將控制方向的參數(shù)tempy控制范圍在[-100,100],利用轉(zhuǎn)換公式即可完成轉(zhuǎn)換:

tempx=150-(x-2 048)*0.048 828 125

(8)

tempy=(y-2 048)*0.048 828 125

(9)

圖8 機(jī)器人行進(jìn)控制算法流程圖

控制前進(jìn)/后退方向:當(dāng)tempy>0時,標(biāo)記方向dir=1,即檢測平臺前進(jìn);

當(dāng)tempy<0時,標(biāo)記方向dir=0,即檢測平臺后退,并將取反,取絕對值。

控制左右轉(zhuǎn)彎方向:由于tempx和tempy的范圍不一致,因此先通過公式

tx=tempx-150

(10)

因此將tx的范圍控制為[-100,100]。行進(jìn)速度為:

(11)

通過函數(shù)Steer_Angle(tempx)控制左右轉(zhuǎn)彎角度,Motor_Power(speed,dir)函數(shù)控制行進(jìn)方向和速度。

此部分函數(shù)定義為Motor_Power(power,dir), power為速度,dir為前進(jìn)和后退的標(biāo)志位,代碼如下:

void Motor_Power(u16 power,u8 dir)

{

u8 arr;

if(dir==1)

{

arr = power;

TIM_SetCompare1(TIM4,arr);

TIM_SetCompare3(TIM4,arr);

TIM_SetCompare2(TIM4,0);

TIM_SetCompare4(TIM4,0);

}

else

{

arr = power;

TIM_SetCompare1(TIM4,0);

TIM_SetCompare3(TIM4,0);

TIM_SetCompare2(TIM4,arr);

TIM_SetCompare4(TIM4,arr);

}

}

當(dāng)計(jì)算出的y<0時,dir=0,檢測平臺后退;計(jì)算出的y>0時,dir=1,檢測平臺前進(jìn)。此處調(diào)用了庫函數(shù)TIM_SetCompare1 (TIM4,arr),該函數(shù)的作用是設(shè)置TIM4->CCR1的值,通過比較TIM4_CNT與TIM4->CCR1, 就可以控制定時器引腳高低電平的輸出,進(jìn)而通過設(shè)定不同的arr就可以輸出不同高電平占空比的PWM波來類比不同的電壓模擬量,以此來控制檢測平臺前行的速度。

由上文的舵機(jī)控制算法和檢測平臺行進(jìn)控制算法,就可以將遠(yuǎn)程控制設(shè)備的X,Y雙軸模擬偏移量,通過藍(lán)牙傳輸給檢測平臺,進(jìn)而控制其方向和速度。

4 實(shí)驗(yàn)測試及結(jié)果分析

4.1 測試步驟

為了驗(yàn)證本文設(shè)計(jì)的基于嵌入式的可移動環(huán)境監(jiān)測機(jī)器人在現(xiàn)實(shí)生活中的環(huán)境監(jiān)測準(zhǔn)確性,與各試驗(yàn)點(diǎn)的真實(shí)環(huán)境數(shù)據(jù)進(jìn)行對比。實(shí)驗(yàn)地點(diǎn)分別在操場、實(shí)驗(yàn)室和地下停車場,各試驗(yàn)點(diǎn)經(jīng)過30次實(shí)驗(yàn)。本次實(shí)驗(yàn)主要針對傳感器讀取的準(zhǔn)確度測試[17-18],同時判斷其遇障報警功能。

4.2 測試結(jié)果

首先測試環(huán)境狀態(tài)監(jiān)測機(jī)器人的遠(yuǎn)程控制功能是否正常,通過對檢測平臺及遠(yuǎn)程控制設(shè)備進(jìn)行供電,待藍(lán)牙連接完成后,推動搖桿進(jìn)行上下左右移動的測試,測試結(jié)果表明,檢測平臺可以根據(jù)發(fā)出的指示進(jìn)行運(yùn)動,當(dāng)改變搖桿在Y軸上的狀態(tài)時,檢測平臺會相應(yīng)的向前向后變速行駛,當(dāng)改變搖桿在X軸上的狀態(tài)時,檢測平臺的舵機(jī)會相應(yīng)的轉(zhuǎn)動,決定檢測平臺的前進(jìn)方向。

檢測平臺的舵機(jī)跟隨遠(yuǎn)程控制設(shè)備的轉(zhuǎn)動正常行駛,經(jīng)過實(shí)際的測試表明,檢測平臺可以很好的聽從遠(yuǎn)程控制設(shè)備的命令進(jìn)行移動,可以滿足日常場景下的遠(yuǎn)程控制需求。

接著對各傳感器的檢測功能進(jìn)行測試,看其是否能夠傳回實(shí)時環(huán)境的目標(biāo)監(jiān)測數(shù)據(jù),傳送回來的數(shù)據(jù)在OLED上更新顯示。

OLED顯示屏上包括了DHT11溫濕度傳感器、GY-30光照傳感器、HCSR04超聲波傳感器、MQ135空氣質(zhì)量檢測傳感器回傳回來的各種數(shù)據(jù),從上到下分別是距離、溫度、濕度、光照強(qiáng)度、空氣質(zhì)量等環(huán)境監(jiān)測狀態(tài)[19]。實(shí)驗(yàn)的測試結(jié)果如下:

經(jīng)過30次測試,部分測試數(shù)據(jù)如表4所示。

表4 實(shí)驗(yàn)室部分測試結(jié)果

操場測試結(jié)果:經(jīng)過30次測試,部分測試數(shù)據(jù)如表5所示。

表5 操場部分測試結(jié)果

地下停車場測試結(jié)果:經(jīng)過30次測試,部分測試數(shù)據(jù)如表6所示。

4.3 測試結(jié)果分析

由上述在3個不同的測試地點(diǎn)中,檢測平臺各傳感器的測試結(jié)果和實(shí)際結(jié)果對比基本一致,綜合準(zhǔn)確率達(dá)到97.7%。

表6 地下停車場部分測試結(jié)果

但在實(shí)驗(yàn)室和地下停車場時,由于在室內(nèi)時受到照明燈的影響,在不同的位置上光照強(qiáng)度會由于有輕微波動,因此在實(shí)驗(yàn)室和地下停車場的光照強(qiáng)度有波動。本次測試中,將安全距離設(shè)定為10 cm,在實(shí)驗(yàn)過程中遇到障礙物時報警功能正常。綜上,實(shí)驗(yàn)結(jié)果達(dá)到預(yù)期目標(biāo)。

5 結(jié)束語

未來無論在消防救助領(lǐng)域還是在狹隘、復(fù)雜空間下的環(huán)境監(jiān)測和高污染地區(qū)的環(huán)境檢測等,可移動的環(huán)境監(jiān)測機(jī)器人都將發(fā)揮巨大的作用,推進(jìn)智慧環(huán)保落地,檢測危險環(huán)境、保護(hù)消防員安全[20-21]。本文設(shè)計(jì)的基于嵌入式的可移動環(huán)境監(jiān)測機(jī)器人能夠通過遠(yuǎn)程控制平臺的搖桿控制檢測平臺行駛,并通過檢測平臺上的傳感器完成對周圍環(huán)境的高精度檢測,通過藍(lán)牙傳遞回遠(yuǎn)程控制平臺,并通過OLED顯示實(shí)時的監(jiān)控數(shù)據(jù)。經(jīng)過多場景測試,環(huán)境監(jiān)測機(jī)器人具有較高的穩(wěn)定性,各項(xiàng)指標(biāo)達(dá)到了預(yù)期結(jié)果,執(zhí)行任務(wù)時運(yùn)行穩(wěn)定。未來考慮將藍(lán)牙換用傳輸距離更遠(yuǎn)的WIFI模塊;加入攝像頭模塊,返回檢測現(xiàn)場環(huán)境狀態(tài)和拓展環(huán)境監(jiān)測的指標(biāo)[22]。

猜你喜歡
搖桿舵機(jī)藍(lán)牙
藍(lán)牙音箱的直線之美
曲柄搖桿機(jī)構(gòu)的急回程度分析與探討*
曲柄與搖桿擺角的關(guān)系
基于ANSYS的曲柄搖桿機(jī)構(gòu)的仿真分析及優(yōu)化設(shè)計(jì)
含齒隙彈載舵機(jī)的全局反步模糊自適應(yīng)控制
簡單、易用,可玩性強(qiáng)Q AcousticsBT3藍(lán)牙音箱
適合自己的才是最好的 德生(TECSUN) BT-50藍(lán)牙耳機(jī)放大器
基于dsPIC單片機(jī)的飛艇舵機(jī)控制實(shí)現(xiàn)
基于高速同步485總線通信的多通道舵機(jī)控制器設(shè)計(jì)
緊急:藍(lán)牙指尖陀螺自燃!安全隱患頻出