徐 峰,王天庆,陈炳吉,白天为,王亚文(吉林大学通信工程学院,吉林 长春130012)
基于Arduino的单片机实验MOOC平台设计*
徐峰,王天庆,陈炳吉,白天为,王亚文
(吉林大学通信工程学院,吉林 长春130012)
为解决低年级本科生参加电子设计竞赛需要学习单片机相关知识的难题,作者设计了一个基于Arduino的开放式在线单片机实验课程平台。该平台引入123D.CIRCUITS.IO仿真系统,学生登录后,可以观看在线课程视频;根据实验设计要求,在线完成相关实验内容的设计与仿真,参与阶段测试;在移动终端上参与课程学习、社区讨论;在学生互评的基础上,评分系统给出实验成绩。
Arduino;仿真系统;在线平台;Rubric算法
目前,国内理工科院校的《单片机原理与应用》课程一般开设在第5学期,由于每年有数以万计的本科一、二年级学生要参加电子设计竞赛等活动,迫切需要学习相关课程知识。但许多院校受实验室的硬件设施条件限制,无法满足这部分学生的需求。因此,开发一个微控制器设计应用开放式在线实验课程平台(MOOC)能够摆脱现有教学资源的束缚,从而解决上述问题[1]。
2015年,吉林大学开始统一建设网络实验运行平台,本实验课程项目将作为选修课纳入吉林大学的网络实验教学系统,为各个学院的学生服务。考虑到通信工程学院单片机课程使用的是飞思卡尔16位单片机,相对零基础的低年级学生而言学习难度较大,所以,实验教学采用Arduino单片机。
Arduino是一款便捷灵活、方便上手的开源电子原型平台,包含硬件(各种型号的Arduino板)和软件(Ar-duino IDE),学生完全不需要了解其内部硬件结构和寄存器设置,仅仅知道它的端口作用,就可以用C语言编写程序做电子产品,适合初学者。
1.平台架构
平台采用PHP+MySQL方式架设网站,使用Moodle开源软件建立内容管理系统。二次开发后,具有以下优点:①具有高度自由性,可以修改和二次开发;②历经多版本修正,技术成熟,稳定性好;③丰富的插件资源,提供更多可增删功能;④运行在主流PHP+ MySQL环境[2]。平台由主页、教学资源、实验项目、成绩评定、讨论组和实验指导几个基本模块构成,总体结构如图1所示。
图1 平台总体结构
2.数据库
在MySQL的数据库中加入学生的学号,默认登录密码设置为身份证号后六位,学生可以通过学号登录并且进行相关操作。数据库的基本字段包括ID(学号)、PWD(密码)、link(连接地址)、其他验证是否提交作品内容以及实验成绩的相关字段[3]。
3.内容管理
平台为学生提供在线实验课程的基本信息资料(如大纲、实验指导和前期准备);提供在线教学服务,包括在线视频教程、试题下载、集体讨论、教师解答等;学生利用123circuit设计和仿真,完成实验后提交他们的工作成果(包括报告、代码和仿真链接);对其他同学的作品进行评估,进而给出分数。
为了能够更好地体现本实验教学平台的便利性,在网站建设的基础上,开发移动应用程序,方便学生随时随地获取相关的知识内容。
移动应用程序基于Android开发,具有网站的基本功能。主Activity具有两个基本选项卡——“发现课程”与“我的课程”。每选择不同的选项卡,会切换到不同的面板。发现课程面板即网页的主页区域用于课程介绍等功能;我的课程选项卡,提供了不同用户在学习单片机在线课程的具体内容,包括成绩查询、资料下载等。
当程序启动时,检测到用户没有登录的时候,会弹出用户登录,Activity要求用户登录,同时手机平台面向外网,学生可以在任何时候、任意地点接入,充分体现了移动便捷。
本平台实验项目的设计和仿真使用一款来自国外的免费在线仿真软件,网址:https://123d.circuits.io/。这是一个支持在线Arduino仿真设计的网站,用户可以在网站模拟Arduino实物进行仿真操作,支持Arduino IDE模拟;用户还可以编辑代码,实现Arduino的在线电路设计与单片机的运行。
由于网站具有人性化的开发环境,虽然网络服务器在国外,但访问速度并不慢,完全可以提供给学生在线仿真服务。在平台中,给出了网页的链接地址和相应的操作方法。
1.实验课程安排
对比国内外相关实验课程的教学情况,设计了如表1所示的实验内容。在一个学期内,在线实验课程安排4个实验项目,每个项目有20天的时间限制;在此期间内,学生提交作业有效。课程满分100分,各实验项目所占评分比重如下:实验1,20%;实验 2,20%;实验3,30%;实验4,30%。
表1 课程内容
2.实验项目设计
以实验项目1为例,任务是用按键控制虚拟面包板上的7个LED灯有序闪烁。当按键按下时,LED灯开始从右到左闪烁;再一次按下时,反方向闪烁。这是一个最基本的实验,目的在于指导学生学会虚拟Arduino板和虚拟面包板的使用,了解Arduino的基本功能。通过该实验,学生应该掌握Arduino数字I/O口的使用,学会用LED作为复杂项目的调试手段,理解LED配置限流电阻工作原理。仿真过程如图2所示。
图2 实验项目1仿真
为了让学生能够有一个轻松的学习过程,平台提供两个视频教程,可以清晰解释如何在虚拟面包板上搭建电路,如何编译Arduino代码和运行仿真。仿真平台也提供Arduino Uno的基本信息和编程语言的语句结构,还提供有关按键和上拉、下拉电阻的微型讲座。实验项目1成绩的20分值按以下规则打分(折算成100分),如表2所示。
表2 实验评分规则
1.评分系统流程
评分系统分为3个部分:①学生在作业提交截止日之前线上提交他们的作业,作业包括:实验报告、程序代码、123circuit链接和作业视频链接(最后一项不做硬性要求);②提交作业截止日之后,系统将自动选择已完成作业的学生评价其他几个学生的作业(匿名),评价逻辑如图3所示。③学生互评后,系统将计算等级;学生得到分数和评语后,如果认为有差错,还可以提交申请,重新评定,成绩评定流程如图4所示。
图3 学生互评逻辑图
图4 成绩评定流程图
2.互评匹配原则
互评系统满足以下要求:①提供可靠性高、准确率高的评估;②每个参与互评的学生应该承担相对均等、合理的工作量;③系统的扩展性好,上千学生可以参加学习[4]。
为了保证互评的公平性,做以下条件限制:①匿名评价且禁止评价自己提交的作业;②严格遵照教师预先设定的评价规则;③保证每份提交的作业有相同的评价次数;④每次评价过程中,要求同一份作业每人仅评价一次。
表3 互评匹配原则示意
表3给出了互评匹配模型:设存在n名学生,则每个学生最多需评价n-1份作业,按照互评匹配原则的条件限制,得到唯一解。在匿名评价过程中,假设每人需评价k份作业,则在表3的前n-1行中随机抽取出k行作为评价对象,这样即可满足无法自评且每人评价份数相同[8]。
3.成绩评定算法
一个学生的得分包含两部分:①其他学生对这个学生的作业给出的互评分数S1;②该学生为他人评分而获得的反馈分数S2。本文采用rubric算法来计算学生的分数[5]。
先将每个实验项目分为若干评分点,教师给出评分标准和权重。
⑴假设有k个学生对A同学评分,则A同学受评的分数按照不同采分点加权求和得到受评分数S1
表4 互评分数统计结果
⑵A同学在第i个采分点对其他学生的评分的结果偏差|di|可表示为
反馈分数S2与结果偏差|di|呈负相关。
分别计算每个学生的|d|,取|d|最小的分数为“最优值”,即“最优值”是最接近平均值的k位学生中某一个学生的评分。若存在相等的|d|,取较大数为“最优值”。
反馈分数S2的数学表达式
其中,q为A同学打分的学生总数;xm,i为A同学给第m位学生的第i个采分点打分的分值;bm,i为第m位学生的第i个采分点的最优值。
⑶A同学实验项目得分S为
其中,f1为互评分数S1占的比重;f2为反馈分数S2占的比重[6]。
以实验项目1为例,令k=4,q=4,f1=0.8,f2=0.2,即有4个学生同时给A同学评分,A同学也为其4个学生评分。互评分数统计结果如表4所示,求得A同学S1=87,S2=81,S=85。
国内院校的现有实验课程MOOC平台多是以在线视频授课为主,学生只能被动地接受学习内容,缺乏传统课堂教学的互动环节。本文设计的基于Arduino的单片机实验MOOC平台,由于设置了在线仿真模块,使学生有了“动手”机会;并且,利用Rubric算法,开发了在学生互评基础上的评分系统,提供了学生之间“互动”学习的机制。这是一种全新的单片机实验教学方法,随着平台的上线运行,必将对现有的实验教学模式产生深刻的影响。
[1]孙青,艾明晶,曹庆华.MOOC环境下开放共享的实验教学研究[J].实验技术与管理,2014(8):192-195.
[2]李华,龚艺,纪娟等.面向MOOC的学习管理系统框架设计[J]现代远程教育研究,2013(3):28-33.
[3]周艳,李育泽,徐义东.基于MOOC理念的微课资源网站设计[J].现代教育技术,2014(1):113-118.
[4]孙力,钟斯陶.MOOC评价系统中同伴互评概率模型研究[J].开放教育研究,2014(5):83-90.
[5]李青,刘娜.MOOC质量保证体系研究[J].开放教育研究,2015(5):66-73.
[6]王秀婷.基于edX的MOOC互动交流平台的设计与实现[D].哈尔滨:哈尔滨工业大学,2014.
(编辑:鲁利瑞)
TP391.9
A
1673-8454(2016)10-0087-04
吉林大学2015年网络实验建设项目(VE2015046)。