基于单片机的汽车防疲劳系统研究

(整期优先)网络出版时间:2023-08-22
/ 3

基于单片机的汽车防疲劳系统研究

李兆丰

虹软科技股份有限公司,浙江省杭州市,310052

摘  要中国汽车保有量继续呈快速增长趋势,民众购车刚性需求旺盛,随着车辆的增多,交通事故频发,为减少事故发生率,应采取主动防控措施。作为交通事故的重要元凶之一的疲劳驾驶,随时随地都可能在全球范围内引发交通事故。为此,世界各国为预防疲劳驾驶展开相应的研究对疲劳驾驶检测技术的研究,有助于提高行车安全,从而保护人民的生命财产安全。

本次设计以客观的疲劳驾驶检测技术为依据,设计了一套成本低廉、可行的防疲劳驾驶检测系统,保障车辆行驶的安全。

关键词:汽车;防疲劳驾驶;客观检测法;单片机

1  绪论

长时间的驾车,会导致疲劳驾驶,进而对人们的安全产生影响。本设计以汽车的疲劳驾驶的工作原理为依据,将设计一个防疲劳驾驶提示系统,该系统主要目标是从根源处预防疲劳驾驶事故发生,为了验证和演示系统功能,本次设计将制作一个基于单片机控制的防疲劳驾驶模拟系统,通过采集驾车时间、驾驶员的疲劳状态等数据,并将此数据传递到控制模块,从而判定驾驶员是否存在疲劳驾驶,发出警告提醒驾驶员,

2  防疲劳驾驶系统

日常汽车防疲劳驾驶系统是由信息采集系统、控制系统、和报警系统组成。信息采集系统负责采集车辆信息和驾驶员信息,并将采集得到的信息反馈给控制系统即ECU,控制系统分析处理接受的数据,并对数据进行判断,当数据超出预先设计的临界值,则控制系统就控制报警系统进行报警,警示驾驶员,其原理如图1所示:

qt_temp

图1设计原理图

主要控制模块为ECU,也是我们所说的行车大脑,ECU可以根据人的状态进行防疲劳驾驶的监测,人状态的检测可从人的眼部或者头部进行监测判断,同时ECU也可以根据车辆状态进行防疲劳驾驶监测,主要从车辆行驶时间和里程进行检测判断,报警方式有声光报警和灯光报警,这样更能达到使驾驶员警醒的作用。

3  系统硬件设计

3.2系统硬件的选择和设计

3.2.1控制模块芯片的选择和设计

单片机是单片微型计算机的简称,它把微型计算机的中央处理器、只读存储器、随机存储器、定时、计数器及I/O接口电路等功能部件都集成在一块芯片上,从而构成完整的微型计算机。它使计算机从大量数值计算用途发展到可以应用于智能化操控。从此,计算机技术在两个关键的领域--通用计算机领域和嵌入式计算机领域都取得了更为重要的成果。

本次设计选择我国自主生产并且市场上常见的STC89C52。STC89C52单片机系列,功能对齐全、成本更加可观,性价比高,并且能够满足本次设计要求。其控制原理和AT89C51一致,和51单片机兼容,并在其基础上进行了优化,它是使用CMOS工艺技术制成的八位微控制器,片内自带有8K的Flash,和2K的EEPROM。。

单片机系统外围电路主要由时钟振荡电路和复位电路组成。

时钟振荡电路:振荡电路分为内部时钟方式和外部时钟方式,内部振荡器相当于是高增益反相放大器,需输入、输出引脚接石英晶体振荡器和微调电容,由此构成稳定的自激振荡器。外部则使用外部振荡器产生脉冲信号。

设计中选用12MHZ的石英晶体振荡器(Y1)的原因是单片机的机器周期是12个时钟周期,一个机器周期是1US,所以选用12MHZ便于计算,而且速度相对而言是最高的;对于电容(C2、C3)的参数选择,因为电容不能过大,这样会导致不稳定,也不能过小,会导致反馈电压过高,储存能量过少,并且容易受到外界的干扰,也会辐射影响外界,所以选择默认值30pf;其中引脚与单片机的晶振引脚和接地引脚连接。

