一.系统概述
- 控制核心:采用STM32单片机作为主控制核心,负责系统的逻辑控制与数据处理。
- 距离检测模块:集成HCSR04超声波模块,通过STM32实时监测车辆间的距离。
- 电机驱动模块:通过STM32控制电机的转速和方向,自动调节电机运行状态以保持安全距离。
- 警报模块:系统配备警报模块,能根据检测到的数据触发安全报警,保障行车安全。
- 显示模块:配备显示屏,实时展示超声波模块采集的车辆间距离和系统状态信息。
- 安全距离设定按键:提供按键接口,用户可设定安全距离,系统将根据设定自动调整电机转速。
- 自动避障功能:基于超声波模块的数据和电机驱动,实现车辆自动避障,提升驾驶安全性。
- 软件设计:使用Keil uVision进行程序编写,涵盖主程序、超声波数据采集、电机控制、按键扫描、显示和报警等模块的设计与实现。
- 硬件设计:基于Altium Designer设计电路原理图,确保硬件与软件的有效配合和系统稳定性。
- 系统调试 :测试和调试各部分程序功能,包括硬件焊接、电路板通电测试和按键功能测试,以确保系统各项功能正常运行。
二.电路设计
电路图使用Altium Designer进行设计,主要组成如下:
- 主控单元:采用STM32F103C8T6单片机作为系统的主控制核心,最小系统电路是整个电路的基础。
- 障碍物检测:使用HC-SR04超声波测距模块进行障碍物检测,通过Echo(接收脚)和Trig(发射脚)与单片机的GPIO脚连接。
- 电机驱动:使用L298N直流电机驱动模块进行电机驱动,模块的IN1、IN2、IN3、IN4以及ENA、ENB连接至单片机的GPIO口,OUT脚则连接电机的两个极。
- 数据显示:通过0.96寸OLED12864显示屏进行数据显示,采用IIC总线形式与单片机通信。
- 阈值设定:使用独立按键进行阈值设定,按键一端接地,另一端连接至单片机的GPIO口。
- 报警模块:配置有源蜂鸣器用于报警,采用NPN三极管进行驱动。


三.程序设计
#include "sys.h"
#include "delay.h"
#include "math.h"
#include "ultrasonsic.h"
#include "key.h"
#include "pid_pwm.h"
#include "OLED_I2C.h"
#include "Control_Report_To_Police.h"
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
delay_init(); //延时函数初始化
Usart1_Init(9600);
OLED_Init();
OLED_CLS();
KEY1_Init();
Beep_init();
Servor_GPIO_Config_Time6_Init();
Hcsr04_Timer2_Init();
OLED_ShowCN(32,2,0);
OLED_ShowCN(32+16,2,1);
OLED_ShowCN(32+32,2,2);
OLED_ShowCN(32+32+16,2,3);
OLED_CLS();
OLED_ShowCN(0,0,10);
OLED_ShowCN(0+16,0,11);
OLED_ShowCN(0,2,40);
OLED_ShowCN(16,2,41);
while(1)
{
OLED_Display_Cotrol(); //显示控制函数
}
}
24-32-53