挑戰(zhàn)杯論文(盲人避障)_第1頁(yè)
挑戰(zhàn)杯論文(盲人避障)_第2頁(yè)
挑戰(zhàn)杯論文(盲人避障)_第3頁(yè)
挑戰(zhàn)杯論文(盲人避障)_第4頁(yè)
挑戰(zhàn)杯論文(盲人避障)_第5頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

摘要在日常生活中,盲人屬于弱勢(shì)群體,行動(dòng)及其不方便,外出行走時(shí)需要用拐杖或類似的代替物,這樣既不方便同時(shí)存在安全隱患。本系統(tǒng)具有輔助盲人進(jìn)行避障的功能,利用了HY-SRF05超聲波模塊進(jìn)行超聲波檢測(cè)、采用ISD4004語(yǔ)音模塊作為語(yǔ)音提示,結(jié)合單片機(jī)系統(tǒng)實(shí)現(xiàn)超聲波測(cè)距語(yǔ)音報(bào)警的功能。文中對(duì)超聲波測(cè)距原理、硬件電路結(jié)構(gòu)和單片機(jī)軟件系統(tǒng)等進(jìn)行了論述,還對(duì)系統(tǒng)性能進(jìn)行了可行性分析。本系統(tǒng)具有成本低,可靠性強(qiáng),較好便攜性,安裝使用方便等優(yōu)點(diǎn),具有人機(jī)交互等智能化功能,為廣大盲人朋友提供了一種新型的避障輔助器材,具有一定的市場(chǎng)推廣空間。關(guān)鍵詞:HY-SRF05超聲波模塊、ISD4004語(yǔ)音模塊、單片機(jī)系統(tǒng)、智能避障目錄TOC\o"1-5"\h\z\o"CurrentDocument"摘要I\o"CurrentDocument"引言1\o"CurrentDocument"超聲波測(cè)距基本原理1系統(tǒng)硬件設(shè)計(jì)23.1系統(tǒng)要求2\o"CurrentDocument"3.2系統(tǒng)結(jié)構(gòu)23.3主要器件資料33.4硬件電路8單片機(jī)程序設(shè)計(jì)9\o"CurrentDocument"4.1程序及算法分析94.2程序流程圖114.3程序代碼12\o"CurrentDocument"Proteus仿真18系統(tǒng)調(diào)試206.1實(shí)驗(yàn)測(cè)試20\o"CurrentDocument"6.2實(shí)驗(yàn)數(shù)據(jù)20\o"CurrentDocument"6.3誤差分析與改進(jìn)21\o"CurrentDocument"市場(chǎng)前景與開發(fā)價(jià)值22\o"CurrentDocument"參考文獻(xiàn)23盲人智能避障系統(tǒng)引言對(duì)于正常人來說,也許避開前方的障礙物是很自然的,但是對(duì)于盲人來說,這就不是一件容易的事情了。本作品設(shè)計(jì)了一種幫助盲人躲避障礙物的系統(tǒng),讓盲人的生活變得更加輕松。超聲波測(cè)距基本原理超聲波是指頻率高于20khz的機(jī)械波。為了以超聲波作為檢測(cè)手段,必須產(chǎn)生超聲波和接收超聲波。完成這種功能的裝置就是超聲波傳感器,習(xí)慣上稱為超聲波換能器或超聲波探頭。超聲波傳感器有發(fā)送器和接收器,但一個(gè)超聲波傳感器也可具有發(fā)送和接收聲波的雙重作用。超聲波傳感器分機(jī)械方式和電氣方式兩類,它實(shí)際上是一種換能器,在發(fā)射端它把電能或機(jī)械能轉(zhuǎn)換成聲能,接收端則反之。本次設(shè)計(jì)超聲波傳感器采用電氣方式中的壓電式超聲波換能器,它是利用壓電晶體的諧振來工作的。它有兩個(gè)壓電晶片和一個(gè)共振板。當(dāng)它的兩極外加脈沖信號(hào),其頻率等于壓電晶片的固有振蕩頻率時(shí),壓電晶片將會(huì)發(fā)生共振,并帶動(dòng)共振板振動(dòng),產(chǎn)生超聲波。反之,如果兩電極間未外加電壓,當(dāng)共振板接收到超聲波時(shí),將壓迫壓電晶片作振動(dòng),將機(jī)械能轉(zhuǎn)換為電信號(hào),就成為超聲波接收器。在超聲波電路中,發(fā)射端輸出一系列脈沖方波,脈沖寬度越大,輸出的個(gè)數(shù)越多,能量越大,所能測(cè)的距離也越遠(yuǎn)。超聲波發(fā)射換能器與接收換能器其結(jié)構(gòu)上稍有不同,使用時(shí)應(yīng)分清器件上的標(biāo)志。超聲波測(cè)距的方法有多種:如往返時(shí)間檢測(cè)法、相位檢測(cè)法、聲波幅值檢測(cè)法。本設(shè)計(jì)采用往返時(shí)間檢測(cè)法測(cè)距。其原理是超聲波傳感器發(fā)射一定頻率的超聲波,借助空氣媒質(zhì)傳播,到達(dá)測(cè)量目標(biāo)或障礙物后反射回來,經(jīng)反射后由超聲波接收器接收脈沖,其所經(jīng)歷的時(shí)間即往返時(shí)間,往返時(shí)間與超聲波傳播的路程的遠(yuǎn)近有關(guān)。測(cè)試傳輸時(shí)間可以得出距離。假定s(m)為被測(cè)物體到測(cè)距探頭之間的距離,測(cè)得的時(shí)間為t(m/s),超聲波傳播速度為(m/s)表示,則有關(guān)系式2.1。s-vt/2(2.1)在精度要求較高的情況下,需要考慮溫度對(duì)超聲波傳播速度的影響,按式2.2對(duì)超聲波傳播速度加以修正,以減小誤差。本設(shè)計(jì)不進(jìn)行溫度校正,取v=344m/s(20。。)。v-v+0.607T(2.2)式中v——0°C下超聲波在介質(zhì)中的傳播速度T——實(shí)際溫度,單位:。。系統(tǒng)硬件設(shè)計(jì)3.1系統(tǒng)要求利用單片機(jī)、超聲波測(cè)距模塊、Proteus和庇^C51工具設(shè)計(jì)出距離測(cè)量系統(tǒng),測(cè)量結(jié)果精確到1cm,制作實(shí)物并進(jìn)行測(cè)試。3.2系統(tǒng)結(jié)構(gòu)本系統(tǒng)由HY-SRF05超聲波模塊、ISD4004語(yǔ)音模塊,顯示模塊和單片機(jī)等構(gòu)成,整個(gè)系統(tǒng)由51單片機(jī)控制。HY-SRF05超聲波模塊包含超聲波發(fā)射電路、超聲波接收電路,可通過單片機(jī)給其發(fā)送啟動(dòng)信號(hào),HY-SRF05超聲波模塊接受到啟動(dòng)信號(hào)發(fā)送超聲波,最后將測(cè)量信號(hào)返回給單片機(jī)。單片機(jī)對(duì)測(cè)量信號(hào)進(jìn)行處理,通過顯示模塊顯示測(cè)量結(jié)果,并且一旦測(cè)量值小于設(shè)定值,語(yǔ)音芯片將播放事先錄制好的預(yù)警聲音信號(hào)。顯示模塊由3位LED共陰數(shù)碼管及相關(guān)電路組成,顯示模塊主要用于系統(tǒng)調(diào)試,調(diào)試完成后可將其去掉。系統(tǒng)結(jié)構(gòu)框圖如圖3.1所示。

