时间:2024-05-19
马宏平,蒋 励,宋竹青,马彦鹏,王风丽
(同济大学 物理系,上海 200092)
国内目前约有500万盲人,占全世界盲人总数的18%。盲人在行走引导方面具有很大的困难,目前引导盲人行走的方法主要有三种:(1)传统的手杖引导;(2)盲道引导;(3)导盲犬引导。其中传统的手杖引导通过敲击地面告知盲人前方是否为可行路线,它无法告知盲人周围障碍物的空间分布和距离[1];盲道存在一定的局限性;而导盲犬的培训周期长,并且成本很高[2]。为此,文中提出了一种引导盲人行走的便捷方案,用三个红外线探测器同时探测前、左、右三个方向障碍物距离数据,控制器对这些数据进行处理判断,然后通过MP3语音模块的提示音和蜂鸣器提示盲人周边障碍物的距离,扩大盲人的感知空间。
导盲系统中,采用红外线探测器测量身体与障碍物之间的距离。该红外线探测器是基于三角测距原理完成身体与障碍物之间距离测量的,被测障碍物是具有一定漫反射性质的反射体,如墙壁、纸张等[3-5]。三角法测距的基本原理是基于平面三角关系。三角形的三个顶点分别为光线发射端、接收端和障碍物,红外线发射端按照一定角度θ发射红外光束,遇到障碍物时光束就会反射回来,反射光线照射到接收端的CDD检测器上,在检测器上相对中心位置有一个偏移量X,随着探测器与障碍物之间距离d的变化,偏移量的大小也随之发生改变。利用三角关系,在知道了发射角度θ,偏移距X,中心矩D,以及滤镜的焦距f以后,传感器到物体的距离d就可以通过几何关系计算出来[6],图1为三角法测距原理示意图。
一般的红外探测器的结构是固定的,光线发射角度θ、中心矩D、滤镜的焦距f都是常数,所以障碍物的距离d只与发射光线在CCD检测器上的偏移量X有关[7]。红外线探测器的模拟输出电压信号与反射光线光斑中心位置有关,即与偏移量X之间有一定的比例关系,所以探测器输出的电压信号与障碍物的距离d之间存在着一定的函数关系,通过对红外探测器件输出的电压信号进行采集、运算处理就可以获得传感器与被测物体表面之间的距离信息。
图1 三角法测距原理图Fig.1 The schematic diagram of triangular surveying
实际测量时红外探测器的输出值为模拟电压值,在编程设计中需要的是实际的距离,所以必须找出模拟电压与实际距离之间的对应关系。用红外探测器测量障碍物距离固定变化的一系列距离值,通过比较实际距离值与模拟电压输出值之间的数据关系,模拟二者之间的函数表达式。文献[7]给出了这种转换函数和计算方法,用MATLAB编程并以图形结合的方法获得函数的系数。图2是红外探测器测量不同距离D时得到的模拟电压输出值U,二者之间基本符合反比例函数的形式。假设模拟电压与实际距离之间满足关系式:
图2 实际障碍物距离与探测器模拟电压输出值对应曲线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
导盲器是辅助盲人行走,避免碰到障碍物的工具,所以其响应时间是重要的指标。行走时有一定的速度,所以前方障碍物对盲人出行安全影响很大。为了提高系统报警的速度,在语音报警功能的基础上,增加了蜂鸣器报警。蜂鸣器只需要一个高电平就能使其发声,信号处理过程简单,反应迅速。
对于蜂鸣器,用Arduino单片机可以控制其发出不同频率的声音,因为不同的音调对应不同频率的方波,音调越高,则方波的频率越大,即周期越小。两者的数学关系表达式如下:
式(3)中,t表示方波高电平时长,T 为方波周期,f为音调频率。可以根据上式来计算不同音调对应的方波在一个周期内需保持高电平的时间长度,只要控制蜂鸣器供应电压的高电平的时间长短就可以让其发出不同的音调,从中选择合适的音调作为导盲杖的报警音。
表1 不同声音对应的频率Tab.1 The frequency of different voices
导盲系统主要由电源模块、串口转换模块、红外探测器发射与接收模块、信号处理控制模块和语音输出报警模块组成。如图4所示,该系统控制核心为Arduino ATmega328P-PU单片机,红外测距模块则采用夏普GP2Y0A02YK0F红外距离传感器,语音报警模块采用蜂鸣器和MP3—VS1003B语音芯片进行双重报警。单片机采用的通讯接口是TTL电平的TX/RX端,而MP3模块的串口通讯是RS23电平的MCU_TXD的MCU_RXD端,所以需要用到串口转换器,将MP3模块RS23电平转换为TTL电平。
红外线发射与接收系统选用的是SHARP公司的GP2Y0A02YK0F红外距离传感器,测量范围为200~1 500mm。探测器主要是由红外信号发射端、接收端及相应的处理电路组成,红外发射端和接收端与被测障碍物组成平面三角形,如图5所示,利用前面介绍的三角测距的原理来探测人与障碍物的距离信息。
图4 系统的整体设计图Fig.4 The overall design chart of the system
图5 红外发射与接收示意图Fig.5 The schematic diagram of the infrared emitting and receiving system
控制系统的工作流程如图6所示,控制系统使用的是ArduinoDuemilanove 2009ATmega328P-PU 单片机,它具有模拟输入/输出端口和数字输入/输出端口,其中模拟端口接收红外探测器测量得到的模拟输出电压,需要通过D/A转换也即函数拟合将其变为实际对应的距离,然后根据这个实际距离值判断障碍物的远近然后控制语音报警系统做出相应的语音报警。
语音报警模块中采用的是TX_SDMP3_2.1音乐播放模块,VS1003B作为 MP3解码核心[8]。VS1003B支持 MP3、WAV、WMA、MIDI等诸多音频格式,支持SD规范V1.0,即可以读取外存储设设备上的音乐文件[9]。
语音电路根据控制系统分析的所有测量值,设计出语音元素(前方、左方、右方、距离),分别录制语音文件,这些信息存于语音电路非易失性存储单元NMC中。测量数据经过信号处理系统处理后,发出语音地址和放音控制指令,同存储在语音芯片内部的语音地址进行比较,当两者相匹配时,经由语音电路通过耳机输出测量结果。
图6 信号控制系统流程图Fig.6 The flow chart of signal control system
系统采用Arduino ATmega328P-PU单片机专门配套的Arduino软件的C语言编程。控制器要同时实现对前、左、右三个方向的红外探测器进行控制,所以必须对三个方向做优先级设定,由于前方障碍物距离值比较重要,控制器应优先判断前方有无障碍物,然后再判断左右两方,如图7所示。
结合图7中的优化运算方法加入到整个系统总程序中,整合红外测距模块、控制器模块和语音报警模块,最后得到的主程序如图8所示。
图7 三个方向红外探测器的信号处理优先级示意图Fig.7 The schematic diagram of signal control priority of three infrared detectors from different directions
图8 主程序图Fig.8 The main program diagram
利用红外线探测器测量障碍物的距离,采用单片机处理三个探测器的数据信息,确定障碍物的方位和距离,输出信号控制蜂鸣器和MP3语音模块进行语音报警,有效地帮助盲人确定障碍物的方位,进行便捷的行走。该方案经过电路实现后,进行了全面的模拟盲人实验。在长20m、宽2.5m的楼道里,在靠左右墙及楼道正中心三个位置随机放置共五个宽1m、高1.2m的长方形木板,然后蒙住眼睛模拟盲人前进,每次行走前都更换五个木板的位置,经过多人多次行走结果统计,平均每次通过20m的距离所用时间为30~40s之间,并且没有或只有一次碰到障碍物。通过这样的模拟实验,验证了导盲杖的实用性和可操作性,证明该导盲杖可以有效正确地引导盲人避开障碍物,安全快速地行走。
[1]杨国建,石秀娟,潘鸿雁,等.基于SPCE061的智能盲人导航系统[J].工业控制计算机,2010,23(3):93-94.
[2]许 丽,曹胜男,唐立伟.基于 AT89C51的智能手杖设计与实现[J].太原师范学院学报,2009,8(4):66-69.
[3]林小倩,林 斌,潘泰才.基于CMOS单点激光三角法测距系统设计[J].光学仪器,2006,28(2):27-30.
[4]李晓天,张铁强,张胜勇,等.基于激光三角法的小物体尺寸测量及三维重构系统[J].光学仪器,2008,30(6):21-26.
[5]刘立波.基于DSP的激光三角测距传感器研究[D].上海:上海交通大学,2008.
[6]王晓嘉,高 隽,王 磊.激光三角法综述[J].仪器仪表学报,2004,25(4):601-604.
[7]刘颜.基于DSP的移动机器人控制系统设计与避障算法的实现[D].北京:北京交通大学,2007.
[8]洪家平.基于 VS1003解码器的 MP3播放器设计[J].单片机与嵌入式系统应用,2010(11):54-56.
[9]袁 卫,党纪源.基于单片机的 MP3播放器设计[J].现代电子技术,2011,34(4):122-124.
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!