多功能智能导盲手杖设计
阎迪 林丽君 张芯宇 丛佳利 吴若锡
辽宁石油化工大学 信息与控制工程学院 辽宁省抚顺市 113001
一、系统功能设计
1.1 障碍物检测与预警
障碍物检测与预警功能作为手杖的核心安全保障模块,采用超声波测距技术实现全方位环境感知。HC-SR04 超声波测距模块实时监测手杖前方及侧方的障碍物距离,测量范围覆盖 2-400cm ,可精准捕捉不同高度与距离的障碍物,包括台阶、栏杆、行人及低矮障碍物等。系统预设三级距离阈值(近距: ⩽30cm 、中距:30-80cm、远距:80-150cm),当检测到障碍物距离小于对应阈值时,触发分层预警机制:远距时仅语音轻柔提示“前方 X 米处有障碍物”;中距时语音加强提示并伴随蜂鸣器间歇报警;近距时启动持续蜂鸣报警与高频语音警示“前方危险,距离 X 厘米”,同时通过振动模块提供触觉反馈,确保视障人士在嘈杂环境中也能及时感知风险。
1.2 实时定位与远程监护
为实现视障人士出行的全程安全监护,系统集成双模定位与远程通信功能。采用 EC800M 双模定位模块,融合 GPS 与北斗卫星定位技术,在城市高楼区、隧道等复杂环境下仍能快速获取精准位置信息,定位精度可达 2-5 米。STM32 单片机通过 USART 接口读取经纬度、时间、移动速度等定位数据后,经由 ESP8266 Wi-Fi 模块按照自定义通信协议上传至云平台。监护人可通过手机APP 实时查看被监护人的位置信息、行动轨迹及历史路径回放。
1.3 一键求助功能
考虑到视障人士在突发疾病、摔倒、迷路等紧急场景下的求助需求,手杖握柄处设置一键求助按钮,采用凸起式设计便于触摸识别。当按钮被按下(长按 2 秒确认,避免误触),系统立即触发双重求助机制:一是通过 EC800M 模块向预设的 3 组紧急联系人发送包含实时位置链接、设备编号的短信及语音通话请求;二是启动有源蜂鸣器持续发出高分贝报警声,吸引周围行人关注并提供帮助。
二、系统硬件设计
2.1 主控芯片选型与电路设计
选用 STM32F103C8T6 单片机作为主控芯片,该芯片基于 ARM Cortex-M3 内核,工作频率高达72MHz,具备 128KB 闪存和 20KB SRAM,满足多模块数据并行处理需求。主控电路采用 5V 直流供电,同时设计电源反接保护电路与浪涌抑制电路,提升供电安全性。芯片外设资源分配如下:PA0-PA1引脚连接超声波模块 TRIG 与 ECHO 端;PA2-PA3 引脚通过 USART2 接口连接 GPS 模块;PA9-PA10 引脚通过 USART1 接口连接 Wi-Fi 模块;PB0-PB1 引脚连接语音芯片控制端;PB2 引脚通过三极管驱动蜂鸣器;PB3 引脚作为外部中断输入检测求助按钮;PC13 引脚用于系统状态指示灯。
2.2 核心功能模块硬件设计(1)超声波测距模块
采用 HC-SR04 模块,其 TRIG 引脚(触发端)与 STM32 的 PA0 引脚连接,ECHO 引脚(接收端)与PA1引脚连接。电路设计中在ECHO引脚串联限流电阻,并联电容滤除高频干扰,确保接收信号稳定。当 STM32 向 TRIG 引脚发送高电平触发信号后,模块发射 8 个 40kHz 超声波脉冲,反射信号被接收后 ECHO 引脚输出高电平,通过定时器TIM2 捕获高电平持续时间,结合公式“距离 Σ=Σ (声速 × 时间)/2”(声速取 340m/s )计算障碍物距离,测距精度可达3mm。
(2)语音播报模块
由 WT588D 语音芯片、小功率喇叭及外围电路组成。WT588D 芯片支持 64 段语音存储,通过 SPI接口与 STM32 的 PB0(CS)、PB1(SCLK)引脚连接,芯片3、4 引脚的PWM 输出端直接驱动喇叭发声。语音资源通过专用软件烧录至芯片,需要播报时,STM32 通过 SPI 接口发送地址指令,芯片自动读取对应语音数据并播放。
(3)定位与通信模块
GPS 定位采用 EC800M 双模模块,集成 GPS、北斗定位及 4G 通信功能。STM32 通过发送 AT 指令控制模块工作,接收的 NMEA-0183 格式数据经解析后提取经纬度、UTC 时间等有效信息。Wi-Fi 通信选用 ESP8266-01S 模块,通过 USART1 接口与 STM32 交互。电路中设计模块复位电路与状态指示LED,便于调试与故障排查。
(4)辅助功能模块
蜂鸣器模块采用有源蜂鸣器,通过 PNP 型三极管 8550 驱动,STM32 的 PB2 引脚输出低电平时三极管导通,蜂鸣器得电发声。一键求助按钮采用轻触按键 , 按下时引脚电平由低变高,触发外部中断 EXTI3,中断优先级设为最高,确保紧急信号优先响应。此外,系统增设锂电池供电模块,续航时间可达 8-10 小时。
三、系统软件设计
3.1 软件整体架构
系统软件基于Keil uVision5 开发环境,采用C 语言编程,分为初始化层、驱动层、应用层及通信层四个层级。初始化层负责系统上电后的硬件初始化与模块初始化;驱动层包含各模块的底层驱动函数;应用层实现核心功能逻辑,如障碍物检测与预警、定位数据上传、一键求助等;通信层负责数据格式封装、协议解析及云平台交互。软件采用前后台程序架构,主循环作为后台任务处理常规数据采集与上传,中断服务程序作为前台任务响应紧急事件。
3.2 核心模块程序设计(1)超声波测距模块程序超声波测距功能具体流程如下:
1. 配置 PA0 为推挽输出(TRIG),PA1 为浮空输入(ECHO),Timer2 设置为输入捕获模式;
2. 向 TRIG 引脚输出高电平,延时15μs 后拉低,触发超声波发射;
3. 等待 ECHO 引脚变为高电平,检测到高电平后启动计时;
4. 当 ECHO 引脚变为低电平时,停止计时,读取捕获的时间值
5. 计算距离;
6. 对距离值进行滤波处理,返回有效距离。
(2)语音播报模块程序
首先通过WT588D 语音烧录软件将语音片段写入芯片,建立“语音内容- 地址码”,实现流程:1. 拉低 CS 引脚使芯片进入工作状态;
2. 通过 SPI 接口发送地址指令;
3. 拉高 CS 引脚确认指令,芯片开始播放对应语音;
4. 检测芯片 BUSY 引脚状态,直至语音播放完成后退出函数。
(3)定位与通信模块程
① GPS 定位程序流程如下:
1. 初始化 USART2(波特率 9600bps,无奇偶校验,1 个停止位)
2. 向 GPS 模块发送 AT 指令,开启定位功能,等待模块响应;
3. 通过中断接收 GPS 模块返回的NMEA 数据,存储至接收缓冲区;
4. 解析GPRMC 语句,提取经纬度数据,将经纬度数据转换为十进制格式,存储至全局变量。
② Wi-Fi 通信程序
流程如下:
1. 初始化 USART1,向 ESP8266 发送“AT+RST”复位模块;
2. 发送“AT+CWMODE=1”设置为 STA 模式,再发送“AT+CWJAP="ssid","pwd"”连接指定热点,等待返回“WIFI CONNECTED”;
3. 建立与云平台的TCP 连接;
4. 上传数据,发送封装后的定位数据或求助信息;
5. 接收云平台反馈数据,解析指令并执行相应操作。
(4)中断服务程序设计① 一键求助中断
配置PB3 引脚为外部中断触发源,触发方式为上升沿触发,中断服务函数流程:
1. 清除中断标志位;
2. 延时10ms 进行消抖处理,再次检测按钮状态,确认按下后执行后续操作
3. 调用 GPS_GetData 获取当前位置,调用 Voice_Play 播放求助语音;
4. 调用 WiFi_UploadData 上传求助信号,同时通过 USART2 向 EC800M 模块发送短信与通话;
5. 控制蜂鸣器持续报警,直至接收到解除指令。
② 定时器中断
采用定时器实现100ms 定时中断,中断服务函数流程:
1. 清除中断标志位;
2. 累计中断次数,每10 次(即1 秒)执行一次定位数据采集与上传;
3. 每2 次(即200ms)执行一次超声波测距,实现障碍物实时检测;
4. 检测锂电池电压,当电压低于9V 时触发低电量提示。
3.3 主程序设计主程序流程如下:
1. 系统上电,执行初始化函数,包括时钟配置、外设初始化、模块初始化;
2. 调用播放“系统启动成功”语音,状态指示灯开始闪烁;
3. 进入主循环:
·获取障碍物距离,根据距离阈值执行报警与语音提示;
·检测定时器中断标志,若置位则执行GPS 数据采集与Wi-Fi 上传;
·检测低电量标志,若置位则循环播放“电量不足,请及时充电”语音·若未触发任何事件,系统进入低功耗模式,降低功耗。
四、系统测试
4.1 硬件测试(1)模块单独测试
• 超声波模块:在20-400cm 范围内设置标准距离标志物,测试100 组数据,结果显示测距误差≤5mm,满足设计精度要求;
• 语音模块:播放12 种预设语音,测试音量、清晰度及响应速度,结果显示语音清晰可辨,响应延迟 ⩽ 100ms ;
•GPS 模块:在室内、室外、高楼区三种场景测试定位精度,室外定位偏差 ⩽3 米,室内 ⩽10 米,高楼区≤15 米,定位响应时间≤3 秒;
•Wi-Fi 模块:测试与不同距离(1-50 米)Wi-Fi 热点的连接稳定性,连续 24 小时数据传输,丢包率 ⩽0 .5%。
(2)系统集成测试
将各模块连接组成完整系统,进行电路可靠性测试:
• 电源测试:在不同负载下测量供电电压,5V 输出波动 ⩽0.1V ,3.3V 输出波动 ⩽0.05V ,满足模块工作需求;
• 电路安全性测试:模拟电源反接、短路场景,保护电路正常触发,未出现模块损坏• 稳定性测试:连续开机48 小时,各模块工作正常,无死机、数据丢失现象。
4.2 功能测试 (1)障碍物检测与预警测试
在模拟道路场景(设置台阶、栏杆、行人模型)中测试:
• 远距(100cm):语音提示“前方1 米处有障碍物”,无蜂鸣报
• 中距(50cm):语音提示“前方50 厘米处有障碍物,请注意”,蜂鸣器间歇报警(1 次 / 秒);• 近距 (20cm) ):语音急促提示“前方 20 厘米处有危险”,蜂鸣器持续报警,振动模块启动,预警响应时间 ⩽200ms 。
(2)定位与远程监护测试
• 实时定位:监护人APP 端显示位置与实际位置偏差 ⩽5 米,位置更新频率为1 次 / 秒;
• 轨迹回放:查看24 小时行动轨迹,路径完整无断点;
• 区域预警:当测试人员超出预设安全区域,监护人 APP 立即收到预警信息,响应延迟 ⩽2 秒。(3)一键求助测试
按下求助按钮后,测试结果显示:
紧急联系人在3 秒内收到包含位置链接的短信,5 秒内接到语音通话请求;
• 蜂鸣器持续发出110dB 报警声,语音循环播报求助信息,周围5 米内人员可清晰感知。4.3 环境适应性测试
在不同环境条件下测试系统稳定性:
• 温度测试:在 -10∘C -45℃范围内,各模块工作正常,性能无明显下降;
• 湿度测试:在相对湿度40%-90% 环境中,连续工作24 小时,电路无短路、• 振动测试:模拟步行、颠簸路面振动场景,模块连接牢固,数据传输正常。
五、结论
本设计基于 STM32 技术的智能导盲手杖,通过优化硬件选型与软件算法,实现了障碍物精准检测与分层预警、实时定位与远程监护、紧急一键求助三大核心功能。硬件上采用模块化设计,选用高性价比的传感器与通信模块,降低了系统成本;软件上采用兼具实用性、稳定性与高效性。数据处理精准,抗干扰能力强,系统运行稳定,容错机制完善。
参考文献:
[1] 石小龙 , 王智超 , 孙婷婷 . 基于单片机的倒车超声波测距系统设计 [J]. 农业装备与车辆工程 , 1-8.
[2] 潘虹, 党小娟, 陈江萍. 基于物联网技术的智能导盲系统设计[J]. 物联网技术 , 2024,14 (02): 90-92.
[3] 唐志军 , 何欣荣 . 基于 STM32 单片机的智能小车设计 [J]. 电子制作 , 2024, 32 (01):36-41.
[4] 严莉莉, 张慎, 胡应超, 张宪萍. 基于51 单片机的智能盲人助行器的设计 [J]. 微型电脑应用 , 2021, 37 (06)
[5] 代燕娇, 洪凌钰, 刘钰, 郭俊霄, 易丹. 基于STM32 单片机的声源定位系统 [J]. 电脑编程技巧与维护 , 2023, (10): 10-13.22-24.
阎迪(2005.02--),女,满族,辽宁锦州人,学生,本科
(基金项目:大学生创新创业训练计划项目,级别:省级,编号:S202410148005