基于STM32 的智能电子导盲犬的设计

2021-10-18 08:57蒋志伟
科学技术创新 2021年27期
关键词:导盲犬测距障碍物

蒋志伟

(南京医科大学康达学院,江苏 连云港 222000)

我国目前盲人数量已经达到1700 多万,盲人作为一个特殊的社会群体,需要人们给予特殊的照顾。为了方便盲人的出行人们发明了多种方法,传统的如盲杖,它的作用一是试探前方的路面是否有障碍物或坑洼,二是通过敲击地面发出声音,提醒路人注意避让。另一种是导盲犬,导盲犬是一种经过特殊训练的犬,可以引导路人行走、躲避道路危险情况,是目前最理想的辅助盲人行走的方法。但犬类虽多,适合作为导盲犬的犬种很少,能训练成为合格导盲犬的就更少,通常一只导盲犬要经过长时间的特殊训练,价格昂贵。

为了方便盲人,运用现代电子和计算机技术,人们开发了多种帮助盲人出行的产品,主要包括以下几种:

(1)电子导盲器。在早期的导盲工具设计中较常见,这种导盲器的结构比较简单,盲人可以直接手持,它以单片机为控制核心,包含多个超声波测距模块,可以探测各个方向的障碍物,通过语音播报各个方向的障碍物情况[1]。

(2)电子导盲杖。电子导盲杖具有传统盲杖的外观,通常采用单片机作为主控,集合超声波传感器、震动模块、语音播报模块、GPS 导航定位模块等部分构成,具有路线规划、障碍探测、震动报警、语音提示等功能,有的还具有LED 灯和光敏电阻,用于在夜间发出光亮,提醒路人注意避让[2]。

(3)导盲机器人。导盲机器人通常具有自主行走,同时探测路面障碍等功能,结构主要包括超声波传感器、主控模块和语音及蓝牙模块,原理是盲人佩戴蓝牙耳机,电子导盲小车实时探测周围情况然后将路面情况通过语音传给盲人[3]。

(4)穿戴式导盲器。这种导盲器的明显特点是可以穿戴在盲人身上,系统通常采用超声波模块,灰度模块,语音模块,高清摄像头等。灰度模块用来检测红绿灯,用摄像机采集图像并通过识别算法识别斑马线和盲道[4]。

(5)手机语音导盲。这是一种较新的技术,它是利用随身携带的Android 手机实现导盲的工具,在手机上安装APP 来采集图像,利用图像识别的方法来识别盲道和障碍物,通过手机语音播报前方障碍物情况,有的还可以根据手机定位和输入目的地实现路线规划功能[5]。

电子导盲器的种类较多,但具有实用性和价格优势的较少,本设计旨在结合各种方案的优点和长处,设计开发一种具有较好实用性的导盲用机器人,使之满足使用者的需求同时又具有一定的经济效益。

1 整体设计

系统的整体设计包括机械结构设计、硬件电路设计和软件设计。

1.1 机械结构设计

导盲犬的机械结构关系到行走的稳定性、可靠性、实用性以及能否很好的完成探测和躲避障碍物的功能的实现。导盲犬的结构我们采用三轮小车的设计方案,三轮小车具有很好的转向能力,地形适应能力和牵引力,我们在原有的三轮小车的基础上,加宽加大小车的车体结构,使之具备更好的载重能力,能够容纳更多的设备,包括动力电池,红外避障设备,超声波避障设备,控制电路等。同时我们还加大车轮的尺寸,并采用摩擦力更大的轮胎,使车的通过性能更好。

1.2 电机和供电系统

因为我们采用了更大直径的车轮,所以我们使用了更大功率的电机,同时电源部分我们采用12V20Ah 铅酸蓄电池以储存更多的电能,同时可以显著降低使用成本,更好的满足用户的需要。同时我们重新设计了电源供电电路。供电电路的设计要求包括:①满足电机的供电要求;②提供5V 电压提供控制电路工作;③为外围模块提供电源。

2 硬件设计

我们采用STM32F407 单片机作为主控,将主控板、蓄电池、供电电路、超声波模块、红外传感器模块和语音识别模块一同安装在小车上,构成整个硬件系统。

2.1 STM32 系列微控制器是意法半导体开发的嵌入式处理器,专为要求高性能、低成本、低功耗的嵌入式的应用而设计。

