虚拟仪器交通灯
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1前言
1.1选题背景与意义
虚拟仪器(Virtual Instrumention)是基于计算机的仪器。计算机和仪器的密切结合是目前仪器发展的一个重要方向。粗略地说这种结合有两种方式,一种是将计算机装入仪器,其典型的例子就是所谓智能化的仪器。随着计算机功能的日益强大以及其体积的日趋缩小,这类仪器功能也越来越强大,目前已经出现含嵌入式系统的仪器。另一种方式是将仪器装入计算机。以通用的计算机硬件及操作系统为依托,实现各种仪器功能。
虚拟仪器的主要特点有:
1、尽可能采用了通用的硬件,各种仪器的差异主要是软件。
2、可充分发挥计算机的能力,有强大的数据处理功能,可以创造出功能更强的仪器。
3、用户可以根据自己的需要定义和制造各种仪器。
LabVIEW是一种程序开发环境,由NI公司研制开发的,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显著区别是:其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。 LabVIEW提供很多外观与传统仪器(如示波器、万用表)类似的控件,可用来方便地创建用户界面。用户界面在LabVIEW中被称为前面板。使用图标和连线,可以通过编程对前面板上的对象进行控制。这就是图形化源代码,又称G代码。LabVIEW的图形化源代码在某种程度上类似于流程图,因此又被称作程序框图代码。为了便于使用,LabVIEW还集成了大量的函数库以及子程序来帮助完成绝大多数的编程任务。在使用这些子函数的时候,可以忘掉传统编程语言中的令人头痛的指针操作、内存分配等编程问题。除此之外,LabVIEW还包含了针对应用的数据采集(DAQ)、GPIB、串口、数据分析、数据显示、数据存储以及Internet网络通信的函数库。
1.2 交通灯介绍
交通灯通常指由红、黄、绿三种颜色灯组成用来指挥交通的信号灯。绿灯亮时,准许车辆通行,黄灯亮时,已越过停止线的车辆可以继续通行;红灯亮时,禁止车辆通行。近年来,在快速城市化进程和经济发展的影响下,城市交通迅速增长,交通问题成为困扰许多大城市发展的通病,已成为日趋严峻的国际性问题。其中,十字路口则是造成交通堵塞的主要”瓶颈”。世界发达国家都在积极探索如何最大限度地发挥道路通行能力,尽量减少交通堵塞造成的各种损失。我们设计了基于labview的智能交通灯控制系
统,该系统可实现3种颜色灯的交替点亮,通过信息提示指挥车辆和行人安全通行,并能实时监测交通灯工作状态。该系统不仅编程简单、灵活、具有较高的可靠性,而且成本低、具有良好的经济效益。本次课程设计在掌握了LabVIEW基本构建知识及相关控件知识运用的基础上,完成对向前向右交通信号灯的设计。
2总体设计方案
2.1 实现的功能
本次设计要完成一个十字交通信号灯的设计,这个交通信号灯系统能为向北和向东两个方向行驶的车辆指示能否通行。这个交通路口每一个方向上的红绿黄灯按绿—黄—红的顺序循环,每个循环的时间为70s,其中通行(绿灯)的时间为30s,等待通行(黄灯)的时间为5s,禁止通行(红灯)的时间为35s。当停止键按下时,循环停止。
2.2 总体思路
此次设计可以用六盏灯来指示路口的红绿灯状况,它们分别是下文中的东红、东黄、东绿、北红、北黄、北绿。
信号灯按一定规律循环点亮,每盏红灯亮35秒,每盏黄灯亮5秒,每盏绿灯亮30秒。每个循环包括四个阶段。第一阶段:北黄和东红灯点亮,时间为5秒。第二阶段:北红和东绿灯点亮,时间为30秒。第三阶段:东黄和北红灯点亮,时间为5秒。第四阶段:北绿和东红灯点亮,时间为30秒。每个循环用时70秒。东、北两个方向分别放置一个时间显示器来显示离下一个信号到来的时间。
用计数器产生以秒为单位的计时信号,再将产生的时间信号进行分段,每到一个时间段时系统进行相应的动作。
该系统框图如下:
图2-1 总体流程图
3程序的设计
3.1 前面板的设计
前面板是VI的用户界面。创建VI时,通常应先设计前面板,然后在前面板上创建输入/输出任务。
本课程设计中前面板比较简单,只需要用六盏灯、两个时间显示器、一个停止按键即可。其中的六盏灯,红、黄、绿各两盏,在控件选板中选择指示灯,将它放在前面板合适的位置,单击鼠标右键,更改指示灯的属性,改变指示灯的大小,做出一个合适的指示灯,依同样的步骤可以做好另外五个,将六个灯均分为两组,每组都包含红黄绿三种颜色的灯,再用框将每组灯框起来,做成一个交通灯。在每组交通灯合适的位置放置一个数值显示控件作为交通灯的计时器。在前面板合适的位置放置一个开关按钮,控制循环的停止。这样交通灯系统的前面板就做好了。面板设计如图3-1所示。
图3-1 交通灯前面板示意图
3.2 定时信号的产生
毫秒计时器在LabVIEW中的一个计时单元,它的图标与用途如图3-2所示。在函数选板的【编程】→【定时】子选板中选择时间计数器选定该单元。毫秒计数器对时间信号计数,要产生一个一秒为单位的时间信号,所以还得用毫秒计数值除以1000,取商得到以秒为单位的时间信号。接线如图3-3所示:
图3-2 时间计数器图3-3 时间计数器接线图
3.3时间信号的分段
将得到的时间信号除以每个循环所用的时间70s,取余数。得到的余数x的范围为0<=x<70,当0<=x<5时,条件满足,执行第一个条件结构里面的程序,北黄和东红灯点亮。当5<=x<35时,条件满足,执行第二个条件结构里的程序,北红和东绿灯点亮。当35<=x<40时,条件满足,东黄和北红灯点亮。当40<=x<70时,x<40的条件不满足,执行条件结构里面为假的程序,北绿和东红灯点亮。时间分段的程序结构如图3-4所示。
图3-4 时间分段程序
这里用到了判定范围并强制转换控件,应用这个控件可以判定输入的数是否在上限和下限之间。它的图标和作用如图3-5所示。如果输出信号在范围之内,“?”接口将产生一个信号,此信号恰可以输入到条件结构作为分支选择器信号。