分析世界ArduBlock:物理世界与虚拟世界桥梁怎么

更新时间:2024-01-30 点赞:17340 浏览:72793 作者:用户投稿原创标记本站原创

编者按:在科技发展日新月异的今天,信息技术教学已经远离了开、关机还需要反复讲解的时代,三岁孩童熟练地摆弄着iPad已非奇事。自策划了“Scratch来了”这一专题之后,编辑深刻感受到研究程序语言的老师的可爱,他们的执著、他们的探索,使得程序教学不再那么枯燥,焕发出勃勃生机。因此,杂志特别策划了这一专栏,将陆续刊发一些程序教学领域有代表性的教学实践。也期待更多老师投身到程序教学中去,通过自身的践行,推动程序教学的复兴。
我们知道Arduino这一软硬结合的产品可以创意出很多作品。然而,类似JA、C语言的Processing/Wiring开发环境,依然会让许多人纠结于代码中,甚至望而却步,以至于头脑中有了创意却无法得以落实,而ArduBlock就是致力于降低Arduino爱好者的学习难度,把高级的计算机语言和专业的语法,简化为一个个模块,堆砌在一起,最后和Arduino开发板互动,做出激动人心的效果。由于ArduBlock是积木的编程方式,很大程度上降低了学习者的门槛,不需要专业的知识,不需要工科的背景,只要你喜欢,就可以玩,尤其是适合亲子互动教学及基础教育阶段的课堂教学。那么,就让我们一起走进ArduBlock吧。
● 什么是ArduBlock
Ardublock是在上海新车间由李大维和何琪辰于2011年起针对少儿学习物理运算而开发的图形化程序开发环境,属于Arduino编程环境的第三方软件,目前必须依附于Arduino软件运行,当时新车间有许多小朋友对Arduino机器人有兴趣,但是文本的类C语言的入门门槛很高,所以工作室试图透过图形化的拖拉开发方式大大降低这个门槛。这样的方式会使编程的可视化和交互性加强,编程门槛降低,即使没有编程经验的人也可以尝试给Arduino控制器编写程序。
Ardublock一直是一个开源的项目,在网上通过社群的力量共同开发,目前有17个语言版本。ArduBlock相关资源可以访问网站http://blog.ardublock.com/zh/。图1为2011年发布的

1.0正式版,图2是截至发稿时,最新的内部测试版。

开发团队2013年重写了全部代码,新版本内部模块的分类更加合理,执行效率更高,增加了一些子程序功能。
● ArduBlock的特色

1.JA插件

ArduBlock是使用JA语言开发的插件,配合Arduino的IDE使用,软件包ardublock-all.jar下载后,需要将它拷贝到“Sketchbook location”所在目录的相关文件夹里。那么如何确定“Sketchbook location”所在目录呢?在Arduino的IDE下,打开菜单“File”→“Preferences”(如图3)。
笔者电脑中的位置是D:\Backup\我的文档\Arduino,找到该目录后,我们需要先一级一级地在这个目录下建“子目录”,最终目录结构是这样的:D:\Backup\我的文档\Arduino\tools\ArduBlockTool\tool\,然后将ardublock-all.jar拷贝进去。ArduBlock软件安装完毕后,在Arduino IDE的菜单“Tools”下找到ArduBlock,就可以启动ArduBlock了。需要特别提醒的是,图3中我们选择语言为系统默认时,你的ArduBlock将为中文。

2.积木搭建

我们来看这样一个程序,它能实现开关灯的功能(如图源于:职称论文www.618jyw.com
4),具体描述就是按一次按钮,LED灯亮,再按一次按钮,LED灯灭。在以往的编程中,我们写代码一般采用“与2取余法”或者“取反法”来实现切换。
观察图4程序编写,如搭积木那么简单,还可以对程序进行批注,程序中的各个模块都是从左侧的模块库里“拖进”编程界面的,然后用这些模块积木进行拼接,拼接对了,会发出一声“咔”的清脆响声。如果要删去模块,只需要将模块“拖出”编程界面即可。
程序中“主程序”循环结构模块和“如果/否则”条件判断模块都是从“控制”分类中提取的,“非”、“设置数字变量”来自于“变量/常量”分类,而“设定数字针脚值”来自“引脚”分类,这样的分类条理非常清晰,方便用户查找到所需功能模块。

