APP下载

基于STM32的智能交通灯控制系统设计

2021-06-24郑瑞旭张炎生

机电工程技术 2021年5期
关键词:交通灯车流量信号灯

郑瑞旭,张炎生

(广东海洋大学电子与信息工程学院,广东湛江 524088)

0 引言

随着当今物联网技术的不断发展,越来越多的智能化设备应用于监测系统,以便更好地服务于人们,由于我国的城市交通控制系统起步比较晚,直到20世纪90年代初,我国的一些高校和交通研究机构才开始了城市交通诱导系统的研究,而且主要是借鉴英美和澳大利亚等国当时的先进控制系统,如著名的SCOOT、SCATS等[1]。但当前我国普遍应用的信号灯控制系统仍然是定时信号控制加以人力辅助指挥,再加上现代交通的不断发展且结合我国交通的流动性,道路条件等等与国外存在巨大差异,所以开发真正适合我国自身特点的智能交通灯管理控制系统是当前的重要任务。

在单交叉路口,由于信号灯配时的不合理导致的交通阻塞是常发生交通事故的主要原因,再加上如果路口交通遇到紧急情况,不能及时快速地切换到人工控制模式来管理交通的话,会进一步加重道路阻塞现象或者发生意外,所以为了能够更好更快地保障路面通行的正常运行与安全,确保不会在道路发生事故问题时因为交通信号灯的时间问题导致道路情况阻塞加剧,本文设计并实现了一个能智能控制交通灯时间的系统,通过自适应算法获取到的数据加以辅助计算得出最优的时间参数,可用于车流量密集的单交叉路口。

1 智能交通灯系统的总体设计

该智能交通灯控制系统总体架构包括STM32开发板、车流量监测模块、按键控制模块、OLED显示模块以及驱动模块5个部分组成,其中以STM32为主控制器,通过车流量监测模块对于路面上的车流量进行采集数据,并把数据信号传送至处理器,再由处理器发出指令从而改变道路交通信号灯所分配的时间,使得道路上的车流量能够实现动态变化调节[2]。同时在具备基本道路交通灯的功能前提下,还支持人工按键切换系统运行的模式以及设置通行时间。该系统总体框架如图1所示。

图1 系统总体框架

该系统采用的车流量监测模块为HC-SR04超声波测距模块,通过该模块判断车流量的大小以及工作繁忙状态,并把结果上传至处理器,并通过OLED显示结果和蜂鸣器提示。通过STM32作为控制系统的核心,通过外部中断控制外围接口的信号灯驱动模块,根据横纵向的车流量实现实时调整交通信号灯的时间[3],信号灯使用红黄绿的发光二极管LED和8255的驱动来控制亮灭。另外还有按键模块可以手动切换运行模式以及调节具体的通行时间,使得该系统更加合理和人性化,方便优化交通管理。

2 硬件系统设计

2.1 处理器的选择及介绍

本系统采用的STM32F103ZET6是基于ARM架构Cortex-M3内核单片机,Cortex-M3是首款基于ARM-v7-M体系结构的32位标准处理器,具有512 kb flash,64 kb RAM,支持丰富的外设资源,同时具有运行速度快、抗干扰能力强的优点,专为高性能、低成本、低功耗的物联网嵌入式平台应用专门设计的[4]。可支持大量外设接口,如定时器、ADC、DAC、SDIO、IIC、SPI、IIS和USART等,共有112个通用I/O口,所以它非常适合应用于需要高速的数据处理能力和快速中断响应的地方,再加上本身芯片的内核为ARM,故用该处理器进行项目开发的时候,有多款IDE软件可以进行开发编辑代码,增加了代码的可读可写性。

2.2 其他外围模块组成及介绍

2.2.1 车流量监测模块

超声波是一种频率高于20 000 Hz的声波,用作为车流量监测方式,则需要产生超声波和接收超声波的装置,把这类装置称为超声波传感器。在该系统中,采用的是HC-SR04超声波测距模块,该模块是用超声波传感器和其他电容电阻等元器件组合而成。其工作原理为:通过发送和接收超声波,利用声音传播速度和发送与接收超声波的时间差,便可计算出前方障碍物到模块的距离,计算公式为:

式中:v为超声波波速,m/s,在空气中,v=331.4×,其中T为环境温度,℃。

因此通过多个超声波模块可以得出车流量长度,加以历史数据辅助计算可得通行时间和速度[5]。选用该模块的原因是因为HC-SR04模块不仅价格低廉,而且精度准确,可提供2~400 cm的非接触式距离感测功能,测距精度可达到3 mm,且该模块的工作温度为-40~+80℃,适应我国大部分城市的环境温度。该系统采取在每条道路上安装2个或多个传感器模块,每当有车辆通过时,传感器获取到信号并把传输回的信号给主控制模块进行处理,并加以程序算法来实现对车流量的计算。

