梁灿杰 杨馥彰 林楷涛 陈俊填 万智萍
摘要:随着科学技术不断发展革新,社会对盲人关注不断提高,针对全球盲人数量众多,关爱的角度出發,该文基于Arduino和STM32F429IGT6芯片作为核心控制模块,GPS模块和远程终端APP能够令家人实时跟踪确定盲人的准确起始位置和目的地。在规划行走路线所感知的障碍物上,我们使用HC-SR04超声波测距模块和蜂鸣器有机结合来令盲人知道前方有障碍物,通过SIM900A模块来实现一键拨号,及时联系家人。盲人的日常生活需要借助其他工具的感知与判断周围的空间事物从而构成本项目的实现出发点。如何让盲人更方便的出行,更好的让他们家人得以安心是本次研究的难点所在。本项目所设计的导盲器搭载APP定位功能和打电话功能、超声波测距震动功能,它符合盲人的出行需求,也更加的贴近正常人的生活。
关键词:导盲;超声波;GPS;Arduino
中图分类号:TN2 文献标识码:A 文章编号:1009-3044(2018)24-0190-04
Abstract: With the continuous development of science and technology innovation, the society is paying increasing attention to blind people. In view of the large number of blind people around the world and the love of care, this article is based on Arduino and STM32F429IGT6 chip as the core control module, GPS module and remote terminal APP can enable family members to track and determine in real time. The exact starting position and destination of the blind person. In planning the obstacles perceived by the walking route, we use the HC-SR04 ultrasonic ranging module and the buzzer to combine organically to make blind people know that there are obstacles in front of them and use the SIM900A module to implement one-touch dialing to promptly contact the family. The daily life of the blind needs to use other tools to perceive and judge the surrounding space things to form the starting point for the realization of this project. How to make it easier for the blind to travel and to make their family members feel more comfortable is the difficulty of this study. The guidance device designed by this project is equipped with an APP positioning function and a call function, and an ultrasonic ranging vibration function. It is in line with the travel needs of the blind and is more close to the normal life.
Key words: Guided blind; Ultrasonic; GPS; Arduino
“盲人的世界到底是一片黑色,还是连黑色都不存在?”这是社会大多数正常人都存在的疑问。他们对于阳光的渴望,远远超出了我们的想象。根据英国《柳叶刀·全球卫生》2017年8月新刊载的一篇研究报告中提出,若不加强对眼疾的治疗,那么全球盲人数量2050年将增至1.15亿,比现有的3600万多2.2倍。本文所采用的GPS/GPRS(全球卫星定位/导航系统)早在20世纪80年代,欧洲、日本广泛使用汽车车载导航,经过多年的发展,随着中国的道路设施、工业一体化规模不断增加,GPS的应用大大得到了发展,其产品大大深入我们的实际生活中。在中国涉及定位的智能导盲仪器屈指可数,在这方面不同于外国的,导盲杖纵观全世界,依旧是领导性首选地位,若能在这方面投入众多先进科技,同时要控制成本,节约成本,能为更多人所使用。目前市面上,只局限于传统的导盲杖,只有普通的支撑辅助作用,仅仅只是一根拐杖,这种价格便宜,功能单一的拐杖,已经远远不能满足具有视力障碍的人的需要,人们对其要求越来越高。本文所设计的系统不仅能利用超声波测量前方障碍物,还通过语音震动提醒使用者,各方面功能也有比较全面的进步。
1 主控板
本系统中所采用的主控模块Arduino Uno rev3和使用搭载cortex-m4内核的STM32F429IGT6芯片,作为一款大众所实用的平台模板,其处理器核心是ATmega328系列,具有14路数字输入/输出端,其中6路模拟输入,能够很好地驾驭,同时作为一款具有高处理速度、低功耗、超强抗干扰以及高速率等特点的单片机也是其经久不衰的原因,发展到r3系列,改进了前两代许多的缺点,同时指令简单,易于操作,管脚端口数量多且良好的兼容性,而且电容量足够大,也能很好地满足该系统对耗电量的续航的要求,使得该款单片机很好的符合了本文的需求。如图1所示为Arduino Uno rev3电路原理图。
2 GPS卫星定位
现代的GPS系统主要由地球空间部分、地面控制端部分、用户终极端部分三部分所构成。其主要是由GPS接收终端机所组成,根植于移动端,其能够很好地分析传来的地理信息,内置供导航计算的算法方案,计算出终端机的经纬度进而显示出来,通过借助高德API来转变格式形成地图上的定位点,这就形成了用户所看见的定位信息。其定位原理是差分定位,前者是定位精度较高而且也是常用的,正常来讲,三点确定一线,即一个GPS接收器,但在正常使用时候,往往需要多一个,来更好地确定传输距离。本系统设计中,需要知道三个量,“经”“纬”“高”三度。在编程中,通过GetLocation()函数来获得这些量,而且需要四组数据,保证在定位过程中的准确性。在进行GPS模块设计时,把GPS模块的串口1与Arduino Uno rev3的串口PC0相连接,模块与天线的连接根据情况可以添加一级前置放大器当作电压信号处理。
3 超声波测距与震动提醒
本模块采用HC-SR04普通超声波和kt40-1602高压超声波共同实现测距功能。其中所使用的测距方法称为回声探测法,即超声波的发射器向一个方向发射超声波,当超声波在传播的途中碰到障碍物便会立刻反射回来,接收到反射的超声波的时间与发射时间的差值除以二便是测距模块与障碍的距离。为了更好理解测距模块其中是如何工作,首先要了解其工作的原理,首先Arduino Uno r3通过外部引脚P3.0输出电平脉冲,进行复位电路,控制程序使其输出相应的载波频率到超声波发射器,于是开始工作,计数器同时在计数,检测一个来回的检测时间与接收脉冲波形的瞬间,正常超声波传播期间,接触到障碍物马上停止前进并折返回来,超声波接收器马上感应,即收到反射波,下令计数器马上停止工作。测距模块最远可测量距离为10m,测距精度可达到3mm。该模块包括控制中枢电路、发射器以及信号接收器,图2为超声波测距工作示意图。
基本工作原理包括:
(1) I/O口的TRIG能够开始启动测距功能,提供不少于10us的信号,而且是高电平的;模块自动发送8个40Hz的方波,自动检测是否有信号返回;
(2) 一旦信号折返,I/O口的ECHO就会发送高电平信号,其能够持续的时间,就是我们所理解的从发射到返回所需要的时间,其中所需距离 =(高电平时间*声速(340m/s))/2。
震动提醒作为本系统的一部分,震动提醒和蜂鸣器模块是当作一种用来提醒盲人行进前方有障碍物的提示方式,当通过超声波模块感应到前方的障碍物时,经过外部引脚I/O口流入电流,蜂鸣器就会发出声响,震动器就会发生微微的震动。当夜间出行的时候,为了更好让路人和车辆注意到使用者,避免碰撞,能起到很好的提示作用。其低电压、低电流的工作不会对人体造成伤害,所以被广泛用于很多场合。
4 系统软件设计
4.1 系统流程图设计
本节中,阐述服务器模块的构建和后台APP界面内部的设计,其中包括定位功能、基于TCP协议的Socket通信信号构建、数据库表的建立、Android与MySQL的数据连接以及高德API的构建链接。
本系统中软件设计的部分,实现了一种基于Android的远程定位结合SIM900A芯片、GSM/GPS模块和服务器LAMP共同获取定位信息的一种设计思路,并内嵌高德云图API使其接收准确位置的信息。系统的软件设计流程图如下图5所示。
4.2 服务器与数据表模块设计
从系统的构建需求,需要使用一台服务器能够支持多用户同时服务,这就要求服务器的结构设计能够稳定的正常运行。本系统中,选择了LAMP来搭建后台服务器,用作数据传输和获取。
LAMP为Linux+Apache+Mysql+PHP多方组合的英文缩写,是一组常用做搭建动态网站或者服务器的开源软件,但是我们这里并没有全部都使用这其中的功能,只是借鉴了其中一部分开发者功能。即MySQL是作为一类为LAMP系统所提供的数据存储端,其强大简单的功能能够很好地适合运行本系统运作的数据库管理器。
在设计数据库中,该系统是使用了Navicat for MySQL软件来创建三个数据表,分别是Account、user info、user password作为登陆APP的账号、用户名、密码的信息库,同时在Eclipse上建立一个类DBUTIL和利用try catch()与getConnect()的方法来说明并再新建另一个类来使用doGet()方法获取数据库的信息。
数据库表的设计,首先要从其设计的项目大小出发,即系统的容量,根据你所需要的扩展大小做出的相应调整。需要从设计开发的角度去着手,从自己的最终目标考虑,然后看自己需要什么功能就设计相应的数据表。在本系统中,由于需要的量不多,故只需要设计三个表即可,命名也要遵循一定的规则,按照官方的要求,尽可能的方便开发者所读懂就可以,避免出现连自己都看不懂的名称,这一定程度上,能够节省开发设计时间。
4.3 基于TCP协议的Socket通信
基于TCP协议的Socket通信可分为客户端和服务端之间的通信,这其中又可以分为几部分,分别由建立Server Socket与Socket连接、开启输出输入流、协议读写程序、结束资源入口这四部分所构成。
Socket通信能夠在双方建立起连接后,通过一定的方法,可以直接进行数据的无缝连接,连接的时候可以实现信息数据的主动推送,而免去了每次由客户端向服务器发送请求命令,其为通信双方提供了数据传输的通道,即为Socket连接。尤其他数据率丢失率低、使用简单和易于移植的强大特点使得能够稳定运行于本系统之中。
在实现通信过程中,Server端需要声明一个Server Socket对象并指定端口号,接着调用Server Socket的accept()方法来接收Android端数据信息。Android端需要创建一个Socket对象并指定Server端IP地址和端口号,通过input stream读取数据,获取服务器发出数据,最后将要发送数据写入到output stream,开始实现TCP协议的Socket数据传输。以下图7清晰的讲述了Socket通信的基本流程。
在实际操作中,建立了Socket通信接收就能够由Sim900A芯片、GSM/GPRS模块经TCP发送经纬度信息并存入MySQL数据库中,接着Android客户端读取MySQL数据库中存放的经纬度信息。
5 系统测试
5.1 硬件模块与超声波测距模块的程序测试
程序的测试需要是系统的最后一步,也是检验能否成功的关键一步。把写好的程序烧进开发板里就好比向一个小孩灌输知识,所以整个系统连接完成后就是靠程序的正常运行,由kell C51该款软件来进行调试与编译的工作,最下方的方框显示了程序运行的错误和警告,若没出现任何错误提示,则说明可以正常烧进,并可以编译成功。程序测试如图9所示:
对于感测行走过程中障碍物的距离,超声波测距模块起着重要的作用。首先该系统犹如一双指引帮助盲人前进的眼睛,在程序中设定距离障碍物某一个距离时就可以感应到并做出通过蜂鸣器来发出声响,这是它的基本原理。
这部分是由Arduino来控制实现功能的,连接蜂鸣器的四个端口,其中gnd、trig、vcc、echo分别连接Arduino的四个特定端口,该测试与前一部分紧密结合,共同构成一个完整的整体。
5.2 整体系统测试
基于各模块分开的测试,测试到的只是每一部分所起到的作用,所以结合一个整体的时候的测试很有必要。整体系统如图10所示,图中有3-4个按钮,通过按下不同颜色的按钮,分别对应不一样的模块起作用,简单的设计为了方便盲人使用,所以尽可能使其合理,操作简化,易于上手。经过调试与测试,本系统功能正常,可实现超声波测距震动提醒功能。
6 结语
盲人是一个特殊的社会群体,如何帮助保护并尊重他们是一个重要的课题。盲人的日常生活需要借助其他媒介的感知与更好判断周围的空间事物辅助出行从而构成本项目的实现出发点。
为了提高盲人行走的安全性和方便性,综合各方因素设计了本系统。其创新性、实用性、合理性高度贴近生活的需要,将会大大影响盲人出行的方式。
参考文献:
[1] 蔡睿妍.Arduino的原理及应用[J].电子设计工程,2012,20(16):155-157.
[2] 于红利.盲人导行辅助系统中信息采集及优化研究[D].南华大学,2013.
[3] 谢敬仁.彭霞光.中国盲人定向行走训练的现状与发展对策[J].中国特殊教育,2008(8),53-56,40.
[4] 秦瑞超.邵向楠.盛庆伟,等.国内外主要卫星导航定位系统的发展分析[J].黑龙江科技信息,2010,(24):11-12.
[5] 朱筱虹.徐瑞.孙妍,等.GPS标准现状及体系分析[J].无线电工程,2012,42(8):28-31.
[6] 郭竹.当前GPS行业发展及产业化分析[J].科技信息,2009(10):356.
[7] 翟順.王卫红.张衎,等.基于SIM900A的物联网短信报警系统[J].现代电子技术,2012,35(5):86-89.
[8] 张维文.孙耀杰.王彬宇,等.基于 Android和 SIM900A 模块位置实时监控系统的设计与实现[J].中国矿业,2014,(z2):362-365.
[9] 姚旭禹.汤莉莉,黄思嘉,等.智能盲人拐杖的研究与设计[J].科技创新导报,2015(27):61-62.
[10] 郭明欣.实时GPS定位应用中定位数据的提取[J].科技风,2010(8):255.
胡延苏.高昂.超声波测距误差分析及校正研究[J].计算机测量与控制,2015,23(8):2820-2823.
[11] 童峰.许天增.一种移动机器人超声波导航系统[J].机器人,2002,24(1):55-57,61.
[12] 余琴,赵振华.基于GPRS的SOCKET通信的应用研究[J].单片机与嵌入式系统应用,2005(11):52-53,57.
[13] 李庭威,王峰,汪进,等.高精度差分在高德地图上的多点实时定位[J].电脑知识与技术,2017,13(23):200-201.
[14] Wen Da Huang. Remote Monitoring of Environment by Android Smartphone through Secure Sockets Layer[J]. Applied Mechanics and Materials,2014,3013(522).
[15] Jing Li,George Taylor,David B. Kidner. Accuracy and reliability of map-matched GPS coordinates: the dependence on terrain model resolution and interpolation algorithm[J]. Computers and Geosciences,2004,31(2).
【通联编辑:梁书】