邓舒心,廖权权,黄威,张善富
(东南大学成贤学院,电子与计算机工程学院,江苏南京,210000)
鉴于盲人群体的出行率逐渐增大,但是,城市的街道规划对盲人的出行来说还是很不便。即使有盲道,但是人行道太过拥挤,以至于盲道没有发挥它真正的用途:导盲。再加上,现在培养一只导盲犬费用高达几十万,培养费用过高,并且导盲犬的寿命最多只有10多年。所以,我们研究的导盲车一定程度上能够很好的帮助盲人的生活。
目前,据我国和全球不完全统计,到2050年,将会有超过5.5亿人口患有中度甚至是重度的视力障碍等各种疾病。往往我们大家帮助盲人的方式是靠导盲犬、导盲杖、甚至是一些导盲符号来帮助盲人。在国内,鉴于培养一只优秀的导盲犬需要花费巨大的精神和时间,并且还可能会耗费到大批的人力、物力和财力,这样高成本的导盲犬很难在盲人群体中广泛化。
STM32单片机作为本次设计的实验主板,致力于设计出智能导盲车系统。设计的导盲车避障系统包含避障的功能,且在避障的同时能够语音播报避障情况以致提醒路人。STM32为此系统的控制中心,利用超声波装置对智能车前方以及左右两旁是否有障碍物做出探测。假如前方有障碍物,小车将会自动停下,并且判断左右两旁是否有障碍物,如在检测的范围内没有障碍物,电机通过正转与反转进行转弯,对小车的行径方向进行调整,同时,做出语音播报。
图1 方案流程图
首先,对于整个系统来说,主控板的设置和使用是重中之重。既要满足性价比高,又需要能够满足内存量大,运行速率快等特点,并且用起来一般,易操作上手等特点。本系统选用了STM32单片机作为整个系统的主要控制板。
其他模块还包括超声波避障模块、舵机模块以及语音模块。超声波装置通过发送超声波和接收来测量障碍物距离,舵机用于配合小车的转向,语音模块则播报导盲车转向的情况。
导盲车系统的核心使STM32T,STM32F103控制主板的容量为512K,能够通过片内BOOT区,可实现串口下载程序(ISP)。片内包括有双RC晶振,提供8M的频率以及32K的频率,支持JTAG调试以及SWD调试。这使电路主板可以很好的对返回回来的超声波的数据进行及时处理,并准确、即时的将数据传递到舵机以及语音控制模块发出指令。
根据小车的速度,超声波传感器发送和接收信号的时间长短以及组合声波的速度,人为地将超声波传感器的检测距离调整为6CM。舵机对超声波采集的信号进行分析,以达到小车下一步的转向为目的。
将编写好的程序下载导入到SYN6288语音模块中,然后能够将STM32主板传送出来的数据转换为声音信息播报出来,为盲人提供提示的指令,进而引导盲人规避障碍物。
SYN6288提供一组双全工的异步串行通讯(UART)接口,实现了与单片机的数据传输。在系统设计中,通讯配置采用的是9600kbps波特率、起始位1、数据位8、停止位1、无校验、不使用流控。
SYN6288通过使用RXD、TXD以及GND实现串口通信,并由+5V电源电路对该部分供电。READY/BUSY状态引脚信号为低电平的时候就说明芯片正在等待STM32送来的数据,在系统设计中并将此引脚接在STM32单片机的中断输入源上,产生一个下降沿中断请求时发送数据,以此用来告知STM32单片机此时可以向语音模块发送数据,然后使语音模块播报出来。
表1 SYN6288命令帧格式
该导盲车的软件部分主要是用C++语言进行设计编程。采用C++语言进行软件设计的主要功能是利用C++编程的程序模块化设计的功能将不同的功能模块化、分别编程,运用C++编程的最大好处就是能够使得软件结构层次分明,方便阅读、函数调用以及修改。对于软件部分的设计,目的是对舵机、超声波模块以及SYN6288语音芯片文字转语音模块进行调控,通过软件部分对超声波的回波信号数据进行及时处理、计算测量距离,实现数值运算和数据通信。为了超声波测量的距离能准确以及舵机的转向能快速,需要设计合理并且简单的控制程序,以确保实施准确的距离探测和快速地判别方向以及正确的语音模块播报情况。因为该系统采用超声波测距探测器以及舵机,导盲车在正常行驶的过程中,首先是对正面障碍物的探测,若正面障碍物到小车的距离小于6CM,小车将视为正面有障碍物,则通过超声波向STM32发送信号,然后STM32对舵机发出指令,使舵机分别向左右两侧转向,探测左右两侧是否有障碍物,以及离障碍物的距离,若探测到距左边的障碍物距离小于6CM,距右边的障碍物距离大于6CM,导盲车则向右转;若探测到距左边的障碍物距离大于6CM,距右边的障碍物距离小于6CM,导盲车则向左转。若左右两侧距障碍物的距离都小于6CM,则导盲车实施掉头。
图2 SYN6288原理图
在设计制作完成后,对系统的性能进行测试,选择A4白纸作为障碍物,在不同距离下测量8次,超声波测距结果如表2所示。
表2 超声波测距结果表
在测量中可能会伴随着有误差,误差的来源主要有以下几点:(1)超声波返回的波形能量随着距离的增大而减小。(2)超声波回波接受整形电路造成的延迟和信号失真。(3)测量距离时使用的直尺,手动测量,存在人为的测量误差。经过反复测试能够满足设计要求。
在此系统设计中,主要运用到了STM32单片机作为主控制芯片,在一定时间内完成小车转向问题,也实现了语音播报功能,从而完成了智能导盲车系统设计的人物
本次系统设计方案还存在很多不足之处,不够成熟。虽然导盲车能够避障,也满足语音播报功能,但是内部环节还需要很多调整提升品控的地方。