陳浩 王軍民



摘 要:系統(tǒng)以Arduino為核心,結(jié)合HC-SR04超聲測(cè)距傳感器,三維重力加速度傳感器GY-521 MPU-6050,XY-V17B語音模塊,LED顯示屏,實(shí)現(xiàn)距離和傾角實(shí)時(shí)檢測(cè)并播放語音警報(bào)的功能。通過軟件代碼實(shí)現(xiàn)語音模塊按條件自動(dòng)串口觸發(fā),安全、穩(wěn)定、可靠。此系統(tǒng)能進(jìn)行實(shí)時(shí)測(cè)控并發(fā)出警報(bào)提示,基于此功能,能夠較好的應(yīng)用于橋梁裂縫的檢測(cè)。
關(guān)鍵詞:Arduino;HC-SR04;GY-521 MPU-6050;XY-V17B;語音警報(bào)
1 概述
橋梁裂縫不可避免的會(huì)存在,因此對(duì)其裂縫的檢測(cè)是對(duì)潛在危險(xiǎn)防范于未然的必要步驟。然而橋梁裂縫的檢測(cè)卻是一項(xiàng)高危險(xiǎn)性的工作,既要能正常檢測(cè)維護(hù)橋梁又要減少人身危險(xiǎn)系數(shù),本次研究正是為解決這些問題的。
系統(tǒng)本身體積小,功耗低,可以安置于無人機(jī)上發(fā)揮作用。利用傾角模塊檢測(cè)橋墩是否變形,橋梁有裂縫時(shí)所檢測(cè)到的傾角也明顯不一樣,可根據(jù)自己的設(shè)定值,待傾角達(dá)設(shè)定值時(shí)發(fā)出警報(bào),也可有此大概估計(jì)裂縫大小。此外,測(cè)距模塊可以測(cè)出裂縫深度以及防止無人機(jī)在靠近橋梁的過程中發(fā)生碰撞,具體是根據(jù)提前設(shè)定好的距離數(shù)據(jù)和語音文件發(fā)出警報(bào),然后人為遠(yuǎn)距離調(diào)控。
2 系統(tǒng)的整體設(shè)計(jì)方案
系統(tǒng)的主要硬件部分由Arduino板,超聲測(cè)距傳感器HC-SR04,三維重力加速度傳感器GY-521 MPU-6050模塊,控制語音播放模塊XY-V17B,LED顯示屏,語音小喇叭,導(dǎo)線若干、3.3V和5V直流電源模塊等等。(整體設(shè)計(jì)框圖如下圖1)
3 硬件設(shè)計(jì)介紹
3.1 Arduino簡(jiǎn)述
Arduino是一款便捷靈活、方便上手的開源電子原型平臺(tái)。包含硬件(各種型號(hào)的Arduino板)和軟件集成環(huán)境(IDE)。它構(gòu)建于開放原始碼simple I/O介面版,有跟Java、C語言的Processing/Wiring相似的開發(fā)環(huán)境。主要包含兩個(gè)的部分:一是用來做電路連接的Arduino電路板;另外一個(gè)則是Arduino IDE,即計(jì)算機(jī)中的程序開發(fā)環(huán)境。在IDE中編寫程序代碼,然后上傳到Arduino電路板后,程序便會(huì)告訴Arduino電路板要做些什么,這主要是AVR控制器起作用。Arduino具有開源的硬件原理圖、電路圖、IDE軟件及核心庫(kù)文件,在開源協(xié)議范圍內(nèi)里可以任意修改原始設(shè)計(jì)及相應(yīng)代碼,還可以根據(jù)自己需求設(shè)計(jì)添加新的庫(kù),靈活自由度高。由此,它更受相關(guān)愛好者、藝術(shù)家、設(shè)計(jì)師和對(duì)于“互動(dòng)”有興趣的人群的青睞。
Arduino能通過各種各樣的傳感器來感知外部環(huán)境,通過控制燈光、馬達(dá)和其他的裝置來反饋、影響環(huán)境。板子上的AVR可以通過Arduino的編程語言來編寫程序,編譯成二進(jìn)制文件,燒錄進(jìn)AVR。對(duì)Arduino的編程是通過Arduino編程語言(基于Wiring)和Arduino開發(fā)環(huán)境(基于Processing)來實(shí)現(xiàn)的。
3.2 HC-SR04
此模塊性能穩(wěn)定,測(cè)度距離精確,模塊高精度,盲區(qū)小。(電路圖如圖2)
超聲波測(cè)距模塊的工作原理:
(1)采用IO口TRIG觸發(fā)測(cè)距,給>=10μS時(shí)間的高電平信號(hào);
(2)自動(dòng)發(fā)8個(gè)40kHz的方波,然后檢測(cè)信號(hào)返回情況;
(3)當(dāng)有信號(hào)返回時(shí),通過I/O口ECHO輸出一個(gè)高電平,那么高電平持續(xù)的時(shí)間就是超聲波從發(fā)射到返回的時(shí)間(注意是兩倍的距離)。故有如下計(jì)算式:
S=Vo*TH /2 S:測(cè)試距離;Vo:空氣中聲速,340m/s;TH:高電平時(shí)間
(4)本模塊使用方法簡(jiǎn)單,在控制口發(fā)一個(gè)10μS以上的高電平,然后在接收口等待高電平輸出。一有輸出就可以打開定時(shí)器計(jì)時(shí),當(dāng)這個(gè)輸出口變?yōu)榈碗娖綍r(shí)就可以讀取定時(shí)器的值,這時(shí)就可得到此次測(cè)距的時(shí)間的兩倍,方可算出距離。如此不斷的周期性重復(fù)此步驟測(cè)量,即可以達(dá)到你移動(dòng)時(shí)測(cè)量的值。
3.3 GY-521MPU-6050模塊
GY-521MPU6050 是三維角度傳感器,為全球首例集成六軸傳感器的運(yùn)動(dòng)處理組件。六軸,代表的是它內(nèi)置了一個(gè)三軸MEMS陀螺儀、一個(gè)三軸MEMS加速度計(jì),一個(gè)數(shù)字運(yùn)動(dòng)處理引擎(DMP)。可以把原始數(shù)據(jù)直接轉(zhuǎn)化為四元數(shù)據(jù)輸出,就很方便的計(jì)算出姿態(tài)數(shù)據(jù)并在液晶屏和上位機(jī)上顯示。這樣大大降低了MCU的負(fù)擔(dān),從而有更多的時(shí)間去處理其他事件,提高系統(tǒng)實(shí)時(shí)性。
3.4 XY-V17B語音播放模塊
智能語音模塊,集成IO分段觸發(fā),UART串口控制,ONE_line單總線串口控制,標(biāo)準(zhǔn)MP3等功能;支持MP3,WAV解碼格式,最大支持32GTF卡存儲(chǔ),可通過USB數(shù)據(jù)線連接電腦更新TF卡存儲(chǔ)音頻文件。本次采用的是UART串口觸發(fā)。
4 系統(tǒng)的軟件環(huán)境
整個(gè)系統(tǒng)功能的實(shí)現(xiàn)基于Arduino IDE編程開發(fā)環(huán)境。Arduino IDE是一種比較專業(yè)的Arduino開發(fā)工具,主要用于Arduino程序的編寫和開發(fā),有開放源代碼的電路圖設(shè)計(jì)、支持ISP在線燒、自定義庫(kù)的選擇可容程度高等優(yōu)勢(shì),同時(shí)能兼容Flash、Max/Msp、VVVV、PD、C、Processing等多種程序。
4.1 編程環(huán)境
cm =(temp * 17)/1000;
Serial.print("Echo =");
Serial.print(temp);
Serial.print(" | | Distance = ");
Serial.print(cm);
Serial.println("cm");
HC-SR04測(cè)距程序,最后換算成厘米單位輸出。基于該模塊測(cè)距原理,實(shí)際測(cè)量值需除以2。
{
Unsigned char hexdata[8]= {0xAA,0x16,0x03,0x00,0x00,0x01,0xCC};
Serial.write(hexdata,8);
}
上述是距離警報(bào)UART觸發(fā)程序。該段程序調(diào)用SD卡事先存儲(chǔ)的MP3語音文件00001,提醒距離過近存在安全隱患。警報(bào)距離是設(shè)定值,可自行更改。
{
unsigned char hexdata[8]= {0xAA,0x16,0x03,0x00,0x00,0x02,0xCC};
Serial.write(hexdata,8);
}
上述是傾斜角警報(bào)UART觸發(fā)程序。該段程序調(diào)用SD卡存儲(chǔ)的MP3語音文件00002,提醒傾斜度過大存在安全隱患。警報(bào)的角度是設(shè)定值,亦可自行更改。
當(dāng)距離與角度均達(dá)設(shè)定值時(shí),哪項(xiàng)條件先達(dá)播放哪段語音,然后再播放另一段已達(dá)條件的語音警報(bào),無功能上的沖突。
4.2 關(guān)于UART
UART是一種通用串行數(shù)據(jù)總線,用于異步通信,有可編程的波特率、紅外傳送(接收)、1~2個(gè)停止位、5~8 bit數(shù)據(jù)位寬、校驗(yàn)位(奇、偶校驗(yàn))。UART之間以全雙工方式傳輸數(shù)據(jù),最精確的連線方法只有3根電線:TxD用于發(fā)送數(shù)據(jù),RxD用于接收數(shù)據(jù),Gnd用于給雙發(fā)提供參考電平,連線如下圖3:
5 結(jié)語
本系統(tǒng)以Arduino為控制基礎(chǔ),結(jié)合LED顯示器,測(cè)距傳感器,三維重力加速度傳感器,MP3語音播放模塊等,實(shí)現(xiàn)距離以及傾角平衡的安全警報(bào),并能實(shí)時(shí)顯示距離值和傾斜角度。傳感器將感測(cè)到的信號(hào)傳遞給Arduino,由Arduino控制器程序激發(fā)串口命令使得語音自動(dòng)播放,另由顯示屏及時(shí)顯示傳感器數(shù)據(jù)信息,通過人為控制端的后期數(shù)據(jù)處理,遠(yuǎn)距離操控,對(duì)于橋梁裂縫的檢測(cè)起到良好的應(yīng)用效果。
參考文獻(xiàn):
[1]張秋艷,張俊霞,楊洋.基于MSP430的多功能智能小車設(shè)計(jì)[J].信息技術(shù),2018(11):54-58.
[2]李德?lián)P.淺談基于ardunio的超聲波測(cè)距系統(tǒng)設(shè)計(jì)[J].民營(yíng)科技,2016(11):58.
[3]吳迪.基于Arduino的智能循跡小車研究[J].課程教育研究,2019(04):235-236.
作者簡(jiǎn)介:陳浩(1994-),男,漢族,長(zhǎng)江大學(xué)碩士研究生,研究方向:地球物理儀器。
*通訊作者:王軍民。