胡丽芳 胡自凯
摘要:由于时间和空间的限制,传统实验往往不能满足全部学生的需求,为此,设计出了一套基于VRML技术的计算机组成原理虚拟实验系统,学生只要通过网络就可以随时随地做实验,有效弥补了传统实验的不足。
关键词:VRML技术; 虚拟实验;计算机组成原理
中图分类号:TP301 文献标识码:A 文章编号:1009-3044(2014)06-1220-03
The Design of Virtual Experiment System of Computer Organization and Architecture Based on VRML
HU Li-fang1, HU Zi-kai2
(1.Jiaozuo Teachers College of Computer and Information Engineering College, Jiaozuo 454000,China; 2 Puyang City Zi Elementary, Puyang 457000,China)
Abstract: Due to the limitation of time and space, the traditional experiment cant meet all the needs of the students, therefore, designed a set of virtual experiment system of computer organization and architecture based on VRML technology, students can do the experiment anywhere, effectively overcomes the shortcoming of the traditional experiment.
Key words: VRML technology; virtual experiment; computer organization and architecture experiments
在高职院校中,实验教学占有非常重要的地位,是提高学生创新素质、动手能力的一个重要手段。目前,由于各种原因,许多学校的实验设备和手段还不能完全满足要求。与此同时,近年来计算机网络技术、多媒体技术及虚拟现实技术的迅速发展,为虚拟实验系统的构建提供了有效的支撑。
《计算机组成原理》是计算机专业重要的基础课程之一,做实验又是该课程的一个重要部分,学生通过实验可以深入了解计算机是如何进行算术计算、怎样存储信息并且能更好的掌握计算机的硬件组成[1]。目前,国内部分院校已开发出了计算机组成原理课程的网络课程,但这些网络课程大多数为静态的网页展示或动画演示,并未开发出具有3D虚拟场景,交互性较好的计算机组成原理虚拟实验系统[2]。因此,具有三维交互性的计算机组成原理虚拟实验系统的设计就显得非常重要。
1 虚拟实验系统的分析与设计
VRML(Virtual Reality Modeling Language,虚拟现实建模语言)是一种三维场景描述性语言,利用它能在网页上创建具有导航及超链接功能的三维虚拟空间。VRML的工作原理可以简单描述成:文本描述、远程传输及本地计算生成。VRML并不是使用三维坐标点描述物体的,而是使用了一种类似于HTML的标记文本语言来描述三维场景,因此使用它编写的文件所占的空间非常小,对网络带宽的要求不高[3]。利用VRML技术构建虚拟实验系统,能为学生提供一个逼真的实验环境,具有超强的现实感,可充分激发学生的学习兴趣。
该系统主要模拟仿真清华大学科教仪器厂生产的TEC—4计算机组成原理实验仪。使用VRML技术构建三维虚拟实验环境,并通过ASP技术及B/S(Browser/Server 浏览器/服务器)三层结构的设置,构建网页结构,发布到网络上供学生使用。系统体系结构如图1所示。
图1 系统体系结构
2 虚拟实验系统的实现
2.1实验环境的构建
实验环境的构建主要包括两个方面:
1)静态环境:主要指实验室场景的构建。首先使用Vrmlpad建模工具对一些简单的形体(如实验台、地板、墙壁等)进行建模,再利用专业三维建模软件3DSMax对导线、芯片、面包板等一些结构复杂的实验器材进行建模。由于3DSMax对物体描述的精度比较高,因此使用它建造的一些形体转到Vrmlpad后生成的文件中会存在大量多余代码,所以必须进行优化处理[4]。建模过程如图2所示:
图2 建模过程
2)动态环境:主要是指器材的功能显示。即模仿真实实验的操作效果,例如用鼠标单击开关按钮后产生的按下和弹起的动态过程、点击导线之后出现的自动连线效果等。
2.2 交互控制的设计
该部分的设计是实现系统功能的关键。本虚拟实验系统不仅根据实验要求提供了面包板、连线等实验器材,并且还提供了一个操作标记,指导实验者完成操作。学生通过鼠标将指令直接传送给虚拟空间,空间接到用户请求,将消息传递给相应的脚本程序,脚本程序经过一系列的计算,然后以相应的虚拟现实效果反馈给学生。
该部分功能的实现主要依靠各种接触传感器节点(TouchSensor)、VRMLScript编写的脚本程序以及ROUTE语句[3]。首先在系统中定义一系列的TouchSensor分布在每个需要进行交互操作的虚拟物体上,当实验进行到一定步骤时,将下步的传感器激活,同时把其他步骤上需要的传感器全置为无效,这样即可实现让实验者根据实验内容的要求按步进行操作。在这个过程中,使用设置好的Script(脚本)节点来控制这些触发事件的实现,这些脚本可以将用户的操作进行转化,控制相应的对象,进而实现虚拟交互功能。交互式虚拟实验事件驱动体系的流程图如图3所示[5]
图3 事件交互体系流程
下面以实现连线为例:
实验者按照实验要求,点击相应的面包板上的插座,这时系统将会出现自动连线。为了模拟这个过程,建模时事先使用Extrusion节点在相应位置建成实验所需的全部连线,但是开始时用Switch节点将它们隐藏起来。随着实验过程的进展,当学生用鼠标单击指定位置时,在脚本程序的控制下,相应位置就会显示连线。图4为连线完成后的效果:
图4 连线完成效果图
以下是实现该功能的部分程序代码:
1)初始建模时隐藏导线的设置(以第一根导线为例)
DEF line_M2_VCC1_switch Switch {
#定义了插座M2和VCC1之间的连线
whichChoice -1 #表示初始时处于隐藏状态
choice [
DEF line_M2_VCC1 Transform {
children[
Transform {
…… #省略了导线线身和插头的定义
2) 控制导线显示的脚本程序
DEF change_line0 Script {
eventIn SFBool input
eventOut SFInt32 output
function input (value,time)
{
if (value==1)
output=0;
}"}
……
3) 路由表设置如下
ROUTE touch_vcc1.isActive TO change_line0.input
ROUTE change_line0.output TO line_M2_VCC1_switch.set_whichChoice
上述代码表示当插座VCC1上的触发器被激活时,将发送一个消息给控制导线显示脚本,脚本接到消息并经过处理后,再发送命令给Switch节点,这样就可以达到显示导线的目的了。
3 实验系统网上发布
结合其它网络技术,对构建完成的三维虚拟实验室场景进行整合[6],如图5所示。之后把该虚拟实验系统传送到Web服务器上,学生只需要登录就可以随时随地进行远程实验。
图5 实验场景
4 结束语
该实验系统的设计突破了传统实验方式的时空限制,使实验教学在时间和空间上得到有效的延伸。虚拟实验作为传统实验的一个有益的补充,既能节约大量的实验设备经费,也有助于提高实验教学的效果。
参考文献:
[1] 王爱英.计算机组成与结构[M].3版.北京:清华大学出版社,2000.
[2] 黄幕雄.高校教学型虚拟实验室建设的现状与建议[J].电化教育研究,2005(09):77-80.
[3] 胡小强.虚拟现实技术[M].北京:北京邮电大学出版社,2005:192-288.
[4] 张云苑.虚拟现实技术中3DS MAX建模的应用[J].电脑知识与技术,2006:189-190.
[5] 李斯萌,杨雪.虚拟实验系统的自适应调节机制研究[J].吉林大学学报:信息科学版,2012,30(4):403-408.
[6] 宋淑彩,周丽莉,赵巍.基于网络的计算机组成原理虚拟实验的设计与开发[J].微计算机信息,2006,22(5-3):286-288.