【基于单片机的汽车安全辅助装置设计14000字】_第1页
【基于单片机的汽车安全辅助装置设计14000字】_第2页
【基于单片机的汽车安全辅助装置设计14000字】_第3页
【基于单片机的汽车安全辅助装置设计14000字】_第4页
【基于单片机的汽车安全辅助装置设计14000字】_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要软硬件的仿真调试软硬件的仿真调试是设计过程中的重点。在仿真调试期间遇到了很多困难,也遇到了一些在初步设计时没有考虑到的问题。为了解决这些困难和问题,一方面是进行了一些额外的工作,另一方面对初步设计中不合理的部分也进行了修改。MQ-3酒精气体传感器MQ-3酒精气体传感器输出的是模拟信号电压值,所做的主要工作就是配置STM32F103RCT6的ADC模块进行模数转换。STM32F103RC提供了三个ADC,每个有16个外部输入通道。我采用的是ADC1的通道0、1、3、14,于是需要进行间断模式下规则通道组的配置。[11]模数转换的间断模式所谓的间断模式,意思是提前设定好需要转换的通道个数、和即将转换的各个通道,以及这些通道的顺序。值得一提的是,这里所谓的“间断”是和“扫描”相对应的,指的是不需要转换所有通道,而是有间隔的。如果理解成中断就会造成困惑。在不需要使用一组ADC的所有通道时,使用间断模式,定义自己需要的规则组,可以节约处理器的计算资源。定义的规则序列储存在规则序列寄存器ADC_SQRx中。在STM32F103RCT6里面有3个规则序列寄存器,它们的寄存器名分别为ADC_SQR3、ADC_SQR2、ADC_SQR1。规则序列中的第1个到第6个转换由寄存器SQR3来控制,第7到第12个转换由寄存器SQR2来控制,而第13到第16个转换则由寄存器SQR1控制,序列的总长度由寄存器ADC_SQR1的L[3:0]定义,最多能用16个通道。图4-1ADC间断模式规则通道组算法流程图STM32F103RCT6的ADC模块因为采用逐次逼近法,读取的是0到4095的数值。正常来说需要换算为电压值。但是值得注意的一点是,这个数值和电压值成线性关系,电压值和酒精气体浓度近似成线性关系。所以直接用这个值,或这个值进行线性函数的变换后的数值来拟合酒精气体浓度,和换算为电压值后再拟合并没有区别。于是便不必麻烦多算一步。MQ-3传感器的可替换性问题本次设计中使用四个MQ-3酒精气体传感器组成的阵列进行饮酒者位置的判断。然而在硬件仿真的过程中发现,MQ-3传感器的可替换性比较差,在同一环境下,不同的传感器输出的电压值也有所不同。解决办法就是调平。分别在无酒精条件下和相同浓度酒精条件下记录各模块的示数。以其中一个模块为基准,计算出其它模块示数通过线性变换与其重合的函数,把这个线性函数计算后的结果当作传感器度数,其它代码就可以正常使用了。值得一提的是,这样计算后,每个MQ-3酒精气体检测模块的位置就不能变动了,稍微有点麻烦。另外MQ-3在使用前需要预热,使用手册上的预热时间是24小时。在实际使用时,需要有后备的电池始终给其供电,就像主板电池一样。这样才能保证模块进行可靠的工作。这是受当今科技水平所限的,要想方便地达成设计目标还需要科技的进一步发展。DHT22温湿度传感器DHT22的主要工作量就在于这个单总线通信。怎样建立握手,怎样接受信号,如何换算信号,都是需要解决的问题。基于延时的单总线通信DHT22温湿度传感器的单总线通信的操作是将MCU设置为开漏输出,拉低1ms后转为输入,然后释放总线20us。DHT22接收到信号后会做出回应,从低功耗模式转为高速模式,向MCU输出低电平80us,高电平80us,之后连续串出40位测量数据(16位湿度+16位温度+8位校验)。在这40位测量数据中,信号“0”由22-30us的高电平来表示,而信号“1”由68-75us的高电平来表示。与此同时,在每位之间有50us低电平作为间隔。于是在检测到高电平上升沿后延时50us再检测电平,如果还是高电平则是“1”,否则这位就是0。重复这个操作就可以读完数据。这便是基于延时的单总线通信。图STYLEREF1\s4SEQ图\*ARABIC\s11基于延时的单总线通信接收算法流程图基于PWM的单总线通信基于延时的单总线通信在于一直在占用MCU,本来处理ADC就已经很繁琐了,而且或许是延时设置放式的问题,收到的结果也并不可靠。如果用STM32F103RCT6的PWM输入捕获功能,记录DHT22传来信息的电平边沿产生时间。这样除了前面两个回应信号,剩下的就是40位信息。考虑进一步由DMA直接把信息存入SRAM,这样单片机只在需要时读取即可,大量减少了处理的指令数。从而有效提升从DHT22读取温湿度信息的可靠性。US-100超声波测距模块US-100超声波模块可以采用电平输出和UART串口输出两种模式。如果采用电平输出,读取的是超声波的渡越时间。这时候尚且要考虑环境温度对声速的影响,还需要MCU通过公式去计算距离。而通过UART串口的话,在模块内部就已经完成了计算,读出的直接就是16位距离值,还是温度补偿后的,非常方便。在调试时遇到的反而是意想不到的问题:芯片引脚分配不开了。因为在制作基于单片机的汽车安全辅助装置的过程中,采用了逐渐添加功能的设计方法,并没有对引脚进行整体的规划。于是STM32F103RCT6在各个功能提供的数量都足够的情况下,引脚分配不开了。毕竟很多功能的引脚都是共用的,提供ADC功能的可能也是一个UART串口的一部分。尤其是ILI9341驱动显示屏用到的引脚尤其多,用了PB引脚一整组。它配套的中文字库存储在Flash芯片里,又占用了PC和PA部分的许多引脚。修改引脚是牵一发而动全身的问题,许多寄存器设置需要改,许多函数也需要改。这个过程中遇到了很多困难,花费了很多时间,也使自己对STM32的使用认识更加深刻了。UART通信本身是非常成熟而规则的,没有遇到什么困难。向US-100超声波测距模块发送波特率为9600的0x55,它就会返回两字节的距离值。其中前一个字节是距离的高8位,后一个是低8位。所以前一字节×256+后一字节,就是距离,单位是毫米。图STYLEREF1\s4SEQ图\*ARABIC\s12US-100超声波测距模块使用串口通信时的流程图本章小结本章详细记叙了基于单片机的汽车安全辅助装置中酒精气体检测模块、温湿度监测模块、超声波测距模块的仿真调试过程,包括各个模块具体的使用过程,以及使用过程中遇到的问题和问题的解决方案。通过更改设计、设计测试等方式,解决了硬件调试过程中遇到的实际问题。结论装置的测试和性能分析装置的测试主要分为两个部分。第一部分是各个MQ-3酒精气体传感器之间的调平,第二部分是基于单片机的汽车安全辅助装置的各个功能的测试。测试方案图STYLEREF1\s5SEQ图\*ARABIC\s11装置的成品图汽车安全辅助装置的测试方案设计一方面要结合项目的需求,另一方面还要考虑现有情况下能达到的实验条件。在综合考虑成本、可实现性、科学性等因素后,设计出了以下几个测试方案。MQ-3酒精气体传感器的调平方案根据MQ-3酒精气体传感器的说明书,虽然每个MQ-3传感器在相同环境下的示数不尽相同,但是每个传感器气敏元件的电阻值和酒精气体浓度基本呈线性关系。尽管在现有条件下,无法定量的得出在特定浓度的酒精气体环境中每个MQ-3传感器的示数,但是根据线性相关的可传递性,每个MQ-3酒精气体传感器的示数之间也是存在线性关系的。于是并不需要知道环境中酒精气体浓度的具体数值,只需记录不同环境下,各个酒精气体传感器的示数,在示数之间进行比较,拟合出直线,就可以达到调平的目的。制造一个比较稳定的环境,记录当前4个MQ-3酒精气体传感器的示数。通过增加浸有酒精的纸片数量,改变环境中酒精的浓度。记录不同浓度下每个MQ-3的读数,整理在表格中。根据表格的数据总结出第2到第4只传感器的示数与第一个传感器示数之间的关系,在程序中读数后按照关系进行换算,即做到调平。对于酒精气体传感器阵列的测试方案在平面上分划坐标系,将四个酒精气体传感器之间间隔一定距离排成方阵。在不同位置摆放浸有酒精的纸片。记录放置在不同位置时,四个酒精气体传感器的示数。比较纸片放置位置和酒精气体传感器示数的关系,即可判断通过酒精气体传感器阵列确定饮酒者位置的设计是否成功。对于温湿度监测的测试方案在不同环境下分别用汽车安全辅助装置和市场上购买的温度计测量温度并记录。将记录的传感器示数与市场上购买的温度计的示数进行比较,判断通过汽车安全辅助装置读取的温湿度值是否准确。对于超声波测距的测试方案用卷尺测量多个地点到障碍物的距离,标记好相应位置。使用汽车安全辅助装置在各个位置对障碍物进行超声波测距,记录装置上的读数。将装置的读数与之前记录的距离值进行比较,从而得以判断装置测距是否准确。酒精气体传感器的调平酒精气体传感器调平的理论依据就是线性相关的可传递性和最小二乘法。在实践上需要注意的就是创造一个较为稳定的酒精气体环境。酒精气体传感器调平的操作图STYLEREF1\s5SEQ图\*ARABIC\s12酒精气体传感器调平现场在一个底面积较小、边沿较高的圆盒内放入4个MQ-3酒精气体传感器,以此来尽量保证测试环境的稳定。单片机将MQ-3传来的电压值直接通过ADC模块进行模数转换,将转换值直接显示在屏幕上。向圆盒内逐个放进浸有酒精的纸片,读取此时屏幕上的四个示数。改变纸片的个数,分别记录示数在表格中。

