石偉 楊子龍 朱高陽
【摘要】本文在超聲波測距的原理提出了一種導(dǎo)盲眼鏡的設(shè)計(jì)方法。該設(shè)計(jì)以51單片機(jī)為主控核心,將超聲波測距后的距離等信息通過語音合成技術(shù)實(shí)時播報(bào)出來。該系統(tǒng)在調(diào)整校正后有效距離可達(dá)4m以上,精度為2cm。有效地解決了盲人安全行走的問題。
【關(guān)鍵詞】超聲波;測距;語音合成技術(shù)
一、背景及意義
中國是全世界盲人最多的國家之一,目前我國眼部殘疾人士多達(dá)600萬,占世界眼疾人數(shù)的18%。眼部疾病在中國也是一個主要的公共衛(wèi)生問題。由于生理上的缺陷,盲人在生活、工作等方面有著諸多不便。在當(dāng)今人體可穿戴設(shè)備快速發(fā)展下,如何設(shè)計(jì)出盲人可穿戴設(shè)備對盲人和社會具有十分重要的意義。
二、超聲波測距的實(shí)現(xiàn)
(一)超聲波測距原理
超聲波是一種振動頻率高于20 kHz的機(jī)械波。目前超聲波測距方法主要有相位檢測法、聲波幅值檢測法和渡越時間法三種[1]。本設(shè)計(jì)采用超聲脈沖回波渡越時間法。超聲波傳感器在發(fā)射超聲波時開始計(jì)時,當(dāng)途中遇到障礙物時立即回傳,接收器接收到反射波時停止計(jì)時。設(shè)超聲波脈沖由傳感器發(fā)出到接受所經(jīng)歷的時間為t,超聲波在空氣中的傳播速度為340m/s,則傳感器到目標(biāo)的距離S=340*t/2m。這就是渡越時間法的測量原理。
圖1 超聲波測距原理框圖
(二)超聲波測距的誤差分析
根據(jù)超聲波測距公式s=c×t,主要分為以下兩個方面的誤差:
1.時間誤差
當(dāng)要求測距誤差小于1mm時,已知超聲波速度C=344m/s(20℃室溫),忽略聲速的傳播誤差。測距誤差△t<(0.001/344)≈0.000002907s即2.907μs[2]。
從而可知在超聲波傳播速度準(zhǔn)確的前提下當(dāng)要求誤差在毫米級時,時間差在微米級。由于89C51單片機(jī)的晶振頻率為11.1592MHz,因此使得單片機(jī)能達(dá)到微米級的精度,從而確保誤差在1mm之內(nèi)。
2.超聲波傳播速度誤差
超聲波傳播受環(huán)境溫度影響比較明顯。溫度為0℃時超聲波速度是344m/s,30℃時達(dá)到349m/s。一般溫度每升高一度,傳播速度大約增加0.6m/s。若超聲波在30℃的環(huán)境下以0℃的聲速測量100m距離所引起的測量誤差將達(dá)到5m,測量1m誤差將達(dá)到5cm。解決溫度帶來的影響一般采用溫度補(bǔ)償法[3]。由于本設(shè)計(jì)要求測量距離在5m之內(nèi),因此綜合考慮可以忽略這種誤差。
三、硬件電路的設(shè)計(jì)
(一)超聲波發(fā)射電路
超聲波發(fā)射電路由超聲波探頭和超聲波放大器組成。超聲波探頭將電信號轉(zhuǎn)換為機(jī)械波發(fā)射出去,而單片機(jī)所產(chǎn)生的40 kHz的方波脈沖需要進(jìn)行放大才能將超聲波探頭驅(qū)動將超聲波發(fā)射出去,所以發(fā)射驅(qū)動實(shí)際上就是一個信號的放大電路,本設(shè)計(jì)由單片機(jī)產(chǎn)生40KHz的方波,選用74LS04芯片進(jìn)行信號放大(見圖2)。
(二)超聲波接收電路
由于超聲波在空氣中的傳播過程中會發(fā)生衰減,如果距離較遠(yuǎn),那么接收到的超聲波信號就會比較微弱,因此需要對接收到的信號進(jìn)行放大。超聲波接收電路主要是由集成電路CX20106A芯片電路構(gòu)成的,CX20106A芯片電路可以對超聲波信號進(jìn)行放大、限幅、帶通濾波、峰值檢波、整形、比較等功能,比較完之后超聲波接收電路會輸出一個低電平到單片機(jī)去請求中斷,此時單片機(jī)停止計(jì)時,并開始去進(jìn)行數(shù)據(jù)的處理。
CX20106A芯片的前置放大器具有自動增益控制的功能,當(dāng)測量的距離比較近時,放大器不會過載;而當(dāng)測量距離比較遠(yuǎn)時,超聲波信號微弱,前置放大器就有較大的放大增益效果。CX20106A芯片的5腳在外接電阻對它的帶通濾波器的頻率進(jìn)行調(diào)節(jié),而且不用再外接其他的電感,能夠很好地避免外加磁場對芯片電路的干擾,而且它的可靠性也是比較高的。CX20106A芯片電路本身就具有很高的抗干擾的能力,而且靈敏度也比較高,所以,能滿足本設(shè)計(jì)的要求。
圖3 超聲波接收電路圖
(三)語音合成模塊
此模塊電路采用SYN6658語音合成芯片。SYN6658通過UART接口或SPI接口通訊方式,接受帶合成的文本數(shù)據(jù),實(shí)現(xiàn)文本到語音的轉(zhuǎn)換。具有清晰、自然、準(zhǔn)確的中文語音合成效果。可采用GB2312、GBK、BIG5和Unicode四種編碼方式[4]。
圖4 語音合成模塊電路圖
主控制器和SYN6658語音合成芯片之間通過UART接口或SPI接口連接,控制器可通過通訊接口向SYN6658語音合成芯片發(fā)送控制命令和文本,SYN6658語音合成芯片把接收到的文本合成為語音信號輸出,輸出的信號經(jīng)功率放大器進(jìn)行放大后連接到喇叭進(jìn)行播放(見圖4)。
四、軟件設(shè)計(jì)
主程序?qū)φ麄€單片機(jī)系統(tǒng)進(jìn)行初始化后,單片機(jī)提供一個10us以上的脈沖觸發(fā)信號來觸發(fā)超聲波發(fā)射電路,同時將定時器T0啟動,在接收到超聲波信號后關(guān)閉定時器,根據(jù)根據(jù)時間差計(jì)算出距離,然后調(diào)用語音播放程序,根據(jù)實(shí)際距離來選擇播報(bào)不同的信息。
圖5 總系統(tǒng)流程圖 ? ? ? ? ? 圖6 語音播放流程圖
部分程序:
#include
#include
void main(void)
{unsigned char TempCyc;
Delay400Ms();
LCMInit();
Delay5Ms();
DisplayListChar(0, 0, mcustudio);
DisplayListChar(0, 1, email);
ReadDataLCM();
for(TempCyc=0;TempCyc<10;TempCyc++)
Delay400Ms();
DisplayListChar(0, 1, Cls);
while(1)
{
TMOD=0x01;
TH0=0;
TL0=0;
ET0=1;
EA=1;
while(1)
{
StartModule();
//DisplayOneChar(0,1,ASCII[0]);
while(!RX);
TR0=1;
while(RX);
TR0=0;
Conut();
delayms(80);
} }}
五、結(jié)語
本系統(tǒng)經(jīng)過多次試驗(yàn),測試所得結(jié)果與設(shè)計(jì)要求基本一致。該超聲波測距的導(dǎo)盲設(shè)計(jì)有效距離可達(dá)到3.8m,測量精度為2.0cm,同時可以實(shí)時地通過語音模塊播報(bào)提示,具有很好的導(dǎo)航功能,能夠能夠滿足盲人導(dǎo)航器的設(shè)計(jì)要求,為盲人安全行走提供了保障。
參考文獻(xiàn)
[1]時德鋼,劉曄,王峰,韋兆碧,王采堂.超聲波精確測距的研究[J].計(jì)算機(jī)測量與控制,2002,10(7).
[2]紀(jì)良文,蔣靜坪.機(jī)器人超聲測距數(shù)據(jù)的采集與處理[J].電子技術(shù)應(yīng)用,2006.
[3]白順先.超聲波測距系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].高校理科研究,2000(08).
[4]SYN6588中文語音合成芯片數(shù)據(jù)手冊[Z].北京:北京宇音天下科技有限公司,2012.
基金項(xiàng)目:國家級大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計(jì)劃項(xiàng)目(教高司函[2013]102號)。
作者簡介:石偉(1991—),男,山東臨沂人,大學(xué)本科,現(xiàn)就讀于曲阜師范大學(xué)信息科學(xué)與工程學(xué)院,研究方向:電子信息科學(xué)與技術(shù)。