鄧舒心,廖權(quán)權(quán),黃威,張善富
(東南大學成賢學院,電子與計算機工程學院,江蘇南京,210000)
鑒于盲人群體的出行率逐漸增大,但是,城市的街道規(guī)劃對盲人的出行來說還是很不便。即使有盲道,但是人行道太過擁擠,以至于盲道沒有發(fā)揮它真正的用途:導盲。再加上,現(xiàn)在培養(yǎng)一只導盲犬費用高達幾十萬,培養(yǎng)費用過高,并且導盲犬的壽命最多只有10多年。所以,我們研究的導盲車一定程度上能夠很好的幫助盲人的生活。
目前,據(jù)我國和全球不完全統(tǒng)計,到2050年,將會有超過5.5億人口患有中度甚至是重度的視力障礙等各種疾病。往往我們大家?guī)椭と说姆绞绞强繉と?、導盲杖、甚至是一些導盲符號來幫助盲人。在國?nèi),鑒于培養(yǎng)一只優(yōu)秀的導盲犬需要花費巨大的精神和時間,并且還可能會耗費到大批的人力、物力和財力,這樣高成本的導盲犬很難在盲人群體中廣泛化。
STM32單片機作為本次設(shè)計的實驗主板,致力于設(shè)計出智能導盲車系統(tǒng)。設(shè)計的導盲車避障系統(tǒng)包含避障的功能,且在避障的同時能夠語音播報避障情況以致提醒路人。STM32為此系統(tǒng)的控制中心,利用超聲波裝置對智能車前方以及左右兩旁是否有障礙物做出探測。假如前方有障礙物,小車將會自動停下,并且判斷左右兩旁是否有障礙物,如在檢測的范圍內(nèi)沒有障礙物,電機通過正轉(zhuǎn)與反轉(zhuǎn)進行轉(zhuǎn)彎,對小車的行徑方向進行調(diào)整,同時,做出語音播報。
圖1 方案流程圖
首先,對于整個系統(tǒng)來說,主控板的設(shè)置和使用是重中之重。既要滿足性價比高,又需要能夠滿足內(nèi)存量大,運行速率快等特點,并且用起來一般,易操作上手等特點。本系統(tǒng)選用了STM32單片機作為整個系統(tǒng)的主要控制板。
其他模塊還包括超聲波避障模塊、舵機模塊以及語音模塊。超聲波裝置通過發(fā)送超聲波和接收來測量障礙物距離,舵機用于配合小車的轉(zhuǎn)向,語音模塊則播報導盲車轉(zhuǎn)向的情況。
導盲車系統(tǒng)的核心使STM32T,STM32F103控制主板的容量為512K,能夠通過片內(nèi)BOOT區(qū),可實現(xiàn)串口下載程序(ISP)。片內(nèi)包括有雙RC晶振,提供8M的頻率以及32K的頻率,支持JTAG調(diào)試以及SWD調(diào)試。這使電路主板可以很好的對返回回來的超聲波的數(shù)據(jù)進行及時處理,并準確、即時的將數(shù)據(jù)傳遞到舵機以及語音控制模塊發(fā)出指令。
根據(jù)小車的速度,超聲波傳感器發(fā)送和接收信號的時間長短以及組合聲波的速度,人為地將超聲波傳感器的檢測距離調(diào)整為6CM。舵機對超聲波采集的信號進行分析,以達到小車下一步的轉(zhuǎn)向為目的。
將編寫好的程序下載導入到SYN6288語音模塊中,然后能夠?qū)TM32主板傳送出來的數(shù)據(jù)轉(zhuǎn)換為聲音信息播報出來,為盲人提供提示的指令,進而引導盲人規(guī)避障礙物。
SYN6288提供一組雙全工的異步串行通訊(UART)接口,實現(xiàn)了與單片機的數(shù)據(jù)傳輸。在系統(tǒng)設(shè)計中,通訊配置采用的是9600kbps波特率、起始位1、數(shù)據(jù)位8、停止位1、無校驗、不使用流控。
SYN6288通過使用RXD、TXD以及GND實現(xiàn)串口通信,并由+5V電源電路對該部分供電。READY/BUSY狀態(tài)引腳信號為低電平的時候就說明芯片正在等待STM32送來的數(shù)據(jù),在系統(tǒng)設(shè)計中并將此引腳接在STM32單片機的中斷輸入源上,產(chǎn)生一個下降沿中斷請求時發(fā)送數(shù)據(jù),以此用來告知STM32單片機此時可以向語音模塊發(fā)送數(shù)據(jù),然后使語音模塊播報出來。
表1 SYN6288命令幀格式
該導盲車的軟件部分主要是用C++語言進行設(shè)計編程。采用C++語言進行軟件設(shè)計的主要功能是利用C++編程的程序模塊化設(shè)計的功能將不同的功能模塊化、分別編程,運用C++編程的最大好處就是能夠使得軟件結(jié)構(gòu)層次分明,方便閱讀、函數(shù)調(diào)用以及修改。對于軟件部分的設(shè)計,目的是對舵機、超聲波模塊以及SYN6288語音芯片文字轉(zhuǎn)語音模塊進行調(diào)控,通過軟件部分對超聲波的回波信號數(shù)據(jù)進行及時處理、計算測量距離,實現(xiàn)數(shù)值運算和數(shù)據(jù)通信。為了超聲波測量的距離能準確以及舵機的轉(zhuǎn)向能快速,需要設(shè)計合理并且簡單的控制程序,以確保實施準確的距離探測和快速地判別方向以及正確的語音模塊播報情況。因為該系統(tǒng)采用超聲波測距探測器以及舵機,導盲車在正常行駛的過程中,首先是對正面障礙物的探測,若正面障礙物到小車的距離小于6CM,小車將視為正面有障礙物,則通過超聲波向STM32發(fā)送信號,然后STM32對舵機發(fā)出指令,使舵機分別向左右兩側(cè)轉(zhuǎn)向,探測左右兩側(cè)是否有障礙物,以及離障礙物的距離,若探測到距左邊的障礙物距離小于6CM,距右邊的障礙物距離大于6CM,導盲車則向右轉(zhuǎn);若探測到距左邊的障礙物距離大于6CM,距右邊的障礙物距離小于6CM,導盲車則向左轉(zhuǎn)。若左右兩側(cè)距障礙物的距離都小于6CM,則導盲車實施掉頭。
圖2 SYN6288原理圖
在設(shè)計制作完成后,對系統(tǒng)的性能進行測試,選擇A4白紙作為障礙物,在不同距離下測量8次,超聲波測距結(jié)果如表2所示。
表2 超聲波測距結(jié)果表
在測量中可能會伴隨著有誤差,誤差的來源主要有以下幾點:(1)超聲波返回的波形能量隨著距離的增大而減小。(2)超聲波回波接受整形電路造成的延遲和信號失真。(3)測量距離時使用的直尺,手動測量,存在人為的測量誤差。經(jīng)過反復測試能夠滿足設(shè)計要求。
在此系統(tǒng)設(shè)計中,主要運用到了STM32單片機作為主控制芯片,在一定時間內(nèi)完成小車轉(zhuǎn)向問題,也實現(xiàn)了語音播報功能,從而完成了智能導盲車系統(tǒng)設(shè)計的人物
本次系統(tǒng)設(shè)計方案還存在很多不足之處,不夠成熟。雖然導盲車能夠避障,也滿足語音播報功能,但是內(nèi)部環(huán)節(jié)還需要很多調(diào)整提升品控的地方。