(天津財經(jīng)大學 天津 300202)
在21世紀發(fā)展的今天,由于壓力以及各種原因所造成的視覺障礙者以及盲人眾多,而我國又是世界上盲人數(shù)量最多的國家[1],對于導盲產(chǎn)品的需求日趨加大,傳統(tǒng)的導盲手杖明顯不能夠適應(yīng)現(xiàn)代的快節(jié)奏生活,所以新型導盲產(chǎn)品的出現(xiàn)是一種必然趨勢。本文所研究并設(shè)計的基于單片機實現(xiàn)的超聲波導盲杖可以利用超聲波測距以及蜂鳴器報警的形式幫助這些人更好地避讓障礙,具體實現(xiàn)的功能是當使用者距離障礙物的距離不同時,通過延時程序,定時器以及計數(shù)器還有中斷原理來控制蜂鳴器發(fā)出不同的聲音,從而提醒人們障礙物的方位以及自己距離該障礙物的長度。與此同時,距離障礙物的長度會通過1602液晶屏來進行顯示,可以方便別人幫助使用者來校準精確度,還可以起到警示別人的作用,具有價格低廉,使用方便等優(yōu)勢,不必依賴于傳統(tǒng)的精度不高的盲杖或者訓練起來頗為麻煩的導盲犬,從而使這些人的生活更加便捷舒適。
當今世界上盲人眾多,并且根據(jù)調(diào)查顯示,我國是世界上目前擁有盲人數(shù)量最多的國家[1],為了提高這些人行走的能力,從而改善他們的生活質(zhì)量以及品質(zhì),各個國家一直在致力于有關(guān)導盲產(chǎn)品的研究,以前大多使用的是傳統(tǒng)的盲杖,這種盲杖不僅測量障礙的精度極低,而且使用起來十分不方便,還有一種方式是訓練導盲犬,但這種方法不僅花費高昂,適應(yīng)時間長,還有很大的不確定因素。因此在21世紀的今天,隨著科技的進步,這種基于單片機控制的超聲波導盲杖由于具有測量精度高,功能齊全,價格低廉等優(yōu)點,將會占據(jù)導盲產(chǎn)品的主要市場,成為導盲產(chǎn)品的必然趨勢。
根據(jù)研究的目的和意義,結(jié)合現(xiàn)有條件和能力,本文對整個設(shè)計的構(gòu)想是將整個設(shè)計分為三個模塊,首先是超聲波測距模塊,第二個模塊為液晶屏顯示模塊,最后為蜂鳴器報警模塊,使用STC89C52單片機來進行控制,主要原因是STC89C52單片機完全不需要使用專門的仿真器和編程器,而是利用p3.0或p3.1串行口直接下載編輯好的程序來進行系統(tǒng)編程,因此省去了每次編程和仿真時都要將單片機連接到編程器和仿真器上的麻煩,我們可以將單片機固定在開發(fā)板上,然后直接下載用戶程序并進行調(diào)試。超聲波模塊我們使用的是HC-SR04,液晶屏使用的是SCM1602A液晶顯示屏,蜂鳴器報警模塊使用單片機開發(fā)板上自帶的蜂鳴器,使用keil軟件進行編譯,并輸出可以在單片機上運行的hex文件,最后用ISP軟件將該hex文件燒錄進單片機,使其運行。該導盲杖應(yīng)該可以測量一定范圍內(nèi)距離障礙物的距離,并實時顯示在液晶屏上可供他人確認以及校準,當距離障礙物的距離不同時,蜂鳴器會據(jù)此發(fā)出不同的聲音提示使用者,這一功能需要應(yīng)用定時器,計數(shù)器以及中斷的原理來進行實現(xiàn)。借助各種元器件轉(zhuǎn)換單片機的電平為電腦可以識別的電平。
超聲波技術(shù)經(jīng)常被用于測量距離,主要是由于超聲波的幾個優(yōu)點。首先超聲波的指向性強,其次超聲波在介質(zhì)中的傳播距離相對較遠,最后超聲波檢測的測量精度高,足夠滿足工業(yè)或者實用的要求,方便控制。日常生活中常見的物位測量儀以及測距儀等都用到了超聲波技術(shù)。其測距原理是:首先由超聲波發(fā)射器發(fā)出超聲波,然后由超聲波接收器進行接收,計算出接收與發(fā)射的時間差,再根據(jù)超聲波在空氣中的傳播速度為340m/s就可以計算出使用者與障礙物的距離(即:s=340t/2)。這與雷達測距原理較為相似。需要注意的是超聲波也屬于聲波,其聲速v與溫度變化有關(guān),在使用時,若溫度變化不大,則可以認為聲速是不變的。如果對于精度的要求較高,則應(yīng)該采用溫度補償?shù)姆椒右孕?。在這里,由于我們對于精度的要求不是特別高,故認為聲速不變,即340m/s。HC-SR04超聲波測距模塊共包括三個部分,分別為超聲波發(fā)射器,超聲波接收器還有控制電路。該模塊的測距精度最高可達3mm,還可以提供非接觸式測距功能,測量范圍是2cm-400cm[2]。其工作原理是TRIG為觸發(fā)口,高電平有效,持續(xù)時間不少于10US;超聲波模塊采用自動發(fā)送方波的方法,方波頻率為40khz ,數(shù)量為8個,隨后自動檢測是否接收到返回信號;若接收到返回信號,則通過ECHO引腳輸出一個高電平,超聲波接收器接收信號與發(fā)射器發(fā)射信號之間的時間差就是高電平應(yīng)持續(xù)的時間。從而計算出測試距離=(高電平的持續(xù)時間*聲速(340m/s))/2。測距原理如下圖:
在電路中字母“H”或“HA”就表示蜂鳴器,它是一種結(jié)構(gòu)一體化的電子訊響器[3]。蜂鳴器的供電方式是直流電壓供電,它能夠發(fā)出某個固定頻率或者某一單調(diào)的聲音,比如如嘟嘟嘟,嘀嘀嘀等。蜂鳴器的類型主要有兩種,分別為電磁式蜂鳴器和壓電式蜂鳴器。每種蜂鳴器又分為有源和無源兩種,我們本次設(shè)計所使用的HC6800-MS單片機開發(fā)板的蜂鳴器是無源蜂鳴器。有源蜂鳴器和無源蜂鳴器的區(qū)別在于內(nèi)部是否帶有震蕩源,內(nèi)部帶有震蕩源的就是有源蜂鳴器,內(nèi)部沒有震蕩源的就是無源蜂鳴器,給有源蜂鳴器接通電源后它就會發(fā)聲,但如果給無源蜂鳴器接通直流電源,它不會鳴叫,要想令其發(fā)出響聲,就必須用范圍2K-5K的方波來進行驅(qū)動。正是由于有源蜂鳴器內(nèi)部含有振蕩電路的這種特性,所以一般情況下有源蜂鳴器比無源蜂鳴器要昂貴。本設(shè)計中蜂鳴器報警模塊的設(shè)計思路是根據(jù)蜂鳴器的原理圖,將Beep設(shè)置為單片機的p21口,利用定時器,計數(shù)器以及中斷原理,將蜂鳴器發(fā)聲的頻率加以改變,當距離障礙物不同距離時,蜂鳴器會發(fā)出不同的聲音來進行警示。具體為當距離障礙物的長度在100cm到150cm之間時,延時函數(shù)運行一次,當距離障礙物的距離在50cm到100cm之間時,延時函數(shù)運行兩次,當距離障礙物的距離小于50cm時,延時函數(shù)運行三次,與此對應(yīng)的蜂鳴器發(fā)出的聲音也會不同,從而使用者就可以根據(jù)蜂鳴器所發(fā)出的不同的警示音來辨別障礙物的方位以及障礙物與自己相隔的距離。在具體程序的設(shè)計中設(shè)計了一個名為bee()的子函數(shù),在這個函數(shù)中利用if語句來實現(xiàn)距離不同,延時函數(shù)運行的次數(shù)不同這一功能。蜂鳴器原理圖如下:
1、1602液晶能夠很好地顯示符號、字母和數(shù)字等,但不能夠很好地顯示圖片。原因如下:1602字符型液晶是一種點陣型液晶模塊,由無數(shù)個點陣字符位(5x7或者5x11)構(gòu)成,每個字符位都能夠顯示字符,1602液晶顯示模塊可以同時顯示2行16列(即共計32)個字符,各行與各行之間以及兩兩字符位之間都有間隔,所以字符之間和每行之間都存在間距[4],因此,該模塊不能很好地顯示圖片。
2、每次我們在讀寫控制器內(nèi)的狀態(tài)字之前,都要先進行一次讀寫檢測(即讀忙)。是否進行讀寫操作取決于D7的值,當D7的值為1時,禁止讀寫操作;當D7的值為0時,允許讀寫操作。所以為了使LCD液晶顯示模塊能夠正常工作,我們就要依據(jù)上述原理以及LCD1602的操作時序表來正確設(shè)置寄存器。在LCD1602的16個引腳中,我們最常用到引腳6(E:使能信號端)、引腳4(RS:寄存器選擇端)和引腳5(RW:讀寫信號端)這三個引腳。其中使能信號端用來進行系統(tǒng)初始化,寄存器選擇端用來進行寫命令,讀寫信號端用來進行寫數(shù)據(jù)[5]。其基本操作時序如下圖:
LCD1602液晶顯示模塊程序的編寫思路為:首先要表明LCD1602的引腳(包括寄存器選擇端RS、讀寫信號端RW、使能端E等)分別與單片機的哪些I/O口相接,即對這些引腳分別進行定義。接下來要實現(xiàn)的是顯示的初始化(延時和寫入指令),具體包括設(shè)置顯示方式,延時子程序,設(shè)置顯示模式以及清理顯示緩存等。最后要實現(xiàn)設(shè)置顯示字符的具體位置以及顯示字符的具體數(shù)值。編寫代碼時分為了讀LCD狀態(tài)、忙等待、LCD寫指令、LCD寫數(shù)據(jù)、LCD初始化、設(shè)置液晶顯示位置、液晶顯示程序、以及延時子程序幾個部分。設(shè)計最后呈現(xiàn)出來的效果是LCD液晶屏會清晰地顯示出使用者距離障礙物的長度,同時蜂鳴器會根據(jù)不同的距離從而發(fā)出不同的聲音來提醒使用者。