一、系统方案介绍
无人驾驶汽车的防撞系统是保障行车安全的核心模块,本文设计的系统以STM32F103C8T6单片机为主控制器,结合超声波测距、WiFi通信、人机交互等模块,实现障碍物实时检测、动态阈值设置、多级报警和数据可视化功能。系统通过软硬件协同设计,具备高实时性、低延迟和强扩展性,可应用于低速自动驾驶场景(如园区物流车、AGV等)。
二、系统架构图

三、实现方法
-
多级检测机制:超声波模块以10Hz频率发射检测信号,实时计算与障碍物距离。
-
动态阈值管理:用户可通过矩阵按键设置安全距离阈值,数据存储于单片机EEPROM。
-
分级报警策略:
-
距离 ≤ 阈值:触发蜂鸣器高频报警,OLED显示红色警告;
-
距离 > 阈值但快速接近:蜂鸣器低频提示,OLED显示黄色预警。
- 数据可视化与远程监控:通过WiFi模块将实时数据上传至云端,支持PC端或移动端查看。
四、功能描述
| 功能模块 | 描述 |
|---------------------|--------------------------------------------------------------------|
| 超声波测距 | 检测0.2m~4.5m范围内障碍物,精度±1cm |
| OLED动态显示 | 实时显示距离、系统状态及阈值,支持中英文界面切换 |
| 用户阈值设置 | 通过矩阵按键实现阈值设置(默认1.5m),支持断电保存 |
| WiFi数据透传 | 基于ESP8266模块,通过MQTT协议上传数据至云平台 |
| 多级声光报警 | 蜂鸣器频率随危险等级变化,OLED同步显示颜色标识 |
五、硬件架构
- 核心控制器
- STM32F103C8T6:采用72MHz主频的Cortex-M3内核,内置PWM、ADC、UART等外设,负责协调各模块工作。
- 传感器模块
-
HC-SR04超声波模块:
-
工作原理:发射40kHz超声波,通过回波时间计算距离(公式:`距离(cm) = 回波时间(μs)/58`)
-
优势:成本低、抗干扰能力强,适合短距离检测。
- 人机交互模块
-
0.96寸OLED显示屏:I2C接口,128x64分辨率,实现低功耗实时数据显示。
-
按键:用于模式切换、阈值设置等操作。
- 通信模块
- ESP8266 WiFi模块:支持AT指令,透传模式下功耗仅80mA,最大传输速率115200bps。

六、软件架构
void main() {
硬件初始化(); // 初始化外设驱动
while(1) {
距离 = 超声波测距_获取数据();
OLED_刷新显示(距离, 阈值);
if (距离 <= 阈值) 报警_触发();
if (按键_检测到设置()) 进入阈值设置模式();
WiFi_发送数据(距离);
}
}
七、关键代码展示
-
超声波测距核心逻辑
float Get_Distance() {
Trig = 1;
delay_us(20);
Trig = 0;
while (!Echo); // 等待回波信号
uint32_t start = TIM2->CNT;
while (Echo);
uint32_t duration = TIM2->CNT - start;
return duration / 58.0; // 单位:cm
} -
动态阈值设置(EEPROM存储)
void Save_Threshold(uint16_t threshold) {
HAL_FLASH_Unlock();
__HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP | FLASH_FLAG_PGERR);
FLASH_ErasePage(0x0800FC00); // 擦除指定页
HAL_FLASH_Program(FLASH_TYPEPROGRAM_HALFWORD, 0x0800FC00, threshold);
HAL_FLASH_Lock();
}
八、设计亮点
-
双模交互设计:同时支持本地OLED显示和远程云端监控,适应复杂场景需求。
-
低功耗优化:STM32动态调整主频,空闲时进入Stop模式,整体功耗<50mW。
-
抗干扰算法:对超声波信号进行滑动均值滤波,有效抑制环境噪声。
-
模块化扩展:预留CAN总线接口,可扩展毫米波雷达或摄像头融合方案。
九、资料获取
请评论区留言或者私信作者。