当前位置: 首页 > news >正文

基于arduino单片机汽车智能电子防碰撞装置设计

摘 要

汽车防碰撞系统是一种全新的、智能化的行车安全防护系统,它可以有效地防止汽车出现追尾等事故。本文针对基于单片机的汽车防碰撞系统进行设计,以当前流行且开源的Arduino UNO作为主控开发平台,方便的集成了各种优秀控制算法,利用超声波、红外三角波测距模块进行高速的距离测量,实时检测汽车周围障碍物信息,以TB6612FNG作为电机驱动模块,驱动汽车模型的左右动力轮,通过2.2寸LCD全彩色显示屏实时动态显示行车中的各种障碍物信息和汽车运动状态,并辅以蜂鸣器报警提醒、灯光闪烁报警,当汽车与障碍物之间的距离达到安全极限时,单片机控制声光报警模块发出 报警信号,达到提醒司机防止撞车的目的。本设计充分发挥了单片机的性能,其硬 件电路简单,软件功能完善,控制系统可靠,具有一定的使用和参考价值。
论文介绍了各传感器模块的基本工作原理,对于各模块的一些主要参数进行了论证和比较,得出了最好的解决方案,最后,通过对整个系统的综合分析,得出了系统的一些改进方案。

关键字:超声波;测距;汽车防撞撞;单片机

第二章 总体设计方案

本设计基于Arduino UNO开源硬件板,实现基本的汽车防碰撞系统功能。汽车防碰撞系统是在汽车潜在发生碰撞风险时能够及时发生报警和采取制动措施和躲避措施的一种装置,该装置可以生的检,测,它与障碍物之间的距离,当障碍物进入,报警距离范围时会触发报警信号,因此,汽车防碰撞系统主要有两个功能:1、实时检测障碍物距离。2、发出报警信号。
2.1 设计总体思路概况
本次设计中的汽车防撞系统硬件组成主要包括Arduino单片机作为主控核心,用来处理系统的各种逻辑运算,同时进行超声波数据采集和红外测距传感器数据采集,本次采用的红外超声波测距模块为模拟电压输出,因此要求控制器具有模拟电压转换能力,由于Arduino控制器具有多路AD转换引脚,因此不必在外接相应外置AD芯片,可直接对模拟电压进行采集,因此大大简化了硬件设计线路。
在系统的整个调试阶段,基本没有遇到太大的问题,这也是得益于arduino的开源性,由于设计的电路所需的外部器件相对较少,因此其稳定性相对得到了提高。因此只要硬件模块电路没有连接错误,系统基本可以正常运行。
2.2 控制系统方框图
汽车防碰撞系统的结构如图所示。本控制系统基于Arduino系统,汽车前方利用三角波测距的红外测距模块实时对前方障碍物进行探测,并以连续模拟电压0-5v的形式输出给单片机的AD转换引脚,单片机通过内置10位AD进行电压转换。汽车后方采用的超声波模块发出四十赫兹方波脉冲信号,单片机通过分析该模块从发出信号到接收信号的时间差进行数据处理,自动计算出测量距离并实时显示在LCD液晶屏上,如果单片机一旦检测汽车前方或后方障碍物达到传感器的检测警戒距离,即会采取相应的措施,发出声光报警信息,自动采取制动等措施,避免交通事故的发生。本次设计的系统系统框图如下图1所示。
在这里插入图片描述

图 1汽车防碰撞系统框图

2.3 系统总体外观
本次设计的汽车防碰撞系统总体外观如图2、图3所示。
在这里插入图片描述

图2 汽车防撞系统实物图正面
在这里插入图片描述

图 3汽车防撞系统实物图背面

第三章 硬件电路的搭建

本次设计的硬件电路的由这几部分构成:单片机控制系统、LCD人机显示电路、声光报警模块、距离感知模块等。下面将对各功能模块分别进行介绍。
3.1 Arduino开源控制器介绍
arduino是一个款高效、便捷且封装有大量开源算法的单片机系统,arduino的开源者们创立了若干个开源项目,比用库的方式归集管理代码,通过这种方法可以节省大量的时间,也大大扩展了arduino的可用的空间。arduino对于各大主流平台的兼容性非常好,可以无障碍的在目前的三大主流跨平台;微软、linux、IOS系统环境下进行开发。它是全球最流行的开源软件之一,基于该平台,可以更好地专注于自己的软件算法设计,最大限度地减少对底层硬件的精力,从而可以大大的缩短自己的产品开发周期。
3.1.1核心微控制器
一般来说,Arduino核心处理器一般为AVR类型单片机,在一些高级的开源控制板上,采用的是ARM主控芯片。这些主控芯片和形影的外围走遍工作电路,被焊接在一块PCB板上,使其能够便捷高效的进行功能开发。
3.1.2外部链接排母
为保证在连接不同电路时的连接工作更加简,arduino uno使用一套共28个引脚的排母来解决问题,而且排母被分成三个组,分别为:电源、模拟输入、数字输入输出。
3.1.3 USB界面
arduino在编辑程序的时候要用到计算机,计算机和arduino板进行通讯时使用的是USB界面进行通信,USB连接还可以为arduino提供规格外部5V的稳定电压输入。其串口通信也是通过该usb界面进行。

第四章 软件的设计

