米思齐(Mixly)图形化编程系统的设计理念及应用模式

时间:2022-07-14 11:59:59

米思齐(Mixly)图形化编程系统的设计理念及应用模式

编者按:我认识北京师范大学的傅骞教授很多年了。都说相由心生,刚开始认识傅教授时,在他身上我既看到了学者的智慧,又看到了工程师的洒脱,果然过了没多久,米思齐这个工具就问世了。中国人讲“见贤思齐”,而米思齐的英文名称又有混合的意思,因此,我妄加揣测米思齐应该是一个让人们自由分享好的创意,提高所有人的创新效能感的工具。2016年的信息技术实验栏目,将系统地从课程的角度介绍更多的像米思齐一样的学习工具,让我们一起“见贤思齐”吧。

随着创客教育理念的不断普及,以Arduino为基础的创意电子类创客教育课程正逐步在中小学中推广开来。然而,由于受到其本身技术门槛的限制,创意电子类课程的开设给广大师生提出了巨大的挑战(Arduino需要通过C/C++语言编程实现创意,这对低年龄段的学生来说几乎是不可能的)。即使后面有Ardublock、mBlock等图形化编程工具的辅助,也依然无法同时满足师生在功能性和易用性方面的双重要求。为此,笔者所在的团队开发了一个新的Arduino图形化编程系统,即米思齐(简称Mixly)图形化编程系统。

Mixly的设计理念

Mixly作为一个国内出品的免费、开源的图形化编程系统,需要依赖大量的用户群体来维持软件的生态和活力。为了更好地满足用户的各类需求,Mixly开发团队在设计上遵循了以下理念。

1.易用性

中小学的机房管理员非常排斥软件的安装与升级工作,特别是很多机房都安装了硬盘保护卡,需要安装后才能使用的软件会给管理员带来很大的不便。为此,Mixly在设计上做到了完全绿色使用。用户直接从网上下载Mixly软件包,解压后即可在Windows XP及以上版本的操作系统运行。软件无需额外安装浏览器,也不用安装Java运行环境,大大方便了师生的使用。

2.简单性

Mixly采用了Blockly图形化编程引擎,使用图形化的积木块代替了复杂的文本操作,为学生的快速入门奠定了良好的基础。另外,笔者的团队使用以下方式帮助师生更好且快速地熟悉软件:①用不同颜色的示意图标代表不同类型的功能块,方便用户归类区分。②在复合功能块中提供默认选项,有效减少用户的拖动次数。③在同一个界面整合软件的所有功能。④提供参考教程及代码示例。

3.功能性

当前,很多学校将组织或参与创客类比赛作为创客教育的一种途径,而比赛的竞技性对软件的功能提出了更高的要求。因此,Mixly在功能的设计上力求和Arduino IDE的文本编程保持一致,目前最新的Mixly 0.96版已经实现了Arduino的所有官方功能(包括中断处理),并加入了大量的第三方扩展库功能,如红外遥控、超声波等,可以保证课程开设和各类创客比赛的双重需求。

4.普适性

Mixly在设计上考虑了绝对的普适性。首先,对Arduino官方支持的所有开发板,Mixly都提供了完美的支持:Mixly会根据开发板的类型自动改变模块中的管脚号、中断号、模拟输出管脚等;其次,对Arduino支持的第三方开发板,用户只要把相应开发板的定义复制到Mixly中,依然可以得到支持。如国内大量的ESP8266开发板、各类用户修改后的开发板等,从而保证了用户在开发板选择上的最大自由度。

5.延续性

图形化编程系统的目标绝对不是替换原有的文本编程方式,而是希望学生通过图形化编程更好更快地理解编程的原理和程序的思维,并为未来的文本编程打好基础。Mixly的设计理念也是如此。在软件的设计上加入了更多的可延续性内容,从而保护了用户的学习成果。具体来说,包括引入变量类型、在模块的设计上尽量保持和文本编程的一致、支持图形编程和文本编程的对照等。

6.生态性

生态性是Mixly最重要的设计理念,也是它区别于其他Arduino图形化编程的最重要特征。为了实现可持续发展,Mixly在设计上既允许厂商开发自己的特有模块(当前已经支持DfRobot、StartLab、MakeBlock、Sense、Seeed、Lubot,用户需要有JavaScript编程基础才能制作这部分模块),也允许用户直接利用Mixly的图形化编程功能生成通用模块(如数码管显示、蜂鸣音播报等,用户只需会使用Mixly即可制作这部分模块)。以上两类模块均可通过“导入库”功能导入Mixly系统,从而在Mixly软件的普及中实现用户自身的价值。

Mixly系统功能简介

Mixly的主界面由左上的模块选择区、中上的程序构建区、右上的代码程序区(可隐藏)、中部的系统功能区和下部的消息提示区构成(如图1)。通过该界面,用户可以完成程序的编写、上传、保存、代码查看等全部工作。图1所示的是“超声波测距仪”的软件实现代码。

为了让用户更好地使用Mixly进行创意电子教学,笔者将对Mixly的主要功能做一个简单的介绍。

当前Mixly 0.96支持的图形化代码编写模块有:①程序流程控制:顺序执行、条件执行、循环执行、初始化操作、数学运算、文本运算、变量使用、类型转换、逻辑操作、数组使用、函数定义、函数使用。②Arduino基本操作:数字输入、数字输出、模拟输入、模拟输出、中断控制、脉冲长度、移位输出、时间延迟、时间获取。③Arduino扩展操作:声音播放、舵机控制、液晶显示、超声波使用、DHT11使用、串口通讯、红外通讯、I2C通讯、EEPROM读写、SD卡写入。