复位电路:STC89C52的复位是由复位电路实现的。复位电路上有上电复位和手动复位两种方式,我们采取手动复位。复位电路是电路必备的一部分,是实现电路复位的必需品,就相当于归零,然后对整体电路重新测试。

复位电路的引脚与单片机专用复位引脚连接,另一端连接电源,并且接地时接有电阻和电容。电阻作用是为了限流,这个电阻不能过大,也不宜过小,虽然理论上可以不接电阻,但是为了电路稳定,根据电路使用情况,选择10K的电阻。而极性电容选择10UF。

3.2.2驾驶时间模块的选择和设计

驾驶疲劳,公安部给出的定义是指驾驶人在长时间连续行车后,产生生理机能和心理机能的失调,而在客观上出现驾驶技能下降的现象。长时间连续驾驶车辆,容易出现疲劳,驾驶疲劳会影响到驾驶人的注意力、感觉、知觉、思维、判断、意志、反应速度等诸方面,对行车产生危险的影响,所以对驾驶员驾驶时间的监测是很有必要的。

本次设计选择DS130在记录数据这方面表现很优秀,特别是用于记录具有特殊意义的数据点,并且DS1302还可以同时检测数据记录,这种记录对测控系统结果的分析及对异常数据出现的原因的查找具有重要意义,相比于传统的数据记录隔时采样或定时采样的方法,这样的记录方法不需要具体的时间记录,而且当采用单片机计时,一方面需要占用硬件资源采用计数器,另一方面需要设置中断、查询等,同样耗费单片机的资源,而且某些测控系统可能不允许,就达不到DS1302的效果,在系统中采用时钟芯片DS1302,就能很好地解决这个问题,并且DS1302时钟模块接口简单性价比高、使用方便,被广泛地采用,具有很好的兼容性,综合比较其性能,以及设计需要,故选用DS1302。DS1302的晶振(Y2)频率就是它的计时频率,秒的标准脉冲是32.768k,也就是2的15次方,选用这个标准值是为了准确的计时。

3.2.3头部运动感测模块的选择和设计

驾驶人睡眠质量差或不足时,会产生困倦的现象,而驾驶员打瞌睡,头部会不自觉的倾斜,存在一定运动,影响其驾驶安全性,对驾驶员以及乘客安全带来安全风险。所以在DS1302未能达到疲劳驾驶设定值时,头部运动感测显得尤为重要。

此次设计传感器考虑的有六轴陀螺仪、九轴陀螺仪和十轴陀螺仪三个选择。在设计中我需要采集驾驶员头部的运动,个人了解到,一般驾驶员疲劳时大多会向前或者后倾斜,所以我们需要检查其是否Pitch(前后倾斜),相对来说Roll(左右倾斜)、Yaw(左右摇摆)的情况较少出现于行车中。九轴和十轴虽然能检测的更多,但从经济性出发,采用六轴的MPU6050,性价比高,且能满足设计需求。

MPU6050有两个传感器组成,分别是陀螺仪传感器和加速度传感器,MPU6050将其测量的模拟量转化 为可输出的数字量,并且其还能根据跟踪物体运动的快慢进行调节,传感器的测量范围可以被控制的,陀螺仪可测范围为±250,±500,±1000,±2000°/秒(dps),加速度计可测范围为±2,±4,+±8,±16g,已经能满足日常行车使用。

3.2.4测距模块的选择和设计

本次设计针对汽车防疲劳驾驶系统,增加测距模块的初衷是为了更加的安全,其工作原理与头部运动检测类似,即当驾驶员处于疲劳驾驶时,产生困倦现象,头部会下意识的前倾,在产生角度的同时,还会缩短与方向盘的距离,所以将在方向盘上再安装一个测距模块,与头部运动检测结合,更加全面的保障驾驶员的行车安全。

