浅析ArduBlock教育版及其应用
张禄 赵晓卿
近几年来,中小学创客教育的发展如火如荼,作为创客们的一把利器,Arduino在国内早已盛行。但在早期,Arduino进入中小学遇到了一个麻烦——学生普遍没有编程基础。为了降低学习门槛,最早的Arduino图形化编程软件之一,ArduBlock便应运而生。ArduBlock的产生,改变了Arduino在图形化编程方面主要依靠Scratch的局面。
● ArduBlock
Ardublock是一个开源项目,使用Java语言开发,通过积木搭建的方式对Arduino进行编程,可视化和交互性强,编程门槛低,即使没有编程经验的人也可以轻松编写Arduino的程序。使用前,一般先下载它的压缩包,名字通常为“ardublock.jar”或“ardublock-all.jar”,然后在Arduino安装的根目录下找到“tools”文件夹,打开后新建文件夹“ArduBlockTool”,在此文件夾中再新建文件夹“tool”,目录结构为“…tools\ArduBlockTool\tool”,将压缩包放在“tool”文件夹中便完成了安装工作。安装完成后,打开Arduino IDE编程环境,在菜单栏中找到工具“Tools”,就可以看到ArduBlock了,如图1所示,点击进入即可打开其编程界面。
● ArduBlock教育版
教育版是ArduBlock众多版本中的一款,是为教育教学专门定制的版本。它对Arduino IDE版本的要求是1.5或更高版本(但是对一些较新的版本兼容性并不是很好),如果使用较低的版本,ArduBlock教育版则显示的是英文。软件的安装与使用也很简单,只要将下载的压缩包(下载地址:http://blog.sina.com.cn/s/blog_6611ddcf0101kfs7.html)中的libraries和tools文件夹复制到Arduino的安装目录下即可。另外,为方便初学者,也提供了已经集成的ArduBlock的Arduino IDE(网址:http://pan.baidu.com/s/1qWFJ0EK),直接解压就可使用。相对于其他版本,教育版的功能划分清晰,且更强大,兼容Arduino的任何开源产品。启动ArduBlock后,可以发现其界面(如图2)主要分为三大部分:工具区(上),积木区(左),编程区(右)。
● ArduBlock教育版的应用案例
1.设计定制版的ArduBlock
ArduBlock教育版仍然遵循开源精神,用户完全可以定制专属的版本。在开发时,先找到“…tools\ArduBlock-Tool\tool”文件夹下的“ardublock.jar”文件,并对其进行“解压—修改文件—编译—打包.jar文件”等操作,这一系列操作可以使用eclipse软件实现。下面,以在ArduBlock教育版中添加文字Logo为例,做简单介绍。
首先将“ardublock.jar”文件解压,在解压的文件夹中按照路径“…com\ardublock\block”找到“ardublock_zh_CN.properties”文件,此文件是Arduino IDE语言选择简体中文时的版本,若英文版本则对应的是“ardublock.properties”文件;用eclipse将此文件打开(如图3),找到“ardublock.ui.version=”开头的一行代码,若没有找到可手动添加,将该条语句修改为“ardublock.ui.version=\u65E0\u9521\u5E02\u7B2C\u4E00\u4E2D\u5B66\u5B9A\u5236\u7248 2019.09.10”,其中“\u65E0\u9521\u5E02\u7B2C\u4E00\u4E2D\u5B66\u5B9A\u5236\u7248”为UTF-8编码对应的汉字“无锡市第一中学定制版”,修改之后保存(此处省略了编译的过程)。
接下来是将整个文件夹再打包成“ardublock.jar”文件,有两种方法:一种是通过jar软件打包,另一种方法则相对简单,使用压缩软件将原来的“ardublock.jar”文件打开,找到“ardublock_zh_CN.properties”文件对应的位置,将修改过的文件替换掉此文件,再保存即可。此时重启ArduBlock,就可以看到专属的定制版了(如图4),在软件下方出现了“无锡市第一中学定制版2019.09.10”的字样。
2.在虚谷号上安装ArduBlock教育版
作为开源硬件,虚谷号为国内中小学创客教育的开展提供了良好的平台,虚谷号自带的IDE集成了ArduBlock,但并不是教育版,于是笔者尝试在虚谷号上安装ArduBlock教育版。
首先,虚谷号自带的IDE版本为1.8以上,这个版本并不兼容ArduBlock教育版,需要到Arduino官网下载低版本,这里使用的是Linux ARM的1.6.10版本。接下来,将下载好的Arduino安装包解压到系统桌面,再利用LX终端进入此文件夹(进入文件夹的命令为cd Desktop/arduino-1.6.10)进行安装,如图5所示。
安装完成Arduino
IDE后,只需要将ArduBlock教育版的压缩包“ardublock.jar”拷贝到对应的“…tools\ArduBlockTool\tool”文件夹下即可使用教育版了,如图6所示。
3.呼吸灯
呼吸灯是Arduino教学中常见的案例,在编写程序时,通常将呼吸的速度设定为固定的值,因此出现了如图7所示的呼吸灯程序。其中,LED连接数字针脚3。
事实上,上述这种呼吸灯效果并不是很好,灯光强弱的过渡不够柔和。观察k值的变化很容易发现问题所在:LED的亮度变化是呈折线形的,如图8(左)所示,这样的数据变化当然很难体现出“呼吸”这一张一弛的自然变化。正常的呼吸形态如图8(右)所示,很像是一个正弦函数的波形,这样就可以利用三角函数编写呼吸灯的程序,如图9所示。
4.自动变速风扇
自动变速风扇利用超声波测量距离,根据距离使风扇自动调节速度,程序如图10所示。其中,超声波传感器连接数字针脚8和9,风扇连接数字针脚5。
● ArduBlock教育版在教学中的定位
在ArduBlock教育版开发时,用于Arduino编程的图形化软件并不多,虽然现在已经有许多图形化软件了,功能也更强大,但是笔者对ArduBlock教育版仍然情有独钟。在笔者看来,ArduBlock教育版并没有过时,在教育教学中仍然有其特殊的意义。
在教学中,ArduBlock教育版更多地是担任编程入门的角色。值得注意的是,《普通高中信息技术新课标(2017年版)》中新增了一个选择性必修模块——开源硬件项目设计,Arduino正式进入高中教材,可见其重要性。另外,由于ArduBlock教育版是基于Arduino IDE的插件,它可以将图形化模块直接与代码对应起来,如果学生在使用IDE编写程序的时候遇到了困难,可以先通过ArduBlock编写出相应的程序或者部分程序段,生成代码后,在此基础上再进行其他程序代码的编写。所以,对于没有编程基础的学生来说,ArduBlock教育版是一款值得推荐的平台,它不仅有助于快速入门Arduino,也能较容易地从图形化编程过渡到代码编程。