3.高度集成

ArduBlock中集成了游戏摇杆、超声波传感器、舵机、SD卡写入、盾板通讯、I2C读写等常见却可以控制复杂设备编程的模块,让创客们能专注于创意思维而不为编程所累。
● ArduBlock典型范例
我们在认识Arduino时已经知道编写相关程序需要Arduino控制板及一定的硬件支持,然后将编制好的程序写入控制板中,从而实现感知物理世界,控制物理世界,让虚拟世界与物理世界联通。然而,类C语言的编写环境让以方块字为工具的我们需要花大量的时间记忆各种命令及关键词,在达到熟练运用的路途上历经艰辛。
下面我们以智能过道灯为例讲解如何用ArduBlock进行程序编写。
1.功能
楼梯间都装有智能灯,当有人走到楼梯口并发出声音时,过道灯自动亮起。这里需要两个条件同时满足(环境亮度不足,有人走过而发出声音)。
2.器材
要实现此功能,我们除了需要Arduino控制板外,还需要感知光线和声音变化的器材,我们选择光敏传感器和声音传感器,当然还需要一盏LED作为过道灯。
3.连线
为了降低操作难度,可以使用成品的杜邦线、控制板加盾板的结构,外加成品的传感器电子积木,这样就省去了繁杂的面包板加电阻及一堆连接线。
4.编程
制作完的过道灯,当环境亮度低,光敏传感器的值大于800,且环境声音大,声音传感器的值大于700时,过道灯亮起;当低于上述数值时过道灯熄灭。通过传感器使过道灯具有一定的智能控制。当然在此基础上,还可以引导学生进一步探究,因为渐进的学习可以激发学生进行深入探究。 5.调试
我们先来看所有设备连接之后的效果,从图5中可以看出,接线非常简单,即使是小学生也不存在设备连接上的困难。设备连接完毕后,我们需要分三步完成我们的任务:
(1)记录三个信息:声音传感器接在模拟针脚0,光敏传感器接在模拟针脚5,LED灯接在数字针脚1。
(2)获取常态下光敏传感器及声音传感器的值,当低于此数值时LED应该不亮起。通过串口监视器可以获取此数值,如图6所示。
(3)编写程序,有了第二步获得的数值,具体编程就简单多了,唯一需要注意的是过道灯的亮起是有一个延时的,完整程序代码见图7。
● ArduBlock课程设置建议
笔者在江苏省南通市港闸区进行实验教学时发现,对于小学高年级的学生,因为已经有过Scratch的学习经历,所以对于ArduBlock的软件界面及使用并不感到陌生,由于ArduBlock完全与硬件结合,所以学生不会遇到代码语言教学所遇到的如打字速度的问题;而其积木式的搭建方式也不会出现语法拼写错误的问题。因此使用ArduBlock开展Arduino学习时,需要更多地关注硬件的连接与控制及作品的创意。
在部分学校六年级进行实验教学,一学期安排共计13课时,内容涉及:认识ArduBlock(1课时)、点亮LED灯(1课时)、自制温度计(1课时)、夏日清凉帽(2课时)、床头小夜灯(2课时)、智能楼道灯(2课时)、厨房小卫士(2课时)、学生创意设计(2课时)。
结合我区开展ArduBlock教学时的一些经验教训,对各地开展ArduBlock课程有如下几点建议:①这部分内容的教学对象可以考虑小学高年级及以上学生,以主题任务的方式开展教学。②硬件器材要以模块化的电子积木为主,尽可能不使用面包板、电阻等基础电子零部件。③学生的知识储备包括软硬两方面,硬件需要学生了解一定的电路知识,认识常见的传感器模块。软件需要学生掌握Scratch软件的使用,具有初步的编程思想。④教学过程中涉及编程环节时,可以尝试让学生比较与Scratch的异同点,从而寻找编程语言的内在关系。⑤以学生身边的案例入手,寻找贴近生活的实例,如交通信号灯、床头小夜灯、厨房小卫士等。
总之,ArduBlock是一门比较适合学校开展的基于Arduino的物联网趣味编程的教学语言,关于ArduBlock的教学尝试和课程研究,有助于学生直观地感受到物理世界来自虚拟世界的控制过程与方法,进而提高学生的创作力。
相关文章
推荐阅读

 发表评论

共有3000条评论 快来参与吧~