基于12C5A60单片机的智能避障仪研究与设计
2015-08-07赵建华李东一
赵建华,郭 奔,李东一
(西安工业大学电子信息工程学院,西安710021)
基于12C5A60单片机的智能避障仪研究与设计
赵建华,郭 奔,李东一
(西安工业大学电子信息工程学院,西安710021)
介绍了系统如何利用超声波实现对障碍物的自动检测,对障碍物进行判断并给出提示。使用超声波测量距离,使用加速度计测量角度,使用AD转换器对数据进行转化,在单片机STC12C5A60中进行数据分析与处理,可以准确确定障碍物的位置。该技术可用于智能玩具的开发,盲人导航,物体位置检测等领域。
避障仪;STC12C5A60单片机;超声波测距;加速度计
1 引 言
目前,我国有1000多万视障人士,为了使这一特殊群体出行方便,迄今已出现不少具有导航避障功能的装置。例如导盲犬,它能引导视障人士顺利达到目的地.但是导盲犬具有训练成本高,训练周期长等缺点,更重要的是,从医学角度来说并不是所有的视障人士都适合使用导盲犬。还有电子导盲犬,此类产品亦存在不同的缺点:设计成本高、设计结构复杂,不易操控,人机之间沟通困难。鉴于此,目前在具体应用中存在一定的缺陷,本着人性化以及实用性的理念,提出了智能避障仪的设计。本装置采用超声波发射和接收,单片机软件设计,语音播报,集成微处理、自动振动等技术完成,语音和振动的双重保护和更为人性化的设计,有力帮助了视障人士顺利绕过障碍物。在相对复杂的环境中准确地对使用者进行语音提示,相对导盲犬、电子导盲犬、导盲杖等产品有突出的优点。
2 功能介绍
本系统目的在于为视障人士设计一种自动避障设备,从而使视障人士在行走过程中尽可能地减少因视觉缺陷而带来的意外伤害,并使视障人士摆脱对拐杖的依赖,对其心理上的自卑等负面情绪也可有一定的缓解。
系统检测范围为前方3米,可检测路面情况,比如上坡路,平路,前方有障碍,前方路面有坑洞的情况,当危险情况被检测到后,可以通过语音模块进行提示,从而避免意外情况的发生。
3 系统设计
系统的硬件结构框架如图1所示,共有六部分组成。主控制模块选用单片机STC12C5A60AD,进行数据分析以及各种控制;超声波测距模块选用KS103,用来测量它到地面的距离,使用串口UART接收主控制模块发来的数据,并返回测量到的数据;方向传感器模块选用MMA7361,用来测量当前超声波模块的发射角度,使用ADC功能是将测量出的数据进行计算得到角度信息;舵机控制模块选用SMS4315M,用来带动超声波测距模块和方向传感器模块转动,以完成对当前路面的扫描;语言播报模块选用了ISD1760,用以在检测到障碍物的时候播报声音,提醒用户注意;按键控制模块与中断引脚相接,利用外部中断原理实现人机交互。
4 硬件设计
系统硬件原理如图2所示,U1是主控芯片STC12C5A60AD;U2是方向传感器模块,X,Y,Z为三个方向上相应的模拟电压输出值,与单片机的P1.0,P1.1和P1.2相连,读取的数据直接保存在单片机内部寄存器;U3是超声波传感器,它与单片机的串口P3.0和P3.1相连;U4是语音模块,选用它的SPI工作模式,它有两个电源引脚和4个SPI通信引脚,它与单片机的P1.4—P1.7相连;除此之外,还增加了两个按键K1和K2,它使用单片机的中断引脚P3.2和P3.3,可以实现人机交互和功能扩展。
图1 系统框图
图2 系统原理图
4.1 舵机控制模块
舵机控制模块选用的是SM-S4315M模拟舵机,它由PWM波驱动,频率50Hz,转动角度范围-60°~60°,对应占空比范围为4.5%~10.5%,如果要获得较高的精度,就适当提高分频比。TC12C5A60的PCA功能可以产生一个稳定的PWM波,它最大分频只有256,如果只需要粗略控制,可以使用此功能。
在系统中,此模块的主要功能是带动超声波模块和方向传感器模块转动,以扫描当前路面的信息,并传递给主控制模块处理。
4.2 超声波模块
超声波模块选用的是KS103测距模块,它有较高的精度,10米时的误差只有2厘米。它有两种控制模式,本系统采用串口模式控制该模块。当单片机发出探测指令后,该模块会通过串口线返回两个数据,分别为高8位数据和低8位数据,我们可以采用合适的指令,直接得到距离值。
在系统中,此模块的主要功能是测量地面到超声波模块发射头的距离,值得注意的是,超声波发射并不是只沿直线发射出去的,而是以一定波束角发射的,而返回的数据只是所有投射范围内的一个最近距离。在计算时,应该根据测量值进行校正。
4.3 方向传感器
方向传感器模块选用的是MMA7361模块,除了测量超生波的方向角度,它还具有电源指示灯,可以很方便地观察工作情况。
系统中,此模块的主要功能是测量超声波的发射角度。当该模块正常工作后,会通过X,Y,Z引脚返回三个模拟电压值,返回的电压范围为0.85V~2.45V,具体数值可以使用ST5A60的ADC功能测得。而实际上,在舵机转动过程中,Z方向是一直保持水平的,即Z脚返回的值是不变的,可以忽略该引脚。
4.4 语音播报
语音播报模块选用的是华邦公司的ISD1760。工作电压范围很宽,2.4V~5.5V,该芯片录音时间可长达60秒。它有两种工作模式,按键模式和SPI模式。按键模式只需按下按键就可实现相应功能,操作简单,但必须要人工控制;SPI模式下,ISD1760可由单片机直接发送SPI信号控制,从而实现自动播报功能。
系统中,此模块的主要功能是播报语言,为客户提供准确的路况信息,从而减少意外发生,而在工作过程中,它只需要等待接收播放信号,播放语音即可。
5 软件设计
为了提高软件的可移植性,减少软件维护开销,该系统软件采用代码分层的方法。软件层次模型如图3所示,从下到上依次为硬件层,硬件驱动服务层,硬件驱动应用层,应用程序。硬件层指单片机以及各种所用到的外围器件,它是程序运行的基础;硬件驱动服务层指将单片机的各种功能封装成各种函数,然后留给外部器件使用。
图3 软件层次模型
系统中用到了单片机的ADC,SPI,UART,PCA四种功能,将它们封装后,则可移植性大大增强;硬件驱动应用层是为外围器件写的应用程序,它只调用硬件驱动服务层封装好的函数和库中的函数;应用程序中使用硬件驱动应用层的函数,它直接与硬件名称相关,可降低调试难度,并增加程序的可维护性。
程序流程如图4所示,首先对所有硬件进行初始化,然后超声波测距模块开始工作,以测出其距离地面的高度,把高度保存到内存中留给计算时使用。接下来进入扫描过程,超声波测距模块测量到地面的距离,为了得到更高的精度,这里取了10次值并取平均,这花费了一定时间,对扫描速度有一定影响。然后利用角度传感器测量角度信息,同样地,也是取十次值取平均。如此反复,一共取20组值之后完成数据采集。接下来就要对采集到的数据进行处理,如果检测到前方有障碍,那么就发送信号让播报模块发出声音,提示完毕后,进入下一轮检测,如果没有检测到障碍,直接进入下一轮检测。
图4 流程图
6 检测原理
为了方便分析,先建立一个数学模型。假设超声波以光束形式发射出去,即暂时不考虑波束角,且只在一个垂直面上讨论。由此可以得出如图所示模型。高度H是超声波测距模块距离地面的高度,长度Ln是超声波测距模块探测到的距离,角度an是它们的夹角,角度b是假设的路面与水平方向夹角,那么它们恰好构成一个三角形OAB,如图5所示。
在实际测量中,由于超声波的反射现象,只要入射波与所测障碍物的夹角不是90℃,那么大部分的出射声波会以一定的角度出射到别的方向。只有当入射波和障碍物垂直时,返回的距离最为准确、稳定,加上KS103硬件本身的裕量±10℃,超声波测距传感器的有效测量角度(入射波与所测障碍的水平夹角)为80℃~100℃。那么,在舵机带动超声波测距传感器转动的过程中,在有效角度之外反射的超声波都不能接收,串口返回的数据都是所能测的最大距离2C2B(11052mm),一旦超声波与障碍物的夹角是80℃~100℃,就能返回有效距离。
图5 超声波测距模型
根据图5可以看到,在平地上,除了最初的位置在90℃~100℃之间,舵机只要稍微转动,角度大于100℃,就没有声波返回,数据就全部显示为最大距离2C2B(11052mm),那么校正时只要将前10℃范围内的数据过滤掉,则返回的数据都是2C2B(11052mm)。故实际测量时,只要返回的数据全部是2C2B(11052mm)就表明是平地,不报警提示。根据图6可以看到,路面如果有障碍,包括斜坡,突起及坑洞,在舵机带动超声波测距传感器转动扫描的过程中,入射波与障碍的角度在变化时,总有机会落在80℃~100℃之间,这时就能测得有效距离。综上,超声波测距传感器返回的数据只要不是2C2B(11052mm),就能判定有障碍。
图6 超声波测距校正模型
7 实验结果及分析
超声波传感器是本系统的关键元件,使用前对它的测量精度进行测试,测量数据如表1所示。
可以看到,超声波传感器的精度很高,测量距离3米时误差也只有4mm而已。得到这些数据之后,可以开始调试硬件了。
(1)烧写程序到单片机后,将示波器接至引脚P1.3,观察到如图7所示波形。该波形周期为20ms,高电平时间1ms,占空比为5%;与软件设计完全一致,PWM波正常产生。
表1 KS103数据表
图7 PWM波形
(2)打开串口调试助手,可以观察到窗口接收到“73 74 61 72 74”几个数据,它们是字符串“start”的十六进制ASCII码,表示系统已经做好准备,可以开始测量了。
(3)第一次将舵机、语音模块以及测距模块分别调试成功。舵机能够流畅的旋转100℃,然后回到初始位置;语音模块能够清晰播放事先录好的提示语音;超声波测距模块在静态下能够精准的测量水平及垂直距离。
(4)考虑到超声波的反射现象,当入射波和障碍物垂直时,返回的距离最为准确、稳定,加上KS103硬件本身的裕量10℃,超声波测距传感器的有效测量角度(入射波与所测障碍的水平夹角)为80℃~100℃,在这角度之外反射的超声波都不能接收,转口返回的数据都是所能测的最大距离2C2B(11052mm)。根据此原理,在超声波测距传感器随舵机转动时,通过程序设定前40℃不进行测量,同时报警提示距离设置为1m-8m。
(5)将舵机、语音模块以及测距模块进行联调,并测量障碍进行报警。首先测量路面障碍,测试过程中能测量的最小障碍为表面积20cm*10cm,高为1.6cm的砖块,测距模块距离障碍物的水平距离约为3m。数据采集完成后,主控制模块会判断出前方有障碍,语言模块发出提示:“前方有障碍,请注意;前方有障碍,请注意!”。然后用倾角为60℃,面积为21cm*18cm的斜面模拟生活中的斜坡,测距模块距离障碍的水平距离约为3m,数据采集完成后,主控制模块会判断出前方有障碍,语言模块发出提示:“前方有障碍,请注意;前方有障碍,请注意!”最后测路面坑洞,测试过程中能测量的最小坑洞深度小于2cm,面积小于20cm*10cm,数据采集完成后,主控制模块会判断出前方有坑洞,语言模块发出提示:“前方有障碍,请注意;前方有障碍,请注意!”。
至此,各模块功能正常,系统基本功能实现。
8 结束语
在系统设计中,完成了所有的基本功能,比如,测试路面的倾斜度,检测路面的平坦程度,语音播报等;另外还有一些实用的附加功能,比如,时间的语音播报,使用者当前所处方向的检测等。
[1] 周立功,陈明计.项目驱动—单片机应用设计基础[M].北京:北京航空航天大学出版社,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单片机C语言教程[M].北京:电子工业出版社,2009.
GUO Tian-Xiang.51 Single Chip Computer—C language tutorial[M].BeiJing:Publishing House of Electronics Industry,2009.
[3] 吴华波,钱春来.基于AT89C2051的多路舵机控制器设计[J].单片机与嵌入式系统应用,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] 时德钢,刘晔,王峰.超声波测距仪的研究[J].计算机测量与控制,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].计量与测试技术,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的公交车语音报站系统设计[J].价值工程,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].苏州市职业大学学报,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-),男,北京人,副教授,主研方向:电子信息技术处理与通信。
2014-05-15