圖3.1系統(tǒng)結(jié)構(gòu)3.3主要器件資料3.3.1HY-SRF05超聲波模塊HY-SRF05超聲波測(cè)距模塊可提供2cm~450cm的非接觸式距離感測(cè)功能,測(cè)距精度可高達(dá)3mm;模塊包括超聲波發(fā)射器、接收器與控制電路。實(shí)物及引腳說明如圖3.2和圖3.3所示。有的模塊并沒有OUT口,本設(shè)計(jì)也沒用到。圖3.2超聲波側(cè)面

rig癱制端rig癱制端cho接收端UT開美岸輸出端ND公共地VTG

kp2,3p相5.圖3.3超聲波正面基本工作原理:采用IO口TRIG觸發(fā)測(cè)距,給至少10us的高電平;模塊自動(dòng)發(fā)送8個(gè)40KHz的方波,自動(dòng)檢測(cè)是否有信號(hào)返回;有信號(hào)返回,通過IO口ECH。輸出一個(gè)高電平,高電平持續(xù)的時(shí)間就是超聲波從發(fā)射到返回的時(shí)間(10us~18ms),如果沒有檢測(cè)到反向則輸出36ms的高電平。工作時(shí)序如圖3.4所示。檢測(cè)距離二(Tx聲速)/2(TRIGGER輸入大于LOU5的高電平)輸入(TRIGGER輸入大于LOU5的高電平)輸入(INPUT)8個(gè)40K乙的方波前一次松測(cè)完成至后一次檢威開始

必須有10m滓待超聲波發(fā)射探頭輸出(OUTPUT)輸出(OUTPUT)ECHO輸出

10uS-L8mSBt|高電平

電平時(shí)間為T如沒有檢刪到有反射

