李德英,李延康,易 涛,陈希祥
(湖南信息学院 电子科学与工程学院,长沙410151)
随着人民生活水平的提升,汽车总量日益增加,而夜间驾驶员不适当的灯光操作造成交通事故频发、年均交通事故也随之上升。如何提高汽车的安全性、减少交通事故的发生已经成为急需解决的难题[1]。本设计能根据环境变化而自动变换汽车灯光系统,大大减少交通事故的发生。
汽车灯光智能控制系统由灯光模式选择模块、智能会车模块、双操作模块3 个模块组成。STM32F407单片机做为主控芯片,由超声波测距传感器、光电传感器、DHT11 温湿度传感器等组成环境检测模块,将检测到的外部环境数据通过A/D 转换电路传送给单片机进行判断和处理后发出相应的控制指令,控制车灯做出相应的动作,实现灯光的智能控制。且采用QT 界面开发软件,设计开发了上位机监控界面,通过UART 串口通讯实现控制过程的可视化。本系统具有成本低、功耗低、安全可靠、智能可控等特点。系统组成框图如图1所示。
图1 控制系统的整体结构框图Fig.1 Overall structure block diagram of control system
STM32F407 单片机具有高性能、运算速度快、功能强大等特点[2],其片上外设包含AD 转化模块,以及PWM 脉冲调宽调频模块,内置定时器等功能模块,不需要外加扩展模块,最高运行速度可达到168 MHz的工作频率[3],能够达到项目所需的运算速度。
本系统由STM32 单片机、超声波测距、光照强度检测、温湿度检测、按键模块等组成,其系统的硬件组成如图2所示。
图2 系统整体硬件框图Fig.2 System hardware block diagram
超声波测距的实现原理是在已知超声波的传播速度下,发射一定频率的声波,当声波在向前传播时遇到障碍物,就会产生反射声波[4],由超声波接收器接收,根据发射与接收这一过程的时间差,通过时间差距离法计算得到发射点到障碍物之间的相对距离,如式(1)所示:
式中:l 为发射点与障碍物之间距离;T 为从计时器获取声波发射与返回的时间差;C 为声波速率。
超声波在空气中传播的速率会随温度变化而发生变化。表1 是波速C 与温度的对应关系表,在使用时,可使用温度补偿的方法提高测距精度。
表1 超声波波速与温度的关系表Tab.1 Relationship between ultrasonic wave velocity and temperature
STM32F407 给US_025 超声波测距传感器模块提供10 kHz 的时钟频率,经放大器放大、锁相环电路检波处理后达到40 kMz[5]。超声波发射模块发射声波,Echo 引脚变成高电平,触发相应中断程序,systick 计时器开始计时;当接收器接收到反射波,Echo 引脚变成低电平[6],中断结束,得到发射和接收的时间差,再通过算法计算得到车距数据,其原理如图3所示。
图3 超声波测距原理框图Fig.3 Schematic diagram of ultrasonic ranging
超声波发射电路原理如图4所示。超声波发射电路核心是由反相器74LS04 和超声波发射换能器T 组成[7],40 kHz 的方波信号一路通过一级反向器传输至超声波换能器一端电极,另一路通过两级反向器之后,送到超声波环能器的另一端电极。单片机时钟脉冲信号输出端采用推挽方式,提高电平输出能力和超声波发射信号的强度。信号流过两个反相器并联的二级反相器,可提高检超声波发射电路的驱动能力[8]。图中电阻R10和R11可提高反向器驱动能力以及增强超声波环能器的阻尼效果,缩短自由震荡时间[9]。
图4 超声波发射电路原理图Fig.4 Ultrasonic emission circuit schematic diagram
本设计超声波检测模块使用的超声波换能器是压电式的,其内部核心器件是1 个换能板和2 个检测声波震动的压电晶片[10]。当做发射器时,超声波换能器两端电极加上脉冲信号,当脉冲频率与压电晶片的固有频率一致时,晶片就会产生共振现象,带动共振板振动产生超声波[11];当它做接收器时,两端电极没有脉冲信号加持,当共振板接收到超声波信号,会产生振动,带动压电晶片振动,压电晶片内部就会将振动信号转换为微弱的电信号,经过放大电路,就能实现超声波接收功能。发射换能器与接收换能器的电路结构不同[12],超声波接收器电路图如图5所示。
图5 超声波接收电路图Fig.5 Ultrasonic receiving circuit diagram
光照强度是将光敏电阻与恒值电阻串联,利用光敏电阻的特性进行分压检测,读取分压电压后直接以AN 模拟信号的方式输入至单片机中[15],以达到检测光照强度的效果,在程序中可以通过上位机设定一个阈值,检测环境的光照强度有没有达到设定值,以此判定环境光线是较暗还是良好,单片机发布控制指令驱动LED 灯光模块做出相应的动作。其光照检测电路设计图如图6所示。
图6 光照检测电路设计图Fig.6 Light detection circuit diagram
采用DHT11 温湿度一体数字化传感器,对湿度数据进行采集,DHT11 传感器核心测量元件是电阻式的测湿元件和NTC 测温元件[13],在其内部有一个高性能的8 位单片机控制。通过相应的电路连接就能达到实时采集模块所处环境的温湿度数据[14]。
系统要对DHT11 温湿度传感器、光电传感器以及超声波测距传感器和按键触发等输入模块采集到的数据进行分析处理后,发出控制指令,控制执行元件,实现汽车灯光的智能控制,图7 为控制系统主体流程。
图7 主体逻辑流程Fig.7 Main logic flow chart
3.1.1 系统灯光模式选择模块
灯光模式选择模块根据光敏模块采集到的数据与阈值进行比较确定开启远光灯还是近光灯,通过湿度传感器模块采集的数据与阈值进行比对确定是否需要开启雾灯及警示灯,其程序流程如图8所示。
3.1.2 系统灯光智能会车模块
灯光智能会车模块需要调用光敏检测模块和超声波测距模块,在远光灯模式行驶,当测距模块检测到前方来车时,远光灯的亮度会根据车距的缩小向近光灯转化,灯光的亮度根据相对车距成正比变化,车距越小灯光亮度越趋近于近光灯,过程中会车光敏电阻检测对向车辆发出的光线强度,将检测数据与阈值比较,大于阈值则判断对向车辆未切换近光灯,系统开启2 s 提示灯光。其程序流程如图9所示。
图8 灯光选择模程序流程Fig.8 Flow chart of lighting selection mode
图9 灯光智能会车模块程序流程Fig.9 Intelligent meeting flow chart
上位机监控系统需实现STM32 单片机采集数据的可视化以及各阈值设定功能等。需实现上、下位机间通讯、制定通讯协议、上位机监控主界面的布局设计以及上位机接收数据后的数据处理与显示。本设采用通用异步收发传输器(UART)进行全双工异步串行通讯方式实现数据的传输与接收[16]。
在光电传感器上加照射光线或者用不透光盒子罩住,可模拟车辆夜间行驶的光照环境的优劣。用湿纸巾捂住温湿度传感器,检测的湿度数据会发生变化,可模拟汽车是否行驶在雾天或者非雾天。该模块的实物模型控制效果如图10所示。上位机监控效果如图11所示,笑脸图标代表相应车灯点亮,方块则代表车灯未点亮。当系统检测数据小于光照强度设定值时,系统判断为汽车行驶于光照条件较好的环境中,湿度检测数据大于设定值时,系统判断为汽车行驶于雾天,此时系统如图11所示开启近光灯,示轮廓灯,雾灯以及警示灯。
图10 灯光模式选择效果图Fig.10 Lighting mode selection renderings
图11 灯光模式选择上位机监控效果图Fig.11 Light mode selection of the upper computer renderings
本系统以STM32F407 集成芯片作为核心,以电源电路、传感器、最小系统、按键电路以及执行机构等构成外围电路。设计了系统的主程序和各功能模块流程图、开发了QT 上位机监控界面,并采用自定义的通讯协议实现上位机于单片机的通讯,实现系统控制以及数据采集的可视化效果。经实践证明,该控制系统稳定可靠,故障率低,人机界面友好,操作方便,具有较高的实用价值。