何英昊,郑鹏辉,李 广,岳炜茗
(1.大连理工大学城市学院,辽宁 大连 116600;2.沈阳工业大学,辽宁 沈阳 110000;3.西安大医集团,陕西 西安 710018)
交通灯是城市交通运行必不可少的设备,该设备通过红、黄、绿三种颜色的灯光传递信息,进而控制路口的交通,使车辆安全快速通过路口[1-3]。随着经济的飞速发展,道路交通问题日趋严重,现有的交通设施不能完全解决车流量压力大的现实交通问题,主要表现为交通灯程式化,不能有效缓解拥堵;遇到紧急车辆通过时通过效率低,不能有效避免行人误闯红灯等[4-6]。单片机技术和传感器技术的发展为新的十字路口智能导流控制系统提供了可靠设计方案,能够优化传统式交通灯的设计弊端,让交通灯的使用更加灵活[7-10]。本文提出一种基于STM32的十字路口智能化导流控制系统设计方案。该方案中的十字路口智能导流控制系统设置有多种模式,包括夜间模式、南北禁行模式、东西禁行模式、紧急模式,可以根据具体路况进行设置,并且能够及时提醒行人红绿灯变换,减少大意闯红灯情况的发生。同时,还可以利用红外检测技术检测车流量,根据车流量自动调整通行时间。当然,该方案也可手动调节各车道红、黄、绿三种灯光的时间。
十字路口智能导流控制系统共包括七个模块,分别是:主控模块、车流量检测模块、语音报警模块、LED显示模块、数码管显示模块、按键模块、电源模块,具体如图1所示。STM32F103C8T6单片机及最小系统作为十字路口智能导流控制系统的主控模块,负责系统的调度;E18-D80NK-N型红外光电传感器构成车流量检测模块,负责实时检测车流量信息并传递到单片机,这是十字路口智能导流控制系统能够根据车流量自动调节时间的基础;WT588D语音模块用来实现语音报警,当红绿灯切换时语音报警提示行人注意安全,以此来避免行人误闯红灯;LED显示模块显示通行状态,用红、黄、绿三种颜色的灯光传递通行信号,这是红绿灯的基本功能;数码管显示模块显示相应道路的倒计时,用来提醒灯光变化,避免车辆误闯黄灯,减少交通事故的发生;按键模块实现通行模式的选择及通行时间设置,通过预先编写的程序判断按键按下的次数,执行相应的子程序,实现通行模式的切换及设置。
图1 十字路口智能导流控制系统整体功能框图
STM32系列微控制器是以ARMCortex_M3为内核开发生产的32位微控制器,专为高性能、低成本、低功耗的嵌入式应用设计[11-13]。Cortex-M3是首款基于ARMv7-M体系结构的32位标准处理器,具有低功耗、少门数、短中断延迟、低调试成本等众多优点。所采用的STM32F103C8芯片内部有十分丰富的外设,如2个12位模数转换器、DMA控制器、3个16位通用定时器和2个高级定时器以及I2C、LIN等串行总线,有64 KB的FLASH和20 KB的RAM,存储容量完全可以满足系统的要求[1]。
直接独立按键的设计是通过检测按键端口的电位高低来判断按键的状态。将按键的一端接地,另一个端口接一个I/O口,程序开始运行时要把I/O置于高电平,平时按键无操作时I/O口保持高电平。当按键有操作时,I/O口置于低电平。由于单片机内部存在的上拉电阻会使按键被释放后的I/O端口保持高电平,所以本设计的程序只需要查询这个I/O口的电平状态就能够得知按键的状态。
独立按键的软件设计常采用查询式结构,先逐位查询I/O口线的输入状态,当I/O口线输入为低电平时,则能够知道相应的按键已经被触发,继而按键再转向功能处理。独立按键的波形是按下去时保持低电平,实际上是在上升沿和下降沿的过程中,即按下和松开的微小时间内会出现抖动。本文采用软件消抖的方法来解决此问题。实现此方法的第一步是查询按键,当出现低电平时即延长10 ms时间,结束后再读取I/O的值。当读出电平值为低电平则有按键按下,当为高电平时则视为干扰信号。
本设计采用四个独立按键,代号分别为K1、K2、K3、K4,其中K1为时间设置按键,K2为时间加键,K3为时间减键,K4为模式选择按键。硬件电路如图2所示。
图2 按键电路原理
E18-D80NK-N型是E18-D80NK 的升级版,是一种集发射和接收于一体的光电传感器,相较于E18-D80NK内部电路板和外部连线做了改动。传感器外部接线,在末端增加了杜邦线插口,更方便用户使用。
红外线光电开关是利用被检测物体对被调制的红外光束的遮挡或反射来检测有无被检物体的。当被检测物体经过检测区域时,红外光电开关的输出状态就会翻转,以达到自动检测目的。红外光电开关的检测体不限于金属,对其他对红外光有反射和遮挡能力的物体均能检测。
由于E18-D80NK-N有透镜,使得E18-D80NK-N的检测距离能够达到80 cm,对于不同的光,其检测距离也不尽相同,距离最远的是白色物体,距离最近的是黑色物体,并且可以根据需要通过旋转尾部的电位器旋钮调节检测障碍物的距离。
红外车流量检测电路依靠两个漫反射光电红外感应接近开关实现此功能,将两个开关分别置于东西和南北两个方向,当有车辆经过时,光电传感器通过检测不透明物体,采集到信号,车辆越多采集到的信号就越多,于是数值加1,用这种方式来监测车流量,用以控制红绿灯时长。
语音模块采用的是WT588D20SS模块[14]。图3为该模块的引脚。
图3 WT588D20SS引脚
本文方案有两组显示电路:一组是采用四组两位共阴极七段数码管显示东西和南北两个方向的倒计时时间,如图4所示;另一组是用红、黄、绿三色发光二极管分别表示红、绿、黄灯,如图5所示。
图4 数码管显示电路
图5 LED显示电路
方案采用C语言进行编程,程序的核心部分是红外光电传感器对车流量的检测以及按键切换模式。程序框图如图6所示。
图6 十字路口智能导流控制系统程序框图
上电后系统开始初始化,交通灯进入基本功能,即东西方向红灯亮25 s,黄灯亮5 s,报警模块语音报警,南北方向绿灯亮30 s;然后南北方向红灯亮25 s,黄灯亮5 s,报警模块语音报警,东西方向绿灯亮30 s,之后循环运行。接下来判断是否有按键按下,如果有按键按下则判断K1、K2、K3、K4中的哪个按键按下,然后执行相应按键的功能;如果没有按键按下,返回继续运行基本功能。之后判断红外光电传感检测的车流量是否到达预定车流量数,没到达的话返回继续执行基本功能。如果到达预定车流量阈值,相应车道延时10 s。
图7为系统控制电路原理。对系统部分功能进行调试,结果如图8~图12所示,图11是车流量过多时系统运转时间加长的情况,图12是车流量正常时系统正常工作的情况。
图7 系统控制电路原理
图8 全部禁行状态
图11 车流量多时运行情况
图12 车流量正常时运行情况
本文提出一种基于STM32单片机的十字路口智能导流控制系统方案。该方案克服了传统交通灯的弊端,增加了语音报警功能、车流量检测功能、通行模式选择以及通行时间手动调节功能,更加具备实用性和操作性,更能够满足实际应用需求。具体如下:
(1)十字路口智能导流控制系统在已有的交通规则和传统的交通灯技术下继续使用红、绿、黄三色信号灯,分别模拟禁止、通行和安全等待信号,红绿灯切换时间可以通过四个两位共阴极数码管倒计时的方式进行显示。
图9 东西通行、南北禁行状态
图10 东西禁行、南北通行状态
(2)模式切换可以通过按键的形式进行操控,分别有夜间模式、紧急通行模式、南北方向通行、东西方向通行、通行时间增加和减少、系统复位等功能。可以按照不同的实时路况人工选择交通模式。
(3)通过语音播报模块来提醒行人红绿灯切换,与传统交通灯相比,避免了行人误闯红灯,保证了行人能够安全通过十字路口。
(4)根据十字路口的交通规则,设置两组红外光电传感器完成对车流量的实时监测,并根据实时车流量的大小自动调整绿灯通行的时间,与传统的程式化交通灯相比更具有灵活性和实用性。
(5)考虑到节能缘故,可以采用一块太阳能板进行供电,保证交通灯在户外用电,不会因为偏僻地方不方便供电而停用交通灯。