基于Arduino单片机的智能交通灯控制系统仿真设计
- 格式:pdf
- 大小:1.76 MB
- 文档页数:3
• 118•以Arduino uno 单片机为核心处理器,以Proteus 8.5电路仿真软件为平台,设计了基于提高主路通行效率的智能交通灯控制系统仿真电路。
系统中设计了六个超声波测距传感器,用于检测十字路口各个方向有无机动车。
采用Proteus 可视化编程技术编写了系统控制程序。
在保证主路机动车优先通行的基础上,动态检测到辅路方向有机动车通行要求时,系统自动分配通行时间。
系统成功仿真运行,实现了提高主路通行效率的目的。
为了解决交通拥堵问题,许多城市在交通繁忙的十字路口开始设置智能交通灯控制系统,能够根据车流量动态设置交通灯控制时间,从而提高了通行效率。
但是对于一些交通不太繁忙的十字路口,大多还是设置的普通交通灯控制系统,各方向的通行时间设置是固定的,在一个方向上车流量相对较大的情况下,不能有效提高通行效率(章伟,张代远.基于车流量的交通灯控制系统设计[J].计算机技术与发展,2015(05):196-204)。
有些十字口一条路车流量明显高于另一条路,车流量较大的本文称为主路,相应的另一条称为辅路。
主路行人及车流量比辅路大,如果交通灯设置不合理,常常会出现辅路没有通行需要的情况下,依然给辅路设置通行时间,主路的行人和车辆依然需要等待一个信号灯周期,这无疑降低了通行效率。
对于具有主路和辅路特点的十字路口,本文研究了一种智能交通灯控制系统,通过Proteus 仿真软件成功进行了仿真运行。
本系统以Arduino uno 单片机为核心处理器,设计了六个超声波测距传感器,用于检测十字路口各个方向有无机动车。
假设东西向为主路,南北向为辅路,主路交通流量大于辅路。
在辅路方向上没有通行要求时,交通灯将保证主路方向持续通行。
在动态检测到辅路方向有通行要求时,系统自动给辅路分配通行时间,从而实现了提高主路通行效率的目的。
图1 电路的总体结构框图 图2 十字路口布局图1 智能交通灯控制系统总体设计总体控制电路结构框图如图1所示,十字路口的布局图如图2所示。
控制电路主要包括Arduino uno 单片机控制系统、超声波车辆检测电路,I/O 接口扩展电路、数码管显示电路、红绿灯显示电路和工作模拟控制电路(吴文亮,张靓.基于多单片机的智能控制交通信号灯设计[J].宁波职业技术学院学报,2015(05):87-90)。
Arduino uno 是整个电路的核心,用于处理超声波车辆检测电路送来的信号、控制红绿灯按照交通控制规则显示、控制各通行方向上的数码管显示计时信息。
超声波车辆检测电路设有六个超声波传感器,图2中A 、B 两点各设置两个,C 、D 两点各设置一个,用于检测有无机动车要求通过辅路。
I/O 接口扩展电路用于扩展单片机的I/O 接口,以连接所需数量的数码管和红绿灯。
数码管显示电路设有四组数码管,如图2所示,每组数码管能够显示两位十进制数,用于显示通行方向上红灯、绿灯和黄灯的显示剩余时间。
红绿灯显示电路由六组红绿灯组成,每组红绿灯设有红灯、绿灯和黄灯各一个,分别设置在六个通行方向上。
2 智能交通灯控制仿真电路设计2.1 核心微控制器选型本文研究的智能交通灯控制系统,选用Arduino uno 单片机是比较好的选择。
Arduino uno 实际上是一块基金项目:青岛港湾职业技术学院科学研究项目(编号:QDGW2018Z12)。
青岛港湾职业技术学院 武玉升基于Arduino 单片机的智能交通灯控制系统仿真设计• 119•单片机开发板,其核心是ATmega328 MCU控制器,集成了最小系统、闪存存储器、I/O接口、电源电路、在线编程电路等硬件。
通过一条USB数据线连接电脑,就可以实现供电和程序烧录,同时还可以选择电源适配器或9V电池供电。
具备数字输入/输出接口、PWM输出接口和模拟输入接口,均可以通过杜邦线引出,电路搭接方便。
采用电路仿真软件Proteus8.5以上的版本可以方便地对Arduino uno单片机进行仿真,软件提供了各种元器件、传感器、显示器件等仿真模型,可以通过电脑方便地搭建仿真电路。
控制程序编写可以采用可视化设计技术,通过连接流程图的形式,使程序编写更加直观、简洁,可以方便地实现多条件分支逻辑的编程(晁松杰.基于ARM智能交通灯控制系统的设计[J].科技创新与应用,2017(12):52-53)。
2.2 超声波传感器仿真电路设计在智能交通灯控制系统中进行机动车检测的方式有很多,本系统只需要检测行车道是否有机动车,选择采用超声波传感器。
利用超声波传感器检测机动车,具有非接触、成本低、寿命长、安装维护简单等优点。
图2中A点位于北向南车道上,设置两个超声波传感器,一个用于检测直行车道机动车,另一个用于检测直行左转并用车道机动车,B点同A点相对设置在南向北车道上。
C点和D点各设置一个超声波传感器,用于检测西向东左转和东向西左转车道的机动车(吴少雄,王彩红.基于传感器感应式的智能交通灯技术[J].福建电脑,2016(12):139-140)。
图3 超声波检测机动车方法示意图以B点为例,利用超声波检测车道有无机动车的方法示意图如图3所示。
每个超声波传感器都朝向相应的机动车道。
若机动车正常停在车道停止线前方等待通过,超声波传感器发射的超声波就会被车辆反射回来。
反射回来的超声波被接收部件接收到后,会向单片机发送相应的回响信号。
通过数据处理,单片机可计算出车辆同超声波传感器之间的距离,从而判断出该车道有无机动车。
2.3 单片机I/O接口扩展仿真电路设计Arduino uno单片机的数字I/O接口只有14个,需要进行扩展。
本设计选用了74HC595集成电路。
74HC595是八位串行输入/并行输出移位寄存器,具有三态输出和输出锁存功能。
在数据移位的过程中,74HC595的数据输出寄存器可以保证输出数据保持不便,从而避免数码管和红绿灯出现闪烁现象。
74HC595只占用单片机的3个I/O接口,就能实现8×n个并口扩展,具有电路简单、编程方便的特点。
本设计需要用六个74HC595扩展得到六个8位并口。
单片机的IO0接在首位74HC595的DS引脚,提供串行数据。
IO1接在所有74HC595的SH_CP引脚,通过输出脉冲的上升沿使串行数据移位。
IO2接在所有74HC595的ST_CP引脚,通过输出脉冲的上升沿输出并行数据。
2.4 数码显示仿真电路设计如图2所示,系统中需要四组数码管显示电路。
右侧的一组数码管用于显示西向东方向计时,左侧的一组数码管用于显示东向西方向计时,根据控制逻辑,系统运行时有可能存在西向东或东向西单独通行的情况,数码管显示计时数值可能不同,所以这两组数码管需要单片机分别驱动。
上下两组数码管用于显示南北双向通行计时,南北向车道作为辅路,交通灯控制逻辑比较简单,双向始终同时放行或进行,两组数码管显示计数值相同,所以这两组数码管连接在同一组驱动接口上即可。
如果通过74HC595直接连接数码管,则每个数码管都要占用一个74HC595,这将使单片机的I/O接口扩展电路更加复杂,后续编写控制程序也会比较麻烦,所以本设计采用74HC595输出端接74LS48后再接数码管的形式。
74LS48是共阴极LED七段显示数码管显示译码器,用于将8421BCD码转换为数码管显示相应十进制数字的段码。
这样一个74HC595可以通过74LS48连接两个数码管,编写控制程序时只需要通过74HC595输出相应数字的8421BCD码即可,从而简化了程序设计。
3 单片机控制程序设计采用电路仿真软件Proteus8.5仿真Arduino uno单片控制系统时,控制程序编写采用可视化设计技术,所有程序都由各种功能的流程图连接而成,程序编写直观、简洁,可以方便地实现多条件分支逻辑的编程。
编写控制程序之前,首先要明确系统的控制逻辑。
为便于分析,假设各个方向绿灯持续时间均为25秒。
(1)普通运行模式。
十字路口放行规则是:首先东西双向直行放行,然后东西双向左转放行,最后南北双向直行加左转同时放行。
交通灯变换规则是:通行方向上绿灯熄灭前会闪烁3秒,然后黄灯亮3秒,最后红灯点亮。
数码管计时规则是:绿灯和红灯都是运行时间剩余9秒时显示倒计时数字,黄灯亮时相应数码管显示3秒倒计时数字,其余时间数码管均处于熄灭状态。
(2)智能运行模式。
十字路口放行规则是:若各方向车道均有机动车等待通过,则系统运行方式同普通运行模式相同。
在南北双向、东西双向左转均无机动车和行人申请通行的情况下,系统将一直保持东西双向直行放行。
系统其它可能的运行状态如表1所示。
用序号表示的话,系统可能的运行顺序有:①、①②、①③、①④、①②④、①③④。
其中①②④顺序同普通运行模式顺序一致。
表1 智能运行模式运行状态表运行状态①东西双向直行②东西双向左转③东向西(或西向东)直行加左转④南北方向直行加左转优先级高 → 低说明系统默认运行状态,存在其它运行状态时,每个运行周期均从本状态开始。
东向西以及西向东均有左转车辆等待时运行。
东向西(或西向东)有左转车辆等待时运行。
南北方向有机动车或行人等待时运行。
系统主程序如图4所示,体现了Proteus软件的可视化设计技术,绘制流程图的过程就是编程的过程。
其中SETUP到END程序模(下转第122页)• 122•图12 小弧度的高频抖动图13是模仿平衡车在水平面上水平移动,可以观测到曲线1、3的波动大,滤波效果相对于曲线2、4效果不是很好。
图13 水平移动综上四个图来看,曲线1——一阶互补滤波的收敛速度虽然很快,但是其平滑效果很差;曲线2——二阶互补滤波的平滑效果虽然最好,但是收敛速度相对其他三种滤波方案要慢;曲线3——匹配滤波的滤波效果和一阶互补滤波的滤波效果差不多,收敛速度快,但是曲线的平滑效果不是很好;与之相比,曲线4——卡尔曼滤波的收敛速度和平滑效果平衡得较好,比较适中。
2.2 四种姿态解算的时间对比表2是四种滤波方案的滤波所执行的时间表,采用定时器中断的方法,测量四种算法执行所需要的时间,由于卡尔曼滤波算法相对其它三种滤波要复杂的多,所以其滤波所需的时间相对较长,而一阶互补滤波算法是最简单的,所需的时间最短。
表2 四种滤波解算执行时长滤波方案时间t(us)一阶互补滤波5二阶互补滤波10卡尔曼滤波25匹配滤波72.3 四种姿态解算在平衡车上应用本文利用四种姿态解算实现平衡车的动态直立稳定,观测四种姿态解算在平衡车动态直立时,突然受到外界干扰平衡车的动态效果。
通过这个实验测试发现一阶互补滤波和匹配滤波在受到外界干扰时,平衡车会在原地附近高频的前后抖动,经过一段时间后才能趋于稳定。
以此说明了一阶互补滤波和匹配滤波响应速度很快,但是由于存在角度超调的现象,使平衡车在突然受到外界干扰时会产生高频的来回抖动,不能快速的回到平衡位置。