虚拟仪器设计基础LabVIEW期末设计作业题目:学院(系):专业班级:组员:指导教师:目录一、虚拟仪器简介...................................1二、LabVIEW简介....................................2三、赛车游戏说明....................................3四、涉及知识归纳....................................4五、程序功能分析....................................6六、实验课程心得..................................121一、虚拟仪器简介测量仪器发展至今,大体经历了四代历程,即模拟仪器、分立元件式仪器、数字化仪器和智能仪器。美国国家仪器公司在20世纪80年代最早提出虚拟仪器(VirtualInstrument)的概念,同时推出了用于虚拟仪器开发的工程软件包LabVIEW。在这里,计算机是虚拟仪器的核心设备,该仪器的功能是通过软件仿真实现的。它将传统仪器由硬件电路实现的数据分析处理与显示功能,改由功能强大的计算机来执行。虚拟仪器(VirtualInstrument)是基于计算机的仪器。在计算机和仪器的密切结合是目前仪器发展的一个重要方向。粗略地说这种结合有两种方式,一种是将计算机装入仪器,其典型的例子就是所谓智能化的仪器。随着计算机功能的日益强大以及其体积的日趋缩小,这类仪器的功能也越来越强大,目前已经出现含嵌入式系统的仪器。另一种方式是将仪器装入计算机。以通用的计算机硬件及操作系统为依托,实现各种仪器功能。虚拟仪器主要是指这种方式。虚拟仪器是基于通用计算机的测试、测量和控制系统,由于能充分利用计算机的软硬件资源,因此虚拟仪器具有功能强大、结构灵活和性价比高等特点,可在很大范围内替代传统仪器。虚拟仪器通常具有一个或多个友好的虚拟面板(人机界面),用户可通过虚拟面板很方便地进行操作。用户可对虚拟仪器的功能和用途进行定义、组合和扩展,从而更快、更省和更方便的解决测试、测量和自动化的应用问题。2二、LabVIEW简介LabVIEW(LaboratoryVirtualinstrumentEngineering)是一种图形化的编程语言,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。利用它可以方便地建立自己的虚拟仪器,其图形化的界面使得编程及使用过程都生动有趣。图形化的程序语言,又称为“G”语言。使用这种语言编程时,基本上不写程序代码,取而代之的是流程图或流程图。它尽可能利用了技术人员、科学家、工程师所熟悉的术语、图标和概念,因此,LabVIEW是一个面向最终用户的工具。它可以增强你构建自己的科学和工程系统的能力,提供了实现仪器编程和数据采集系统的便捷途径。使用它进行原理研究、设计、测试并实现仪器系统时,可以大大提高工作效率。3三、赛车游戏说明赛车游戏是当下流行的竞技游戏,在LabVIEW软件应用中,可以很好的实现赛车游戏。赛车游戏分为赛道和赛车两个部分,赛道和赛车都可以通过布尔值的改变来改变自身,具体游戏设计如下:赛车游戏就是通过布尔值的改变控制赛道的场景变化,但赛道无论怎样变化都必须保证有足够的宽度,可以保证赛车顺利通过赛道;通过设定程序,利用电脑键盘的方向键控制赛车方向的改变,使赛车能顺利通过赛道而不撞上障碍物;一旦赛车撞到障碍物时,游戏即结束,游戏将弹出“游戏结束”窗口,进行下一次游戏;通过逻辑值的变化,设定赛车游戏的不同关卡,不同关卡中,赛道场景变化的速度不同,即关卡越高,变化速度越快。赛车游戏是为了考验游戏者的反应能力,也是锻炼游戏者协调能力和应对能力的游戏。4四、涉及知识归纳LabVIEW软件是一款功能强大而又灵活的仪器和分析应用软件开发程序,是一种基于图形化的、用图标来代替文本行创建应用程序的计算机编程语言。赛车游戏是一款基于LabVIEW软件开发的游戏,通过分析,可以看出在本游戏程序框图中主要运用了布尔数据、索引数组和选择结构等知识。如下:1、LabVIEW的数据类型之布尔型布尔值至(0,1)转换(函数)所属选板:布尔函数安装:基础软件包将布尔值FALSE或TRUE分别转换为十六位整数0或1。布尔可以是标量数值、由布尔值组成的数组、簇或以布尔簇为元素的数组等。如布尔的值为FALSE,则值为0,如布尔的值为TRUE,则值为1。2、LabVIEW的数组型数据索引数组(函数)所属选板:数组函数返回n维数组在索引位置的元素或子数组。连接数组到该函数时,函数自动调整大小以在n维数组中显示各个维度的索引输入。也可通过调整函数大小,添加元素或子数组。连线板可显示该多态函数的默认数据类型。53、LabVIEW的选择结构包括一个或多个子程序框图,或分支,结构执行时,仅有一个子程序框图或分支在执行。连接至选择器接线端的值可以是布尔、字符串、整数,或枚举类型,用于确定要执行的分支。右键单击结构边框,可添加或删除分支。可使用标签工具来输入条件选择器标签的值,并配置每个分支处理的值。4、LabVIEW定时结构-等待下一个整数倍毫秒所属选板:定时和子VI安装:基础软件包等待直至毫秒计时器的值为毫秒倍数中指定值的整数倍。该函数用于同步各操作。可在循环中调用该函数,控制循环执行的速率。但是,第一个循环周期可能很短。将0连接到毫秒倍数输入,可迫使当前线程放弃对CPU的控制。该函数作出异步系统调用,但是函数节点却是同步操作的。所以,直到指定时间结束,函数才停止执行。6五、程序功能分析(1)初始化数组设定赛道:将赛道背景设成为19行12列数组,并为数组赋初值F,将19行数组设为T,如下图:设定赛车的初始位置:利用FOR循环语句,将赛车的初始位置数据自动索引,如图所示,即将14行5列、15行5列等数组自动索引,将索引的数组自动替换原来位置的数组,并将其他未替换的位置设为F。如图:7替换数组子集,用0,1,2,9,10,11行替换原数组,将游戏背景图中的这些列的显示亮。替换数组子集,将14行5列、15行5列、16行5列、15行4列、16行4列15行6列、16行6列数组设置为亮,显示赛车的初始位置初始化键盘:初始化键盘,当键盘输入与设定值一致时,则正确输出,即输入方向选择键时继续执行程序。若没有正确输入,即按下其他按钮,则不执行按键内容。8(2)关卡设定在本游戏程序中共有十关,即0-9关。利用移位寄存器和毫秒计数器以及加减逻辑运算选择关卡。关卡设计原则是改变赛道背景的变化速度,关卡级数越高,变化速度越快,但都可以使赛车正常通过,考验游戏者的反应能力和动手协调能力。游戏关卡设计的程序框图如下:移位寄存器:移位寄存器可用于将上一次循环的值传递至下一次循环。如下图所示,移位寄存器以一对接线端的形式出现,分别位于循环两侧的边框上,位置相对。在本游戏中,当输入关卡9时,直接执行下一步程序;当输入的是0-8时,通过逻辑运算,当计算结果的余数为一时,移位寄存器开始工作,执行加一操作,直到余数为零时,执行下一步程序,如下图:9(3)方向控制:利用循环语句嵌套方向控制,通过索引行和列数据控制方向上下和左右移动索引行数据时,当方向按键为向下时,背景数组将加一即背景向上移动一行,成为新数组替换原数组,执行程序并将结果输出当方向按键为向上时,背景数组将减一即背景向下移动一行,成为新数组替换原数组,执行程序并将结果输出索引列数据时,当方向按键为向左时,背景数组将减一即背景向左移动一列,成为新数组替换原数组,执行程序并将结果输出10当方向按键为向右时,背景数组将加一即背景向右移动一列,成为新数组替换原数组,执行程序并将结果输出(4)赛道变化:当算法余数为零时,需要做如下工作,生成并插入新的“0”行:删除旧的“18”行:判断背景循环列的赛道,程序随机产生一个数,乘3取整,则执行下面程序,使赛道至少可以使赛车顺利通过。11最终实现赛道的随机变化更替功能:(5)程序运行结果展示:12六、学习心得:在这几周的实践学习中,我们通过认真的绘制研究程序,收获了不少软件使用心得。LabVIEW是一种图形化的编程语言,利用它可以方便地建立自己的虚拟仪器,其图形化的界面使得编程及使用过程都生动有趣。Labview软件是一个功能强大而且很复杂的软件,在这几周的学习中,我们了解了很多关于软件的相关知识,发现软件功能之强大,远非我们所想。在学习中,我们深深的被软件所吸引,希望可以通过自己的努力,学习更多相关的知识。在本次的任务中,我们通过解读绘制赛车程序,真正具体的学习了这个软件,知道了条件结构、事件结构和WHILE循环、移位寄存器等等。通过努力,我们详细学会了数组运用,自动索引数据,FOR循环等知识,为我们今后的学习打好了基础。然而,我们都知道这些对于软件的学习是远远不够的,现在我们只是浅显探寻了labview的知识海洋,并没有真正的深入学习,还不能完全读懂较为复杂的程序,没有熟练掌握软件的应用,在接下来的时间中我们应该投入更多的精力学好它。在本次学习中,我们采用分组方式,我真正体会到了团队合作的力量,通过和我同伴的合作,我们共同解决了很多问题;因为基础较薄弱,很多知识匮乏,我们还向任课老师寻求了帮助,真心的感谢老师耐心的解答。与此同时,我们也认识到了自己的不足,自己在知识学习上有欠缺,在今后的学习生活中,我们会不断提高自己。小课程,大收获。