嵌入式及物联网基础实验系统
2019-08-06
哈尔滨理工大学 黑龙江哈尔滨 150080
嵌入式系统是计算机、自动化和电子通信等众多学科发展交汇的产物,属于当前最热门、最有发展前途的IT应用领域,嵌入式技术开发人才成为炙手可热的紧缺人才,嵌入式人才市场需求大,但其门槛高、人才培养难度大已是不争的事实。为了满足社会对嵌入式人才的需求,嵌入式系统系列课程已经成为计算机、自动化、电气工程、测控技术、通信工程等多个相关专业的专业主干课程[1]。许多高校也先后设立了嵌入式专业方向,其教学大纲差别不大,学生一般在大一、大二进行通识课和相关专业基础课的学习,到大三才开始嵌入式方向专业课的学习[2],采用传统的8位51单片机或32位的ARM单片机进行实验教学,由于嵌入式系统设计的复杂性,教学效果不理想,毕业时往往只有极少数学生才能掌握其相关技术。
1 实验系统研制的背景和意义
学校2010年设立了嵌入式专业方向,该方向选课人数逐年下降,学生学习嵌入式技术的兴趣越来越小。如何激发学生的兴趣、解决嵌入式技术入门难的问题一直困扰着我们。
2015年进行了教学大纲修订,开始尝试将开源创客平台Arduino引入嵌入式教学,在大一开设嵌入式培训课程,在大一上学期学生学习C语言和C++语言后,开设嵌入式系统入门基础课程,大一的下学期开设嵌入式系统设计与实践课程。
基于Arduino的嵌入式及物联网基础实验系统即是配合课程改革而研制的。实验系统2015年年初立项,2016年实现量产,有力地支撑了课程的实验和实践教学。
2 实验系统的研制
2.1 实验系统的设计理念
嵌入式及物联网实验系统的设计理念,源于嵌入式系统硬件设计越来越趋向于模块化,即在核心板或最小系统的基础上,外扩包括各种传感器、人机交互、输入输出设备和通信等多种模块。另外,嵌入式系统作为物联网的感知层,其与物联网应用系统密不可分,同时也加剧了市场对嵌入式人才的需求。除此之外,实验系统支撑的另外两门课程—嵌入式技术基础和物联网工程导论课程,均为嵌入式方向专业基础课程,教学内容以讲授基础理论为主,并不涉及具体技术,故其实验重点应该放在与实际应用结合紧密的系统设计与实现上。选择Arduino板作为核心控制器,就是由于开源创客平台Arduino屏蔽了硬件的复杂性,具有平台资源丰富、成本低、支持的模块众多、开发简单、上手快等优势[3]。
2.2 实验系统的组成及功能
实验系统由嵌入式技术基础实验箱和配套的物联网实验盒两部分组成。其实物图如图1所示,实验系统组成的嵌入式实验室如图2所示。
图1 嵌入式及物联网基础实验系统
图2 嵌入式基础实验室
2.2.1 嵌入式技术基础实验箱
嵌入式技术基础实验箱以Arduino 2560单片机为核心,DC5V供电。包括传感器扩展板、控制主板、多种输入输出模块、面包板、音箱、遥控器、杜邦线、USB数据线、电源转换器等。主要硬件设计如下。
(1)传感器扩展板:将Arduino大部分引脚和电源扩展出来,方便与多种模块连接;另外还设计了SPI,I2C总线接口和数码管串行接口,以及ZigBee模块接口等专用插座,方便了物联网应用系统的设计。扩展板还设计了独立电源端子,增加电源驱动能力。
(2)控制主板:将电机驱动、指示灯、分立元件设计在一块PCB板上,用杜邦线与传感器扩展板连接。包括指示灯、光敏电阻、DHT11传感器、电位器、蜂鸣器、三色灯、红外接收头和蓝牙模块等。
(3)数码管和LCD液晶:采用并转串技术,将所需I/O接口降低到3个。
实验箱可开设的实验包括:第一,有线和无线通信模块实验:异步串口通信、日历时钟模块(I2C总线)、SD卡和RFID模块(SPI总线)、红外无线接收、蓝牙模块和ZigBee模块等实验。第二,人机交互接口模块实验:按键、蜂鸣器、遥控器、数码管显示和液晶显示等实验。第三,输入/输出接口实验:温湿度、光强度、超声波测距、直流电机、步进电机和舵机等实验。第四,物联网应用及综合实验:智能家居、倒车雷达、智能小车、门禁系统和医护管家等实验。
在此基础上,可将模块任意组合,或添加某些模块和电路,完成各种创意设计。软件设计均提供封装类库,屏蔽了硬件的复杂性。
2.2.2 物联网实验盒
物联网实验盒由Arduino单片机和无线通信扩展板组成。扩展板集成了ZigBee模块、GSM/GPRS模块和WiFi模块。
实验盒可以独立完成或与嵌入式技术基础实验箱组合完成多种物联网应用实验。目前已开发3种模块的AT命令调试、参数设置,Xbee和WiFi模块的通信实验,GSM/GPRS模块的通信,发短信实验以及物联网综合应用实验等8个实验。
采用图3所示的实验方案,可实现多个物联网应用系统。其中,物联网盒上的Zigbee模块设置为协调器,实验箱上的Zigbee模块设为路由器,可形成星型结构的无线传感器网络。协调器接收路由器上传数据,通过物联网盒上的WiFi模块或GPRS模块将数据上传云平台。云平台下传的命令或数据由协调器发送给路由器。智能终端或手机APP通过WiFi或4G网络与云平台通讯,可实现多领域的物联网应用,例如:智能家居、远程监控系统等。
图3 物联网应用结构图
3 实验系统解决的教学问题
目前嵌入式实验箱配套物联网实验盒,已开发了三十多个实验,支撑了4门课程的实验教学,多种类型的实验设计满足了实验教学的要求,通过阅读实验指导书,学生可独立完成实验的硬件设计和软件设计。嵌入式技术是实践性很强的技术,实验箱的研制使得课程教学方法的改革成为可能。例如,50学时的嵌入式技术基础课程,由教改前的“44学时(理论)+6学时(实验)”改革成“30学时(理论)+10学时(实验)+10学时(实践)”。4门课程实验实践学时见表1。
表1 4门课程实验实践学时分配表
实验包括硬件设计和软件设计两部分,首先进行硬件设计:在实验指导书的引导下,学生首先了解和掌握实验原理,分析或设计实验原理图,然后用杜邦线进行硬件连接,体验和实际应用与系统设计相近的高度模块化的硬件设计技术,完成硬件设计。之后进行软件设计:在Arduino IDE集成开发环境下,采用C,C++语言,按照编辑、编译、下载、运行、调试和结果分析等步骤完成软件设计。
实验内容的设计力求做到实用性、趣味性和多样性相结合,例如,三色灯颜色渐变功能模拟景观灯应用场景,蜂鸣器实验可按简谱播放歌曲,音箱可实现MP3播放器,按键、遥控、数码管、液晶等实验体现了常用的人机交互模块的使用方法。串口,SD卡和RFID卡读写(SPI总线),日历时钟(I2C总线),红外、蓝牙以及物联网盒中的ZigBee模块,GPRS模块,WiFi模块的实验,可以体验多种有线和无线通信模块在嵌入式系统和物联网中的应用。而输入输出设备实验包括温湿度、光强度、超声波测距、直流电机、步进电机和舵机等实验。
实验程序的设计不仅包含了各种函数库和接口的使用方法说明,也包含了嵌入式系统设计技术中的高级(难点)技术,即外中断和定时中断。
实验系统可促进学生嵌入式相关科学知识和技术的学习,树立科学意识,熟练掌握嵌入式系统设计流程和方法,在实践中不断积累经验,掌握实验操作技能。
4 实验系统的创新性和特色
(1)目前国内市场上未见到同类产品的出现,而网上销售的Arduino入门套件成本虽低,但功能有限,模块各自独立,用于个人学习尚可,并不适合实验教学。
(2)实验箱的电路主板的设计将多种小型元器件和驱动电路集成在主板上;传感器扩展板的设计使Arduino大部分引脚可直接用插孔式杜邦线连接;将多种模块和主板固定在实验箱的底板上,大大简化了硬件设计过程。硬件设计时,学生在理解了电路原理后,只要用插孔式杜邦线连接器件和模块即可,将由于初学者硬件连接和操作不当造成的硬件损坏降到最低,大大降低了硬件维护成本和工作量。
(3)并转串模块化设计,有效减少了引脚数,节省了Arduino板大量输入/输出接口资源。
(4)面包板的设计目的是提高实验系统的扩展性。
(5)实验盒一盒多用的创新性设计,在有限的面积内,集成了3种通信模块,采用短路套设计技术,仅通过一根USB线即可完成编程功能。同时替代了USBTTL转换器和XBee扩展板的使用。
(6)软件采用C,C++编程技术。Arduino是开源的创客平台,在系统内封装了大量的类库函数[4]。软件开发流程简单,使得编程上手容易,短时间内能完成多种应用系统设计,可激发嵌入式技术初学者的兴趣,感受设计乐趣,在玩中学,在做中学。
其特色体现在以下几个方面。
(1)性能稳定。近三年的实验和实践教学表明:嵌入式基础实验箱和物联网实验盒稳定可靠,硬件故障率很低。
(2)易于操作和安全性好。由于实验箱的高度集成化和模块化,硬件设计只需用插孔杜邦线连线即可,简单方便,一般情况下系统采用USB数据线5 V供电即可满足供电要求,安全可靠,当实验系统需要较大驱动电流时,也可外接电源。Arduino IDE开发环境从官方网站下载后,不用安装,直接运行,非常方便,对上位机要求很低。
(3)通用性强。Arduino的软硬件均是开源的,所有资源可免费从官网获得。它是极客和创业者的首选。也适合其他专业的嵌入式技术的教学和学习使用。
(4)实用性。实验系统有力地了支撑4门课程的实验和实践教学,已开发实验三十多个,包括验证性、研究性和综合性三大类,另外在技能训练、毕业设计实践教学环节、电子设计大赛和物联网大赛、创新创业项目中,实验系统都发挥了重要的作用。
(5) 实验系统成本很低且便于推广。实验系统很好地促进了学生实践和创新能力的培养。基于Arduino的实验系统解决了困扰教师多年的嵌入式技术门槛高,学生厌学、弃学的难题。
5 结语
由于Arduino实验系统的简单易用性,大大降低了学习的门槛和难度,使学生克服了学习嵌入式技术的畏难情绪,短时间内激发学习兴趣,并能切身体会到实际应用系统设计与实现后的乐趣和成就感。为今后进一步深入学习51或ARM系列单片机打下了良好的基础。
大一学生在完成C语言、C++语言、嵌入式入门基础和嵌入式系统设计与实践课程的学习之后,经过在实验箱上近60学时的实验和实践后,自信心和主动参与度有了很大的提高,利用Arduino板参加学院智能车比赛、黑龙江省物联网和全国大学生电子设计大赛等,多名学生获奖,学习Arduino之前这是不可能的,组队参加比赛的过程,同时培养了学生的团结、合作精神。
近三年的实验教学结果表明:嵌入式及物联网基础实验系统促进了学生嵌入式相关科学知识和技术的学习,在嵌入式人才培养教学过程中发挥了重要作用,并在第五届全国高等学校教师自制实验教学仪器设备创新大赛中荣获三等奖。