虚拟仪器 交通灯控制系统.docx

上传人:b****4 文档编号:3672126 上传时间:2022-11-24 格式:DOCX 页数:11 大小:292.13KB
下载 相关 举报
虚拟仪器 交通灯控制系统.docx_第1页
第1页 / 共11页
虚拟仪器 交通灯控制系统.docx_第2页
第2页 / 共11页
虚拟仪器 交通灯控制系统.docx_第3页
第3页 / 共11页
虚拟仪器 交通灯控制系统.docx_第4页
第4页 / 共11页
虚拟仪器 交通灯控制系统.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

虚拟仪器 交通灯控制系统.docx

《虚拟仪器 交通灯控制系统.docx》由会员分享,可在线阅读,更多相关《虚拟仪器 交通灯控制系统.docx(11页珍藏版)》请在冰豆网上搜索。

虚拟仪器 交通灯控制系统.docx

虚拟仪器交通灯控制系统

项目名称

交通灯控制系统

项目学时

6

指导教师

成绩

目的

1.了解交通灯的工作流程

2.熟悉实验平台nextboard

3.学习LabVIEW中的数据采集编程方式

4.学习模拟信号采集系统的完整组成

5.进一步熟悉LabVIEW,学习使用LabVIEW编写交通灯控制系统

任务要求

交通灯是城市交通中不可缺少的重要工具,是城市交通秩序的重要保障。

本系统是实现常见十字路交通灯功能。

通过编程,实现配置各种灯的时间,控制各个灯的状态等。

一个十字路口的交通灯一般分为两个方向,每个方向都具有红灯、绿灯和黄灯3种交通灯,两个方向的灯的状态是相关的,现给出如下设定:

1)东向红灯亮,南北绿灯亮,时长为9S。

2)东向红灯亮,南北黄灯亮,时长为3S。

3)东西绿灯亮,南北红灯亮,时长为9S。

4)东西黄灯亮,南北红灯亮,时长为3S。

设备材料

计算机、NIPCI-6221

数据采集卡、nextboard实验平台、nextwire_20(交通灯实验模块)

评语

 

指导教师签名

日期

 

交通灯控制系统项目报告

第1章概述

1.1项目描述

1.1.1系统功能描述

在城市道路的交叉路口通常设置有绿灯、黄灯和红灯3种状态的交通灯,它们的作用是:

当绿灯亮时,表示车辆可通行;当黄灯亮时,提醒正在交叉路口中行驶的车辆赶快离开;当红灯亮,车辆要在停车线后停驶。

交通灯涉及两个方向车流的控制,何时亮何种颜色的灯,时长多久,对这些都需要进行逻辑分析和运算。

目前最复杂的交通灯还带有左转和右转提示灯。

功能设定如下:

1.东向红灯亮,北向绿灯亮,时长为9s。

2.东向红灯亮,北向黄灯亮,时长为3s。

3.东向绿灯亮,北向红灯亮,时长为9s。

4.东向黄灯亮,北向红灯亮,时长为3s。

1.1.2实践环境

硬件设备:

计算机、NIPCI-6221数据采集卡、Nextboard实验平台、Nextwire_20(交通灯实验模块)。

交通灯原理图如图1-1所示。

图1-1原理图

软件:

LabVIEW(2011以上版本)、nextpad,采集卡驱动

 

第2章系统前面版设计

2.1布置前面板

在控件选板中选择新式-容器-选项卡控件,放置在前面板上。

在选项卡控件上右击,在显示项中去掉标签选项。

把“选项卡1”修改为“交通灯控制”、“选项卡2”修改为“通道设置”。

在选项卡控件上右击,选择“在后面添加选项卡”选项,并把该选项修改为“系统描述”。

在“系统描述”选项卡中,对系统进行简单的描述,界面如下

图2-1控件系统描述

“交通灯控制”选项卡中,放置该系统所需要的交通灯显示,在VI运行中,该选项卡界面是人机交互界面如图2-2所示。

图2-2控件交通灯控制

在“通道设置”选项卡中放置通道号,如下图所示

图2-3控件系统描述

2.2设计交通灯控件

1控件的属性控制

1)在前面板上打开控件选板,在布尔控件子选板里面找到指示灯,放置在前面板上。

在控件上用右键单击鼠标,在打开的快捷菜单中,把“显示项”里面“标签”选项的勾选去掉。

2)将鼠标移动到控件,出现拖曳工具,把它拖到合适的大小。