我们采用stm32f407 微控制器,它具有多达1MB FLASH、64kB SRAM、168MHz 主频、12 位ADC、高速USART,满足本项目的设计开发需要。

2.2 目前超声波测距方法已经很成熟,我们采用了3 个超声波模块,分别安装在小车的左中右测方向,探测各个方向是否存在障碍物。

超声波测距模块的工作原理是通过串口触发测距,在此模式下对模块发送0x55(波特率9600),模块便可发出8 个40kHz的超声波脉冲,然后检测回波信号。当检测到回波信号后,模块还要进行温度值的测量,然后根据当前温度对测距结果进行校正,将校正后的结果通过管脚输出给STM32。输出的距离值共两个字节,第一个字节是距离的高8 位(HDate),第二个字节为距离的低8 位(LData),单位为毫米。即距离值为(HData*256+LData)mm。

2.3 红外传感器检测原理

红外发射和接收对管可以检测检测路面是否有凹陷,将其安装在车底板上,可以调节模块电阻值来改变有效测量距离。当红外线照射到平坦路面并反射时,接收管导通,信号经过电压比较器LM393 的整形后,输出低电平至处理器的通用IO 端口。反之,路面有凹陷,则输出高电平。

2.4 语音识别和控制

目前语音识别模块的应用相当广泛,语音模块能够完成语音的识别和声音播放,因此采用了LD3320,此芯片能够在语音识别和声音播放模式之间切换。主设备STM32 通过SPI 总线对从设备LD3320 完成初始化工作并将语音模块预设为语音识别模式。在语音识别进程中STM32 检测LD3320 的LD_IRQ 是否有识别结果输出,当LD_IRQ=1 时,STM32 通过读取LD3320 的寄存器而得到识别结果。

图1 硬件系统结构示意图

3 软件设计

软件系统的开发关系到系统的功能能否实现,以及人机交互的舒适性和便利性,我们采用了UCOSIII 嵌入式操作系统。UCOS 是一个可以基于ROM运行的、可裁剪的、抢占式、实时多任务内核,具有高度可移植性,特别适合于微处理器和控制器。我们在UCOS 操作系统的基础上加入超声波测距模块、红外测距避障模块等的驱动程序,并结合本设计要求对操作系统进行了一些裁剪,使之更好的适应本设计的要求。

我们首先将UCOSIII 移植到STM32F407 系统板,然后在UCOSIII 中先建立一个开始任务,再在开始任务中创建4 个任务,分别是语音识别和播报任务、超声波测距任务、红外传感器任务和电机控制任务,语音识别和播报任务的作用是识别语音指令,如左转、右转、前进、停止等,语音播报任务负责播报前方障碍物和路面情况,如前方路面坑洼,左侧有障碍物等;超声波测距任务负责探测左中右3 个方向的障碍物情况,红外传感器任务负责探测路面坑洼情况,并通过信号量传递给其他任务;电机控制任务根据路面情况和指令控制电机的行走路径和转动方向。各个任务由UCOSIII 进行时间片轮转调度,保证各个任务的运行时间。

对系统各个部分的设计完成后,我们对整个系统的功能进行了调试和完善。之后我们会选择一部分测试者对我们的设计进行试用,根据测试者提出的功能要求和建议进行进一步的改进。

图2 软件系统结构示意图

4 结论

我们采用STM32 微控制器,设计了一款实用新型机器导盲犬,除了具备基本的导盲功能外,还具备以下的创新优势:①采用多种方式识别前方障碍物,包括超声波测距模块、红外测距避障模块,保证躲避障碍物的可靠性;②采用具有语音识别功能的模块,实现一定程度的人机交互,包括行走、停止、左转、右转等,同时通过语音播报前方障碍物情况。

我们的设计具备一定的实用性,期待能够对解决盲人出行困难提供一些帮助。

猜你喜欢
导盲犬测距障碍物
基于RSSI测距的最大似然估计的节点定位算法
A great seeing-eye dog了不起的导盲犬
寻找导盲犬
导盲犬Pip
高低翻越
基于STM32的多通道超声波测距系统设计
赶飞机
基于单片机的超声波测距导盲杖设计
月亮为什么会有圆缺
相对差分单项测距△DOR