則輸出36希高電平3.3.2顯示模塊主要用于試驗(yàn)階段的數(shù)據(jù)顯示和分析。顯示模塊由3位一體的LED數(shù)碼管、74HC373鎖存器和S8550三極管驅(qū)動(dòng)電路構(gòu)成。數(shù)碼管結(jié)構(gòu)如圖3.5所示。DDPDIG.3反射器R5631DrGJDIG-2CIG.3A曜/示器電路坂DDPDIG.3反射器R5631DrGJDIG-2CIG.3A曜/示器電路坂5631A忘J削G3圖3.5顯示模塊LGE631xx—1minlzw汕LG5631Ax/Bx74HC373鎖存器可以讓數(shù)碼管顯示更穩(wěn)定。外部封裝如圖3.6所示,內(nèi)部邏輯如圖3.7所示,引腳說明見表3.1,真值表見表3.2。VCC。7C7庵Og05DjD4O4LE閔仙n□irrinri111211?11』i[§i]§11■i]孑i[rrnQE0(>DqDi0]02[>2D303GND

圖3.674HC373外部封裝

圖3.7內(nèi)部邏輯表3.1引腳說明引腳名說明D0~D7數(shù)據(jù)輸入端Q0~Q7數(shù)據(jù)輸出端OE三態(tài)允許控制端,低電平有效LE鎖存允許端,高電平有效VCC電源,5VGND接地表3.2真值表OEOEDnQnLHHHLHLLLLXQ0HXXZH:高電平L:低電平?LrCo010204l>60?:D00DGo_aGD_QG?LrCo010204l>60?:D00DGo_aGD_QG°4LATCHENABLEfiI。。??0]。0:輸入端準(zhǔn)備狀態(tài)條件建立前已確定的Q端(輸出端)電平Z:高阻態(tài)驅(qū)動(dòng)電路可以防止單片機(jī)IO口驅(qū)動(dòng)能力不足。

本設(shè)計(jì)采用的是宏晶公司生產(chǎn)的采用DIP40封裝形式的STC516RD+芯片,屬于51系列的單片機(jī),具有8位數(shù)據(jù)寬度的CPU,能處理8位二進(jìn)制數(shù)據(jù)或代碼,32KBytesFlashROM512Bytes片內(nèi)RAM。晶振頻率高達(dá)24M。如圖3.8所示。T2?P1.0匚140□VDDT2EXdP1.1二239□P0.0.ADOP1.2匚330P&.1hAD1P1.3匚437HP02.AD2P1.4匚53書□PD3AD3P1.5匚635□P04.AD4P1.6匚734□PO.5hAD5P17匚833□PO⑥AD6RST-932□P"AD7RXD?P3.0匚1031瓦TXD,P3.1匚1130□ALEINTO,P3.21229—P3ENIMT1,P3.3、1328□P2.7,A15T0:P3.4匚1427□P2.6hA1JT1dP3,5匚152^□P2.5,A13P3.61625□P2.4hA12RD,P3.7匚V24PZ.3hA11XTAL2匚1823□P2.2hA10XTAL1匚1922□P2.1hA9VSS匚2021□P2.0..A8圖3.8單片機(jī)引腳圖3.3.4ISD4004語(yǔ)音芯片ISD4004系列工作電壓3V,單片機(jī)錄放時(shí)間8至16分鐘,音質(zhì)好,適用于移動(dòng)電話及其他便攜式電子產(chǎn)品中。芯片采用CMOS技術(shù),內(nèi)含振蕩器,防混淆濾波器,平滑濾波器,音頻放大器,自動(dòng)靜噪及高密度多電平閃爍存儲(chǔ)陣列。芯片設(shè)計(jì)是基于所有操作的必須由微控制器控制,操作命令可通過串口通信協(xié)議(SPI或Microwire)送入,芯片采用多電平直接模擬量存儲(chǔ)技術(shù),每個(gè)采樣值直接存儲(chǔ)在片內(nèi)的閃存中,因此可以十分真實(shí)自然地再現(xiàn)音樂、語(yǔ)音和效果音,避免了一般固體錄音電路因量化和壓縮造成的量化噪聲和“金屬聲”。采樣頻率可為4.0HZ,5.3HZ,6.4HZ,8.0HZ,頻率越低,錄放音時(shí)間越長(zhǎng),而音質(zhì)則有所下降,片內(nèi)信息存于閃爍存儲(chǔ)器中,可在斷電的情況下保存100年,反復(fù)錄音10萬次。3.4硬件電路POWERIN5VD0C——LZ_|―h1^220-POWERIN5VD0C——LZ_|―h1^220-U1XTAL1P0.0/AD0P0.1/AD1P0.2/AD2XTAL2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6RSTP0.7/AD7P2.0/A8P2.1/A9P2.2/A10PSENP2.3/A11ALEP2.4/A12EAP2.5/A13P2.6/A14P2.7/A15P1.0P3.0/RXDP1.1P3.1/TXDP1.2P3.2/INT0P1.3P3.3/INT1P1.4P3.4/T0P1.5P3.5/T1P1.6P3.6/WRW78E058B40DLD3D5U2D1Q1D2Q2D3Q3D4Q4D5Q5D6Q6D7Q7OE74HC3732A,5B6C9D12E15F16G.圖3.9硬件電路由于Proteus中沒有3位數(shù)碼管器件,暫且用4位數(shù)碼管代替。PWRIN1是5V電源接口,HY-SRF05是超聲超聲波模塊接口。器件清單如表3.3。

器件類型器件標(biāo)號(hào)數(shù)量值電阻R1,R2,R3,R5410kR41220電容C1,C2230pFC3110uFIC芯片U11W78E058B40DLU2174HC373晶體管Q1,Q2,Q33S8550數(shù)碼管DSPLED13位一體數(shù)碼管按鍵開關(guān)K11排阻RP11晶振X1111.0592MHz電源接口PWRIN115V直流電源超聲波模塊接口HY-SRF0514腳排針4.單片機(jī)軟件系統(tǒng)設(shè)計(jì)4.1算法分析整個(gè)單片機(jī)程序分為主函數(shù)、超聲波時(shí)間測(cè)量、距離計(jì)算和數(shù)碼管顯示4個(gè)部分。主函數(shù)用來初始化系統(tǒng)和整體控制,其中包括給超聲波測(cè)距模塊發(fā)送啟動(dòng)測(cè)量信號(hào)。超聲波時(shí)間測(cè)量模塊獲取所測(cè)時(shí)間,然后距離計(jì)算模塊利用獲得的所測(cè)時(shí)間計(jì)算出距離,最后顯示模塊顯示測(cè)量距離。超聲波時(shí)間測(cè)量模塊是通過查詢的方式來檢測(cè)ECHO引腳的電平變化的,通過定時(shí)器T0來測(cè)量時(shí)間。顯示模塊通過定時(shí)器中斷的方式實(shí)現(xiàn)數(shù)碼管的掃描顯示。測(cè)量過程的原理如圖4.1所示。初始化時(shí)將T0的寄存器TH0和TL0清零,使用12MHz晶振時(shí),則所測(cè)時(shí)間可通過式4.1.1算得。time=TH0*256+TL0(4.1.1)式中time所測(cè)時(shí)間,單位:us由之前的式2.1,取v=344m/s,可得所測(cè)距離為:s=172*time*10-6*102(cm)(4.1.2)化簡(jiǎn)得:s=time/58.1(cm)(4.1.3)如果采用11.0592MHz的晶振,由于定時(shí)計(jì)數(shù)器計(jì)1個(gè)數(shù)的時(shí)間約為1.085us,因此距離不能通過式4.1.3計(jì)算,不然會(huì)有較大的誤差,這時(shí)可通過式4.1.計(jì)算。本設(shè)計(jì)的實(shí)物制作時(shí)使用的是11.0592MHz的晶振。其他晶振頻率也可通過類似計(jì)算得到。本設(shè)計(jì)的測(cè)量精度為1cm。s=time/53.6(cm)(414)4.3.1超聲波子程序oidceju(){i=0;flag=0;Tx=0;//首先拉低脈沖輸入引腳TMOD=0x10;//定時(shí)器0,定時(shí)器1,16位工作方式IT0=0;//由高電平變低電平,觸發(fā)外部中斷EX0=0;//關(guān)閉外部中斷EA=1;while(shuju==0){uintdistance_data;ET1=0;Tx=1;delay_20us();Tx=0;〃產(chǎn)生一個(gè)20us的脈沖,在Tx引腳while(Rx==0);//等待Rx回波引腳變高電平succeed_flag=0;〃清測(cè)量成功標(biāo)志EX0=1;//打開外部中斷TH1=0;//定時(shí)器1清零TL1=0;//定時(shí)器1清零TF1=0;//TR1=1;//啟動(dòng)定時(shí)器1ET1=1;while(TH1<30);//等待測(cè)量的結(jié)果,周期65.535毫秒(可用中斷實(shí)現(xiàn))TR1=0;//關(guān)閉定時(shí)器1EX0=0;//關(guān)閉外部中斷if(succeed_flag==1){distance_data=outcomeH;//測(cè)量結(jié)果的高8位distance_data<<=8;//放入16位的高8位distance_data=distance_data|outcomeL;//與低8位合并成為16位結(jié)果數(shù)據(jù)distance_data*=12;//因?yàn)槎〞r(shí)器默認(rèn)為12分頻distance_data/=580;//微秒的單位除以58等于厘米}//X秒二(2*Y米)/344二二》X秒=0.0058*Y米二二》厘米二微秒/58if(succeed_flag==0){distance_data=0;//沒有回波則清零}distance[i]=distance_data;//將測(cè)量結(jié)果的數(shù)據(jù)放入緩沖區(qū)i++;if(i==3){uinta,b;ucharCONT_1;distance_data=(distance[0]+distance[1]+distance[2]+distance[3])/4;pai_xu();distance_data=distance[1];a=distance_data;if(b==a)CONT_1=0;if(b!=a)CONT_1++;if(CONT_1>=3){CONT_1=0;b=a;shuju=a;conversion(b);}i=0;}}}4.3.2錄音子程序voidsetkey_treat(void){set_key=1;//置IO口為1,準(zhǔn)備讀入數(shù)據(jù)DelayUs(1);if(set_key==0){DelayMs(5);〃延5ms去抖if(set_key==0){if(flag3==0)//錄音鍵和放音鍵互鎖,錄音好后,禁止再次錄音。如果要再次錄音,那就要復(fù)位單片機(jī),重新開始錄音{if(count==0)//判斷是否為上電或復(fù)位以來第一次按錄音鍵{st_add=170;}else{st_add=end_add+3;}//每段語(yǔ)言間隔3個(gè)地址adds[count]=st_add;//每段語(yǔ)音的起始地址暫時(shí)if(count>=25)//判斷語(yǔ)音段數(shù)時(shí)候超過25段,因?yàn)閱纹瑱C(jī)內(nèi)存的關(guān)系?//本程序只錄音25段,如果要錄更多的語(yǔ)音,改為不可查詢的即可{//如果超過25段,則覆蓋之前的語(yǔ)音,從新開始錄音count=0;st_add=170;time_total=340;}isd_powerup();//AN鍵按下,ISD上電并延遲50msisd_stopwrdn();isd_powerup();LED1=1;//錄音指示燈亮,表示錄音模式isd_setrec(st_add&0x00ff,st_add>>8);//從指定的地址if(INT==1)//判定芯片有沒有溢出{isd_rec();//發(fā)送錄音指令}time_total=st_add*2;//計(jì)時(shí)初始值計(jì)算TR0=1;//開計(jì)時(shí)器while(set_key==0);//等待本次錄音結(jié)束TR0=0;//錄音結(jié)束后停止計(jì)時(shí)isd_stop();//發(fā)送4004停止命令end_add=time_total/2+2;//計(jì)算語(yǔ)音的結(jié)束地址adde[count]=end_add;//本段語(yǔ)音結(jié)束地址暫存LED1=0;//錄音完畢,LED熄滅count++;//錄音段數(shù)自加count_flag=count;//錄音段數(shù)寄存flag2=1;flag4=1;//解鎖放音鍵}}}}4.3.3放音子程序voidupkey_treat(void){//ucharovflog;AN=1;//準(zhǔn)備讀入數(shù)據(jù)DelayUs(1);if(AN==0)//判斷放音鍵是否動(dòng)作{DelayMs(5);//延5ms去抖if(AN==0)if(flag4==1)//互鎖錄音鍵{if(flag2==1)//判斷是否為錄音好后的第一次放音{count=0;//從第0段開始播放}isd_powerup();//AN鍵按下,ISD上電并延遲50msisd_stopwrdn();isd_powerup();st_add=adds[count];//送當(dāng)前語(yǔ)音的起始地址isd_setplay(st_add&0x00ff,st_add>>8);//發(fā)送setplay指令,從指定地址開始放音isd_play();//發(fā)送放音指令DelayUs(20);while(INT==1);//等待放音完畢的EOM中斷信號(hào)isd_stop();//放音完畢,發(fā)送stop指令while(AN==0);//isd_stop();count++;//語(yǔ)音段數(shù)自加flag2=0;flag3=1;if(count>=count_flag)//如果播放到最后一段后還按加鍵,則從第一段重新播放{count=0;}}}5.Proteus仿真Proteus軟件是英國(guó)Labcenterelectronics公司出版的EDA工具軟件,它不僅具有其它EDAX具軟件的仿真功能,還能仿真單片機(jī)及外圍器件。它是目前最好的仿真單片機(jī)及外圍器件的工具。從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計(jì),真正實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計(jì)。是目前世界上唯一將電路仿真軟件、PCB設(shè)計(jì)軟件和虛擬模型仿真軟件三合一的設(shè)計(jì)平臺(tái),其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和1^?430等,2010年又增加了Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器。其中ProteusISIS用于原理圖輸入和電路仿真,ProteusARES用于PCB設(shè)計(jì)。由于ProteusISIS中沒有HY-SRF05超聲波模塊器件,并不能做完整的仿真,但也可以初步驗(yàn)證一下系統(tǒng)的功能是否正確,對(duì)設(shè)計(jì)的正確性做出分析,及早發(fā)現(xiàn)錯(cuò)誤。在Proteus中可以驗(yàn)證單片機(jī)發(fā)送的啟動(dòng)HY-SRF05超聲波模塊的信號(hào)是正確,和測(cè)量時(shí)序是否正確。由于電源接口PWRIN1和HY-SRF05超聲波接口HY-SRF05是自定義的元件,Proteus中并沒有對(duì)應(yīng)的仿真模型,因此并不能對(duì)電路進(jìn)行仿真。這里將它們都變成子系統(tǒng),分別在這兩元件上點(diǎn)擊右鍵,并選擇“EditComponent”,進(jìn)入“EditComponent”界面(或用快捷鍵Ctrl+E),在底下的復(fù)選項(xiàng)的“Attachhierarchymodule”前打勾,這樣就將元件轉(zhuǎn)換為子系統(tǒng)了。仿真結(jié)果如圖5.1所示。圖5.2是TRIG引腳和ECHO引腳的電壓波形。ECHO持續(xù)1ms高電平,理論計(jì)算的距離為17.2cm,精確到1cm則是17cm,仿真結(jié)果正確,由TRIG引腳和ECHO引腳的電壓波形可知,測(cè)量時(shí)序是正確的,可見系統(tǒng)的功能是正常的。W78E058B40DLVCC1?-1UlXTAL1P0.0/AD0XTAL2P0.1/AD1P0.2/AD2P0.3/AD3RSTP0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9PSENP2.2/A10P2.3/A11ALEP2.4/A12EAP2.5/A13P1.0P2.6/A14P2.7/A15P3.0/RXDP1.1P3.1/TXDP1.2P3.2/INT0P1.3P3.3/INT1P1.4P3.4/T0P1.5P3.5/T1P1.6P3.6/WR■39D02>■38D13"■37D24.■36D35.■35D46..34D57.■33D68"D0Q0D1Q1D2Q2D3Q3D4Q4D5Q5D6Q6D7Q7OE74HC373■2A—■5B,■6C,■9D■12E■15F■■16G圖5.1硬件原理圖CHY-SRF05圖5.2波形圖GNDECHOTRIGVCC圖6.1圖6.1系統(tǒng)調(diào)試6.1實(shí)驗(yàn)測(cè)試完成軟件開發(fā),系統(tǒng)仿真和硬件電路設(shè)計(jì)之后,成品圖如圖6.1所示。6.2實(shí)驗(yàn)數(shù)據(jù)在室內(nèi)測(cè)試所獲得的一些實(shí)驗(yàn)數(shù)據(jù)如表6.1所示,預(yù)警值為50cm,。表6.1實(shí)驗(yàn)數(shù)據(jù)系統(tǒng)測(cè)量值(cm)實(shí)測(cè)值(cm)報(bào)警2019否3031否4041否6060是7072是8083是6.3誤差分析與改進(jìn)由實(shí)驗(yàn)數(shù)據(jù)可知,在100cm的測(cè)量范圍以內(nèi),誤差在7%以內(nèi),測(cè)量的距離越大,誤差也越大。誤差的來源主要有以下各個(gè)方面:(1)聲速引起的誤差。聲波傳輸速度與媒介的彈性模量和密度相關(guān),因此,利用聲速測(cè)量距離,就要考慮這些因素對(duì)聲速影響。在氣體中,壓強(qiáng)、溫度、濕度等因素會(huì)引起密度變化,氣體中聲速主要受密度影響,液體的深度、溫度等因素會(huì)引起密度變化,固體中彈性模量對(duì)聲速影響較密度影響更大,一般超聲波在固體中傳播速度最快,液體次之,在氣體中的傳播速度最慢。氣體中聲速受溫度的影響最大。要減少這類誤差可以增加相應(yīng)的補(bǔ)償電路,或進(jìn)行軟件補(bǔ)償。(2)反射問題。如果被探測(cè)物體始終在合適的角度,那超聲波傳感器將會(huì)獲得正確的角度。但是不幸的是,在實(shí)際使用中,很少被探測(cè)物體是能被正確的檢測(cè)的。如圖6.2所示。圖6.2a情況叫三角誤差,當(dāng)被測(cè)物體與傳感器成一定角度的時(shí)候,所探測(cè)的距離和實(shí)際距離有個(gè)三角誤差。圖6.2b叫鏡面反射在特定的角度下,發(fā)出的聲波被光滑的物體鏡面反射出去,因此無法產(chǎn)生回波,也就無法產(chǎn)生距離讀數(shù),這時(shí)超聲波傳感器會(huì)忽視這個(gè)物體的存在。圖6.2c中的情況叫做多次反射。這種現(xiàn)象在探測(cè)墻角或者類似結(jié)構(gòu)的物體時(shí)比較常見。聲波經(jīng)過多次反彈才被傳感器接收到,因此實(shí)際的探測(cè)值并不是真實(shí)的距離值。這類誤差通過多點(diǎn)測(cè)量能進(jìn)行一定程度的改善,對(duì)測(cè)量探頭的方向性要求較高。(3)噪聲影響。雖然多數(shù)超聲波傳感器的工作頻率為40-45Khz,遠(yuǎn)遠(yuǎn)高于人類能夠聽到的頻率。但是周圍環(huán)境也會(huì)產(chǎn)生類似頻率的噪音。比如,電機(jī)在轉(zhuǎn)動(dòng)過程會(huì)產(chǎn)生一定的高頻,輪子在比較硬的地面上的摩擦所產(chǎn)生的高頻噪音。這個(gè)問題可以通過對(duì)發(fā)射的超聲波進(jìn)行編碼來解決,比如發(fā)射一組長(zhǎng)短不同的音波,只有當(dāng)探測(cè)頭檢測(cè)到相同組合的音波的時(shí)候,才進(jìn)行距離計(jì)算。這樣可以有效的避免由于環(huán)境噪音所引起的誤讀。(4)單片機(jī)時(shí)間分辨率的影響。不管是查詢發(fā)射波與回波,還是由其觸發(fā)單片機(jī)中斷再通過軟件啟停定時(shí)器,都需要一定的時(shí)候,中斷的方式誤差相對(duì)要小一些。相對(duì)而言,單片機(jī)的時(shí)間分辨率還是不太高,如晶振頻率為12MHz時(shí),時(shí)間分辨率為1s。由于測(cè)量過程中的隨機(jī)誤差是按統(tǒng)計(jì)規(guī)律變化的,為了減少其影響,可在同一位置處多次重復(fù)測(cè)量,然后取平均值。(5)單片機(jī)計(jì)算誤差。以本次設(shè)計(jì)為例,存放結(jié)果的變量是無符號(hào)整型,勢(shì)必存在截短誤差。這類誤差地通過改用精度更大的數(shù)據(jù)類型改善。市場(chǎng)前景與開發(fā)價(jià)值由于使用本產(chǎn)品便攜性好,成本低,可靠性強(qiáng),同時(shí)可以節(jié)省較多的能源及較多的時(shí)間,具有廣闊的市場(chǎng)空間。據(jù)統(tǒng)計(jì),目前我國(guó)的盲人為300萬個(gè)。假如有三分之一的人使用本產(chǎn)品,約有100萬可能使用本產(chǎn)品。產(chǎn)品按照推廣價(jià)格每套300元計(jì)算,利潤(rùn)按毛利(含稅)20%計(jì)算,銷售額約為3億元,毛利約為6000萬元。參考文獻(xiàn)楊素行主編.模擬電子技術(shù)基礎(chǔ)簡(jiǎn)明教程.3版.北京:高等教育出版,2006.5陳忠平編著.基于Proteus的51系列單片機(jī)設(shè)計(jì)與仿真.2版.北京:電子工業(yè)出版社,2012.5趙建領(lǐng)等編著.51系列單片機(jī)開發(fā)寶典.2版.北京:電子工業(yè)出版社,2012.2周潤(rùn)景等編著.基于PROTEUS的電路及單片機(jī)系統(tǒng)設(shè)計(jì)與仿真.北京:北京航空航天大學(xué)出版社,2006.5蘇煒,龔壁建,潘笑.超聲波測(cè)距誤差分析.傳感器技術(shù).2004,23(6):8-11附件:程序#include<reg52.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedint〃錄音和放音鍵IO口定義:sbitAN=P3"4;//放音鍵控制接口sbitset_key=P3"5;//錄音鍵控制口//錄音和放音鍵IO口定義:sbitTx=P3"3;//產(chǎn)生脈沖引腳sbitRx=P3";〃回波引腳//ISD4004控制口定義:sbitSS二PE;//4004片選sbitMOSI二P1\;//4004數(shù)據(jù)輸入sbitMISO=P1";//4004數(shù)據(jù)輸出sbitSCLK=P1"3;//ISD4004時(shí)鐘sbitINT=P1"4;//4004中斷sbitLED1=P1"6;//錄音指示燈#defineLCM_DataP0//LCD1602數(shù)據(jù)接口sbitLCM_RW=P2、;//讀寫控制輸入端,LCD1602的第五腳sbitLCM_RS=P2P;//寄存器選擇輸入端,LCD1602的第四腳sbitLCM_E=P2";//使能信號(hào)輸入端,LCD1602的第6腳voidDelayUs(uintus);//微妙延時(shí)程序voidDelayMs(uintMs);//毫秒延時(shí)程序voidinit_t0();//定時(shí)器0初始化函數(shù)voidsetkey_treat(void);//錄音鍵處理程序voidupkey_treat(void);//播放鍵處理程序voiddisplay();//顯示處理程序voidisd_setrec(ucharadl,ucharadh);//發(fā)送setrec指令voidisd_rec();//發(fā)送rec指令voidisd_stop();//stop指令(停止當(dāng)前操作)voidisd_powerup();//發(fā)送上電指令voidisd_stopwrdn();//發(fā)送掉電指令voidisd_send(ucharisdx);//spi串行發(fā)送子程序,8位數(shù)據(jù)voidisd_setplay(ucharadl,ucharadh);voidisd_play();voidfayin();〃程序中的一些常量定義uinttime_total,st_add,end_add=0;uintadds[5];//5段語(yǔ)音的起始地址暫存uintadde[5];//5段語(yǔ)音的結(jié)束地址暫時(shí)uchart0_crycle,count,count_flag,flag2,flag3,flag4;ucharsecond_count=170,msecond_count=0;////////////////////////////////////////////uintdistance[4];//測(cè)距接收緩沖區(qū)ucharge,shi,bai,temp,flag,outcomeH,outcomeL,i,shuju;//自定義寄存器bitsucceed_flag;//測(cè)量成功標(biāo)志voiddelay_20us(){ucharbt;for(bt=0;bt<60;bt++);voidconversion(uinttemp_data){ucharge_data,shi_data,bai_data;bai_data=temp_data/100;temp_data=temp_data%100;〃取余運(yùn)算shi_data=temp_data/10;temp_data=temp_data%10;〃取余運(yùn)算ge_data=temp_data;ET1=0;EX0=0;bai=bai_data;shi=shi_data;ge=ge_data;ET1=1;EX0=1;}//*********************************************************voidpai_xu(){uintt;if(distance[0]>distance[1]){t=distance[0];distance[0]=distance[1];distance[1]=t;}if(distance[0]>distance[2])t=distance[2];distance[2]=distance[0];distance[0]=t;}if(distance[1]>distance[2]){t=distance[1];distance[1]=distance[2];distance[2]=t;}}voidceju(){i=0;flag=0;Tx=0;//首先拉低脈沖輸入引腳TMOD=0x10;//定時(shí)器0,定時(shí)器1,16位工作方式IT0=0;//由高電平變低電平,觸發(fā)外部中斷EX0=0;//關(guān)閉外部中斷EA=1;while(shuju==0){uintdistance_data;ET1=0;Tx=1;delay_20us();Tx=0;〃產(chǎn)生一個(gè)20us的脈沖,在Tx引腳while(Rx==0);//等待Rx回波引腳變高電平succeed_flag=0;〃清測(cè)量成功標(biāo)志EX0=1;//打開外部中斷TH1=0;//定時(shí)器1清零TL1=0;//定時(shí)器1清零TF1=0;//TR1=1;//啟動(dòng)定時(shí)器1ET1=1;while(TH1<30);//等待測(cè)量的結(jié)果,周期65.535毫秒(可用中斷實(shí)現(xiàn))TR1=0;//關(guān)閉定時(shí)器1EX0=0;//關(guān)閉外部中斷if(succeed_flag==1){distance_data=outcomeH;//測(cè)量結(jié)果的高8位distance_data<<=8;//放入16位的高8位distance_data=distance_data|outcomeL;//與低8位合并成為16位結(jié)果數(shù)據(jù)distance_data*=12;//因?yàn)槎〞r(shí)器默認(rèn)為12分頻distance_data/=580;//微秒的單位除以58等于厘米}//為什么除以58等于厘米,Y米二(X秒*344)/2//X秒二(2*Y米)/344二二》X秒=0.0058*Y米二二》厘米二微秒/58if(succeed_flag==0){//沒有回波distance_data=0;則清零}//沒有回波distance[i]=distance_data;//將測(cè)量結(jié)果的數(shù)據(jù)放入緩沖區(qū)i++;if(i==3){uinta,b;ucharCONT_1;distance_data=(distance[0]+distance[1]+distance[2]+distance[3])/4;pai_xu();distance_data=distance[1];a=distance_data;if(b==a)CONT_1=0;if(b!=a)CONT_1++;if(CONT_1>=3){CONT_1=0;b=a;shuju=a;conversion(b);}i=0;}}/*=========================================================主程序=============================================================================*/voidmain(void){LED1=0;//滅錄音指示燈flag3=0;flag4=0;time_total=340;//錄音地址從170開始,對(duì)應(yīng)的單片機(jī)開始計(jì)時(shí)的時(shí)間就是340*0.1秒adds[0]=170;count=0;//LCMInit();//1602初始化init_t0();//定時(shí)器初始化EA=1;while(set_key==1);setkey_treat();//錄音鍵處理while(1){upkey_treat();//放音鍵處理ceju();while(shuju<50){fayin();break;}//display();//顯示處理shuju=0;}}〃外部中斷0,用做判斷回波電平voidINTO_()interrupt0//外部中斷是0號(hào){outcomeH=TH1;〃取出定時(shí)器的值outcomeL=TL1;〃取出定時(shí)器的值succeed_flag=1;//至成功測(cè)量的標(biāo)志EX0=0;//關(guān)閉外部中斷}//定時(shí)器0中斷程序voidtimer0()interrupt1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;t0_crycle++;if(t0_crycle==2)//0.1秒{t0_crycle=0;time_total++;msecond_count++;if(msecond_count==10)//1秒{msecond_count=0;second_count++;if(second_count==60){second_count=0;}}if(time_total==4800)time_total=0;}}//定時(shí)器0初始化函數(shù)voidinit_t0(){TMOD=0x01;//設(shè)定定時(shí)器工作方式1,定時(shí)器定時(shí)50毫秒TH0=(65536-50000)/256;TL0=(65536-50000)%256;//EA=1;ET0=1;//允許定時(shí)器0中斷t0_crycle=0;//定時(shí)器中斷次數(shù)計(jì)數(shù)單元}//錄音鍵處理程序從指定地址開始錄音的程序就是在這段里面voidsetkey_treat(void){set_key=1;//置IO口為1,準(zhǔn)備讀入數(shù)據(jù)DelayUs(1);if(set_key==0){DelayMs(5);〃延5ms去抖if(set_key==0){if(flag3==0)//錄音鍵和放音鍵互鎖,錄音好后,禁止再次錄音。如果要再次錄音,那就要復(fù)位單片機(jī),重新開始錄音if(count==0)//判斷是否為上電或復(fù)位以來第一次按錄音鍵{st_add=170;}else{st_add=end_add+3;}//每段語(yǔ)言間隔3個(gè)地址adds[count]=st_add;//每段語(yǔ)音的起始地址暫時(shí)if(count>=25)//判斷語(yǔ)音段數(shù)時(shí)候超過25段,因?yàn)閱纹瑱C(jī)內(nèi)存的關(guān)系?//本程序只錄音25段,如果要錄更多的語(yǔ)音,改為不可查詢的即可{//如果超過25段,則覆蓋之前的語(yǔ)音,從新開始錄音count=0;st_add=170;time_total=340;}isd_powerup();//AN鍵按下,ISD上電并延遲50msisd_stopwrdn();isd_powerup();LED1=1;//錄音指示燈亮,表示錄音模式isd_setrec(st_add&0x00ff,st_add>>8);//從指定的地址if(INT==1)//判定芯片有沒有溢出{isd_rec();//發(fā)送錄音指令time_total=st_add*2;//計(jì)時(shí)初始值計(jì)算TR0=1;//開計(jì)時(shí)器while(set_key==0);//等待本次錄音結(jié)束TR0=0;//錄音結(jié)束后停止計(jì)時(shí)isd_stop();//發(fā)送4004停止命令end_add=time_total/2+2;//計(jì)算語(yǔ)音的結(jié)束地址adde[count]=end_add;//本段語(yǔ)音結(jié)束地址暫存LED1=0;//錄音完畢,LED熄滅count++;//錄音段數(shù)自加count_flag=count;//錄音段數(shù)寄存flag2=1;flag4=1;//解鎖放音鍵}}}}//放音機(jī)處理程序從指定地址開始放本段語(yǔ)音就是這段程序voidupkey_treat(void){//ucharovflog;AN=1;//準(zhǔn)備讀入數(shù)據(jù)DelayUs(1);if(AN==0)//判斷放音鍵是否動(dòng)作{DelayMs(5);//延5ms去抖if(AN==0){if(flag4==1)//互鎖錄音鍵{if(flag2==1)//判斷是否為錄音好后的第一次放音{count=0;//從第0段開始播放}isd_powerup();//AN鍵按下,ISD上電并延遲50msisd_stopwrdn();isd_powerup();st_add=adds[count];//送當(dāng)前語(yǔ)音的起始地址isd_setplay(st_add&0x00ff,st_add>>8);//發(fā)送setplay指令,從指定地址開始放音isd_play();//發(fā)送放音指令DelayUs(20);while(INT==1);//等待放音完畢的EOM中斷信號(hào)isd_stop();//放音完畢,發(fā)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論