3)复制3个控件,可以选中该控件,然后键移动鼠标,也可以直接复制粘贴。

4)把3个控件从上到下排列整齐。

将发光颜色依次设置为红,黄,绿,熄灭颜与之不一样。

设置颜色属性的方法:

在控件上单击鼠标右键,在打开的快捷菜单选择“属性”选项,打开布尔控件的属性设置对话框,如图所示。

在右下方的“开“或者关的颜色框中单击鼠标左键,就会弹出颜色选择框口,可根据需要选择颜色,也可以选择颜色窗口右上角的”T”来达到透明效果。

设置好的三色交通灯

2将控件组合为簇

1)将组合为簇。

在前面板的控件选板中找到“数组,矩阵与簇”子选板,把簇放置在前面板上,拖到能容纳下交通布尔控件的位置上。

选中交通灯,拖到簇的框架里面。

2)调整簇为合适大小。

在簇的边框上用鼠标右键单击,从打开的快捷菜单中选择“自动调整大小”→“调整为匹配大小”,调整簇框架的大小如图1-8所示。

3)美化外观。

在前面板的菜单栏中,选择“查看“→工具选板“,单击颜色选板,将后色板的颜色都选择为透明,即颜色选板右上角的”T”。

使用该色彩,对簇的外框涂色,就可隐藏簇的外框。

4)编辑文本。

在标签簇“字的位置上双击鼠标左键,把簇的标签修改为“东西方向”,并对文字进行移动,修改大小,修改颜色等。

5)按照上述做法,再制作南北方向的交通灯。

将南北方向交通灯水平排列,从左到右依次是红,黄,绿。

6)簇元素排序。

在这样操作之后,每个簇中包含有3个布尔控件。

簇元素的逻辑顺序与其在簇内的位置无关。

用鼠标右键单击簇外框,从快捷菜单选择“重新排序簇中控件”,查看菜单栏下方所显示的数值。

需要将哪一个簇元素设置为当前的数值顺序,就用鼠标单机那个簇元素,将其设定为所指定的逻辑顺序。

完成后,单选√;若要取消设定,则单选×。

包含簇中元素的顺序,最好与外部硬件资源所对应的交通灯相一致,即东西方向顺序是红、黄、绿,南北方向顺序是绿、黄、红。

2.3表格(Table)

使用表格控件,来存放显示每个方向交通灯的逻辑序列及时长信息。

右击前面板空白处,控件选板-系统-列表、表格和树-系统表格,放置表格控件于前面板上。

修改其标签(Label)为‘逻辑序列’。

右击表格控件,显示项中勾选‘列首’。

图2-4表格(table)控件

在表格的列首中,填写每一列所代表的信号灯,如ER、EY等。

逻辑信息,‘1’表示真即灯亮,‘0’表示假即灯灭。

时长(s)表示每种状态所保持的时间。

故表格中一行表示某一个时刻6个LED灯的状态及时长。

表格中存放的数据类型为字符串型的二维数组,故其在程序框图中的接线端子的颜色为枚红色。

作为列首的提示信息,不会直接出现在接线端子所传递的数据中,若想在程序框图中引用表格列首的信息,需要使用属性节点来调用。

 

 

第3章系统控制实现

3.1用FOR循环实现倒计时显示

3.1.1何谓For循环

LabVIEW中的for循环和文本语言中的for循环功能一致的,for循环执行N次数,当i=N-1时,循环结束。

For循环需要有确定的循环执行次数。

故必须连接For循环的总数接线端N,或者将启用索引的数组连接至For循环边框。

选择路径:

程序框图-函数选板-结构-for循环。

For循环和while循环一样,也可使用条件接线端,右击for循环边框,选择‘条件接线端‘即可使用停止按钮控制for循环的运行。

3.1.2普通数值显示

在十字路口,除了交通灯之外,还有红绿灯时间倒计时的显示。

从2-6所示的表格控件中发现,当一个方向绿灯和黄灯时,另一个方向均为红灯。

红灯亮的时间是绿灯与黄灯时间之和。

因此,东西方向灯亮的顺序和时间为红灯12S、绿灯9S、黄灯3S,南北方向为绿灯9S、黄灯3S、红灯12S。

可以利用For循环实现。

图3-2所示程序框图的功能是先从12开始倒数,循环一次减1,减到1之后,再从9开始,以此类推。

