趙建華,郭 奔,李東一
(西安工業(yè)大學(xué)電子信息工程學(xué)院,西安710021)
基于12C5A60單片機(jī)的智能避障儀研究與設(shè)計(jì)
趙建華,郭 奔,李東一
(西安工業(yè)大學(xué)電子信息工程學(xué)院,西安710021)
介紹了系統(tǒng)如何利用超聲波實(shí)現(xiàn)對(duì)障礙物的自動(dòng)檢測(cè),對(duì)障礙物進(jìn)行判斷并給出提示。使用超聲波測(cè)量距離,使用加速度計(jì)測(cè)量角度,使用AD轉(zhuǎn)換器對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)化,在單片機(jī)STC12C5A60中進(jìn)行數(shù)據(jù)分析與處理,可以準(zhǔn)確確定障礙物的位置。該技術(shù)可用于智能玩具的開發(fā),盲人導(dǎo)航,物體位置檢測(cè)等領(lǐng)域。
避障儀;STC12C5A60單片機(jī);超聲波測(cè)距;加速度計(jì)
目前,我國(guó)有1000多萬視障人士,為了使這一特殊群體出行方便,迄今已出現(xiàn)不少具有導(dǎo)航避障功能的裝置。例如導(dǎo)盲犬,它能引導(dǎo)視障人士順利達(dá)到目的地.但是導(dǎo)盲犬具有訓(xùn)練成本高,訓(xùn)練周期長(zhǎng)等缺點(diǎn),更重要的是,從醫(yī)學(xué)角度來說并不是所有的視障人士都適合使用導(dǎo)盲犬。還有電子導(dǎo)盲犬,此類產(chǎn)品亦存在不同的缺點(diǎn):設(shè)計(jì)成本高、設(shè)計(jì)結(jié)構(gòu)復(fù)雜,不易操控,人機(jī)之間溝通困難。鑒于此,目前在具體應(yīng)用中存在一定的缺陷,本著人性化以及實(shí)用性的理念,提出了智能避障儀的設(shè)計(jì)。本裝置采用超聲波發(fā)射和接收,單片機(jī)軟件設(shè)計(jì),語音播報(bào),集成微處理、自動(dòng)振動(dòng)等技術(shù)完成,語音和振動(dòng)的雙重保護(hù)和更為人性化的設(shè)計(jì),有力幫助了視障人士順利繞過障礙物。在相對(duì)復(fù)雜的環(huán)境中準(zhǔn)確地對(duì)使用者進(jìn)行語音提示,相對(duì)導(dǎo)盲犬、電子導(dǎo)盲犬、導(dǎo)盲杖等產(chǎn)品有突出的優(yōu)點(diǎn)。
本系統(tǒng)目的在于為視障人士設(shè)計(jì)一種自動(dòng)避障設(shè)備,從而使視障人士在行走過程中盡可能地減少因視覺缺陷而帶來的意外傷害,并使視障人士擺脫對(duì)拐杖的依賴,對(duì)其心理上的自卑等負(fù)面情緒也可有一定的緩解。
系統(tǒng)檢測(cè)范圍為前方3米,可檢測(cè)路面情況,比如上坡路,平路,前方有障礙,前方路面有坑洞的情況,當(dāng)危險(xiǎn)情況被檢測(cè)到后,可以通過語音模塊進(jìn)行提示,從而避免意外情況的發(fā)生。
系統(tǒng)的硬件結(jié)構(gòu)框架如圖1所示,共有六部分組成。主控制模塊選用單片機(jī)STC12C5A60AD,進(jìn)行數(shù)據(jù)分析以及各種控制;超聲波測(cè)距模塊選用KS103,用來測(cè)量它到地面的距離,使用串口UART接收主控制模塊發(fā)來的數(shù)據(jù),并返回測(cè)量到的數(shù)據(jù);方向傳感器模塊選用MMA7361,用來測(cè)量當(dāng)前超聲波模塊的發(fā)射角度,使用ADC功能是將測(cè)量出的數(shù)據(jù)進(jìn)行計(jì)算得到角度信息;舵機(jī)控制模塊選用SMS4315M,用來帶動(dòng)超聲波測(cè)距模塊和方向傳感器模塊轉(zhuǎn)動(dòng),以完成對(duì)當(dāng)前路面的掃描;語言播報(bào)模塊選用了ISD1760,用以在檢測(cè)到障礙物的時(shí)候播報(bào)聲音,提醒用戶注意;按鍵控制模塊與中斷引腳相接,利用外部中斷原理實(shí)現(xiàn)人機(jī)交互。
系統(tǒng)硬件原理如圖2所示,U1是主控芯片STC12C5A60AD;U2是方向傳感器模塊,X,Y,Z為三個(gè)方向上相應(yīng)的模擬電壓輸出值,與單片機(jī)的P1.0,P1.1和P1.2相連,讀取的數(shù)據(jù)直接保存在單片機(jī)內(nèi)部寄存器;U3是超聲波傳感器,它與單片機(jī)的串口P3.0和P3.1相連;U4是語音模塊,選用它的SPI工作模式,它有兩個(gè)電源引腳和4個(gè)SPI通信引腳,它與單片機(jī)的P1.4—P1.7相連;除此之外,還增加了兩個(gè)按鍵K1和K2,它使用單片機(jī)的中斷引腳P3.2和P3.3,可以實(shí)現(xiàn)人機(jī)交互和功能擴(kuò)展。
圖1 系統(tǒng)框圖
圖2 系統(tǒng)原理圖
4.1 舵機(jī)控制模塊
舵機(jī)控制模塊選用的是SM-S4315M模擬舵機(jī),它由PWM波驅(qū)動(dòng),頻率50Hz,轉(zhuǎn)動(dòng)角度范圍-60°~60°,對(duì)應(yīng)占空比范圍為4.5%~10.5%,如果要獲得較高的精度,就適當(dāng)提高分頻比。TC12C5A60的PCA功能可以產(chǎn)生一個(gè)穩(wěn)定的PWM波,它最大分頻只有256,如果只需要粗略控制,可以使用此功能。
在系統(tǒng)中,此模塊的主要功能是帶動(dòng)超聲波模塊和方向傳感器模塊轉(zhuǎn)動(dòng),以掃描當(dāng)前路面的信息,并傳遞給主控制模塊處理。
4.2 超聲波模塊
超聲波模塊選用的是KS103測(cè)距模塊,它有較高的精度,10米時(shí)的誤差只有2厘米。它有兩種控制模式,本系統(tǒng)采用串口模式控制該模塊。當(dāng)單片機(jī)發(fā)出探測(cè)指令后,該模塊會(huì)通過串口線返回兩個(gè)數(shù)據(jù),分別為高8位數(shù)據(jù)和低8位數(shù)據(jù),我們可以采用合適的指令,直接得到距離值。
在系統(tǒng)中,此模塊的主要功能是測(cè)量地面到超聲波模塊發(fā)射頭的距離,值得注意的是,超聲波發(fā)射并不是只沿直線發(fā)射出去的,而是以一定波束角發(fā)射的,而返回的數(shù)據(jù)只是所有投射范圍內(nèi)的一個(gè)最近距離。在計(jì)算時(shí),應(yīng)該根據(jù)測(cè)量值進(jìn)行校正。
4.3 方向傳感器
方向傳感器模塊選用的是MMA7361模塊,除了測(cè)量超生波的方向角度,它還具有電源指示燈,可以很方便地觀察工作情況。
系統(tǒng)中,此模塊的主要功能是測(cè)量超聲波的發(fā)射角度。當(dāng)該模塊正常工作后,會(huì)通過X,Y,Z引腳返回三個(gè)模擬電壓值,返回的電壓范圍為0.85V~2.45V,具體數(shù)值可以使用ST5A60的ADC功能測(cè)得。而實(shí)際上,在舵機(jī)轉(zhuǎn)動(dòng)過程中,Z方向是一直保持水平的,即Z腳返回的值是不變的,可以忽略該引腳。
4.4 語音播報(bào)
語音播報(bào)模塊選用的是華邦公司的ISD1760。工作電壓范圍很寬,2.4V~5.5V,該芯片錄音時(shí)間可長(zhǎng)達(dá)60秒。它有兩種工作模式,按鍵模式和SPI模式。按鍵模式只需按下按鍵就可實(shí)現(xiàn)相應(yīng)功能,操作簡(jiǎn)單,但必須要人工控制;SPI模式下,ISD1760可由單片機(jī)直接發(fā)送SPI信號(hào)控制,從而實(shí)現(xiàn)自動(dòng)播報(bào)功能。
系統(tǒng)中,此模塊的主要功能是播報(bào)語言,為客戶提供準(zhǔn)確的路況信息,從而減少意外發(fā)生,而在工作過程中,它只需要等待接收播放信號(hào),播放語音即可。
為了提高軟件的可移植性,減少軟件維護(hù)開銷,該系統(tǒng)軟件采用代碼分層的方法。軟件層次模型如圖3所示,從下到上依次為硬件層,硬件驅(qū)動(dòng)服務(wù)層,硬件驅(qū)動(dòng)應(yīng)用層,應(yīng)用程序。硬件層指單片機(jī)以及各種所用到的外圍器件,它是程序運(yùn)行的基礎(chǔ);硬件驅(qū)動(dòng)服務(wù)層指將單片機(jī)的各種功能封裝成各種函數(shù),然后留給外部器件使用。
圖3 軟件層次模型
系統(tǒng)中用到了單片機(jī)的ADC,SPI,UART,PCA四種功能,將它們封裝后,則可移植性大大增強(qiáng);硬件驅(qū)動(dòng)應(yīng)用層是為外圍器件寫的應(yīng)用程序,它只調(diào)用硬件驅(qū)動(dòng)服務(wù)層封裝好的函數(shù)和庫中的函數(shù);應(yīng)用程序中使用硬件驅(qū)動(dòng)應(yīng)用層的函數(shù),它直接與硬件名稱相關(guān),可降低調(diào)試難度,并增加程序的可維護(hù)性。
程序流程如圖4所示,首先對(duì)所有硬件進(jìn)行初始化,然后超聲波測(cè)距模塊開始工作,以測(cè)出其距離地面的高度,把高度保存到內(nèi)存中留給計(jì)算時(shí)使用。接下來進(jìn)入掃描過程,超聲波測(cè)距模塊測(cè)量到地面的距離,為了得到更高的精度,這里取了10次值并取平均,這花費(fèi)了一定時(shí)間,對(duì)掃描速度有一定影響。然后利用角度傳感器測(cè)量角度信息,同樣地,也是取十次值取平均。如此反復(fù),一共取20組值之后完成數(shù)據(jù)采集。接下來就要對(duì)采集到的數(shù)據(jù)進(jìn)行處理,如果檢測(cè)到前方有障礙,那么就發(fā)送信號(hào)讓播報(bào)模塊發(fā)出聲音,提示完畢后,進(jìn)入下一輪檢測(cè),如果沒有檢測(cè)到障礙,直接進(jìn)入下一輪檢測(cè)。
圖4 流程圖
為了方便分析,先建立一個(gè)數(shù)學(xué)模型。假設(shè)超聲波以光束形式發(fā)射出去,即暫時(shí)不考慮波束角,且只在一個(gè)垂直面上討論。由此可以得出如圖所示模型。高度H是超聲波測(cè)距模塊距離地面的高度,長(zhǎng)度Ln是超聲波測(cè)距模塊探測(cè)到的距離,角度an是它們的夾角,角度b是假設(shè)的路面與水平方向夾角,那么它們恰好構(gòu)成一個(gè)三角形OAB,如圖5所示。
在實(shí)際測(cè)量中,由于超聲波的反射現(xiàn)象,只要入射波與所測(cè)障礙物的夾角不是90℃,那么大部分的出射聲波會(huì)以一定的角度出射到別的方向。只有當(dāng)入射波和障礙物垂直時(shí),返回的距離最為準(zhǔn)確、穩(wěn)定,加上KS103硬件本身的裕量±10℃,超聲波測(cè)距傳感器的有效測(cè)量角度(入射波與所測(cè)障礙的水平夾角)為80℃~100℃。那么,在舵機(jī)帶動(dòng)超聲波測(cè)距傳感器轉(zhuǎn)動(dòng)的過程中,在有效角度之外反射的超聲波都不能接收,串口返回的數(shù)據(jù)都是所能測(cè)的最大距離2C2B(11052mm),一旦超聲波與障礙物的夾角是80℃~100℃,就能返回有效距離。
圖5 超聲波測(cè)距模型
根據(jù)圖5可以看到,在平地上,除了最初的位置在90℃~100℃之間,舵機(jī)只要稍微轉(zhuǎn)動(dòng),角度大于100℃,就沒有聲波返回,數(shù)據(jù)就全部顯示為最大距離2C2B(11052mm),那么校正時(shí)只要將前10℃范圍內(nèi)的數(shù)據(jù)過濾掉,則返回的數(shù)據(jù)都是2C2B(11052mm)。故實(shí)際測(cè)量時(shí),只要返回的數(shù)據(jù)全部是2C2B(11052mm)就表明是平地,不報(bào)警提示。根據(jù)圖6可以看到,路面如果有障礙,包括斜坡,突起及坑洞,在舵機(jī)帶動(dòng)超聲波測(cè)距傳感器轉(zhuǎn)動(dòng)掃描的過程中,入射波與障礙的角度在變化時(shí),總有機(jī)會(huì)落在80℃~100℃之間,這時(shí)就能測(cè)得有效距離。綜上,超聲波測(cè)距傳感器返回的數(shù)據(jù)只要不是2C2B(11052mm),就能判定有障礙。
圖6 超聲波測(cè)距校正模型
超聲波傳感器是本系統(tǒng)的關(guān)鍵元件,使用前對(duì)它的測(cè)量精度進(jìn)行測(cè)試,測(cè)量數(shù)據(jù)如表1所示。
可以看到,超聲波傳感器的精度很高,測(cè)量距離3米時(shí)誤差也只有4mm而已。得到這些數(shù)據(jù)之后,可以開始調(diào)試硬件了。
(1)燒寫程序到單片機(jī)后,將示波器接至引腳P1.3,觀察到如圖7所示波形。該波形周期為20ms,高電平時(shí)間1ms,占空比為5%;與軟件設(shè)計(jì)完全一致,PWM波正常產(chǎn)生。
表1 KS103數(shù)據(jù)表
圖7 PWM波形
(2)打開串口調(diào)試助手,可以觀察到窗口接收到“73 74 61 72 74”幾個(gè)數(shù)據(jù),它們是字符串“start”的十六進(jìn)制ASCII碼,表示系統(tǒng)已經(jīng)做好準(zhǔn)備,可以開始測(cè)量了。
(3)第一次將舵機(jī)、語音模塊以及測(cè)距模塊分別調(diào)試成功。舵機(jī)能夠流暢的旋轉(zhuǎn)100℃,然后回到初始位置;語音模塊能夠清晰播放事先錄好的提示語音;超聲波測(cè)距模塊在靜態(tài)下能夠精準(zhǔn)的測(cè)量水平及垂直距離。
(4)考慮到超聲波的反射現(xiàn)象,當(dāng)入射波和障礙物垂直時(shí),返回的距離最為準(zhǔn)確、穩(wěn)定,加上KS103硬件本身的裕量10℃,超聲波測(cè)距傳感器的有效測(cè)量角度(入射波與所測(cè)障礙的水平夾角)為80℃~100℃,在這角度之外反射的超聲波都不能接收,轉(zhuǎn)口返回的數(shù)據(jù)都是所能測(cè)的最大距離2C2B(11052mm)。根據(jù)此原理,在超聲波測(cè)距傳感器隨舵機(jī)轉(zhuǎn)動(dòng)時(shí),通過程序設(shè)定前40℃不進(jìn)行測(cè)量,同時(shí)報(bào)警提示距離設(shè)置為1m-8m。
(5)將舵機(jī)、語音模塊以及測(cè)距模塊進(jìn)行聯(lián)調(diào),并測(cè)量障礙進(jìn)行報(bào)警。首先測(cè)量路面障礙,測(cè)試過程中能測(cè)量的最小障礙為表面積20cm*10cm,高為1.6cm的磚塊,測(cè)距模塊距離障礙物的水平距離約為3m。數(shù)據(jù)采集完成后,主控制模塊會(huì)判斷出前方有障礙,語言模塊發(fā)出提示:“前方有障礙,請(qǐng)注意;前方有障礙,請(qǐng)注意!”。然后用傾角為60℃,面積為21cm*18cm的斜面模擬生活中的斜坡,測(cè)距模塊距離障礙的水平距離約為3m,數(shù)據(jù)采集完成后,主控制模塊會(huì)判斷出前方有障礙,語言模塊發(fā)出提示:“前方有障礙,請(qǐng)注意;前方有障礙,請(qǐng)注意!”最后測(cè)路面坑洞,測(cè)試過程中能測(cè)量的最小坑洞深度小于2cm,面積小于20cm*10cm,數(shù)據(jù)采集完成后,主控制模塊會(huì)判斷出前方有坑洞,語言模塊發(fā)出提示:“前方有障礙,請(qǐng)注意;前方有障礙,請(qǐng)注意!”。
至此,各模塊功能正常,系統(tǒng)基本功能實(shí)現(xiàn)。
在系統(tǒng)設(shè)計(jì)中,完成了所有的基本功能,比如,測(cè)試路面的傾斜度,檢測(cè)路面的平坦程度,語音播報(bào)等;另外還有一些實(shí)用的附加功能,比如,時(shí)間的語音播報(bào),使用者當(dāng)前所處方向的檢測(cè)等。
[1] 周立功,陳明計(jì).項(xiàng)目驅(qū)動(dòng)—單片機(jī)應(yīng)用設(shè)計(jì)基礎(chǔ)[M].北京:北京航空航天大學(xué)出版社,2011.
ZHOU Li-Gong,CHEN Ming-Ji.Project drivers—Design of Single Chip Computer Application[M].BeiJing:BeiJing University of Aeronautics and Astronautics Press,2011.
[2] 郭天祥.51單片機(jī)C語言教程[M].北京:電子工業(yè)出版社,2009.
GUO Tian-Xiang.51 Single Chip Computer—C language tutorial[M].BeiJing:Publishing House of Electronics Industry,2009.
[3] 吳華波,錢春來.基于AT89C2051的多路舵機(jī)控制器設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2006(8):55.
WU Hua-Bo,QIAN Chun-Lai.The Design of Mutichannel Servo Controller Based on AT89C51[J].Microcontrollers&Embedded Systems,2006(8):55.
[4] 時(shí)德鋼,劉曄,王峰.超聲波測(cè)距儀的研究[J].計(jì)算機(jī)測(cè)量與控制,2002(10):480.
SHI De-Gang,Liu Ye,Wang Feng.Research of the Ultraon IC Distance-Mesaure Instrument[J].Computer Measurement&Control,2002(10):480.
[5] 戴曰章,吳志勇.基于AT89C51單片機(jī)的超聲波測(cè)距[J].計(jì)量與測(cè)試技術(shù),2005(2):17.
DAIYue-Zhang,WU Zhi-Yong.Ultrasonic Distance Testing System’s Design Based on AT89C51 Singlechip Microcomputer[J].Measurement and Measurement technology,2005(2):17.
[6] 王海軍,惠彩云,李音,等.一種基于ISD1760的公交車語音報(bào)站系統(tǒng)設(shè)計(jì)[J].價(jià)值工程,2012(2):182.
WANG Hai-Jun,HUICai-Yun,LIYin.Design of Bus Stops Speech System Based on ISD1760[J].Value Engineering,2012(11):182.
[7] 嵇萍.基于單片機(jī)的自動(dòng)避障小車設(shè)計(jì)[J].蘇州市職業(yè)大學(xué)學(xué)報(bào),2013(3):33.
JIPing.The Design of An Automatic Obstacle Evading Vehicle Based on Single-chip Microcomputer[J].Journal of Suzhou Vocational University,2013(3):33.
Research and Design on Intelligent Obstacle Avoidance Apparatus Based on Microcontroller 12C5A60
Zhao Jianhua,Guo Ben,Li Dongyi
(School of Electronic Information Engineering,Xi’an Technological University,Xi’an 710021,China)
The system,using ultrasonic for self-test of avoiding obstacles,is introduced in this paper.It can judge the obstacle condition and give cautions.It uses the ultrasonic to measure the distance,the accelerometer to measure angle,AD converter for data transformation and microcontroller STC12C5A60 for data analysis and processing,and can accurately determine the position of the obstacle.This technique can be used for the development of intelligent toys,blind man navigation,field object position detection,etc.
Obstacle avoidance apparatus;STC12C5A60 microcontroller;Ultrasonic ranging;Acceleration meter
10.3969/j.issn.1002-2279.2015.01.022
TP277
A
1002-2279(2015)01-0079-05
趙建華(1958-),男,北京人,副教授,主研方向:電子信息技術(shù)處理與通信。
2014-05-15