馬宏平,蔣 勵(lì),宋竹青,馬彥鵬,王風(fēng)麗
(同濟(jì)大學(xué) 物理系,上海 200092)
國內(nèi)目前約有500萬盲人,占全世界盲人總數(shù)的18%。盲人在行走引導(dǎo)方面具有很大的困難,目前引導(dǎo)盲人行走的方法主要有三種:(1)傳統(tǒng)的手杖引導(dǎo);(2)盲道引導(dǎo);(3)導(dǎo)盲犬引導(dǎo)。其中傳統(tǒng)的手杖引導(dǎo)通過敲擊地面告知盲人前方是否為可行路線,它無法告知盲人周圍障礙物的空間分布和距離[1];盲道存在一定的局限性;而導(dǎo)盲犬的培訓(xùn)周期長,并且成本很高[2]。為此,文中提出了一種引導(dǎo)盲人行走的便捷方案,用三個(gè)紅外線探測器同時(shí)探測前、左、右三個(gè)方向障礙物距離數(shù)據(jù),控制器對這些數(shù)據(jù)進(jìn)行處理判斷,然后通過MP3語音模塊的提示音和蜂鳴器提示盲人周邊障礙物的距離,擴(kuò)大盲人的感知空間。
導(dǎo)盲系統(tǒng)中,采用紅外線探測器測量身體與障礙物之間的距離。該紅外線探測器是基于三角測距原理完成身體與障礙物之間距離測量的,被測障礙物是具有一定漫反射性質(zhì)的反射體,如墻壁、紙張等[3-5]。三角法測距的基本原理是基于平面三角關(guān)系。三角形的三個(gè)頂點(diǎn)分別為光線發(fā)射端、接收端和障礙物,紅外線發(fā)射端按照一定角度θ發(fā)射紅外光束,遇到障礙物時(shí)光束就會反射回來,反射光線照射到接收端的CDD檢測器上,在檢測器上相對中心位置有一個(gè)偏移量X,隨著探測器與障礙物之間距離d的變化,偏移量的大小也隨之發(fā)生改變。利用三角關(guān)系,在知道了發(fā)射角度θ,偏移距X,中心矩D,以及濾鏡的焦距f以后,傳感器到物體的距離d就可以通過幾何關(guān)系計(jì)算出來[6],圖1為三角法測距原理示意圖。
一般的紅外探測器的結(jié)構(gòu)是固定的,光線發(fā)射角度θ、中心矩D、濾鏡的焦距f都是常數(shù),所以障礙物的距離d只與發(fā)射光線在CCD檢測器上的偏移量X有關(guān)[7]。紅外線探測器的模擬輸出電壓信號與反射光線光斑中心位置有關(guān),即與偏移量X之間有一定的比例關(guān)系,所以探測器輸出的電壓信號與障礙物的距離d之間存在著一定的函數(shù)關(guān)系,通過對紅外探測器件輸出的電壓信號進(jìn)行采集、運(yùn)算處理就可以獲得傳感器與被測物體表面之間的距離信息。
圖1 三角法測距原理圖Fig.1 The schematic diagram of triangular surveying
實(shí)際測量時(shí)紅外探測器的輸出值為模擬電壓值,在編程設(shè)計(jì)中需要的是實(shí)際的距離,所以必須找出模擬電壓與實(shí)際距離之間的對應(yīng)關(guān)系。用紅外探測器測量障礙物距離固定變化的一系列距離值,通過比較實(shí)際距離值與模擬電壓輸出值之間的數(shù)據(jù)關(guān)系,模擬二者之間的函數(shù)表達(dá)式。文獻(xiàn)[7]給出了這種轉(zhuǎn)換函數(shù)和計(jì)算方法,用MATLAB編程并以圖形結(jié)合的方法獲得函數(shù)的系數(shù)。圖2是紅外探測器測量不同距離D時(shí)得到的模擬電壓輸出值U,二者之間基本符合反比例函數(shù)的形式。假設(shè)模擬電壓與實(shí)際距離之間滿足關(guān)系式:
圖2 實(shí)際障礙物距離與探測器模擬電壓輸出值對應(yīng)曲線Fig.2 The curve of the distance of object versus analog voltage output of detector
圖3 Dk與U值之間的擬合曲線Fig.3 The fitting curve of Dkversus U
導(dǎo)盲器是輔助盲人行走,避免碰到障礙物的工具,所以其響應(yīng)時(shí)間是重要的指標(biāo)。行走時(shí)有一定的速度,所以前方障礙物對盲人出行安全影響很大。為了提高系統(tǒng)報(bào)警的速度,在語音報(bào)警功能的基礎(chǔ)上,增加了蜂鳴器報(bào)警。蜂鳴器只需要一個(gè)高電平就能使其發(fā)聲,信號處理過程簡單,反應(yīng)迅速。
對于蜂鳴器,用Arduino單片機(jī)可以控制其發(fā)出不同頻率的聲音,因?yàn)椴煌囊粽{(diào)對應(yīng)不同頻率的方波,音調(diào)越高,則方波的頻率越大,即周期越小。兩者的數(shù)學(xué)關(guān)系表達(dá)式如下:
式(3)中,t表示方波高電平時(shí)長,T 為方波周期,f為音調(diào)頻率??梢愿鶕?jù)上式來計(jì)算不同音調(diào)對應(yīng)的方波在一個(gè)周期內(nèi)需保持高電平的時(shí)間長度,只要控制蜂鳴器供應(yīng)電壓的高電平的時(shí)間長短就可以讓其發(fā)出不同的音調(diào),從中選擇合適的音調(diào)作為導(dǎo)盲杖的報(bào)警音。
表1 不同聲音對應(yīng)的頻率Tab.1 The frequency of different voices
導(dǎo)盲系統(tǒng)主要由電源模塊、串口轉(zhuǎn)換模塊、紅外探測器發(fā)射與接收模塊、信號處理控制模塊和語音輸出報(bào)警模塊組成。如圖4所示,該系統(tǒng)控制核心為Arduino ATmega328P-PU單片機(jī),紅外測距模塊則采用夏普GP2Y0A02YK0F紅外距離傳感器,語音報(bào)警模塊采用蜂鳴器和MP3—VS1003B語音芯片進(jìn)行雙重報(bào)警。單片機(jī)采用的通訊接口是TTL電平的TX/RX端,而MP3模塊的串口通訊是RS23電平的MCU_TXD的MCU_RXD端,所以需要用到串口轉(zhuǎn)換器,將MP3模塊RS23電平轉(zhuǎn)換為TTL電平。
紅外線發(fā)射與接收系統(tǒng)選用的是SHARP公司的GP2Y0A02YK0F紅外距離傳感器,測量范圍為200~1 500mm。探測器主要是由紅外信號發(fā)射端、接收端及相應(yīng)的處理電路組成,紅外發(fā)射端和接收端與被測障礙物組成平面三角形,如圖5所示,利用前面介紹的三角測距的原理來探測人與障礙物的距離信息。
圖4 系統(tǒng)的整體設(shè)計(jì)圖Fig.4 The overall design chart of the system
圖5 紅外發(fā)射與接收示意圖Fig.5 The schematic diagram of the infrared emitting and receiving system
控制系統(tǒng)的工作流程如圖6所示,控制系統(tǒng)使用的是ArduinoDuemilanove 2009ATmega328P-PU 單片機(jī),它具有模擬輸入/輸出端口和數(shù)字輸入/輸出端口,其中模擬端口接收紅外探測器測量得到的模擬輸出電壓,需要通過D/A轉(zhuǎn)換也即函數(shù)擬合將其變?yōu)閷?shí)際對應(yīng)的距離,然后根據(jù)這個(gè)實(shí)際距離值判斷障礙物的遠(yuǎn)近然后控制語音報(bào)警系統(tǒng)做出相應(yīng)的語音報(bào)警。
語音報(bào)警模塊中采用的是TX_SDMP3_2.1音樂播放模塊,VS1003B作為 MP3解碼核心[8]。VS1003B支持 MP3、WAV、WMA、MIDI等諸多音頻格式,支持SD規(guī)范V1.0,即可以讀取外存儲設(shè)設(shè)備上的音樂文件[9]。
語音電路根據(jù)控制系統(tǒng)分析的所有測量值,設(shè)計(jì)出語音元素(前方、左方、右方、距離),分別錄制語音文件,這些信息存于語音電路非易失性存儲單元NMC中。測量數(shù)據(jù)經(jīng)過信號處理系統(tǒng)處理后,發(fā)出語音地址和放音控制指令,同存儲在語音芯片內(nèi)部的語音地址進(jìn)行比較,當(dāng)兩者相匹配時(shí),經(jīng)由語音電路通過耳機(jī)輸出測量結(jié)果。
圖6 信號控制系統(tǒng)流程圖Fig.6 The flow chart of signal control system
系統(tǒng)采用Arduino ATmega328P-PU單片機(jī)專門配套的Arduino軟件的C語言編程??刂破饕瑫r(shí)實(shí)現(xiàn)對前、左、右三個(gè)方向的紅外探測器進(jìn)行控制,所以必須對三個(gè)方向做優(yōu)先級設(shè)定,由于前方障礙物距離值比較重要,控制器應(yīng)優(yōu)先判斷前方有無障礙物,然后再判斷左右兩方,如圖7所示。
結(jié)合圖7中的優(yōu)化運(yùn)算方法加入到整個(gè)系統(tǒng)總程序中,整合紅外測距模塊、控制器模塊和語音報(bào)警模塊,最后得到的主程序如圖8所示。
圖7 三個(gè)方向紅外探測器的信號處理優(yōu)先級示意圖Fig.7 The schematic diagram of signal control priority of three infrared detectors from different directions
圖8 主程序圖Fig.8 The main program diagram
利用紅外線探測器測量障礙物的距離,采用單片機(jī)處理三個(gè)探測器的數(shù)據(jù)信息,確定障礙物的方位和距離,輸出信號控制蜂鳴器和MP3語音模塊進(jìn)行語音報(bào)警,有效地幫助盲人確定障礙物的方位,進(jìn)行便捷的行走。該方案經(jīng)過電路實(shí)現(xiàn)后,進(jìn)行了全面的模擬盲人實(shí)驗(yàn)。在長20m、寬2.5m的樓道里,在靠左右墻及樓道正中心三個(gè)位置隨機(jī)放置共五個(gè)寬1m、高1.2m的長方形木板,然后蒙住眼睛模擬盲人前進(jìn),每次行走前都更換五個(gè)木板的位置,經(jīng)過多人多次行走結(jié)果統(tǒng)計(jì),平均每次通過20m的距離所用時(shí)間為30~40s之間,并且沒有或只有一次碰到障礙物。通過這樣的模擬實(shí)驗(yàn),驗(yàn)證了導(dǎo)盲杖的實(shí)用性和可操作性,證明該導(dǎo)盲杖可以有效正確地引導(dǎo)盲人避開障礙物,安全快速地行走。
[1]楊國建,石秀娟,潘鴻雁,等.基于SPCE061的智能盲人導(dǎo)航系統(tǒng)[J].工業(yè)控制計(jì)算機(jī),2010,23(3):93-94.
[2]許 麗,曹勝男,唐立偉.基于 AT89C51的智能手杖設(shè)計(jì)與實(shí)現(xiàn)[J].太原師范學(xué)院學(xué)報(bào),2009,8(4):66-69.
[3]林小倩,林 斌,潘泰才.基于CMOS單點(diǎn)激光三角法測距系統(tǒng)設(shè)計(jì)[J].光學(xué)儀器,2006,28(2):27-30.
[4]李曉天,張鐵強(qiáng),張勝勇,等.基于激光三角法的小物體尺寸測量及三維重構(gòu)系統(tǒng)[J].光學(xué)儀器,2008,30(6):21-26.
[5]劉立波.基于DSP的激光三角測距傳感器研究[D].上海:上海交通大學(xué),2008.
[6]王曉嘉,高 雋,王 磊.激光三角法綜述[J].儀器儀表學(xué)報(bào),2004,25(4):601-604.
[7]劉顏.基于DSP的移動(dòng)機(jī)器人控制系統(tǒng)設(shè)計(jì)與避障算法的實(shí)現(xiàn)[D].北京:北京交通大學(xué),2007.
[8]洪家平.基于 VS1003解碼器的 MP3播放器設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2010(11):54-56.
[9]袁 衛(wèi),黨紀(jì)源.基于單片機(jī)的 MP3播放器設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2011,34(4):122-124.