以智能硬件助力创新创业实践教学改革
2019-07-30戴志涛刘畅杨文强卞佳丽
戴志涛,刘畅,杨文强,卞佳丽
(北京邮电大学计算机学院,北京 100876)
随着人工智能发展过程中与教育的深度结合,一系列创新实践教学模式应运而生。在此期间产生了大量的研究成果。中国各大高校都在研究相关的课程改革措施,在2017年7月8日,国务院印发了《新一代人工智能发展规划》[1],其中提到的智能教育为新时代的课改指明了方向。人工智能与教育相结合非常重要,对于计算机相关学科而言尤为如此。
计算机科学是一门手脑并用的科学,相关专业的学生在系统学习理论知识的过程中,要着重培养其创新实践能力。智能硬件兼具低门槛,灵活有趣的特性,非常适合作为创新实践课程的素材。该研究将以北京邮电大学在2017年起开设的智能创新实践课为例,从教学重点,课程目标,教学平台及实践成果的角度,介绍智能硬件在创新实践教学中的应用方式,并分析其教学成果。
1 教学重点及课程目标
当前的高校课程改革应当培养适应社会经济发展需要的,具有核心竞争力的高素质人才[2]。大量实践证明,倡导手脑并用的实践教学方式对培养学生的创造力,学科好奇心有显著的作用。对于学生来说,相较于仅仅了解书本上的理论知识,动手实践的过程更容易培养其对计算机学科的好奇心,并激发其对计算机科学的兴趣。学生日后对计算机相关学科的系统学习的过程中,回忆起实验中的场景时,知识将变得较为生动,这有助于学生构建更加丰富的知识图谱。
课程的教学重点是培养学生的创新实践能力,引导式培养学生善于发现问题、思考问题、解决问题的习惯和能力。在教学的过程中,教职人员通过展示一系列示范性实验及布置探索类实验,可以帮助学生总结实验涉及相关知识的内在规律。此外,学生在完成预设实验的基础上,还可发挥自身的创造力,利用实验平台进行自主探索,优秀的作品也可作为课程后续优化的重要参考。
通过对创新实践课程的不断改进与革新,在培养高素质的创新实践型人才,不断产生新的研究成果的同时,还可以进一步加速同类教学项目的建设和实施,推动构建创新实践教育的新环境、新生态。
2 硬件平台的选定
2.1 平台选定原则
将智能硬件应用于创新实践教学,首先要进行硬件平台的选定,根据教学性质及课程需要,平台的选定需要遵循以下三点原则。
(1)实践课程的教学对象为计算相关机学科的初学者,故原则上硬件平台的核心板需要足够精简,上手难度低。
(2)实践教学课程中的实验设计需要在硬件平台的基础上进行相应的扩展,故硬件平台需要有良好的可扩展性。
(3)考虑教学过程中实验器材不可避免的碰撞及反复使用,实验后的长期保存,硬件平台要有较强的鲁棒性,并且易于维护。
2.2 平台核心板
经过广泛的调研并比对同类嵌入式实验板的基础上,我们选定了Arduino UNO这一型号的实验板。这款实验板被广泛应用于电子设计,手工制作及教学领域[4]。在这款实验板上进行开发不需要掌握复杂的单片机底层逻辑及汇编指令集,特定的IDE也提供了一系列例程,网上也有很多相关资料。此外,实验板良好的易用性及可扩展性也为实验内容的设计提供了丰富的素材。故选定Arduino UNO实验板作为课程中开发平台的核心板(见图1)。
图1 Arduino UNO实验板
2.3 智能机器人开发平台
实践课程需要培养学生对于相关知识的好奇心。很多学生从小就对机器人产生过强烈的好奇心,以机器人作为第一阶段课程的引入符合大部分学生的天性。我们从广泛意义上,可以对最主要的一类机器人做出概括:独特的,可进行自我控制的“活物”[3]。实验成果中包含能动的元素往往可以提高实验的趣味性,所以选定一款机器人对于符合对应课程设计的需要。
经过广泛调研,在对比一系列同类产品后,我们选定了一款四自由度的机械臂,机械臂包含四个舵机,可以做出旋转,升降,抓取等动作。机械臂与Arduino UNO实验板相结合,配合喇叭和舵机扩展板等外设,共同组成智能机器人开发平台(见图2)。
图2 智能机器人开发平台
2.4 智能小车开发平台
智能机器人实验主要内容是串口通信,控制机器人机械臂的运动等,作为智能创新实践课的入门课程,实验程序较为简单,方便学生上手教学平台,在此基础上应该增加难度及趣味性,展开更加复杂的实验。闭环控制类的智能硬件实验往往可以很好地锻炼学生的动手动脑能力。学院对于智能小车也有多年的研究基础,故选取一款容易上手的智能小车作为实验平台(见图3)。
图3 智能小车开发平台
实践课程将智能小车实验安排在智能机器人实验之后。智能小车实验涉及与传感器返回数据有关的闭环控制内容。这在完全开环的智能机器人实验的基础上增加了难度。智能小车相关实验较能锻炼学生的调试能力及故障排查能力。此外,在智能小车实验课中表现优异的同学,还可作为飞思卡尔杯全国大学生智能车竞赛[5],全国大学生机器人大赛等比赛的后备军,这不仅降低了计算机学院选拔相关比赛队员的成本,选拔出的队员质量较以往也会有很大的提升。
3 软件平台的选定及改进
3.1 Arduino IDE
随着Arduino的流行,越来越多的人选择借助Arduino来开发自己的机器人项目,Ardunio的社区也越来越庞大。市面上有许多编辑器可以用来编写Arduino程序,例如用户量比较大的sublime,它安装stion插件后就可以用来开发Arduino,其他还有eclipse、Intel XDK loT Edition等,编程能力强的用户还会选择python等脚本语言来写程序。
选择Arduino IDE编辑器相较于其他平台有以下优势。首先,ArduinoIDE的用户群比较庞大,占据Arduino开发用户的63%,Arduino的用户可以在社区寻求到非常大的帮助。其次,ArduinoIDE是Ardunio开发板配套的一款编辑器,这款编辑器能够在三大主流操作系统平台(Windows、 MacintoshOSX、Linux)上运行。 而且该软件完全免费,并且开源,在Github上就能找到该项目(见图4)。
图4 Arduino集成开发环境
该IDE在使用前需要先安装相关驱动,IDE和驱动都可以在官网下载。从软件的GUI来看,该软件比较容易上手使用,用户在编写好代码之后就可以编译并上载到Arduino开发板进行实验。
3.2 Ardublock插件
虽然Arduino IDE操作简单,但是也存在着一定的技术壁垒,它要求用户有一定的编程能力和一定的英文水平。该编辑器使用C语言编程,这就限制了没有编程基础的用户。如果用户有基本的C语言编程基础,他还需要查找官方使用文档,而官方文档都是英文内容,这对于中国的初学者而言很不友好,即使学生有一定的编程基础,编程能力比较强,英语水平比较高,他还要面对Arduino IDE的API较多,软件实现复杂,无提示功能等一系列问题。
如果找到一款能够同时覆盖初学者和有能力的学生的软件平台,便能解决上面的所有问题。近年来,图形化编程成了一种趋势,随着计算机技术的发展,编程能力已经快要成为每个人的基本必备素养,为了让年龄较小的用户群早点接触信息世界的重要工具——编程,图形化编程走入了人们的视野。从麻省理工学院2013年设计的模块化编程语言Scratch到后来的Blockly、Microbit等图形化编程工具,图形化编程的前景变得越来越广阔,它可以普及计算科学,使人人皆可编程,非常适合初学者。我们可以借助图形化编程工具来覆盖使用Arduino相关硬件进行编程的所有水平的学生群体。
Ardublock是一款由上海新车间创客研发的基于Arduino IDE的图形化开发插件。该插件使用非常方便,在Ardublock的官网下载好插件,根据官网的教程在Arduino中安装插件。安装好该插件后,学生便不再需要查文档写代码构建项目,只需要在Arduino中使用模块化组装的方式构造自己的Arduino程序。而且该插件还支持国际化,可以根据环境调整语言,方便外语不好的用户使用。当然Ardublock还是要在Arduino IDE的环境下使用,用户需要在完成自己的程序后选择上传到IDE并生成相应C语言代码,然后点击编译并上载到Arduino开发板运行程序(见图5)。
图5 Ardublock界面
3.3 对Ardublock的调整
Ardublock插件很好的解决了Arduino IDE对用户不友好的一些限制,它还提供了基础的逻辑运算、条件运算、数学运算以及其他的诸如摇杆、舵机等设备模块。虽然Ardublock已经提供了较完备的组件供用户使用,但是它是一个通用版本的插件,在实际应用中总会有一些不足,而我们的实验教学中针对性比较强,如果全部使用基础组件去拼装则非常繁琐还容易出错,而且实际的实验教学时间有限。鉴于Ardublock在以上应用中的一些不足,我们对这款开源软件进行了一系列调整,以更加适合实际实验场景和我们的实验相关内容。
图形化的编程主要提供给没有编程基础的入门级用户,不能因为烦琐的操作而使其失去兴趣,故需要对相应模块进行相关简化。例如在控制小车的实验中,课程组专门对一些复杂的操作做了封装,将其作为模块加入到Ardublock的控件库中,如小车获取距离的操作封装成get_distance组件添加到Ardublock中,这样不但可以简化实验的复杂度,又可以减轻学生在调试过程中的工作量。此外,能力强的学生可以在Ardublock生成的C语言代码的基础上进行进一步修改,甚至实现一些全新的功能。同时,课程组还对Ardublock中缺少的一些基本组建进行了完善和填充,还对一些集成度高的操作进行了剥离,如将return组件从switch中独立出来作为一个组件,使其能够更加灵活的使用。
对于Ardublock的一系列调整,使其更加适合创新实践教学,在照顾零基础学生的同时,也为有一定编程基础和创新能力的学生提供了选择。让学生以搭积木的图形化方式编程,不仅降低了智能硬件相关知识的准入门槛,而且能够激发学生深入探索计算机领域相关知识的兴趣。
4 课程设计及教学实践
4.1 课程设计
4.1.1 实验设计
依托智能机器人开发平台及智能小车开发平台,课程组分别设计了如下实验并编写了实验指导书 (见表 1)。
表1 智能创新实验设计
4.1.2 智能机器人实验
以智能机器人系列实验中第一个实验为例,此实验为演示实验——LED控制,使用GPIO控制LED灯亮灭的实验将帮助学生理解通用输入输出的概念。这个实验比较简单,在实验指导书中配有代码积木的示意图及使用流程(见图6~图7)。
此外,指导书中也展示了Ardublock在ArduinoIDE中自动生成的C代码。
图6 Ardublock操作说明示例
图7 LED控制演示实验图形化程序
相比之下,图形化积木的编程方式明显更为直观,代码中涉及了pinMode,digitalWrite等API函数,如果直接给编程基础不扎实的学生布置上述C语言代码的编程任务,很容易引起学生的畏难情绪,教学效果显然不如图形化的方式。
智能机器人实验所用的机器人开发平台开放了GPIO接口,可以外接扬声器。第二个实验即为使用代码控制扬声器发声,并且组合成相应的音乐进行播放。后续的智能机器人实验均与串口和机械臂相关,实验将串口和舵机控制结合在一起,可以使学生在实验过程中体会到遥控机器人的乐趣。
4.1.3 智能小车实验
智能小车实验延续智能机器人实验的风格,在其基础上增加了难度。第一个实验是通过串口遥控小车,其中串口使用的是蓝牙串口,所以学生最终的目标是实现蓝牙无线遥控的方式控制小车前后左右行走及转向的功能。此实验涉及对多种串口信号进行处理,让学生体会switch语句的作用。为此课程组在Ardublock中加入了switch语句相关的模块,并优化了串口信息处理的流程。智能小车轮子转动方向的控制对于初学者来说很难,课程组将其封装为现成的模块,允许学生在程序中调用(见图8)。
图8 自主设计的Ardublock模块示例
智能小车循迹和智能小车避障实验要求学生掌握对传感器数据的读取及处理的流程。前者需要用到红外线传感器,后者需要超声波传感器。红外线传感器输出的是布尔量,而超声波传感器为模拟信号,经过相应处理可转化为厘米为单位的数字信号,学生完成相应实验需要掌握相关内容(见图9)。
图9 智能小车开发平台的传感器
最后两个实验为智能小车竞速及移动APP控制小车,学生完成这两个扩展实验后,将会达到智能车队初级队员的标准,可以参加学校对智能车比赛队员的选拔了。
4.2 教学实践
北京邮电大学从2017年开始开设智能创新实践课,在教学实践的过程中不断完善课程设计,引入新的元素,尽最大可能培养学生的创造力,激发他们对计算机相关学科的学习兴趣。智能创新实践课程在性质上数以交叉学科课程,涉及自动化,电子电路,嵌入式等等,教学过程中需要对学生加以不断引导,满足学生对陌生领域知识的好奇心。
课程组在教学实践中发现,在Arduino UNO实验板上点亮LED灯,成功播放音乐给学生带来的喜悦和成就感比仅仅在屏幕上输出“Hello World”要强,使用程序控制舵机进而遥控机器人比在仅仅计算机屏幕上写一些运算逻辑给学生的印象要深刻。
课程组在教学实践中采用集中讲授与开放讨论相结合的方式,引导学生一步步完成生动有趣的实验。学生在实验过程中会遇到各类问题,助教成员往往会以引导发问的形式,让学生自己得到问题的答案。这个过程中不仅锻炼了学生的思维能力,避免了手把手教式的“填鸭式”教学,还可以给学生以解决问题的成就感。
5 实践成果
5.1 丰富课程体系
在智能创新实践课的实践教学过程中,课程组对课程内容不断改进,取得了显著的教学成果。在智能创新实践课的基础上,学院成立了智能车实验班,对实验课程中表现优异的学生进行进一步培训,对于学生而言,在这一系列创新实践活动中增强了理论功底,培养了动手能力,丰富了相关课程知识,对于学院而言,增加了发现人才的机会,使因材施教的思想落实到了政策和行动上。
智能创新实践课程从以倡导手脑并用,培养创造型人才为出发点,丰富了北京邮电大学计算机课程改革实践教学的课程体系,是课程改革的重要成果。
5.2 优秀典型
在教学过程中,涌现了一大批优秀的学生。其中一位大一学生在智能车实验开始不久就通过积木编程掌握了编写对应C语言代码的方式,快速完成了串口控制智能小车,智能小车循迹等实验。在实验的过程中发现小车行走过快会冲出跑道,并自主分析原因改进代码,最后获得了班内的最好成绩。
在扩展实验中,有的同学开发了可以在复杂路线上的高效循迹的算法,经过学生之间的讨论与联合测试,取得了很好的循迹效果(见图10~图11)。
图10 智能小车循迹场景
6 结语
计算机学院开设的创新实践系列课程,打破了仅仅引导学生学习理论知识的固有教学习惯,利用学生的好奇天性,鼓励学生动手实践,达到了锻炼学生手脑并用的学习方式,培养了学生团队合作的工作习惯及对交叉学科的兴趣和积极性。课程改革注定是一条充满探索和未知的道路,保持锐意创新的态度,富于勇于实践的精神,将会促进中国教育往实践的方向阔步前进。
图11 复杂赛道设计