2.2.2 按键控制模块

该项目本身可以通过传感器模块获取车流量从而智能控制信号灯的亮灭时长,但是假如遇到特殊车辆如急救车、消防车等需要紧急通行的时候,可以通过人为按键控制设置红绿灯显示时长,以确保其通行能力,在人工切换紧急模式的时候,4个方向的红灯倒计时清零,增加这个功能模块既能确保平常通行的效率,又能兼顾到紧急情况的发生[6]。

2.2.3 显示模块

该项目采用OLED显示模块显示东西方向和南北方向的车流量,并可以切换看到车辆通行倒计时时间。因为OLED本身为自发光材料,基本显示单位由金属阴极、透明阳极和有机薄膜组成,不需用到背光板,同时反应速度快、较易彩色化、用简单驱动电路即可让图像呈现到发光面板,而且在显示方面图像也十分稳定,具有亮度高、色彩丰富、分辨率高、驱动电压低、能耗低等等特性。OLED显示器在军事、商业、交通方面也常被用作飞机、手机、电脑等现代化设备的显示终端[7]。而且该系统采用发光二极管LED灯作为信号灯,因为LED照明灯具有亮度高、功耗小、寿命长、不发热等优越性能,已经逐步取代传统的照明灯[8]。

2.2.4 信号灯驱动模块

信号灯驱动模块主要控制是控制多路信号灯的亮灭情况,主控通过传感器获取到的实时交通流量大小,然后通过控制算法的计算处理得出当前交通情况的最优处理,并根据得出的数据结果通过主控制模块连接发送到该模块输入端口,就可以控制各个方向通行的信号灯。因为4个方向都需要安装3盏信号灯,共12盏。为了提高IO口驱动能力、控制能力,本设计采用8255的驱动来控制[9]。选用该驱动的原因是:价格低廉,兼容3.3 V、5 V和15 V输入逻辑,同时稳定可靠,可以同时驱动3个模块,并根据输入的信号值改变信号灯颜色,电路驱动板电路仿真图如图2所示。

图2 驱动板电路仿真

因为本驱动控制系统的关键在于对信号灯智能调整时长,具体原理是通过比较东西南北4个方向的车流量与默认标准的车流量数据,根据同方向车流量的历史数据来调节各个信号灯的亮灭情况,其中最大的车流量数据作为信号灯调整时长的最大值,并加以记录该方向的历史车流量数据,从而达到智能调节信号灯的效果。根据描述绘制了各个模块安装控制图[10],如图3所示。

图3 模块安装控制

3 程序部分设计

该系统设计主要采用的是C语言编写的代码,分为几个大模块进行编写,核心程序是对于车流量的监测以及对于不同信号灯的驱动,采用模块监测到车流量数据后,通过自适应控制算法进行历史值和当前值的智能对比,然后分别对道路的信号灯进行变化从而控制道路交通情况,该智能交通灯设计的程序流程如图4所示。

图4 程序流程

4 结束语

本文设计了一种基于超声波模块监测单元的智能交通灯控制系统,实现实时车流量的检测估算,并通过驱动模块实现了对车流量的控制。系统可以根据已有的交通规则,在各类传感器的作用下完成对车流量的采集工作,并按照不同的实际道路情况智能控制车辆通行时间。与传统的交通灯相比,能够减少交通堵塞现象。系统使用了OLED显示器来实时显示车流量状态,可以通过人工控制按钮来保证出现紧急情况的时候道路通行顺畅,具有更好的交互性和人性化,可以减少后期的交通压力。由于算法只考虑了常见的十字交叉路口,对于双叉、多路叉口的情况不具备有效的控制能力,后期可以通过增加传感器或者更改对应的程序进行解决。创新点在于虽然本文只是对单一交叉路口进行控制方案的设计,但开辟了一种思路,对于更多路况和更加庞大的交通系统实现智能控制提供了重要的参考价值。

猜你喜欢

交通灯车流量信号灯
基于单片机的交通灯模糊控制器研究
交通信号灯
信号灯为什么选这三个颜色?
为什么交通灯是红黄蓝三种颜色?
一直飘红的交通灯
基于单片机的LED模拟交通灯设计
安装在路面的交通信号灯
参考答案
交通信号灯控制系统设计
高速公路重大节假日免费车流量金额算法研究与应用