开源硬件引入物联网工程专业实践教学
2017-03-21张雷赵学健
张雷++赵学健
摘 要:针对物联网工程专业的实践教学实际情况,分析、探索开源硬件平台在物联网工程教学的不同层次的应用模式,利用开源硬件积木式、易扩展等特点继续扩大开源硬件的课程应用范围,使得最终建立具有学习一致性并可柔性扩展的实践教学模式。
关键词:开源硬件 Arduino Yun 实践教学
中图分类号:G642 文献标识码:A 文章编号:1674-098X(2017)01(a)-0158-02
1 物联网工程专业实践教学
我国物联网产业的蓬勃发展一方面带动了旺盛的物联网人才需求,另一方面也对物联网人才的素养提出了更高要求。因此各大高校在设置物联网工程专业的人才培养目标时,也极力贴合物联网产业的需求特点,强调以培养具备实践能力和创新能力的专业复合型人才为目标[1]。
为了实现物联网工程应用复合型人才培养的目标,物联网工程专业在教学体系中很重视实践教学,从专业课、课程设计到毕业设计等各个环节都强调以实践锻炼学生实践与创新的综合能力[2]。但是在以往的实际教学操作中,实践教学效果存在以下一些问题。
(1)学生的主体性不足。物联网工程专业要求学生掌握微机接口原理、传感器原理及应用、操作系统原理、计算机网络、无线传感器网络等大量专业课程内容。目前的专业课教学过程中,老师一般在完成既定理论知识教学任务后,辅以少量的演示性实验或验证性实验。每门课程使用不同的实验平台,学生需要浪费大量时间熟悉该课程的实验平台。而这往往是前期已经掌握的简单重复性工作,导致大多数学生只能是被动机械地完成学习任务,很难调动学生的学习主动性。
(2)连续性和完整性不足。目前最广泛应用的课程模式仍然是各个课程通常各自为政,很少重视课程之间的联系。每门课程各自为政,不同课程的实践教学之间缺少整体的连贯设计,难以体现教学实践难度的递进性,一般学生如果无法在短暂学时内主动消化吸收所学的大量知识,很容易失去学习兴趣。
(3)深度参与性不足。物联网工程专业特点要求学生掌握从底层硬件设计、中间层固件设计到应用层软件设计,才能完成一个相对完整的物联网系统设计。如果每次都需要从零开始搭建一套物联网系统,对学生而言工作量巨大,难以在有限的课程实践环节里真正地去参与设计和完成一个系统工作,更不用说在完整性基础上做进一步的创新实践。
总之,物联网技术作为新兴的边缘学科,涉及到通信、电子、计算机、自动控制等多个交叉学科。物联网工程专业的课程设置覆盖范围广,课程体系的教学任务重。如何在有限的教学时间内实现学生实践创新能力的提升,是目前实际教学操作中存在的主要问题之一。
文章以Arduino Yun为例,试图将开源硬件引入到物联网工程专业的实践教学,建立以学生为主体的一体化柔性教学实践框架,作为理论教学的有效补充,同时探索本科课程实践教学的改进方向。
2 开源硬件优势
开源硬件是指免费、公布详细的硬件设计信息的计算机和电子硬件。开源硬件提供了一种快速开发原型系统的方法,使得开发者可以将精力集中于创意与实现,节约学习成本,缩短开发周期。代表性的开源硬件项目比如最著名的开源单片机板Arduino[3]、开源ARM板BeagleBoard、开源手机Openmoko等。
开源硬件的出现体现了当今技术创新的新趋势,以Arduino为例,将开源硬件引入到物联网专业课程实践教学具有以下优势[4]。
(1)上手简单。Arduino的编程语言基于过程语言开发,编程环境简单友好,不需要太多的硬件或编程基础就可以进行快速开发,容易激发学生的学习兴趣。
(2)扩展容易。Arduino发展至今,已经积累了丰富的功能扩展模块,如电机驱动模块、Wifi通信模块等。并且模块对应的各种库函数也是开源的,比较容易实现对其进行集成、派生、重载等二次开发。
(3)深入探索。以Arduino为例,其硬件原理图、电路图、IDE软件及核心库文件都是开源的,在开源协议范围内可以任意修改原始设计及相应代码。为学有余力的学生进行创新实践留下充分的探索空间。
(4)活跃的互联网社区群支持。Arduino开源硬件拥有庞大的社区用户、大量的示例教程和创新项目。以Arduino Yun为例,Temboo云平台为Arduino Yun提供了数百个API可以直接用于应用开发[5]。此外,利用Arduino开发过程中可以与网上众多创客进行交互讨论,获得直接技术支持与创意反馈。
3 开源硬件在物联网工程专业实践教学的应用
由于开源硬件具備的种种优势,考虑将开源硬件引入物联网工程专业的实践教学体系。物联网工程专业的实践教学分为知识验证、基础实验、综合实验和创新设计这几个实践层次,如表1所示,始终将Arduino Yun融入贯穿于整个实践教学过程,形成大学4年实践教学环节不断线的培养过程,建立具备连贯性和一致性的实践教学模式。
3.1 课堂演示类
利用Arduino开源硬件形成课堂演示案例,可以使得课堂教学更具趣味性。Arduino开源硬件有大量的库函数可以供教师根据需要调用,快速完成演示程序,节省教师备课工作量。如在C编程语言课程教学中,基于Arduino平台完成以下案例示范。
(1)条件判断:读取键盘输入,switch指令判断执行相应的加减乘除计算,在监视终端显示相应具体结果。
(2)字符串操作:在Serial Monitor的编辑框里输入一个字符,如果字符与之前保存的字符不同则保存,最终使用Printf指令在监视终端打印输入的字符串。
(3)冒泡排序:在Serial Monitor的编辑框里输入一个数字,单击send向数组里保存一个数字,数组更新时Arduino通过串口向计算机返回一次排好序的数组。
3.2 基础实验类
学生进入专业课的教学后,利用易上手的Arduino开源硬件,引导学生逐步熟悉各项模块功能,尽快建立学生对于专业课程的兴趣。如微机原理与接口技术的教学中,教学实验要求学生基于Arduino平台完成以下课程实验。
(1)定时器/计数器:利用定时器在输出引脚上输出4ms的矩形波程序,要求占空比系数为1∶3,并控制一个LED的输出状态。
(2)定时中断/事件中断:用按键产生事件中断,实现LED输出状态反转一次。用单片机内部定时器中断方式计时,实现每5 sLED输出状态反转一次。
(3)UART串行通信:在Serial Monitor的编辑框里输入一个数字,单击send向数组里保存一个数字,数组更新时Arduino通过串口向计算机返回一次排好序的数组。
3.3 课程设计
课程设计是在短学期的一到两周时间内,要求学生在指定课题下完成一个相对完整的系统设计。在此基础上,采取加分的形式鼓励学生在原题目基础上进行创新扩展部分应用。在课程设计项目时,学生已经积累了Arduino开源硬件的使用经验,可轻松地利用开源平台进行设计,使得所完成的项目系统性更强,项目内容自身也更加生动有趣,学生在项目实践中获得的经验值更高。
以传感器原理及应用为例,其课程要求学生基于Arduino Yun设计霍尔传感器的一个应用系统。电机驱动一块磁铁在一条轨道上来回运动,轨道一端安装有接近开关(开关型霍尔传感器)。当磁铁经过接近开关时,可以从测量电路上测得脉冲信号。Arduino平台采集霍尔传感器输入,计算磁铁的运动速度与位移,并将结果发送至web端绘制速度与位移曲线图。同时,一旦出现速度异常,报警信号将被发送至邮箱/手机。
3.4 毕业设计
在完成了以上教学实践练习后,学生具备了初步系统设计和实现能力,可利用开源平台开展具有更加综合设计要求的毕业设计或科技竞赛。通过利用开源平台开展综合设计,有利于学生实践能力的进一步提高,有利于培养学生在短时间内进行爆发式创新的能力。
以毕业设计为例,要求学生根据应用需求的调研,基于Arduino开源平台迅速搭建一个原型系统,省去了大量底层重复性代码工作量,可以集中精力研究原型系统的创新设计、问题算法设计和系统性能分析。在限定的3个月时间内,可以实现更加完整的原型系统,使得学生的大部分时间可以分配在对全局问题的思考和系统级的创新中。
4 结语
通过上述环节的持续正向刺激学习,有效地激发学生主动、自主学习的积极性,在快速掌握课程知识的同时切实提高学生的创新能力。将开源硬件应用到物联网專业课程实践教学顺应了技术创新的趋势,通过逐渐引导学生进入完整的项目实践,在更连续持久的项目时间中培养其创新应用能力。
参考文献
[1] 安健,桂小林,杨麦顺,等.物联网工程专业实验教学初探[J].实验室研究与探索,2014,33(10):151-155.
[2] 马忠梅,孙娟,李奇,等.物联网工程专业课程体系与实践探讨[J].单片机与嵌入式系统应用,2011,11(10):1-4.
[3] 蔡睿妍.Arduino的原理及应用[J].电子设计工程,2012,20(16):155-157.
[4] 朱轶,曹清华,单田华,等.基于Android、树莓派、Arduino、机器人的创客技能教育探索与实践[J].实验技术与管理,2016,33(6):172-176.
[5] Marco Schwartz.Internet of things with Arduino Yun[J].Exupery,2014,10(7):538.