刘刚 田玉敏 万波 吴自力 王宗武
(西安电子科技大学计算机科学与技术学院 陕西省西安市 710071)
随着计算机和互联网在世界范围内的普及,教育研究呈现出广阔的新维度,信息技术和工程教育已经成为一个令人兴奋的新兴研究领域,其涉及多个学科,旨在解决随着技术进步而产生的教育挑战[1]。在高等教育中,实验环节越来越受到重视,而实验室设备也变得越来越复杂、越来越昂贵,对于每个大学来说,购买和维护这些设备带来巨大的经济投入。虚拟和远程实验室提供了一种新的解决方案,通过新技术的引入,建设具有传统实验室同等功能的新型实验室,实现有限的资源共享,提高实验效率,越来越受到重视。
远程实验室是真正的实验室,只是其实验设备接入到互联网中,实验者通过网络操作实验设备并完成实验、收集实验数据。虚拟实验室通常来源于计算和仿真软件,是一种基于Web、虚拟现实等技术构建的纯数字化系统,系统中提供的是真实实验设备和器材的数字拷贝。相比于远程实验室,虚拟实验室是完全基于软件的,具有更低成本,没有场地要求,而且仪器设备的更新更加灵活方便,是目前新型实验室技术发展的一个重要分支[2][3]。
我们提出一个基于开源软件设计的数字电路与逻辑设计虚拟实验系统,旨在为相关专业的学生、老师提供一个便捷的教学和实验环境。该系统能达成以下四个方面的功能:
(1)授课教师在课堂上利用虚拟实验室演示教学内容,丰富教学手段;
(2)学生利用虚拟实验室随时开展实验,帮助巩固基本理论,验证设计,亦可完成课程要求的实验内容;
(3)实验指导老师利用虚拟实验室布置实验任务,完成实验管理、成绩评定和效果评估;
(4)爱好者们利用全天候后开放的虚拟实验室实践自己的设计,或进行相关研究。
数字电路与逻辑设计实验的目的是帮助学生丰富和拓宽有关数字电路逻辑设计、数字集成电路及其工程应用方面的知识,培养学生进行小型数字系统设计和分析的能力。基本要求包括:能够正确使用示波器、万用表等常用仪器设备;掌握数字电路系统的设计、调试,故障分析与排除的一般方法和步骤。在此基础上,进一步培养学生关于复杂系统分析和设计的综合能力。结合虚拟实验室的四个功能要求,我们设计的虚拟实验室系统构成如图1所示。
图1:数字电路与逻辑设计虚拟实验室
虚拟实验室的主要基础设施是云计算平台。采用云计算技术的目的是利用其具备的大规模、高可靠、虚拟化、可扩展的优点。本设计中,我们依托校园网资源,基于开源的OpenStack[4]来搭建私有云,云平台包含存储、控制及计算节点各一个。
虚拟实验室的核心是实验模拟软件。首先,我们可以自己来开发“数字电路与逻辑设计”仿真软件。其次,也可以直接选用软件市场上的成熟软件。本项目中,我们走了一条中间路线,即基于开源软件进行二次开发。通过调研比较,我们选择了CircuitVerse[5]作为设计的基础。其次,为了丰富平台功能,本设计集成了开源的论坛软件StartBBS 和开源的轻量人脸检测模型[9],借以提供一个交流园地,以及在实验管理中实现对实验者的持续身份认证功能。
虚拟实验室的用户分为两类,一类是教学用户,一类是实验用户。实验用户具有两种权限,一是利用虚拟实验室资源开展实验,二是查看老师布置的实验任务,在线完成并提交;教学用户能够创建和管理实验班级、发布实验作业,以及对实验用户提交的作业进行评估。当然也能利用虚拟实验室的实验资源。
CircuitVerse 是一个基于Web 的开源软件,用于设计和仿真数字电路。该项目是来自印度IIIT-Bangalore 大学的一个学生项目,采用MIT[7]许可协议,这是一个比GNU[6]等更加宽松的软件授权条款。
CircuitVerse 提供了丰富的数字器件、仪器仪表和常用的调试工具,通过对器件等的简单拖放即可进行电路的设计和仿真。其功能覆盖了从简单的逻辑门到复杂的时序电路的仿真、时序图绘制、自动电路产生以及标准集成电路分析等。而且,支持层次化设计方法,使得用户可以存储和访问先前设计的电路,实现设计复用。图2是该仿真器的主界面,主要构成部分如下:
图2:CircuitVerse 模拟器主界面
(1)菜单栏和快捷工具栏:实现项目管理,如设计的存储、读取等。
(2)器件/仪器库:分类存放了实验所需的各种逻辑门、集成电路以及调试用的仪器仪表;
(3)实验环境参数设置:用于设置项目的名称,全局时钟属性等;
(4)实验台:设计空间,放置设计电路。
(5)示波器界面:信号显示,以及显示参数如尺寸调整按钮等。
CircuitVers 已经具备了设计一个虚拟实验室的主要要素:各种数字化器件、数字化仪器仪表,以及实验台等等,然而在实验组织和管理方面,仍然有一些不足。本项目首先在用户管理功能以及身份认证功能上进行增强。
CircuitVerse 的用户管理功能比较弱,而且所有用户具有相同权限。在本设计中,我们修改了这方面的功能,将用户分为两类,并在权限上予以区分。
(1)实验用户:注册的合法实验用户能够使用虚拟平台提供的资源进行实验,可以使用平台提供的存储资源保存和浏览自己的设计;能够加入合法的实验班级并完成和提交老师布置的实验任务;能够使用学习园地。这类用户包括图1中的学生用户和爱好者。
(2)教学用户:除了具备实验用户的权限外,能够创建实验班级,对加入班级的同学进行审核。能为每个班级布置实验,并在线批阅班级成员提交的作业。这类用户如图1中的教师和实验指导老师。
为了安全,目前该虚拟实验室暂时没有向非注册用户开放,也不支持普通的访客使用实验室的资源,下一步会考虑这种需求。
该功能的设计是为了满足考评环节需求。传统实验模式下,学生在确定的时间在实验室开展实验,并接受指导老师的验收,并在实验后提交实验报告。而实验指导老师根据验收情况和实验报告,给参与实验的同学评定成绩。当实验转移到虚拟实验室后,实验者在分散的时间,在网络空间开展并完成实验。那么,需要一种手段对完成实验的同学的身份进行验证。为了完成这一个功能,在软件中增加了基于人脸识别的持续身份认证功能。Web 前端会每隔一个随机时间启动终端摄像头拍照,并送后台进行识别。整个实验期间的若干次识别结果记录在该同学的实验日志中,作为学生诚信评估的依据。
本功能采用开源的人脸识别库进行开发,开源人脸识别项目非常多,典型的有Face Recognition[8],轻量级人脸检测模型[9]等。考虑到设备要求以及我们的应用场景比较简单,本设计选用轻量人脸检测模型作为开发基础,测试表明,该开源库能够满足我们的应用需求。
为了方便同学们交流心得,共享资料,我们在虚拟实验平台上集成了论坛功能。开源论坛系统非常多,如Discuz、Opensns 等,本项目基于轻量级开源社区系统StartBBS 进行开发。StartBBS 是一个基于PHP+MySQL 开发的新型社区系统,采用MVC 框架开发。具有易于二次开发、程序与模板文件分开,以及轻量等特点。前台用户界面采用的TwitterBootstrap 和Jquery,用户体验得到了验证,同时其设计上采用了流式响应式设计,无论是使用电脑还是平板电脑抑或手机,都能很好地适应屏幕,无需要再开发相应的模板。
在本设计中,将StartBBS 作为一个附加模块集成到虚拟实验室系统,通过仿真器主界面提供的超级链接可进入论坛。同时,论坛不提供单独的用户注册和登陆功能,只有通过虚拟实验室注册并登陆的用户才能使用论坛功能。
在本节,我们通过一个例子来介绍我们设计的“数字电路与逻辑设计虚拟实验室”的使用方法,读者也能通过该例子进一步了解其特点和功能。
首先,必须注册为教学用户,通过管理员审核后即可登陆。在登陆名后通过My Groups 即可创建、管理班级(图3)。对于已经创建的班级,点击View 按钮即可进入作业发布界面,如图4所示。
图3:班级管理
图4:实验任务发布
在图4中,输入实验要求,完成时间等信息后提交,即可完成实验任务发布。同时系统会向班级里的每个成员发送电子邮件通知。发布任务时输入的信息除了实验名称、实验的具体要求描述外,还包含下列信息(图4中没有展示):
(1)完成截止时间;
(2)能够使用的器件;
(3)评分方法:提供了A-E 五级评分和100 分制两种方法,评分方法一旦确定不能修改。
实验用户登陆系统后可加入班级,教师用户在创建班级时,也能通过邮件的方式邀请相关学生加入班级。实验任务发布后,班级成员会收到邮件,通过邮件提供的链接可以浏览发布的实验任务。在截至日期前登陆系统,可浏览老师发布的实验任务(如图5)。截至日期前的任何时候可通过点击“Start Working”按钮开始实验。一旦开始实验,则可启动如图2所示的虚拟实验室工作台,完成实验并保存。
图5:实验任务提示界面
图6给出了用户在虚拟实验室工作台完成实验并保存后,Start Working 页面的内容,可以预览自己的设计,还可通过按钮“Launch simulator”启动工作台进行修改。实验工作一旦保存,则班级指导老师登陆系统后即可看到。
图6:任务预览界面
指导老师登陆系统后,通过图3所示的班级管理界面的View按钮,可以浏览每个学生的实验情况,如图7所示。左边是已经开展实验的学生名字列表。通过该界面,也能够对每个学生的实验结果进行评价,并可通过系统提供的报表生成功能导出全体同学的成绩。
图7:实验成果评阅
本章通过从实验发布到开展,到最后评阅的整个流程叙述了我们设计的虚拟实验室的核心功能。由于篇幅的限制,许多辅助功能,如持续身份认证、交流论坛等没有展示。但虚拟实验室的框架已经完成,而且实验管理的流程也得到了验证。下一步,将会完成更多的软件的本地化工作,包括主要界面的汉化、仪器仪表库的补充等,我们团队将尽快推出改进版本,供其他高校实践。
虚拟实验室具有成本低、管理方便、资源利用率高、开放性、高可扩展等优点,是未来实验技术的重要发展趋势。数字电路与逻辑设计实验是课程的重要部分,能够帮助学生深入理解布尔代数、数字逻辑的本质;能够帮助学生巩固数字电路分析和设计的基本步骤和方法。有趣的实验不但能激发学生的学习兴趣,学生通过实验获得知识,培养批判性思维,提高自我管理技能。针对传统实验室存在的局限性,我们基于开源软件开发了一个数字电路与逻辑设计虚拟实验室,虚拟实验室提供了实验所需要的基本要素。该虚拟实验室在我们学校开展了试验,老师和同学们反映良好,也在设计支持、界面友好等方面提出了宝贵的意见,这将是下一步团队致力解决的问题。