当前Mixly 0.96支持的程序处理功能有:①程序编写:用户既可以通过图形化代码编写程序,也可以直接通过文本编写程序,并具备相对对照功能。②程序上载:用户可以直接通过Mixly完成程序的编译上载工作。③代码保存:用户可以保存、另存和导入图形化代码。④界面缩放:用户可以随意控制界面缩放,方便平板用户使用。⑤模块管理:用户可以把函数导出成模块,从而方便其他用户导入使用,同时也支持导入厂商开发的扩展库,另外还支持用户删除、重命名用户已经导入的模块。⑥串口监视:串口通讯工具,方便用户和Arduino的串口实现交互操作。

Mixly的应用模式

创客教育的核心不是重复知识的复制或复杂功能的底层实现,而是激发学生的创新并享受分享所带来的快乐。基于Mixly的创意电子课程也要遵循这样的理念,所以笔者从Mixly的技术特点出发,将Mixly的应用模式分为以下几类。

1.模仿延展类

该模式主要用于Mixly初学者学习创意电子的基础知识,其具体步骤为:①由教师创设情境,并提出本次课(活动)的具体任务。②启发学生思考,得出实现本任务的基本思路并鼓励学生尝试实现。③教师给出参考实现,学生基于教师的代码模仿完成。④教师给出扩展任务方向,引导学生修改原有的代码实现。

下面以《两只老虎》为例描述这一过程。本课的目标是让学生学会使用蜂鸣器播放简单的音乐。首先,教师需要讲解基本乐理知识及Mixly中声音的播放方法,然后引导学生思考并鼓励学生尝试实现。在实际教学中,学生最初的实现大多比较幼稚。教师在给出合适的鼓励后再给出如图2所示的实现方式,并引导学生进行模仿。模仿成功后,教师需要讲解实现的基本原理并给出延伸任务,要求学生设计更复杂的音乐。事实上,学生只需简单地修改数组就可以播放出不同的音乐。

2.创意整合类

该模式主要用于具有一定Mixly基础的学生针对某一技术的创意整合应用,其具体步骤为:①由教师创设情境,并提出一个特定的功能需求。②启发学生思考,得出实现功能的基本思路。③教师给出功能的具体实现模块,学生导入并体验。④激发学生创新,结合本模块和先前知识给出创意应用。

下面以《语音温度计》为例描述这一过程。本课的目标是实现低成本的人机交互。首先,教师抛出问题:如何才能让用户知道Arduino中的结果数据?学生一般会给出各种各样的答案,教师在给出合理的正向反馈后分析各种答案的可行性,并引导学生提出通过蜂鸣器播报数据的方案。在此基础上,给出相应的扩展库让学生尝试使用。然后,教师需要激发学生思考如何利用该库完成创新应用。上页图3给出了一个语音温度计的Mixly实现代码(LM35和A0相连,蜂鸣器和10号管脚相连),上页图4则是语音播报库的具体实现代码。

3.协同合作类

该模式主要用于Mixly专业学习者协同完成综合性任务,其具体步骤为:①学生以小组为单位,通过协商得出要做的综合任务目标。②教师在听取学生的汇报后,给出项目的可行性评估及实现建议。③学生在教师的帮助下完成基于模块的任务分工并实现最初的设计。④小组汇总程序、进行调试,并完成最终成果的展示。

下面笔者以在中学讲授“创意电子”课程的一个小组综合项目为例,描述这一过程。本课的目标是使学生综合运用元件和所学知识开发出一个创意作品。此前,教师应讲解在复杂的程序设计中代码模块化的意义,并给出一些具体的例子。在此基础上,学生自愿结为两人小组,提出创意。此处仅以其中一组学生设计并实现的温控报警散热器为例,描述后续过程。小组成员提出,使用温度传感器、蜂鸣器、LED灯、数码管等元件制作一个具有显示温度和报警功能的散热器。学生描述功能并进一步对其进行分解,除了使用到教师提供的一位共阳数码管库外,还构建了呈现彩色灯(colorRGB)、电扇开关控制(fan)、声光报警(ring)、获取温度(getTem)四个函数。

学生在开发过程中灵活地使用了Mixly的导入/导出库功能:一位学生负责物理连接和四个子函数的编写并使用“导出库”功能将其导出成库文件,另一位学生负责基于功能描述设计整体逻辑并在导入该文件后完成主函数的编写。上页图5、图6分别是该作品的库文件代码和主程序代码,图7是该作品的实物图。

总结与展望

Mixly作为一个新的面向Arduino开发的图形化编程软件,在较短的时间内得到了大量用户的认可与好评,其根源来自一线教师给出的积极指导和建议。笔者所在的团队必将不断完善Mixly的功能,为中国的创客教育贡献一份力量。

编后:2015年,本刊刊发过一线教师介绍Mixly的文章,此次真正接触到制作团队,才发现Mixly的设计及应用远远要超出我们的想象,值得一试!

作者简介:傅骞,副教授,博士,研究方向为物联网技术及教育应用、创客教育支持生态建设。

基金项目:本文得到北京市教育科学“十二五”规划2015年度课题“面向北京市中小学创客教育的教学体系研究――以创意电子教育为例”(项目编号:CJA15234)资助。

上一篇:大师太太们口才了得 下一篇:中职计算机专业“网页制作”课程利用专题学习...