汽车放碰撞系统主要包括主程序、电机驱动程序、LCD通信程序、超声波数据采集程序、红外三角波模拟AD采样程序等、按键检测程序、定时中断程序、报警程序等。
4.1 Arduino IDE和Arduino驱动程序的安装
IDE(Integrated Development Environment)是arduino的开发环境,就像开发51单片机使用的Keil软件类似,也是帮助开发者进行程序编译的软件,使用这个调试环境,可以很方便的进行软件的调试和编程,同时它还继承了一个类似“串口助手”功能的窗口,可以很方便的和Arduino进行串口通信。IDE的编程环境如图13所示。
在这里插入图片描述

图13 Arduino IDE界面
通常情况下,用户安装完Arduino IDE后就可以识别到Arduino Uno的端口,但是在某些特殊情况下,系统没有把arduino的驱动自动安装成功,此时就需要通过手动安装的方进行安装。其安装步骤如下:
1、首先把Uno板通过usb线和电脑的USB接口连接;
2、在电脑右下角会弹出如下安装失败界面,此时在“设备管理器”中找到一个名为未知设备的器件,如图14所示。
在这里插入图片描述

图14 驱动安装失败界面

3、 在这个“未知设备”右键选择更新驱动。
4、 在弹出的窗口中输入驱动存放的路径即可完成安装。
5、选好驱动路径后,选择点击下一步进行驱动的安装,如图15所示。
在这里插入图片描述

图15安装设备软件
6、查看“资源管理器中”是否存在arduino设备了,若存在,说明驱动已经正确安装了。成功设置好设备驱动程序后,就可以在IDE中选择该端口下载程序和串口通讯了。
4.2 LCD界面开发
LCD开发界面包括图片资源管理区、字库资源管理区、工具栏、编译信息区、控件触摸事件设置区、页面管理区、控件属性设置区8个主要部分。LCD主界面如图16所示。
在这里插入图片描述

图16 LCD主界面

第五章 系统调试

在本次设计中,使用了两款距离传感器设备,如果叫准不到位,采集到的数据将无法用于进行报警判断,同时还需要对小车的两个电机转速进行校准,如果校准不到位,会导致小车跑不了直线甚至原地转圈,因此进行系统的软硬件联调显得就尤为重要。
根据系统的硬件和软件设计,你思想传感器模块按键模块,声光报警模块,声光报警模块,LCD显示模块连接至主控器,然后进行调试。
(1)首先用万用表检查各模块的供电压是否正常,若存在异常么需要立即切断主电源,防止模块因为电压过高而损坏。然后进行故障排除,找到原因确认排除故障后方可再次上电进行调试。
(2)对前后两个距离传感器进行距离较准,因为传感器读取到的数据是原始的数据,中间需要进行距离标度变换,因此要根据实际的检测距离和显示出的检测结果进行比较,如果实际和检测的距离存在较大的误差,则需要重新对其进行标度变换和传感器校准。
(3)依次查看声光报警模块、LCD显示的汽车状态指示是否正确,若存在指示错误,则需要检查算法的逻辑关系。
(4)矫正两个轮胎的转速,在一般情况下,若不进行矫正,小车一般很难保持走直线,矫正的目的有两个:一个是将小车限制在一个比较稳定的速度,不能过快也不能过慢。另一个就是平衡两个动力轮胎的转速,尽量让它们保持一致。
(5)最后进行系统的整体调试,仔细观察各个模块的运转是不是正常,如果有模块发生异常,就需要但对对其进行检查。

文章底部可以获取博主的联系方式,获取源码、查看详细的视频演示,或者了解其他版本的信息。
所有项目都经过了严格的测试和完善。对于本系统,我们提供全方位的支持,包括修改时间和标题,以及完整的安装、部署、运行和调试服务,确保系统能在你的电脑上顺利运行。

http://www.lryc.cn/news/591323.html

相关文章:

  • linux_线程同步
  • 一文掌握Harbor的配额管理和GC机制
  • 2025测绘程序设计国赛实战 | 泰森多边形算法C#实现
  • 华为云容器产品分析
  • tcp/udp调试工具
  • Python20 —— 二维数据的处理
  • 【C++类和对象解密】面向对象编程的核心概念(下)
  • Python 网络爬虫 —— 代理服务器
  • HTML前端性能优化完整指南
  • LeetCode 234:回文链表
  • Day04_C语言网络编程20250716_sql语言大全
  • Ollama使用指南-更改默认安装路径和Model路径(安装到非C盘)
  • 【计算机网络】第四章:网络层(上)
  • 【Linux-云原生-笔记】LVS(Linux virual server)相关
  • 云原生环境下的安全控制框架设计
  • MongoDB社区版安装(windows)
  • mongodb 入门级别操作
  • 如何清除 npm 缓存
  • Redis3:Redis数据结构与命令全解析
  • MongoDB 安装步骤详解
  • AI交互的初期魅力与后期维护挑战
  • RISC-V和ARM有何区别?
  • npm : 无法加载文件 C:\Program Files\nodejs\npm.ps1
  • Flutter状态管理篇之ChangeNotifier(一)
  • 深度学习之神经网络(二)
  • Flutter基础(前端教程①②-序列帧动画)
  • Oracle数据泵详解——让数据迁移像“点外卖”一样简单​
  • 如何查询pg账号权限 能否创建模式 删表建表
  • xss防御策略
  • 从 0 到 1 玩转 XSS - haozi 靶场:环境搭建 + 全关卡漏洞解析