基于单片机的疲劳驾驶检测仪设计
针对目前严重的疲劳驾驶行为,研制了一种疲劳驾驶检测装置。在座椅头枕上前方正对驾驶员头部的位置安装1个红外线发射二极管和2个红外线接收头,由单片机控制红外线发射的电流强度,同时检测接收头的信息就可以检测头部的相对位置。如果驾驶员处在疲劳驾驶状态中,头部必定偏离正常位置并且时间超过设定值,则输出报警和制动控制信号。在几种典型车辆上对该系统进行了实验,验证了方法的正确性和有效性,并能达到较高的测量精度。
1 检测仪结构特点
如果驾驶员处在疲劳驾驶状态中,头部必定偏离正常位置并且时间超过设定值,装置则输出报警和制动控制信号。检测仪中的反射式红外线传感器由1个红外线发射二极管和2个红外线接收头组成,红外线发射二极管发射经过调制的38 kHz红外线光束,安装在座椅头枕上前方正对驾驶员头部的位置,红外线发射二极管放置在中间, 2个红外线接收头对称放置在左右两边。
2 驾驶员头部位置分析
在驾驶过程中,驾驶员正常和疲劳时其头部位置是不同的,侧视图如图1所示,图1 ( a)表示驾驶员在正常驾驶汽车时其头部位置与座椅头枕有几cm的较小距离,而不是完全靠紧头枕,因为靠紧头枕驾驶眼睛会感觉很不舒服,不方便观察距离汽车较近的道路情况。
图1 ( b)表示驾驶员疲劳驾驶汽车时最常见的开车睡眠姿势,也是驾驶员最初的疲劳睡眠姿势,这时驾驶员头部距离座椅头枕一般大于15 cm,这种情况下应及时报警,如果持续2 s就应启动制动系统自动刹车。但是短暂的其他非疲劳动作,如探身操作仪表板上的开关、回头观察等短时动作也有类似的距离变化,这时可以用时间来区别, 2 s以内恢复正常位置的不作为疲劳驾驶判定。
图1 ( c)表示驾驶员在有意识地短暂休息和闭上眼睛驾驶,但还没有完全睡着时的姿势,但这是完全睡着的前奏,其头部位置紧靠座椅头枕,距离为0,这种情况下应该及时报警,发展下去就会演变成图1 ( b)的情况。
图1 驾驶员头部位置侧视图
图2为驾驶员头部的俯视图,其中圆形代表驾驶员的头部,箭头代表红外线发射和反射的路线。图2 ( a)为正常驾驶时驾驶员头部与红外线传感器的相对位置示意图,红外线从中间的红外线发射二极管发射出来到被驾驶员头部反射回左右2个红外线接收头,所经过的距离基本相等。
图2 ( b)表示驾驶员疲劳后的头部位置,是向左或右歪斜的情况,这与图1 ( b)的典型位置有所不同,是一种中间过渡的疲劳形态,最终也会转化到图1 ( b)的位置,这时红外线传感器将检测出左右不同的距离,也应及时报警或输出制动信号。
图2 ( c)表示驾驶员疲劳后头部继续偏移的位置,一侧的红外线接收头已经不能接收到被反射回来的红外线了,在计算机程序中得到距离无限大的结果,这说明驾驶员疲劳程度进一步增强,应及时报警或输出制动信号。
图2 驾驶员头部位置俯视图
3 检测仪的硬件设计
检测仪的硬件电路图如图3所示,图中LED为红外线发射二极管, IC3、IC4 为红外线接收头,MCU 为ATmaga8 单片机。
图3 检测仪硬件电路
LED发射38 kHz的红外线调制光束,经驾驶员头部反射后会照射到IC3、IC4的接收窗口, IC3、IC4对接收信号进行解调,经放大处理后以高或低电平的方式送到单片机MCU的输入口线,计算机程序将口线的值送到内存保存,供后面的程序作为判断依据。
红外线发射二极管LED发射的红外线的有效检测距离与通过红外线发射二极管的电流是对应的,红外线发射二极管LED的电流由三端集成稳压器IC2的输出电压决定,三端集成稳压器IC2的输出电压受计算机程序输出的控制字控制。
控制字最大值是二进制11111111d,此时R1 ~R8 全部接地, R12的综合阻值最小,三端集成稳压器IC2的输出电压Vout也最小, LED发射的红外线光束的有效距离也最小,适当调整R1~R8 的数值,可以将LED发射的红外线光束的有效距离调整到1 cm左右。当控制字最小值是二进制00000000d,此时R1 ~R8 电阻全部悬浮, R12的综合阻值就是R12 ,三端集成稳压器IC2的输出电压Vout最大,红外线发射二极管LED发射出的红外线光束的有效距离也最大,适当调整R12的数值,可以将红外线发射二极管LED发射出的红外线光束的有效距离调整到20 cm左右。1~20 cm的有效检测距离能够满足实际需要。
4 检测仪软件设计
4. 1距离检测方法
有效距离检测与单片机发出的控制字相对应,距离检测的方法是:逐渐减少红外线发射的强度,直到接收不到反射的红外线光束,此时的控制字对应的距离值就是当前驾驶员头部与座椅头枕的距离。
4. 2 驾驶员头部位置的自动标定
单片机程序框图如图4所示,自动标定头部正常位置的程序在汽车启动发动机再延时一段时间内运行,因为疲劳驾驶不会发生在这段时间内。当行驶到主路后,头部的动作逐步稳定,这时候才是对头部进行正常位置标定的正确时机。每次都要重新标定是因为驾驶员可能换人,每个人头部的位置不完全一样,标定的结果也会有差异。
图4 头部正常位置的自动标定程序框图
自动标定头部正常位置的程序就是使红外线发射二极管的电流强度由强到弱逐步减小,同时检测IC3、IC4的输出状态,判断是否到了接收不到的临界点,这是停止发射电流强度减小的界限,同时读出此刻的控制字数值作为距离标定。当左右2个红外线接收头IC3、IC4所输出的信号电平一致,同时能够保持相当一段时间不变时,就可以用此时的控制字作为标准距离标定。每个控制字都对应1个实际的距离。
4. 3 驾驶员头部偏离正常位置的检测
如果某个红外线接收头没有接收到红外线信号,则判定为此红外线接收头与驾驶员头部的距离大于此时与控制字相关联的距离。
2个红外线接收头所输出的信息分别反映了同一时刻驾驶员头部与2个红外线接收头的距离,与标准距离比较就能判断驾驶员的头部是正常位置还是前倾、侧倾、后仰。是否输出报警和制动控制电平由计算机程序根据驾驶员头部偏离正常位置后的持续时间决定。
- 基于MM908E625和Low-G的汽车驾驶状态(疲劳驾驶)监控(01-06)
- 基于GPS 和GPRS 的多功能汽车记录仪的设计(11-02)
- 基于ZigBee的疲劳驾驶警示系统的研究与设计 (11-09)
- 基于ZigBee技术的疲劳监测警示系统(01-18)
- 基于DSP的疲劳驾驶检测系统的研究(05-09)
- 基于Zigbee的汽车无线黑匣子设计与实现(10-01)