将“等待”输入常量1000东西方向倒计时(如图3-2所示),相当于等待1S,如果循环12次,就实现了等待12S。

如果是南北方向,只需要把索引数组修改为9、3、12即可。

还可以在数值显示控件的后面加上修饰,并修改显示文本的大小、字体、颜色等。

东西南北方向的程序框图如图3-1,3-2所示。

图3-1东西方向倒计时

图3-2南北方向倒计时

3.2实现交通灯控制的逻辑功能

字符串不方便做数值运行,故需要将表格的字符型数组转换为数值类型的数组。

在LabVIEW中很多函数都可以做多种类型的运算,如加减乘除,可以针对标量也可以针对数组、簇、波形等数据。

同样的,数值类型的转换函数,既可以针对单个标量,也可以作用于整个数组。

函数

‘十进制数字符串至数值转换’可以完成字符串的转换。

选择路径:

程序框图-函数选板-字符串-字符串/数值转换-十进制数字符串至数值转换。

转换后得到的整形数组中,包含有两组信息,一组为交通灯的逻辑信息,一组为延时信息。

故需要将这两组信息分离。

使用函数

‘删除数组元素’。

选择路径:

程序框图-函数选板-数组-删除数组元素。

将二维数组连接至函数的‘N维数组‘连线端口,列的索引设定为6,含义为将数组中第7列数值删除(即时长信息删除)函数输出的两个数组,上侧为逻辑序列二维数组,下侧为时长信息一维数组。

时长信息给等待函数,控制每次循环执行的时长,即每个状态保持的时长。

按照交通灯控制逻辑序列编写的交通灯控制VI程序框图,如下所示

图3-4交通灯控制VI程序框图

3.3数字信号的输出

交通灯模块中使用的LED灯,可使用DO通道输出的TTL信号来控制其亮灭。

故本实验中需要了解数字信号输出DO的编程方式。

本实验系统中,使用的数字通道,产生高低电平,控制LED灯的亮灭,完成对交通灯的逻辑控制。

如下图所示,为LabVIEW中数据采集中关于数字信号的生成。

图3-5数字信号输出(D0)

数据采集的编程流程:

配置资源–时钟设定-开始采集-读/写操作-关闭资源。

本实验流程:

创建数字通道,数字通道写操作,暂停操作,清除资源,简单错误处理。

其中数字通道写操作的VI放置在for循环中。

找到DAQmx创建虚拟通道,放在程序框图上,用来输入每个交通灯的控制通道

图3-6I/O函数及其多态选择

3.4交通灯控制系统程序框图

在VI的交通灯控制逻辑基础上,增加DO过程,将DAQmx写入,放在循环框架上,将其他的节点都放在循环框上,因为只需创建一次虚拟通道,而进行多次数据写入操作。

当循环结束时,才进行停止、清除任务等操作。

在FOR循环上加移位寄存器,用来存放任务和错误簇信息。

把错误簇按名称接触捆绑,将错误簇中的布尔分量连接至for循环的条件接线端,当发生错误时,停止条件为真,就停止程序程序运行。

交通灯控制系统程序框图如下

图3-7交通灯控制系统程序框图

 

第4章调试测试

步骤:

1将nextwire_20模块安装在nextboard平台的模拟信号槽位2上,打开nextboard电源。

2根据模块放置的槽位,填写物理通道号

3运行调试VI,观察运行结果

4进行测试,记录数据

5截取图片如下

图4-1东向红灯亮,北向绿灯亮

图4-2nextboard实验板图

 

第5章总结

这次实验总结了学过的好多东西,不仅是对之前学过的知识点的总结,更是提升了我们对设计一个电路的总体把握。

就我个人而言,这次实验使我对这门课程有了新的认识,以前总是跟着老师,按着老师的要求设计一些小的控制系统。

而这次实验更多的考验是我自己对整体的把握,在这次实验里出现了好多小的问题,如果靠自己真的很难能完成。

实验里面的元器件也不容易找。

做实验之前一定要有清晰的思路,出现问题自己先思考,如果不行就积极寻求老师同学的帮助。

比如对于交通灯界面修饰的问题,虽然没太大太多的技巧而言,但是里面的小技巧是不容易琢磨的。

通过这次试验我能更好的了解了LabVIEW这个软件,这次实验虽然成功了,但是真的麻烦了同学和老师。

虽然做的过程让我很累,但交通灯顺序按预期出现的时候,很有成就感。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1