根据2020年国家统计局最新公布:中国18岁及以上成年男性平均身高为169.7厘米,体重69千克。对于测试人员,选择了身高体重与国家平均值接近的成年男性,对于测试车辆,选择了目前市场常见的家用车宝骏630车型,并进行相应测量:

当驾驶员调整好姿态,按照自己的驾驶习惯乘坐好,并模拟行车时的姿态,测得汽车方向盘中心距驾驶员头部距离为48厘米,当驾驶员疲劳头部前倾时,测得此时的距离为36厘米,数据变化明显,此方案可行。

在之后的测距模块选择中,目前市场应用相对广泛的有毫米波雷达、激光雷达和超声波传感器,虽然三者的工作原理都是通过发射出载体信息,然后被物体反射回来的信号进行计算,从而测定物体的位置,得出相应数据,但是在上述实际使用的情况模式下,使用超声波传感器更合适。

毫米波雷达和激光雷达在测试传输范围比超声波优秀,超声波传感器一般在10m之内,但是超声波与电磁波和光波不同,超声波是一种振动频率超过声波的机械波,其测量的准确性较高、抗干扰能力强,并且其接收回来的数据信息能存储和调用,由于制作成本较低,现在广泛应用于医学、生产制造业之中。

随着我国科学技术的持续迅猛发展,也增加了对超声波检测系统研究开发的投入,我国超声波距离检测系统发展势头良好,在功能、性能上有大幅提升,超声波凭借其精准度高、无损以及非接触等优势,再加上国内外一直以来深入探究超声波技术,超声波在各领域的运用越发普遍。故测距离传感器选择技术成熟的超声波传感器,具体为性能稳定、测度距离精确、模块高精度,盲区小的HCSR04。

3.2.5液晶显示模块的选择和设计

显示器模块的作用是将前期采集处理完成的数据信息,对数据信息进行接收,然后把有效的数据流信息直观的显示在液晶显示模块上。

此次笔者设计的系统,需要显示的数据有:驾驶时间、雷达测距和Pitch(前后倾斜)的相应数值显示,占用的字符不多,目前市场上很多设备能够满足该显示要求。本次选用LCD1602,是一种专门用来显示数字、符号、字母等的点阵型液晶模块,它是由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,这很好的起到了字符间距和行间距的作用,在结构设计上和程序撰写上都很简单便捷,其液晶板的价格也低廉,这种类型的液晶板特别稳定,相比其他LED显示屏更省电,还不产生高温,显示数据清晰便于观察数据信息。

3.2.6报警模块的选择设计

常用报警模块为灯光报警和声光报警,考虑到灯光报警在夜间会影响驾驶员行驶的安全稳定性,所以本次采用声光报警。

在以蜂鸣器作为报警模块,将蜂蜜器和单片机引脚连接,在蜂鸣器的基础上增加了一个指示灯,指示灯是为了报警时监控蜂鸣器是否工作,考虑到蜂鸣器在蜂鸣器损坏时,无法报警,故增加这个指示灯,当指示灯亮,蜂鸣器没有报警,也可以警醒驾驶员,及时排除故障,指示灯与单片机的引脚连接。

3.2总体方案的落实

通过系统设计方案的筛选选择,控制模块芯片选择的是技术成熟、功能对齐全、成本更加可观的STC89C52单片机,驾驶时间模块选用的是兼容性好、性价比高的DS1302时钟模块,头部运动感测选用功能齐全、技术成熟的MPU6050六轴传感器,测距模块选用的是准确性较高、抗干扰能力强、盲区小的HCSR04超声波传感器,液晶显示模块选择的是显示屏柔和、能显示多字符的LCD1602,报警模块选择声光报警,最终确定本次设计所采用的模块。

qt_temp

图2方案落实

本系统的硬件电路是由单片机模块、MPU6050六轴传感器,HCSR04超声波传感器,DS1302时钟模块部分组成,其中的单片机是整个系统的控制中心,用于控制系统工作和实现信息整合预警。由各传感器采集数据,发送至单片机控制模块,从而实现预警的功能。

