蔣志偉
(南京醫(yī)科大學(xué)康達學(xué)院,江蘇 連云港 222000)
我國目前盲人數(shù)量已經(jīng)達到1700 多萬,盲人作為一個特殊的社會群體,需要人們給予特殊的照顧。為了方便盲人的出行人們發(fā)明了多種方法,傳統(tǒng)的如盲杖,它的作用一是試探前方的路面是否有障礙物或坑洼,二是通過敲擊地面發(fā)出聲音,提醒路人注意避讓。另一種是導(dǎo)盲犬,導(dǎo)盲犬是一種經(jīng)過特殊訓(xùn)練的犬,可以引導(dǎo)路人行走、躲避道路危險情況,是目前最理想的輔助盲人行走的方法。但犬類雖多,適合作為導(dǎo)盲犬的犬種很少,能訓(xùn)練成為合格導(dǎo)盲犬的就更少,通常一只導(dǎo)盲犬要經(jīng)過長時間的特殊訓(xùn)練,價格昂貴。
為了方便盲人,運用現(xiàn)代電子和計算機技術(shù),人們開發(fā)了多種幫助盲人出行的產(chǎn)品,主要包括以下幾種:
(1)電子導(dǎo)盲器。在早期的導(dǎo)盲工具設(shè)計中較常見,這種導(dǎo)盲器的結(jié)構(gòu)比較簡單,盲人可以直接手持,它以單片機為控制核心,包含多個超聲波測距模塊,可以探測各個方向的障礙物,通過語音播報各個方向的障礙物情況[1]。
(2)電子導(dǎo)盲杖。電子導(dǎo)盲杖具有傳統(tǒng)盲杖的外觀,通常采用單片機作為主控,集合超聲波傳感器、震動模塊、語音播報模塊、GPS 導(dǎo)航定位模塊等部分構(gòu)成,具有路線規(guī)劃、障礙探測、震動報警、語音提示等功能,有的還具有LED 燈和光敏電阻,用于在夜間發(fā)出光亮,提醒路人注意避讓[2]。
(3)導(dǎo)盲機器人。導(dǎo)盲機器人通常具有自主行走,同時探測路面障礙等功能,結(jié)構(gòu)主要包括超聲波傳感器、主控模塊和語音及藍牙模塊,原理是盲人佩戴藍牙耳機,電子導(dǎo)盲小車實時探測周圍情況然后將路面情況通過語音傳給盲人[3]。
(4)穿戴式導(dǎo)盲器。這種導(dǎo)盲器的明顯特點是可以穿戴在盲人身上,系統(tǒng)通常采用超聲波模塊,灰度模塊,語音模塊,高清攝像頭等?;叶饶K用來檢測紅綠燈,用攝像機采集圖像并通過識別算法識別斑馬線和盲道[4]。
(5)手機語音導(dǎo)盲。這是一種較新的技術(shù),它是利用隨身攜帶的Android 手機實現(xiàn)導(dǎo)盲的工具,在手機上安裝APP 來采集圖像,利用圖像識別的方法來識別盲道和障礙物,通過手機語音播報前方障礙物情況,有的還可以根據(jù)手機定位和輸入目的地實現(xiàn)路線規(guī)劃功能[5]。
電子導(dǎo)盲器的種類較多,但具有實用性和價格優(yōu)勢的較少,本設(shè)計旨在結(jié)合各種方案的優(yōu)點和長處,設(shè)計開發(fā)一種具有較好實用性的導(dǎo)盲用機器人,使之滿足使用者的需求同時又具有一定的經(jīng)濟效益。
系統(tǒng)的整體設(shè)計包括機械結(jié)構(gòu)設(shè)計、硬件電路設(shè)計和軟件設(shè)計。
導(dǎo)盲犬的機械結(jié)構(gòu)關(guān)系到行走的穩(wěn)定性、可靠性、實用性以及能否很好的完成探測和躲避障礙物的功能的實現(xiàn)。導(dǎo)盲犬的結(jié)構(gòu)我們采用三輪小車的設(shè)計方案,三輪小車具有很好的轉(zhuǎn)向能力,地形適應(yīng)能力和牽引力,我們在原有的三輪小車的基礎(chǔ)上,加寬加大小車的車體結(jié)構(gòu),使之具備更好的載重能力,能夠容納更多的設(shè)備,包括動力電池,紅外避障設(shè)備,超聲波避障設(shè)備,控制電路等。同時我們還加大車輪的尺寸,并采用摩擦力更大的輪胎,使車的通過性能更好。
因為我們采用了更大直徑的車輪,所以我們使用了更大功率的電機,同時電源部分我們采用12V20Ah 鉛酸蓄電池以儲存更多的電能,同時可以顯著降低使用成本,更好的滿足用戶的需要。同時我們重新設(shè)計了電源供電電路。供電電路的設(shè)計要求包括:①滿足電機的供電要求;②提供5V 電壓提供控制電路工作;③為外圍模塊提供電源。
我們采用STM32F407 單片機作為主控,將主控板、蓄電池、供電電路、超聲波模塊、紅外傳感器模塊和語音識別模塊一同安裝在小車上,構(gòu)成整個硬件系統(tǒng)。
2.1 STM32 系列微控制器是意法半導(dǎo)體開發(fā)的嵌入式處理器,專為要求高性能、低成本、低功耗的嵌入式的應(yīng)用而設(shè)計。
我們采用stm32f407 微控制器,它具有多達1MB FLASH、64kB SRAM、168MHz 主頻、12 位ADC、高速USART,滿足本項目的設(shè)計開發(fā)需要。
2.2 目前超聲波測距方法已經(jīng)很成熟,我們采用了3 個超聲波模塊,分別安裝在小車的左中右測方向,探測各個方向是否存在障礙物。
超聲波測距模塊的工作原理是通過串口觸發(fā)測距,在此模式下對模塊發(fā)送0x55(波特率9600),模塊便可發(fā)出8 個40kHz的超聲波脈沖,然后檢測回波信號。當(dāng)檢測到回波信號后,模塊還要進行溫度值的測量,然后根據(jù)當(dāng)前溫度對測距結(jié)果進行校正,將校正后的結(jié)果通過管腳輸出給STM32。輸出的距離值共兩個字節(jié),第一個字節(jié)是距離的高8 位(HDate),第二個字節(jié)為距離的低8 位(LData),單位為毫米。即距離值為(HData*256+LData)mm。
2.3 紅外傳感器檢測原理
紅外發(fā)射和接收對管可以檢測檢測路面是否有凹陷,將其安裝在車底板上,可以調(diào)節(jié)模塊電阻值來改變有效測量距離。當(dāng)紅外線照射到平坦路面并反射時,接收管導(dǎo)通,信號經(jīng)過電壓比較器LM393 的整形后,輸出低電平至處理器的通用IO 端口。反之,路面有凹陷,則輸出高電平。
2.4 語音識別和控制
目前語音識別模塊的應(yīng)用相當(dāng)廣泛,語音模塊能夠完成語音的識別和聲音播放,因此采用了LD3320,此芯片能夠在語音識別和聲音播放模式之間切換。主設(shè)備STM32 通過SPI 總線對從設(shè)備LD3320 完成初始化工作并將語音模塊預(yù)設(shè)為語音識別模式。在語音識別進程中STM32 檢測LD3320 的LD_IRQ 是否有識別結(jié)果輸出,當(dāng)LD_IRQ=1 時,STM32 通過讀取LD3320 的寄存器而得到識別結(jié)果。
圖1 硬件系統(tǒng)結(jié)構(gòu)示意圖
軟件系統(tǒng)的開發(fā)關(guān)系到系統(tǒng)的功能能否實現(xiàn),以及人機交互的舒適性和便利性,我們采用了UCOSIII 嵌入式操作系統(tǒng)。UCOS 是一個可以基于ROM運行的、可裁剪的、搶占式、實時多任務(wù)內(nèi)核,具有高度可移植性,特別適合于微處理器和控制器。我們在UCOS 操作系統(tǒng)的基礎(chǔ)上加入超聲波測距模塊、紅外測距避障模塊等的驅(qū)動程序,并結(jié)合本設(shè)計要求對操作系統(tǒng)進行了一些裁剪,使之更好的適應(yīng)本設(shè)計的要求。
我們首先將UCOSIII 移植到STM32F407 系統(tǒng)板,然后在UCOSIII 中先建立一個開始任務(wù),再在開始任務(wù)中創(chuàng)建4 個任務(wù),分別是語音識別和播報任務(wù)、超聲波測距任務(wù)、紅外傳感器任務(wù)和電機控制任務(wù),語音識別和播報任務(wù)的作用是識別語音指令,如左轉(zhuǎn)、右轉(zhuǎn)、前進、停止等,語音播報任務(wù)負責(zé)播報前方障礙物和路面情況,如前方路面坑洼,左側(cè)有障礙物等;超聲波測距任務(wù)負責(zé)探測左中右3 個方向的障礙物情況,紅外傳感器任務(wù)負責(zé)探測路面坑洼情況,并通過信號量傳遞給其他任務(wù);電機控制任務(wù)根據(jù)路面情況和指令控制電機的行走路徑和轉(zhuǎn)動方向。各個任務(wù)由UCOSIII 進行時間片輪轉(zhuǎn)調(diào)度,保證各個任務(wù)的運行時間。
對系統(tǒng)各個部分的設(shè)計完成后,我們對整個系統(tǒng)的功能進行了調(diào)試和完善。之后我們會選擇一部分測試者對我們的設(shè)計進行試用,根據(jù)測試者提出的功能要求和建議進行進一步的改進。
圖2 軟件系統(tǒng)結(jié)構(gòu)示意圖
我們采用STM32 微控制器,設(shè)計了一款實用新型機器導(dǎo)盲犬,除了具備基本的導(dǎo)盲功能外,還具備以下的創(chuàng)新優(yōu)勢:①采用多種方式識別前方障礙物,包括超聲波測距模塊、紅外測距避障模塊,保證躲避障礙物的可靠性;②采用具有語音識別功能的模塊,實現(xiàn)一定程度的人機交互,包括行走、停止、左轉(zhuǎn)、右轉(zhuǎn)等,同時通過語音播報前方障礙物情況。
我們的設(shè)計具備一定的實用性,期待能夠?qū)鉀Q盲人出行困難提供一些幫助。