基于虚拟软件Proteus的综合项目驱动教学方法应用研究*
——以嵌入式系统为例的教学改革
2018-02-09周春艳潘俊涛
张 白,周春艳,潘俊涛
(北方民族大学 电气信息工程学院,宁夏 银川750021)
提高教学质量,改进教学方法是教学活动的永恒主题[1]。对于综合性与应用性强的工程性质课程,例如嵌入式系统相关课程如何突破传统的教学模式,提升学生学习兴趣,主动探索相关理论知识,锻炼实践动手能力,是相关任课教师不懈追求的目标。嵌入式系统课程是电子信息工程、测控技术与仪器、信息工程等专业重要的专业课程,具有较强的综合性与实践性,课程内容涉及嵌入式操作系统、单片机原理与应用、DSP原理与应用、传感器技术、微机原理与接口技术、计算机软件技术以及信号与系统等诸多课程[2]。在传统的教学方法中,理论教学通常采用课堂教学的模式,实践教学采用验证性实验教学的模式,嵌入式相关课程衔接不通畅,各门课程独立教学,缺乏统一规划,且存在部分课程内容重复等问题,造成在实际教学活动中,嵌入式系统相关课程普遍成为学生最难懂、更难学以致用的课程。因此如何通过教学方式的改进,提高学生的学习积极性与嵌入式系统相关课程教学效果,促进学生主动探索相关理论知识,提高灵活应用嵌入式相关知识开发各类嵌入式系统的能力,培养学生的创造性思维成为任课教师的研究重点。
笔者以北方民族大学学生的实际情况为基础,结合本校应用型人才培养方案,研究基于虚拟软件Proteus的综合项目驱动教学方法在嵌入式系统相关课程中的应用,突破传统教学方式存在的弊端,统筹规划嵌入式相关课程教学思路,设计相辅相成的综合性教学项目,将理论与实验相结合;以综合性项目为嵌入式系统相关课程的总体目标,不同课程实现不同的子项目;项目开发采用模块化设计;在理论教学中引入实验演示与分析;在实验教学中采用翻转课堂式教学;最终实现嵌入式系统相关课程的教学总体目标。
一、教学研究现状
随着中国制造2025战略规划的实施,特别是德国提出工业4.0的时代背景下,工业产品的智能化与信息化融合对嵌入式系统相关人才的需求迅速增加。为满足相关企业的人才需求,各大高校加大了对嵌入式系统相关课程的建设,积极调整相关专业的课程体系,以便培养适应社会需求的工程应用型人才。总的来说,嵌入式系统相关专业就业前景好,学生渴望从事嵌入式相关专业的工作。但随着繁杂的嵌入式系列教学内容的展开,放弃嵌入式的学生逐渐增加,究其原因主要是由于嵌入式系统涉及课程多,课程之间缺乏统一规划,教学方式单一,理论教学枯燥,实验教学以验证性实验居多等问题,客观上影响了学生的学习热情与教学效果。
1.相关课程教学缺乏统一规划
嵌入式系统相关课程多,涉及内容繁杂,相关课程之间衔接不通畅,缺乏统一规划。嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可剪裁的专用计算机系统。根据定义可知,嵌入式系统涉及硬件设计、操作系统定制、应用软件开发等三大部分内容,而每部分内容又涉及若干相关课程。因此在嵌入式系统课程教学规划中,务必统筹规划,嵌入式硬件课程为嵌入式操作系统做基础,嵌入式操作系统为嵌入式应用开发做准备,最终实现嵌入式系统整体教学目标。
2.理论教学枯燥
嵌入式系统任何一门相关课程都具有内容繁杂、涉及面广的特点。在理论教学过程中,教师常采用传统的填鸭式授课方式,首先系统性的对基本原理进行详细讲解,以问题为切入点引导学生思考,最后结合实例进行应用与总结。整个过程逻辑清晰,教师容易掌握,但学生被动接受,互动性差,参与度低。当前随着大学扩招以及智能手机等新技术的影响,学生主动学习的热情在降低,怎样将学生的注意力从智能手机等媒介吸引过来成为教师必须研究的课题之一。
3.实验教学孤立化
嵌入式系统是一门实践性很强的系统性课程,要求在掌握相关课程的基础上,方可实现嵌入式系统的软硬件设计。目前,嵌入式系统相关课程实验内容相对孤立,且实验以原理性验证为主,缺少创新性实验;课程内相关实验关联度低,相关课程之间实验缺乏连贯性;独立性实验设计相对容易,且大多依赖现成实验设备,这样造成了嵌入式系统的不同课程具有不同的实验设备,提供连贯性差的实验内容,造成学生综合运用相关知识的能力不足。因此合理规划嵌入式系统相关课程的实验内容,使得相关课程内容衔接连贯,实现学生综合应用知识能力的培养。
二、项目驱动教学法
项目驱动教学是以项目为载体,将课程的主要内容穿插其中,通过项目分析来阐述课程相关理论,通过项目的实施来锻炼学生应用理论知识的能力,力求达到理论教学与实践应用相统一、“教、学、做”一体化的培养工程应用人才的教学方法[3-6]。为改善嵌入式系统相关课程的教学效果,提升学生的学习兴趣与能力,本文对综合项目驱动教学方法在嵌入式系统相关课程中的应用进行了研究。通过教学改革实现相关课程之间的统筹规划,提供层次分明、结构合理、课程之间分工明确的项目开发任务书;将嵌入式系统教学项目分为硬件设计子项目、操作系统移植子项目、应用软件开发子项目三部分,不同的课程以不同的子项目进行项目驱动教学。项目采用模块化设计,在各门课程的教学过程中,逐一完成子项目的讲授,最终在嵌入式系统设计课程中实现完整项目的构建。
1.综合性项目设计
项目开发任务书是综合性项目设计的基础,学习嵌入式系统开发首先需要了解项目开发任务书的撰写与阅读。当前项目驱动教学过程中,常常以项目为引子,完成一个具有独立功能的小项目,很少涉及项目开发任务书的撰写与阅读。由于嵌入式系统覆盖内容广,涉及课程多,没有详细的、有针对性的项目开发任务书很难将各门课程相关内容连贯起来。因此根据嵌入式系统的典型应用,设计学生学习兴趣浓厚、覆盖知识面广、涵盖嵌入式系统所有教学重点的综合性教学项目,并编制项目开发任务书成为首要任务。
2.项目开发模块化
常规的项目驱动式教学常常是以分散独立的教学任务或实验内容为目标,设计相应的若干有应用价值的项目,以应用为目标,以理论结合实践为手段,以实践验证理论为教学过程的方式开展教学[7]。由于目的的不同,小型项目最简单的方式是过程式开发,从开始到结束一条主线,分析与讲授容易。而本文提出的嵌入式系统综合性实验项目涉及内容广,相关课程多,项目规模大,综合项目中的每一个子系统都可成为一个独立的教学项目,子系统之间通过接口进行关联,最终实现系统整体功能与目标,不采用模块化设计是无法完成若干子系统之间的关联的。笔者针对目前项目驱动教学法存在的问题,采用模块化开发的思路,从顶层到底层采用分层设计,每层内及各层之间采用模块化设计,不仅可以使学生掌握嵌入式相关课程,还可以锻炼学生模块化设计的能力,进一步提升学生的就业竞争力。
3.项目驱动理论教学
项目驱动教学法是在理论教学的过程中,教师引导学生共同进行一个完整的项目开发而进行的教学活动[7]。在理论教学过程中,依照构建主义的思想,以项目为基础,逐步拓展理论知识,把知识点融入到项目中进行讲授,结合理论教学的课堂任务,依次分解教学项目,分解过程中注意阐述清楚各任务之间的关系,不仅讲授课堂相关的内容,而且教授学生“从上到下”的项目设计方法。在具体教学过程中将项目驱动教学法与任务驱动教学法[8]有机结合,宏观上采用项目驱动教学法,引导学生以实现教学项目为目的而学习理论知识,而微观上则采用任务驱动教学法,将教学项目分解为若干独立任务,引导学生进行任务分析、任务方案设计、任务方案对比、任务方案实施以及任务效果评价,最终将项目的顶层设计与底层实现有效的结合起来。理论教学过程中,不仅教会学生课堂相关的理论知识,更重要的是培养应用理论知识的能力,构建学生独立解决问题的思维。
4.项目驱动实验教学
实验教学是巩固理论教学的手段,是完成理论知识消化到实践运用能力锻炼的关键一环。斯金纳提出“在教学中成功的设计问题,有利于激发学生积极主动去思考,有利于学生运用已有知识去获得新知识或解决新问题”[9]。问题设计的方式有多种,以章节内容提出的问题逻辑清晰,以项目开发方式提出的问题目的明确。在实验教学过程中,采用倒序方式安排教学,首先演示项目实现后的效果,引起学生的学习兴趣与求知欲望,再拆解实验内容,阐述实验原理与实现过程。为避免学生过分依赖实验指导书,实验教学注重设计开放性强的实验项目,提供基本实验范例,引导学生独立构建功能丰富的实验项目。在实验指导书中设计难度分层要求,并指出分层设计完成后,在嵌入式系统综合性项目中占的位置及最后可能的效果。以本实验在嵌入式系统综合项目中的最终效果引导学生努力构建个性化实验,力图使学生产生强烈的求知欲望,锻炼学生的实践动手能力[5]。
三、虚拟仿真软件Prot eus在嵌入式系统课程中的应用
Proteus是由英国Labcenter Electronics公司于1989年开发的EDA工具软件,其可实现硬件电路设计与仿真,可以实现可编程芯片的软件仿真,并可实现嵌入式系统软硬件的系统连调[10]。非常适合于嵌入式系统相关课程的教学,目前部分专业独立开设Proteus软件课程,但脱离嵌入式系统等具体应用课程而单独讲授Proteus软件效果有限。
嵌入式系统涉及课程众多,覆盖内容繁杂,完整的嵌入式系统设计涉及硬件电路、操作系统、应用软件综合设计,独立教学很难使学生建立软硬件综合设计的能力。以项目为驱动进行嵌入式系统相关课程教学时,无法演示项目运行过程及结果的教学是苍白无力的。很多时候我们会在教学过程中告诉学生,通过这样的过程,运行结果就出来了。教师往往认为已经讲解很透彻了,而学生怎么也想不明白这样的过程到底是怎么得出结果的,其根本原因是教师根据自己的知识体系,在潜意识里自动将该过程与结果联系起来,而学生还未建立起自己的知识体系,自然无法将过程与结果联系起来。理论性强的课程鲜有这样的情况,但应用性强的课程,这样的问题就比较突出。仿真教学是通常采用专业软件设计各种虚拟环境来模拟真实环境,并在虚拟的环境中对真实环境中实际操作情况进行操作、验证、设计、运行等的教学方式[11]。合理使用虚拟仿真软件,结合嵌入式系统设计课程的具体项目,可以使学生沉浸在虚拟的现实嵌入式系统环境中,感受到嵌入式系统的结构与运行过程,学生通过交互性操作可以直接控制、修改、操作、运行虚拟设备,最终知识在虚拟交互中得以掌握[12]。
1.硬件电路设计
硬件电路是实现嵌入式系统的基础,脱离硬件设计的嵌入式系统是无根之水。为在嵌入式系统教学中有效地应用Proteus软件,首先采用模块化设计原则规划综合性项目相应的硬件电路。同时为达到培养学生综合能力、丰富学生知识体系的目的,针对典型电路设计若干套可独立使用的模块电路,学生可以独立运行、分析以及套用各模块电路,不断积累典型硬件电路知识。为实现教学目的,将每一个综合性项目的硬件电路以处理器为核心,分别设计核心模块(包括晶振模块、电源模块、存储模块)、输入输出模块(包括键盘模块、传感器模块、LED显示模块以及LCD显示模块)以及辅助模块(包括滤波模块、通信模块以及特殊功能模块)。针对学生学习的特点,以易学为主要特点的51内核的片上系统构建相关模块以便学生学习,以应用广、功能强的STM32系列单片机构建相关模块以便学生开发自主嵌入式硬件电路。为达到锻炼学生的目的,每一个独立模块分别设计若干经典实现方案,例如传感器电路,分别设计以温度传感器DS18B20芯片为基础的信号采集模块,以湿度传感器HS1101为基础的信号采集模块,以热电偶及MAX6675芯片为基础的信号采集模块,让学生了解常用的信号采集模块。当前网络资源丰富,各式功能的电路遍布网络,教会学生分析电路与应用电路的能力更具实用价值。因此在模块电路之间接口统一定义,并提供不同接口之间的转换电路,通过搭积木式电路设计,最终构建完整的嵌入式系统电路。学生在学习过程中,根据项目要求构建符合接口定义的电路模块,并将笔者信息明确标注在模块信息中,这不仅可以丰富教学过程中相关电路模块库,更有助于提高学生的学习兴趣与参与程度。
2.软件系统设计
软件系统设计是嵌入式系统设计的灵魂,是实现嵌入式系统相关功能的关键。嵌入式系统软件设计是基于硬件平台而开展的,所以首先针对综合项目驱动教学设计的综合性项目规划的硬件电路设计软件系统,特别是不同的微处理器具有不同的开发方法。其次根据微处理器设计相应的嵌入式操作系统,对于本科教学而言,可以优先采用uC/OS系列嵌入式操作系统,对于研究生教学而言,可以优先采用嵌入式Linux系列嵌入式操作系统。由于嵌入式操作系统移植相对复杂,因此主要将操作系统移植的共性问题在Proteus软件中重点进行注解,方便学生进行学习。对于嵌入式应用软件,可以根据功能进行模块化开发,对于相同功能设计若干有代表性的模块,模块采用最小粒度函数设计,丰富学生的软件知识。
为实现教学目的,将每一个综合性项目的软件系统分为操作系统初始化模块、中断配置模块、键盘模块、A/D模块、数据处理模块、D/A模块、LED模块、LCD模块、通信模块以及特殊功能模块[13]。为达到锻炼学生的目的,每一个独立模块同样设计若干方案,以嵌入式系统中最基础的中断配置模块为例,分别设计串口通信中断处理模块、矩阵键盘中断处理模块。为实现标准化软件开发,锻炼学生团队式软件开发能力,软件模块之间定义标准接口。学生在学习过程中,根据项目要求构建符合接口定义的功能模块,并将笔者信息明确标注在模块信息中,同样可以丰富软件功能库,提高学生的学习兴趣与参与程度。
四、教学应用
当前利用仿真软件进行教学还处于探索阶段,不同的课程有不同的应用方法,没有形成广泛共识的系统理论。本文针对嵌入式系统相关课程的特点,研究以项目驱动为教学方法,以Proteus虚拟软件为教学平台的嵌入式系统教学方法。
1.理论教学
学习知识最好的途径是“亲身经历”,让学生到“真实环境”中去体验知识的应用过程与应用结果,通过理论分析与“真实反馈”获取知识与能力。本文研究的综合项目驱动教学法,采用虚拟仿真软件Proteus开发模块化的仿真实验平台,以该平台为媒介,将“可运行的实际嵌入式系统”引入到课堂,实现理论知识融入到虚拟软件平台,让枯燥的理论教学动起来,实现平面教学到立体教学的转变。嵌入式系统硬件设计、操作系统移植、应用软件的开发全过程都可以通过虚拟仿真软件Proteus实现教学,合理的综合性项目构建将有效提升理论教学的效果。教师在理论教学过程中,以综合项目为宏观目标,以教学实验子项目为微观目标,以虚拟仿真软件平台为媒介,以运行结果演示引起学生的兴趣,合理设置若干问题,引导学生思维,采用师生互动的方式构建教学项目的相关模块,激发学生的学习欲望与创新思维,提高理论教学效果。
2.实验教学
嵌入式系统实验教学的目的是让学生加深理论知识的理解,掌握知识的应用过程,培养学生综合应用相关知识的能力,最终达到锻炼学生的实践动手能力。本文研究的综合项目驱动教学采用Proteus虚拟软件进行模块化设计,实验平台完全开放给学生,学生根据本次实验的要求选择合适的功能模块,并根据自己的需要对各功能模块进行合适的剪裁与完善,个别有能力的学生甚至可以根据模块接口定义实现具有自主风格的模块。同时学生以往自己完成的实验性项目也可应用在当前实验中,实现学生自身知识与功能模块的积累。
结合翻转课堂的教学方式,实验前,教师将相关实验模块拷贝给学生,以便学生提前熟悉各功能模块,同时将学生以往建立的功能模块集成到本次实验中,并根据要求完成本次实验。实验教学课堂中,教师将学生存在疑问的模块进行讲解与调试,特别是将学生应用中存在的具体问题再次复现并进行解决,提高学生模块应用与集成开发能力。通过仿真实验教学,实验课将不再局限于现有硬件实验箱,实验内容开放性大,供学生自主设计的空间大,可以充分发挥学生的学习热情,提高学生综合应用知识与实践开发能力。
3.开放教学
学以致用是教学的永恒目标,没有使用价值的知识属于资源浪费。当前很多课程以应试为目的,考试结束后就没有使用的环境,使学生失去深入学习的动力。本文基于综合性项目的驱动教学采用Proteus虚拟软件进行设计,提供基础性开放模块供学生使用,同时可将学生每次实验设计的个性化模块积累下来,学生可以根据自己的需要在此平台上仿真设计自己的项目。互联网时代属于知识爆炸的时代,各种有用资源遍布网络空间,学生利用现成模块进行模块集成开发也成为必须具备的能力之一。综合项目驱动教学的仿真实验平台是一个开放的平台,随着师生在教学过程中逐渐积累完善,各类功能的模块库将不断丰富,学生可以根据自己的实际需求选择合适的功能模块,并可根据自身项目的实际要求对基本功能模块进行合适的二次开发,同时引入符合项目要求的现成模块进行集成开发,最终完成嵌入式系统的快速搭建。通过开放教学平台的实施,真正将嵌入式系统相关课程实现学以致用。
五、综合性项目案例设计
综合性嵌入式系统项目必须覆盖嵌入式系统各个部分,并来源于市场需求,符合科技创新热点,提高学生学习的兴趣与动力。智能物联网是当前热门的话题,是未来产业发展的方向,因此设计一个以智能物联网系统为背景的嵌入式系统项目必将吸引学生目光。以智慧农业的核心智能温室为对象设计嵌入式智能温室物联网系统,具有温度、湿度、光照、土壤墒情等信息的测量功能,具有信息显示及通信功能、声光报警功能、闭环控制功能、自组网功能等。单片机原理与应用课程相配套的教学项目为综合性嵌入式系统项目中的硬件系统设计子项目,该子项目分别以51内核单片机与STM32F系列单片机构建两套系统。硬件电路部分按照核心模块(包括处理器模块、电源模块、晶振模块、存储模块等)、输入输出模块(包括键盘模块、LED模块、LCD模块、)以及辅助模块(包括传感器模块、滤波模块、无线通信模块、报警模块、串口通信模块等)进行独立模块设计[13]。项目主要以教学为目的,所以部分功能可以采用仿真形式,完成项目的功能需求。以闭环控制功能为例,温度高于设定值时仅对某一IO引脚设置信号,通过该引脚仿真实现控制降温设备工作即可。嵌入式操作系统课程相配套的教学项目为综合性嵌入式系统项目中的操作系统移植子项目,该子项目分别实现uC/OS系列与嵌入式Linux系列操作系统的移植。嵌入式系统设计课程相配套的教学项目为综合性嵌入式系统项目中的应用软件子项目,该子系统按照键盘处理模块、LCD模块、LED模块、数据处理模块、A/D模块、D/A模块、无线通信模块、声光报警模块、自组网模块以及串口功能模块进行设计[13]。各应用软件模块采用最小粒度的函数进行功能设计,函数调用接口标准化,方便学生使用及创建新功能模块。
六、结束语
嵌入式系统涉及课程多、覆盖内容广、综合性强,如何突破传统的教学模式,使得学生真正系统化掌握嵌入式系统基础理论并具备一定的应用能力,是相关任课教师不断努力的方向。本文研究基于虚拟仿真软件的综合项目驱动教学方法在嵌入式系统课程中的应用,结合嵌入式系统的特点设计综合项目驱动教学方法,将项目驱动教学法与任务驱动教学法有机结合,最终将项目的顶层设计与底层实现有效的结合起来。为加强理论教学与实践教学的效果,结合虚拟软件Proteus进行教学,在实验教学中结合翻转课堂教学方式,避免学生将创造性实验变为验证性实验,最后提供一个嵌入式智能温室综合项目案例以供参考。希望本文提出的教学方法能够对嵌入式相关课程任课教师有所启示和帮助。
参考文献:
[1]随新玉.建立健全教学质量监控机制全面提高教学质量[J].中国高教研究,2008(1):90-92.
[2]郑广海,曲英伟.嵌入式系统课程群实践教学优化整合与知识融合的研究[J].软件工程师,2015(6):58-60.
[3]吕萍.基于项目的多课程协同教学理念和实践[J].高等工程教育研究,2012(4):171-175.
[4]李妍.项目化教学在嵌入式系统实践课程中的探索[J].实验室科学,2012(5):27-29.
[5]刘雍,马玉春,汪文彬等.项目驱动在嵌入式系统实验教学改革中的初探[J].中国科教创新导报,2014(13):23-24.
[6]李晓艳,向丽萍,徐建.基于项目驱动的嵌入式系统实验教学研究与设计[J].电子世界,2016(10):10-11.
[7]宋燕.基于项目驱动式的模拟电子技术教学模式研究[J].中国科技信息,2013(9):203-204.
[8]徐肇杰.任务驱动教学法与项目教学法之比较[J].教育与职业,2008(11):36-37.
[9]陆国栋,李飞,赵津婷等.探究性实验的思路、模式与路径——基于浙江大学的探索与实践[J].高等工程教育研究,2015,(3):86-93.
[10]乔建华,李临生,田启川.Proteus在单片机教学中的应用分析[J].电气电子教学学报,2008(6):70-73.
[11]邹祝英,彭文武等.仿真教学在工程教育中的应用分析[J].衡阳师范学院学报,2012(2):146-149.
[12]黎芳.单片机仿真教学模式的研究与实践[J].现代计算机,2013(10):49-52.
[13]张白,周春艳,潘俊涛.基于虚拟仿真软件的项目驱动教学方法研究[J].计算机教育,2016(4):129-132.