其工作原理是:利用STC89C52单片机作为系统数据的处理单元,然后用传感器读取数据信息到控制中心,即利用MPU6050传感器、DS1302时钟模块来采集车内驾驶员的疲劳状态,在长时间驾驶的情况下,时钟模块会及时的发出预警信号,保证安全驾驶,并结合一个MPU6050传感器,进一步判定驾驶员是否疲劳驾驶,当驾驶员存在疲劳情况时,防疲劳驾驶系统会提醒驾驶员及时停车休息。同时也利用HCSR04超声波传感器采集车外车辆行驶状态,当车内防疲劳驾驶预警系统未能警醒驾驶员,出现危险驾驶时会及时唤醒驾驶员,从而提高行车安全性。
程序与仿真设计

4.1  主程序设计

本次程序设计由五个子程序组合成的防疲劳驾驶系统,简而言之就是传感器负责采集数据信息,将数据信息单片机内分析进行判别是否疲劳驾驶,通过显示模块将其显示出来,按键程序则负责调试和复位,总体工作流程图如图3所示:

C:/Users/ADMINI~1/AppData/Local/Temp/qt_temp.z10392qt_temp

图3主程序流程图

以上就是总工作流程,其工作过程为:当电路准备妥当,通电开始工作时,感应元件即电子时钟DS1302、超声波HCSR04和MPU6050六轴传感器分别从车身状态和人体状态开始采集数据信息,其三者工作相互独立互不影响,三者将采集到的数据信息传送至控制模块即单片机STC89C52内进行数据分析并在显示模块LCD1602上显示出采集到的数据信息,控制模块负责判定数据信息是否达到我们预设的疲劳驾驶值,要是未能达到则继续返回采集信息,要是达到阈值,则开始报警,报警之后驾驶员可以手动关闭报警,然后传感器继续采集数据信息,结束这个工作循环,进行下一个循环。

4.2  原理图、仿真图的设计

原理图的绘制软件使用的是Altium Designer 10,其主要工作是给我们的思路进行汇总,让我们思路清晰,后续工作以此为依据就此展开,详细原理图见附录B。

仿真图的制作是本设计最重要的一项工作,从思路的奠定,以及功能的实现都离不开仿真图。仿真是编程和硬件工作的准备前提,只有仿真图制作出来了,才能知道需要什么样的程序,以及如何编程,此处使用的仿真软件为高版本的Proteus 8 Professional。

完成仿真设计如下图4:

图4仿真原理图

5结语

全国交通日益发达,汽车为我们带来便利的同时,汽车安全问题也广受关注,如今防疲劳驾驶系统在汽车上应用广泛。汽车防疲劳驾驶系统的实现是通过将传感器采集到的数据信息,传递至控制模块,控制模块根据预设值进行判断,从而提醒驾驶员,达到安全驾驶的目的。

该系统主要以STC89C52单片机为控制核心,来模拟汽车ECU,结合MPU6050六轴传感器、HCSR04超声波传感器、DS1302时钟模块作为感应设备,集驾驶员和车辆的状态,通过液晶显示模块显示数据信息,使得设计更加直观,当驾驶员在疲劳状态时发出警报。研究表明该模拟系统是可行的,可以充分模拟和展示达到预期的效果。

参考文献:

[1]冯海龙,赵宇杰,陈华隆,陈则强.驾驶员状态智能检测系统设计[J].专用汽车,2023(04):86-88.

[2]皇甫海峰,孙中涛.汽车驾驶员的人为因素与交通安全[J].时代汽车,2023(06):166-168.

[3]刘正武.汽车驾驶安全隐患预防与对策分析[J].时代汽车,2022(23):184-186.

[4]张瑞,朱天军,邹志亮,宋瑞.驾驶员疲劳驾驶检测方法研究综述[J].计算机工程与应用,2022,58(21):53-66.

作者简介:李兆丰(1978.4——),男,汉,浙江杭州人,本科,学士,研究方向:汽车智能座舱及辅助驾驶软件开发