调平过程中得到的数据及数据处理表STYLEREF1\s5SEQ表\*ARABIC\s11酒精传感器调平数据记录表读数顺序酒精传感器1酒精传感器2酒精传感器3酒精传感器417491092135715652128115871860207231780204123302458424102780299732385325736503870409464095409540954095传感器的示数在数据记录时一直在波动,此处取整数部分。传感器的示数相对于读数顺序是没有意义的。因为在实验过程中并没有准确把握酒精浓度的间隔,纸片的数量和酒精的浓度没有直接关系。相反,每个传感器的示数都是和酒精气体浓度呈线性关系的。根据线性相关的传递性,此时以传感器1为标准,绘制另外3个传感器示数关于传感器1示数的折线图,就可以将传感器的示数归一化,使不同传感器的示数得以互相比较。图STYLEREF1\s5SEQ图\*ARABIC\s13各传感器示数相对于传感器1示数的曲线图图中可以看出,所有MQ-3酒精气体传感器的示数最后都连到了4095,是因为STM32F103RCT6模数转换功能使用的是逐次接近法,读取的数值就在0到4095之间,显然在读最后一个数据时,已经超出STM32F103RCT6单片机模数转换模块的量程,所以需要将每个传感器的最后一个数据舍去。设酒精气体传感器1的示数为a,酒精气体传感器2的示数为b,酒精气体传感器3的示数为c,酒精气体传感器4的示数为d。则通过最小二乘法可以得到:第2个传感器的示数与第1个传感器示数的关系为 b=1.0249a+291.75 (5-1)第3个传感器的示数与第1个传感器示数的关系为 c=1.0126a+770.5 (5-2)第4个传感器的示数与第1个传感器示数的关系为 d=1.0005a+590.6 (5-3)在使用STM32F103RCT6单片机的ADC模块通过模数转换读取4个酒精气体传感器的示数后,利用上述3个关系式即可以把4个传感器的示数转换为可以互相比较的量。便于后续的计算、比较和显示等操作。酒精气体传感器阵列的测试图STYLEREF1\s5SEQ图\*ARABIC\s14酒精气体传感器阵列测试在测试中,使用一个纸盒作为模拟的车厢,将MQ-3酒精气体传感器布置在四个角落,组成了基础的传感器阵列。因为酒精气体的量不能直接定量表示,传感器的示数本身也没有直接意义,传感器示数之间的相对值才体现出酒精气体浓度的差异。而且酒精气体也无法确定其具体的位置,只有一个粗略的倾向。经过几次测试,经过校准后的酒精传感器阵列可以做到通过示数之间的比较,确定酒精气体的位置更倾向于哪个角落。图STYLEREF1\s5SEQ图\*ARABIC\s15酒精气体传感器阵列功能流程图

