版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于STM32的汽车防碰撞系统设计标签:
\o"单片机"单片机
\o"经验分享"经验分享摘要本文设计是基于STM32开发板,设计的一个简易的汽车防碰撞系统。该系统分为高速和低速两个挡位,通过判断按键操作进行档位转换。测量障碍物距离是使用HC-SR04超声波模块;使用HC-SR501热释电模块来检测是否有人体靠近。该防碰撞系统通过对模块返回的数据分析然后通过无源蜂鸣器进行报警提示,提示车主障碍物的出现以及时地做出反应。
关键词:STM32双模式超声波热释电报警车辆的增多使得交通事故频频发生,全球每年由交通事故造成的人员和财产引言车辆的增多使得交通事故频频发生,全球每年由交通事故造成的人员和财产损失的数目是惊人的,因此,车辆安全问题已引起人们的高度重视。对大量交通事故的分析表明,80%以上的车祸是由于驾驶员反应不及时引起的,超过65%的车辆相撞属于追尾相撞,其余则属于侧面相撞和正面相撞。有关研究表明,若驾驶员能够提早1s意识到有事故危险并采取相应的措施,则90%的追尾事故和60%的正面碰撞事故都可以避免。为了减少交通事故,个人在车载系统的功能将得到改善。最起码的信息和预警系统,已经在市场上出现的,而驾驶辅助和自动化技术在地平线上的进一步定位。在驾驶员信息系统的关键技术挑战是降低生产成本,同时提供动态的路线引导能力。例如,目前大多数系统提供基于“静态”地图交通的考虑,不论路由。动态路径诱导系统基础上,当时的“实时”条件下的巷道,如事故或施工造成的瓶颈的位置,可确定最佳路线。防撞系统开发技术的主要挑战是降低成本的同时,也提高了感应功能,以提高准确性和可靠性。自动车将共享许多防撞系统的传感元件,还必须具备的情报,可以不断地评估不断变化的环境和驾驶环境的情况下。
汽车发生碰撞的主要原因是由于汽车距其前方物体(如汽车、行人或其他障碍物)的距离与汽车本身的车速不相称造成的,即距离近而相对速度又太高。为了防止汽车与前方物体发生碰撞,汽车的车速就要根据与前方物体的距离变化由执行机构进行控制,使汽车始终在安全车速下行驶。这样就会大大提高汽车行驶的安全性,减少车祸的发生。发展汽车防撞技术,对提高汽车智能化水平有重要意义。2总体设计方案2.1实现功能及方案在不同的车速情况下通过按键选择不同的档位。内部超声波模块检测车辆前后障碍物的距离,通过代码分析确定是否鸣警提示车主。车后装有热释电模块检测是靠近人体以提示车主。蜂鸣器根据不同情况发出不同频率的震动响声提示车主做出相应的操作。大致框架流程如图
报警条件:
高速模式:前后车距小于3m,蜂鸣器报警。
低速模式:前后车距小于0.5m或检测到有人靠近,蜂鸣器报警
图1框架流程2.2STM32单片机介绍STM32属于一个微控制器,自带了各种常用通信接口,功能非常强大。
1、串口—USART,用于跟跟串口接口的设备通信,比如:USB转串口模块、ESP8266、WIFI、GPS模块,GSM模块,串口屏、指纹识别模块。
2、内部集成电路—I2C,用于跟I2C接口的设备通信,比如:EEPROM、电容屏、陀螺仪MPU6050、0.96寸OLED模块。
3、串行通信接口—SPI,用于跟SPI接口的设备通信,比如:串行FLASH、以太网W5500、音频模块VS1053。
4、SDIO、FSMC的超级、I2S、ADC、GPIO。3硬件电路设计本防碰撞系统的电路主要由6大部分电路组成:供电电路,按键电路、stm32最小系统电路、超声波电路、热释电电路和蜂鸣器警报电路。下面具体介绍相关电路。3.1供电电路供电电路由USB接口引入5V电源,分别给HC-SR04、HC-SR501、蜂鸣器供电,5V电压再通过asm117电路转换成3.3v电压给STM32最小系统供电如图所示。
图2供电电路3.2按键输入电路按键电路通过一个按键来进行模式选择。此外按键上并联了一个100uF的电容对按键进行消抖。电路如图3所示。
图3按键输入电路3.3STM32最小系统电路最小系统电路由stm32芯片,外部晶振电路,复位电路,下载电路组成是控制电路的核心如下图4所示。
图4STM32最小系统电路3.4HC-SR04电路此部分电路是通过IO口外接HC-SR04模块如图5所示。
图5HC-SR04显示电路及实物图3.5HC-SR501电路此部分电路是通过IO口外接HC-SR501模块如图6所示。
图6HC-SR501电路及实物图3.6蜂鸣器报警电路此部分电路同样外接蜂鸣器模块,如图7所示。
图7蜂鸣器电路及实物图4软件设计MDK5软件,程序使用C语言,并引用官方库进行编写。程序流程图如图8示,程序如附录二所示。程序进入MAIN函数后,模式选择配置、串口配置、前超声波配置、后超声波配置、蜂鸣器配置,初始化这些配置后进入while函数。然后通过IO置位和延时函数使前后超声波模块开始工作。判断当前为高速还是低速模式,进入相应的模式后,对数据进行判断,最后通过IO口输出不同频率的PWM波来是蜂鸣器工作。
图8整体程序流程图5结束语此次设计立足于课程设计的实验运用,在实践操作过程中体会到了开发项目中遇到的各种问题,开拓了思维,实践出真知,这次学习让我感受颇深,体会到了我们专业学习过程中理论与实践相结合的重要性,同时帮助复习专业中的一些模糊知识点。
本次设计在同学和老师的安排和帮助下完成,实现了课题中的基本需求。同时在查找资料过程中学到了很多延伸的东西。经过几天和同学共同的研究,最终完成了本次课题设计的需求,也发现了自己知识的浅陋以及考虑问题时的不严谨,还需要多加磨砺,积累项目经验。
参考文献
[1]宋保林周汽一.汽车主动防撞系统的规避控制研究[A].
[2]朱承高.STM32从入门到精通[M].北京:高等教育出版社,3990附录一:整体电路图附录二:程序#include"stm32f10x.h"#include"bsp_advanced_tim.h"#include"bsp_advanced_tim1.h"#include"bsp_systick.h"#include"bsp_usart.h"#include"bsp_gpio.h"#include"bsp_Tim_PWM.h"#include"bsp_exti.h"externuint16_tflag,k,k1;uint16_tu=0;intmain(void){EXTI_KEY_Config();//模式选择配置 USART_Config();//串口配置 Advanced_Tim_Config();//前超声波配置Advanced_Tim1_Config();//后超声波配置 TIM_PWM_Config(35,999,500);//蜂鸣器配置GPIO_OUT_Config(GPIOA,RCC_APB2Periph_GPIOA,GPIO_Pin_6,GPIO_Mode_Out_PP);//前超声波 GPIO_OUT_Config(GPIOA,RCC_APB2Periph_GPIOA,GPIO_Pin_7,GPIO_Mode_Out_PP);//后超声波 while(1) { GPIO_SetBits(GPIOA,GPIO_Pin_6);//前超声波工作 SysTick_Delay_us(10); GPIO_ResetBits(GPIOA,GPIO_Pin_6); SysTick_Delay_ms(1000); GPIO_SetBits(GPIOA,GPIO_Pin_7);//后超声波工作 SysTick_Delay_us(10); GPIO_ResetBits(GPIOA,GPIO_Pin_7); if(flag==0)//低速模式 { u=GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_2); if(u==1)//检测到人 { TIM_PWM_Config(17,999,500); TIM_Cmd(TIM2,ENABLE);//警报响 SysTick_Delay_ms(2000); TIM_Cmd(TIM2,DISABLE);//警报停 u=0; } if(k<=0.5|k1<=0.5) { TIM_PWM_Config(35,999,500); TIM_Cmd(TIM2,ENABLE);//警报响 SysTick_Delay_ms(2000); TIM_Cmd(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论