基于 STM32 的智能导盲拐杖系统设计

为视障人士提供更智能的出行辅助一直是社会关注的重要议题。本文介绍一种基于 STM32F103C8T6 主控的智能导盲拐杖系统,整合 HC-SR04 超声波测距、GL5528 光敏电阻、SR-01 水位、K210 摄像、ATGM336H GPS、JR6001 语音、SIM800C GSM 通信与蜂鸣器报警模块,能够进行障碍物提示、低光自动补光、水位预警、红绿灯状态识别与 GPS 路线导盲,并在紧急情况下向家人发送定位短信。

一、系统功能总览

功能编号功能名称说明
F1障碍物检测HC-SR04 距离监测
F2光强补光GL5528 + 自动 LED
F3水位预警SR-01 检测涉水水位
F4红绿灯识别K210 摄像识别并语音播报
F5GPS 定位ATGM336H 路线导盲
F6路线存储三条预设路线切换
F7语音播报JR6001 输出语音提示
F8紧急报警SIM800C 短信 + 经纬度

二、核心模块选型对比

2.1 主控模块选型

方案型号优势
方案 1STM32F103C8T6多 UART / I2C / SPI
方案 2NXP LPC1768资源多但开发资料偏少

选择方案 1:需驱动 GPS、GSM、语音、摄像多个串行模块。

2.2 超声波模块选型

方案模块量程
方案 1HC-SR042~400 cm
方案 2GROVE-Ultrasonic3~500 cm

选择方案 1:成熟度高、成本友好。

2.3 摄像模块选型

方案模块说明
方案 1K210内置 KPU,TOPS 量级推理
方案 2Xilinx Zynq-7000性能更高但功耗偏大

选择方案 1:功耗与开发便利性更平衡。

2.4 GPS 模块选型

方案型号卫星系统
方案 1ATGM336HGPS + 北斗
方案 2NEO-6MGPS

选择方案 1:国内北斗信号支持更佳。

2.5 GSM 模块选型

方案型号说明
方案 1SIM800CGSM/GPRS
方案 2SIM70004G LTE,价格较高

选择方案 1:短信功能对本应用足够。

三、系统接线总表

模块引脚单片机端备注
HC-SR04VCC/GND/TRIG/ECHO5 V / GND / PA0 / PA1GPIO
GL5528VCC/GND/AO3.3 V / GND / PA2 (ADC)分压
SR-01VCC/GND/AO5 V / GND / PA3 (ADC)电极探针
K210VCC/GND/TX/RX3.3 V / GND / PA5 / PA4UART
ATGM336HVCC/GND/TX/RX3.3 V / GND / PA10 / PA9UART
JR6001VCC/GND/TX/RX5 V / GND / PA7 / PA6UART
SIM800CVCC/GND/TX/RX4 V / GND / PA8 / PB0UART
OLED12864VCC/GND/SCL/SDA3.3 V / GND / PB6 / PB7I2C
LED 补光+/PWM-PB1 / GNDPWM
蜂鸣器+/-PB5 / GND三极管

四、系统软件设计

4.1 主程序流程

int main(void)
{
    SystemInit();
    HC_SR04_Init();
    GL5528_Init();
    SR01_Init();
    K210_Init();
    GPS_Init();
    JR6001_Init();
    SIM800_Init();
    OLED_Init();

    while (1)
    {
        u16 dist = HC_SR04_Get();
        u16 lux  = GL5528_Read();
        u16 water = SR01_Read();
        TrafficLight_State st = K210_DetectTraffic();

        if (dist < SAFE_DIST) Beep_On();
        if (lux  < LIGHT_LO) LED_On();
        if (water > WATER_LO) JR6001_PlayAlarm();
        if (Key_NaviPressed()) PlayRoute(Key_RouteIdx());

        if (Key_AlarmLongPress(3))
        {
            char *sms = BuildSMS(GPS_GetLatLon());
            SIM800_SendSMS(FAMILY_PHONE, sms);
        }
    }
}

4.2 超声波测距

Trig 输出 10 μs 脉冲 → 计时 Echo 高电平 → 距离 = 高电平时间 × 声速 / 2。

4.3 水位检测

SR-01 输出模拟电压,ADC 多次采样取平均后转换为水位百分比。

4.4 K210 红绿灯识别

K210 通过 UART 反馈识别结果,如 RED 32(红灯剩余 32 秒)。

4.5 SIM800C 短信报警

发送 AT 指令 AT+CMGS="138xxxxxxxx"、短信正文与终止符 0x1A,通知家人当前经纬度。

五、系统实现与测试

5.1 硬件焊接与测试

K210 模块尽量紧贴摄像头;GPS 天线朝上;GSM 模块使用 4 V 单独供电。

5.2 软件调试

Keil 5 + ST-Link,结合串口助手观察 GPS 报文与 SIM800C 返回的 OK

5.3 功能测试结果

测试项目操作结果
障碍物报警30 cm 距离蜂鸣器响
补光遮蔽光敏电阻LED 亮起
水位预警模拟水深语音报警
红绿灯识别摄像头识别绿灯语音播报 “绿灯 30 秒”
紧急短信长按报警键家人收到 GPS 位置

六、总结

本文提出的智能导盲拐杖系统以 STM32F103C8T6 为控制核心,集成超声波、光敏、水位、K210 摄像、GPS、语音与 GSM 通信。整套方案在结构上以分层模块设计,方便维护与扩展,能够为视障人士出行提供完整的感知、语音反馈、定位导航与紧急联络能力,同时也可作为高校嵌入式与物联网课程的综合性项目范例。

七、资料内容完整工程资料(原理图、PCB、代码、元件清单)

八、资料获取方式  

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