LabvIEW课程设计虚拟仪器课程设计——智能交通灯控制系统模拟班级:学号:姓名:指导老师:施刚LabvIEW课程设计交通灯模拟设计说明书交通灯是由红、黄、绿三种颜色灯组成的用来指挥交通的信号灯。在我国交通法律上规定:绿灯亮时,准许车辆通行,黄灯亮时,已越过停止线的车辆可以继续通行;红灯亮时,禁止车辆通行。设计目的:设计这款交通灯模拟系统可以真实直观的反映出十字路口红绿灯亮灭情况,有利于驾驶员学习相关的交通规则,连接上相应的硬件设备还可以作为一款十字路口的交通灯控制系统。程序特点:这款交通灯模拟系统基于labview软件开发,界面全部自己设计,简洁明了。具有红绿交替变化功能、倒计时功能和灯光闪烁功能,并且配备有操作板可以人为设置各路口红绿灯的时间,现实中可以根据实际路况进行有目地的调整,使交通更加通畅。设计过程:1.首先用布尔圆形指示灯来创建交通灯,三个布尔圆形指示灯设置好开关时属性加上凸盒形成红黄绿指示灯,用一个while循环配合使用层叠顺序结构实现最简单的红绿黄灯交替变化,模拟出十字路口通行状态,但功能简单。2.通过实际路口的观察,确认需要添加倒计时模块。用七个布尔方形指示灯排列出LED灯,并加到簇中,通过数组的索引来控制簇里各控件来模拟LED灯,之后又加上一个算法成功实现交通灯倒计时功能。3.现实十字路口的黄灯是闪烁而不是常亮,为了能更好的模拟需要添加一个能够使黄灯闪烁的模块,这个模块通过层叠顺序结构实现控制灯的亮灭是最简单的方法,添加等待时间为半秒,一次亮灭为一秒,顺序执行三次即可实现灯的闪烁。LabvIEW课程设计4.在界面设计的时候画出斑马线,添加一个控制台,可以设定东西、南北红灯时间,还有交通管制控制按钮。5.最后设计了一个登录界面用来控制使用权限。在后面板上程序调用上开始时出现了没反应的情况,后来通过修改子vi节点设置才解决。6.为了使倒计时LED灯的颜色和指示灯颜色相同,使用了可见属性结点,运行时颜色不同的灯不可见,只有相同颜色的灯可见,使倒计时的颜色看起来好像一个LED灯变换了三种颜色。登录界面:本界面是自己设计的一个登录界面,是启动VI,输入管理员信息和密码,然后点击按钮“登录”即可进入主程序界面(注意“登录”按钮的机械动作要设为单击时转换)。管理员信息输入框为下拉框,设置了“1”,“2”,“3”,“4”,“5”,“6”六个管理员,密码分别为“1”,“2”,“3”,“4”,“5”,“6”。LabvIEW课程设计界面后面板:后面板采用条件结构实现,当管理员和密码信息错误,即假时弹出提示对话框。当管理员和密码信息正确,即真时调用子VI(这步中的子VI通过对子vi节点的设置才可以在运行中调用)。LabvIEW课程设计交通灯控制系统模拟界面(前面板1):这是程序的主体,结合实际的十字路口设计了红绿黄灯的交替亮灭,黄灯的闪烁,路口时间倒计时和控制面板。上图中展现的是东西方向允许通行,此时南北方向禁止通行时间为4s。当倒计时完毕后首先南北方向红灯变成绿灯,东西方向绿灯变为黄灯闪烁之后变成红灯,倒计时开始。在界面美化方面用的是labview自带的修饰功能自己绘图所以有一些地方不太完善。其中一个两位LED灯是由两个簇组成,道路和斑马线时修饰中的线条,使用工具选板改变其颜色,指示灯是布尔圆形指示灯,通过控件属性设置其颜色,黄灯每次闪三下,每闪一下是一秒,三下就是三秒,即黄灯每次闪烁三秒。右下角的控制面板由两个数值输入控件,一个确定按钮,一个下拉列表框组成。同样,这里的交通管制确定按钮也要将机械动作设为单击时转换。LabvIEW课程设计后面板1:后面板用了一个条件结构和一个while循环配合使用层叠顺序结构实现各组红绿灯的间歇亮灭。上图为东西南北初始化程序,在条件结构中,当交通管制确定按钮为假时,执行正常红绿灯指示程序。在层叠顺序结构里,可以通过设置东西方向的红灯点亮时间来控制南北通行时间,简单的模拟控制十字路口的交通。当交通管制确定按钮为真时,实行交通管制,有五种模式,分别是三向禁行、东西禁行、南北禁行、夜晚模式和维修模式。这里是用条件结构实现,在原有的真假分支上改掉真假分支并在后面添加新分支。LabvIEW课程设计前面板2:这个面板是交通管制中的三向禁行模式,每个方向都禁止车辆通行,即四个方向都是红灯。后面板2:后面板中将所有的LED倒计时灯都设为不可见,东西南北红灯连接布尔常量“T”,其他连接布尔常量“F”。LabvIEW课程设计前面板3:这个面板是交通管制中的东西禁行模式,东西方向禁止车辆通行,即东西方向红灯,南北方向绿灯。后面板3:后面板中将所有的LED倒计时灯都设为不可见,东西红灯和南北绿灯连接布尔常量“T”,其他连接布尔常量“F”。LabvIEW课程设计模拟LED灯子VI:这个子VI用于LED灯倒计时,将子VI模式设为一输入对两输出,在主程序中就可以调用这个子VI。LED灯后面板:该子vi的应用数组常量索引的方式得到相应数组,再将数组转换成簇用来控制簇里指示灯的亮灭来显示不同的数码。这里每个簇里的指示灯都需要按一定的顺序组合,然后按照数组常量里的布尔常量位置通过不同的索引值来确定不同灯的亮灭显示不同数字。只需要在数值控件中输入一个0--99的数字通过除以10来确定出个位十位后分别在两个簇里显示出来。LabvIEW课程设计倒计时模块:上图是一个完整的倒计时模块,通过将模拟LED灯放入一个for循环来构成。调用LED灯子VI时,LED灯子VI中已设定每执行显示一次的时间为1000ms,确定了时间以一秒的间隔递减。闪烁部分后面板:该部分主要布尔常量来控制黄灯亮灭,结合层叠顺序结构,以至于产生闪烁的效果,每次黄灯会闪三下,总计三秒的时间。LabvIEW课程设计可见属性结点:利用可见属性结点,可将LED倒计时灯在不需要的时候隐藏掉。设计心得:通过本次自己亲自设计并独立完成交通灯模拟系统,我学到了很多。1.做一件事情的时候要对它进行了解,我在设计期间观察了校门口的十字路口红绿黄灯的交替变化,根据实际情况进行的简单模拟,控制面板功能是按老师要求添加。2.加强了自己发现问题解决问题的能力,开始的时候认为比较简单,但真正开始后在各部分设计上才发现很多预期之外的问题,通过上网查阅资料,经过不断尝试后才得以解决。3.锻炼了自己的耐心,以后做事情要细心,遇到困难后不灰心,这样才可以真正实现自我。4.养成随时备份的好习惯,有时修改的程序往往会发生错误甚至还没有原来的好,这时若是没有备份,再改回去往往会令人抓狂。