基于51单片机的导盲护腕设计与实现

    陈文甫 陈雪

    

    

    

    摘要:随着社会的发展,在社会生活中供盲人使用的避障产品已经有很多,但市面上所售的导盲产品普遍未能在便携性上为盲人带去便利,因此开发一款便携性较高的导盲产品具有实际意义。装置设计上以STC12C5A60S2单片机为核心处理器,将单片机的实时控制、数据处理与红外线的发射接收功能,传感器技术相结合,在为盲人提供基础的避障功能的同时,还提供了由GPS与GSM构成的远程定位功能,以及简单的夜间自动亮灯功能。

    关键词:智能避障;红外线测距;STC12C5A60S2单片机;GPS+GSM远程定位;导盲

    中图分类号:TP368? ? ? ? 文献标识码:A

    文章编号:1009-3044(2021)16-0220-03

    开放科学(资源服务)标识码(OSID):

    1 引言

    我国迄今共进行过两次全国残疾人的抽样调查,其中,根据第二次(2006年)的数据显示,我国盲人数量约为406万人,而日常生活中受影响的不仅仅只有盲人,高达827万的低视力患者和1223万的单纯视力残疾患者也饱受目不能视的困扰。这么多年过去了,随着我国人口的不断增长,我国的患有视力障碍的人群只会有增无减,我国将成为世界上视力残疾患者最多的国家之一。随着人民生活水平的不断提高,接纳社会的边缘群体成为我国社会进步的重要一环。盲人既是社会公民的一员,同时又是一个特殊的边缘群体,他们因为先天或者后天的种种原因,在日常生活中本就有诸多不便,如不能准确判断障碍物的方位并进行回避,尤其是盲人在感知腰部以上的障碍物时经常无法依赖于传统的导盲杖,而且目前市面上所售的新型导盲产品重量较重,无法很好地方便盲人的出行。一款轻便,造价低,识别精度高,功能齐全的导盲产品,能为盲人的生活带来更多的可能性。由于光速远比超声波传播速度快,所以红外线测距在对比超声波测距中有明显的优势,其传播和反射时间更短,能更快地提供预警功能[1]。

    调查发现,我国近年在市政建设上,盲道的修建一直是重中之重,这为盲人出行提供了极大的便利。但从导盲犬和电子导盲手杖在日常生活中的实际表现看来,两者很难为盲人带来最大程度上的便利。其中,携带不便,费用高昂以及使用场景限制等因素影响了他们在日常学习生活中享受的待遇,对于心理敏感的年轻族群也会降低他们出行的意愿。于是,就有了最初的設计理念——导盲护腕,通过降低盲人在人群中的辨识度,并提高盲人日常出行便利性,让盲人能很好融入社会生活中,有尊严地出行。

    2 硬件系统设计与实现

    2.1设计思路

    整个系统主要通过简单处理红外线回传数据后,通过发出声音预警危险信号。当夜间环境暗,LED灯亮起以起到警示效果,同时提醒过往车辆与行人注意避让。通过控制开关可发送当前地理位置信息,或者通过发送短信获取当前地理位置信息,以进一步保障使用者的人身安全。

    2.1.1 单片机模块

    STC12C5A60S2单片机采用增强型8051内核,抗干扰能力强,处理速度比起普通的8051快6~12倍。使用闪存技术的大容量程序存储器,兼容8051指令和引脚,可通过加电进行10万次以上擦除和重写。此外,支持串行口编程。通用I/O端口设计,每个I/O端口驱动能力可达到20mA,但建议总体不要超过120mA[2]。

    2.1.2 电源模块

    电源模块使用外接5V供电,为提高设计的场景适用性,采用USB线缆外接供电,可选用充电宝供电,也可以接入电脑USB供电口,在设计调试阶段方便对系统进行调试。USB线缆直连DC插座,通过自锁开关后,直连单片机和各模块的供电电路,负极串联接地。除GSM模块加了电解电容稳压外,其余各部分电路均没有外接稳压装置,因此在驱动电路元件工作时,相对考验供电的稳定。

    2.1.3 红外线检测模块

    红外线检测模块选用的是E18-D80NK红外避障光电传感器,可发射红外光和接收反射的红外光。发射光被调制发射后,接收头解调并输出反射光。配合使用光学透镜系统,可根据实际情况通过后部的电位器旋钮进行调整检测障碍物的距离,使得这种传感器能探测到高达80厘米的距离,结合红外光自身特性,不同颜色物体探测距离也各不相同,其中,白色物体检测距离最远,黑色物体检测距离最近,避免一定强度的可见光干扰[3]。

    该传感器直径为18毫米,传感器长为45毫米,线缆长为18厘米,可在零下30摄氏度到65摄氏度的环境下工作,默认工作电压为5伏特,工作电路为10~15毫安,最小驱动电路为100毫安,可探测3~80厘米的距离。红外波段约为900纳米。它的调制频率为100~150KHZ,不受可见光的影响。

    E18-D80NK红外避障光电传感器通过检测被检测物对光束的反射,同步回路连通电路,以此达到检测检测物体有无的目的。采用NPN光电漫反射开关,输出数字电路中的高电平和低电平,即0或1。目标检测为低电平输出,正常状态为高电平输出;高电平为4.5~5伏,低电平为0~0.5伏,为TTL电平。需经过外加一个阻值10K的上拉电阻后,才能连接到IO端口。

    2.1.4 蜂鸣器模块

    蜂鸣器模块选用的是TMB12A05有源电磁式蜂鸣器。额定工作电压为5伏,同时也可在4~7伏宽电压范围下工作,额定工作电流为30毫安,可在零下20摄氏度到60摄氏度下正常工作。

    单片机本身除P0口有较强的驱动能力,其他的IO口自身驱动能力有限,若直连蜂鸣器,输出电流过小,则工作状态下几乎不响,因此需要在蜂鸣器电路中加个三极管,利用三极管的开关特性,提升驱动能力,增大输出电路,从而使蜂鸣器可以正常工作。

    2.1.5 GPS+GSM模块

    GPS模块采用VK2828U7G5LF集成模块,核心芯片为UBX-G7020-KT,L1接收频段,信号强度约为-130dBm,误差小于两米,大约可用六个卫星,可在海拔五千米的地方所使用。默认工作电压为5伏,可在3.3~5.5伏的宽电压范围下工作,标准工作电路为30毫安,浮动电流值不得大于5毫安。正常工作温度在零下40摄氏度到85摄氏度之间,存储温度与之相同。冷启动实际平均为29秒,热启动时间平均为1秒。可通过软件配置数据速率,默认为9600bps。

    GSM模块采用以SIM900A为核心组件的集成通讯模块,板载一颗钽电容、纯铜天线、自动开机电路、带电换卡电路、麦克风耳机输入输出、休眠电路以及复位电路。默认工作电压为4.4~5.5伏之间,当电压大于5.5伏则会烧毁电路,在复位脚接GND情况下,关机电流为4毫安,工作电流为50毫安,待机电流为20毫安,具体会在0~20毫安之间浮动,在注册期间,发射的峰值电流达2安。这意味着电源输出电路最低达到2安,才能保障模块的正常工作。这是整个电路设计中最为考究的部分,因为常规充电宝的输出电路一般也峰值只在2安,无法满足整个系统的电路供电需求,而只有市面上快充充电宝的输出电路能保持在2.4安,在实际测试的时候需要注意这个问题。

    本模块为TTL电平接口,可以直接与单片机相连,无需转换器件。GSM模块电路采用了一颗470uf电解电容,接到两端的VCC和GND,主要就是让模块工作更加稳定。

    2.1.6 光敏传感器模块

    本模块采用四线制集成传感器模块,对环境光线最敏感,核心部件为GL5516光敏电阻,用来检测周围环境的光线亮度的变化,灵敏度高。额定工作电压为3.3~5伏,驱动能力强,超过15毫安。可输出数字信号和模拟信号,自带电位器,可用以调节检测光线亮度。PCB整板长3.2厘米,宽1.4厘米,有固定螺栓孔,便于安装拆卸。

    虽然采用的是4线制的传感器,但实际上并没有用到AO模拟信号输出口。所以和三线制的接法一致,VCC 接电源正极,GND接电源负极,DO输出端直连单片机,当外界环境光线亮度超过设定阈值时,DO 端输出低电平,当环境光线亮度达不到设定阈值时,DO 端输出高电平。再通过单片机控制驱动继电器模块,由此组成一组光控开关,控制LED灯模块的亮灭。

    2.2 硬件系统实现

    参考绘制的原理图,并结合实际情况,对各个子系统的模块进行焊接,完成硬件系统的最后一步。

    万用板的规格为9*15cm,DC电源接口后面连接自锁开关,再连接到电路供电。指示灯的添加是为了验证电路接通时电流的流通性,方便检验GSM模块电路的工作情况。而与光敏模块相连的LED灯模块,则是通过并联后再接入电路,通过三极管的开关特性来控制。单片机最小系统选用的是11.0592MHz晶振,以降低误差率,提高精度。考虑到蜂鸣器工作环境存在局限性,因此加入了一个拨动开关,用来单独控制蜂鸣器的开关。在GSM模块的两段,并联了一颗470uf电解电容,以确保电流的稳定性。

    考虑到实验后期测试需要不断进行单片机的烧录,反复焊接相较麻烦,因此在电路中添加一个40脚的IC座。在焊接好IC座的插脚后,把单片机插到里面就可以接通电路。在调整需要的时候,只需要简单把单片机拔下来,不需要多次熔焊,在整个开发过程中,可以极大减少时间。同理,光敏模块用到了4P排母,GSM模块用到了8P排母。而红外线避障探头所用到的3P接線端子则是为了焊接的稳定性,避免红外线探头自身重量导致线材断连,电路断路[4]。

    3软件设计与实现

    3.1红外线检测+蜂鸣器报警软件部分设计流程

    红外线测距作为导盲护腕的核心功能,是本身设计的重中之重。但是因为选材上的取巧,在设计软件程序上并不需要浪费过量存储空间和算力去判断回传信号时间和计算测量距离。当系统开始通电,芯片开始初始化,载入类库,把三个红外线探头分别设置为people1,people2,people3,蜂鸣器设置为beep,使用if循环嵌套语句判断三个红外线探头返回值是否为0,若任意返回值为0,则判断为三个探头前方存在障碍物,此时蜂鸣器从默认的不工作状态转为工作状态。其中,在蜂鸣器工作时,三个红外线探头保持侦听状态,若检测到三个红外线前方均无障碍物,即返回值均不为0,则蜂鸣器从工作状态装为不工作状态。并保持红外线探头的侦听状态[5]。

    3.2 GPS+GSM模块软件部分设计流程

    GPS+GSM模块主要用以确认设备所在,主要有主动回传地理位置和接收短信并回传地理位置的功能,是整个设计中程序最为复杂的一块。

    首先需要定义全局变量,最重要的是不要遗漏串口接收数据缓冲区,把使用Unicode字符转码后的电话号码设为PhoneNo,这个是作为唯一的接收回送地理位置的手机号码。通过if嵌套循环语句判断GSM模块回应是否以+开头,并读取GPS信号,开头$则接收定位信息。再添加串行口2中断处理函数,接着定义发送信息文本,优先发送指令,继而发送接收短信的号码,再依次发送北纬,小数点,东经和小数点,完成地理位置的发送。编辑主函数,使用if循环语句定时读取新短信,并在发送短信后删除所有短信。并在最后再次使用if循环语句定时读取短信[6]。

    3.3光敏传感器+灯光模块软件部分设计流程

    光敏传感器控制LED灯是盲人夜间出行的又一道安全保障,这个在软件设计上并不复杂。使用if循环判断光敏传感器light_dat,若光敏高,则继电器打开,即relay1为0,反之为光敏低,继电器关闭,relay1为1[7]。

    3.4软件系统实现

    根据前面的软件设计思路,用C语言为主的设计语言实现所设想的功能。因为选材的取巧,可以省去大量的代码用以计算检测距离以及比较距离,只需要通过简单的嵌套循环,判断红外线反射信号的有无,进而控制蜂鸣器的工作状态。同理,得益于光敏传感器的高度集成,这里也只需要判断光敏信号的高低,转而控制继电器的工作状态[8]。

    在代码开发过程中,与流程图逻辑有所不同的地方在于,判断GSM模块是否有接收到短信,以及判断发送短信按钮是否又被按下,逻辑上并不存在嵌套关联。但相同的是,两者都需要获取GPS信息,发送短信到指定的手机号码上,然后再删除短信。最后,需要定时读取短信。特别注意的是,这个模块的代码用到了两种不同编码方式,其中,Unicode编码用于编译指定手机号码,用来收取当前地理位置信息的短信,而UCS2编码则是设置手机卡当前的字符集。

    综合系统的各个模块所写,在编译运行无误后,生成hex文件,烧录到单片机上并调试,即可完成设计。

    4 结语

    导盲护腕的最终设计能够正常产生红外线,实现红外线的发送和接收,从而实现利用红外线方法探测前方障碍物,并进行预警。预警系统的应用,可以大大减少盲人的行走不便和安全风险,有效减少盲人由于无法正确识别障碍物所造成的事故,对盲人出行安全辅助起到了一定作用。

    参考文献:

    [1] 田鹏,李泽滔.基于单片机的红外避障系统设计[J].自动化与仪器仪表,2015(6):40-42.

    [2] 候昭垒,白洪彦.基于STC12LE5A60S2单片机的负气压平衡仪系统设计[J].科技创新与应用,2015(14):63.

    [3] 吴海清.一种智能红外遥控输出系统[J].今日电子,2014(6):55-57.

    [4] 范铁锤.高强度红外光的医疗系统设计理念探析[J].价值工程,2010,29(14):97.

    [5] 王懿川.基于单片机控制的超声波测距报警系统[J].上海计量测试,2011,38(5):53-56.

    [6] 徐驰宇,齐庆堃,雷巍,等.智能导盲拐杖设计[J].电子世界,2018(7):167-169.

    [7] 隋冶.基于AT89C51系列单片机的倒计时器制作研究[J].鸡西大学学报,2011,11(3):66-68.

    [8] 董蕴宝,潘旭君.浅谈C语言在单片机中的程序设计[J].科技信息,2009(13):59,67.

    【通联编辑:王力】