温度传感器的测试表STYLEREF1\s5SEQ表\*ARABIC\s12温度传感器的示数与温度计比较温度计示数/℃温度传感器示数/℃22.522.5124.724.6526.726.7328.028.0230.630.6531.531.5332.932.87表中可以看出,温度传感器的读数具有很高的准确性。事实上DHT22温湿度传感器模块都经历过实验室中的预先校准,市场上购买的温度计精度还未必有它高。即使存在差异也无法确定是哪一方出现问题。本次测试目的不是说明DHT22传感器的准确性,只为了测试其能否正常工作,所以数据不必做进一步的处理和计算。超声波测距的测试图STYLEREF1\s5SEQ图\*ARABIC\s16超声波测距的测试现场在实际测试中,皮尺是拉直了读数的。先由皮尺测量相应距离到墙壁的位置,再将汽车安全辅助装置的超声波测距探头前边缘对齐位置。为了保证探头与墙面平行,以地砖分界线作为参考。图STYLEREF1\s5SEQ图\*ARABIC\s17测试装置正面图超声波探头通过纸盒上的孔位固定,可以做到与地面基本平行。另外垫高了一定高度,减少地面回波的干扰。前后两个传感器分别进行了测量。表STYLEREF1\s5SEQ表\*ARABIC\s13超声波测距示数与测量值对照表皮尺测量值/mm前超声波测距模块/mm后超声波测距模块/mm100.09899200.0198201300.0300297400.0398399500.0501502600.0599601700.0697703可以看出,在温度补偿下的US-100超声波测距模块精度在近距离是比较高的,表现出了高于HC-SR04的水准。另外,由于皮尺本身的误差,以及装置未必与地面完全平行,探头平面未必与墙壁完全平行,产生误差的因素还有很多。本次测试证明了超声波测距功能可以正常实现。本章小结本章通过设计各种测试,对酒精传感器进行了调平,还分别对汽车安全辅助装置搭载的酒精检测功能、超声波测距功能、温湿度监测功能的实现进行了测试。根据测试结果,本次设计基本达成了任务要求。结论在本次毕业设计的过程中,我设计了一种基于单片机的汽车安全辅助装置。该装置包括酒精检测、温湿度监测、超声波测距、显示屏显示等功能。经过总体设计、程序编写、硬件仿真调试、实际测试等步骤,基本达成了设计要求。本文中详细介绍了汽车安全辅助装置设计的各个步骤,包括调试中遇到的问题和解决方法,以及在实际测试的过程中得到的数据和结论。本次设计采用了模块化的方式,各个传感器以总线与单片机通信或以电压值的形式向单片机输出信号,便于后续功能的拓展和移植。酒精气体传感器矩阵的使用是本次设计中较为创新的点。在相近的酒精检测设计中,通常只使用单个的酒精气体传感器,起到基础的酒精检测作用。本次设计中考虑到现实情况,设计中利用了酒精气体传感器矩阵,可以通过对比确定酒精气体浓度较高的方位。同时针对酒精气体传感器之间存在差异的情况,设计了调平操作,并在单片机端实现了数据处理过程中和显示屏读数的调平。在本次毕业设计的过程中,基本按照时间节点完成了各项任务,设计成品可以完成酒精检测、温湿度监测、超声波测距、显示屏显示等功能。参考文献[1]王书贤.汽车安全技术的现状及发展趋势[J].装备制造技术,2017,(9):257-259.[2]陈原生,王秋林,姚宏辉.高速公路交通事故的原因与预防措施[J].山西交通科技,2006(01):69-70+79.[3]JosephNotaro.挽救生命的传感器:半导体如何改变汽车安全[J].中国电子商情,2020,(8):51-53.[4]李艳,刘文超,尤志栋.风险驾驶行为识别及干预研究综述[J].汽车与安全,2020,(3):79-85.[5]CastignaniG,DerrmannT,FrankR,etal.DriverBehaviorProfilingUsingSmartphones:ALow-CostPlatformforDriverMonitoring[J].IEEEIntelligentTransportationSystemsMagazine,2015,7(1):91-102.[6]白中浩,刘浏,焦英豪,曹松.基于ASM的多特征融合驾驶员疲劳检测方法[J].电子测量与仪器学报,2016,30(12):1877-1883.[7]陈志勇,杨佩,彭力,莫子兴,蔡岗.基于BP神经网络的驾驶员疲劳监测研究[J].计算机科学,2015,42(S1):67-69+93.[8]王琳,罗旭,姜鑫,王宏.基于生物力学和颈腰部EMG判别驾驶员疲劳状态[J].汽车工程,2017,39(08):955-960+967.[9]夏铁铮,于虹博.基于单总线协议的温湿度传感器中断读取方法的研究[J].传感器世界,2020,26(09):33-38.[10]姚翔.双通道超声波导盲系统的研究[D].第一军医大学,2006.[11]张茜,朱庆宇,郑铸.基于STM32集成于方向盘的酒精检测系统[J].数码世界,2019(07):131.[12]NguyenPhat,BadenhorstPieterE.,ShiFan,SpangenbergGermanC.,SmithKevinF.,DaetwylerHansD..DesignofanUnmannedGroundVehicleandLiDARPipelinefortheHigh-ThroughputPhenotypingofBiomassinPerennialRyegrass[J].RemoteSensing,2020,13(1).[13]赵勇.吉利博越的“安

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论