ArduBlock:物理世界与虚拟世界的桥梁

来源 :中国信息技术教育 | 被引量 : 0次 | 上传用户:qweasd123qweqwe
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  编者按:在科技发展日新月异的今天,信息技术教学已经远离了开、关机还需要反复讲解的时代,三岁孩童熟练地摆弄着iPad已非奇事。自策划了“Scratch来了”这一专题之后,编辑深刻感受到研究程序语言的老师的可爱,他们的执著、他们的探索,使得程序教学不再那么枯燥,焕发出勃勃生机。因此,杂志特别策划了这一专栏,将陆续刊发一些程序教学领域有代表性的教学实践。也期待更多老师投身到程序教学中去,通过自身的践行,推动程序教学的复兴。
  我们知道Arduino这一软硬结合的产品可以创意出很多作品。然而,类似JAVA、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.JAVA插件
  ArduBlock是使用JAVA语言开发的插件,配合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.积木搭建
  我们来看这样一个程序,它能实现开关灯的功能(如图4),具体描述就是按一次按钮,LED灯亮,再按一次按钮,LED灯灭。在以往的编程中,我们写代码一般采用“与2取余法”或者“取反法”来实现切换。
  观察图4程序编写,如搭积木那么简单,还可以对程序进行批注,程序中的各个模块都是从左侧的模块库里“拖进”编程界面的,然后用这些模块积木进行拼接,拼接对了,会发出一声“咔”的清脆响声。如果要删去模块,只需要将模块“拖出”编程界面即可。
  程序中“主程序”循环结构模块和“如果/否则”条件判断模块都是从“控制”分类中提取的,“非”、“设置数字变量”来自于“变量/常量”分类,而“设定数字针脚值”来自“引脚”分类,这样的分类条理非常清晰,方便用户查找到所需功能模块。
  3.高度集成
  ArduBlock中集成了游戏摇杆、超声波传感器、舵机、SD卡写入、盾板通讯、I2C读写等常见却可以控制复杂设备编程的模块,让创客们能专注于创意思维而不为编程所累。
  ● ArduBlock典型范例
  我们在认识Arduino时已经知道编写相关程序需要Arduino控制板及一定的硬件支持,然后将编制好的程序写入控制板中,从而实现感知物理世界,控制物理世界,让虚拟世界与物理世界联通。然而,类C语言的编写环境让以方块字为工具的我们需要花大量的时间记忆各种命令及关键词,在达到熟练运用的路途上历经艰辛。
  下面我们以智能过道灯为例讲解如何用ArduBlock进行程序编写。
  1.功能
  楼梯间都装有智能灯,当有人走到楼梯口并发出声音时,过道灯自动亮起。这里需要两个条件同时满足(环境亮度不足,有人走过而发出声音)。
  2.器材
  要实现此功能,我们除了需要Arduino控制板外,还需要感知光线和声音变化的器材,我们选择光敏传感器和声音传感器,当然还需要一盏LED作为过道灯。
  3.连线
  为了降低操作难度,可以使用成品的3p杜邦线、控制板加盾板的结构,外加成品的传感器电子积木,这样就省去了繁杂的面包板加电阻及一堆连接线。
  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的教学尝试和课程研究,有助于学生直观地感受到物理世界来自虚拟世界的控制过程与方法,进而提高学生的创作力。
其他文献
东海隧道是一座上下行分离的四车道公路隧道,明洞结构采用拱形断面结构型式,暗洞结构设计按新奥法原理进行,采用复合式衬砌。本文介绍该隧道的施工技术,希望能对今后类似工程
随着汽车行业的迅猛发展,汽车逐渐走入大众的视野,但因车内温度过高、氧气不足、有害气体浓度过高而导致的中毒窒息事件不断发生,引起社会各界人士的广泛关注。为了防止此类
听和说是人们日常交际的主要方式.人们在工作、学习、生活中,互相接触交往,就有听话和说话的需要.当前处于改革开放的新时期,人际间的交往更频繁,尤其在经济交往和业务谈判中
相当多的人对毛泽东的人权思想感到陌生,也有人对毛泽东是否有自己的人权思想抱有怀疑,甚至于否定毛泽东的人权思想和实践。而事实上,毛泽东明确使用了人权这一概念,对人权问
研究有限齐次Mapкoв链,给出了一个化随机矩阵为块三角形的简便方法,并且对相应的矩阵P的遍历性矩阵,给出了遍历性指标为S^2-3S+3的新证明。
世界经济论坛发布的《2012~2013年全球竞争力报告》显示,中国内地经济的排名,在经过数年稳定上升后,今年下降三位,排名第29位。这也是中国的竞争力排名近八年以来的首次下降。由于
汽车电子涉及领域广泛,典型的有电控系统、安全系统、车载多媒体系统、车载通讯系统、车载家电等等。而近年来汽车电子化、智能化、多媒体化和网络化的应用,不仅提高了汽车的
从2000年全国中小学信息技术教育工作会议提出信息技术与课程整合起,信息技术与课程整合从激情燃烧中起步探索,遭遇并突破发展“瓶颈”,迎来了“整合”不断普及与深化、以发掘课程内涵为主要标志的多元化、个性化发展的新时期。如今,创设情境已经成为教学中最普遍的常态,突破教学重点难点逐渐成为最主流的“整合”方式。“整合”已经从课堂教学的外围走向课堂教学的核心,成为中小学教师设计、组织教学的重要方式。面向“十
很小的时候,爷爷就不断地教育我,要吃干净碗里的每一颗饭粒。一直到长大成人,我都坚持着这个习惯。尽管,我并没有真正理解,自己碗里没吃干净的那些米粒,除了帮助我养成节约粮食的习惯之外,还能意味着些什么。  2007年,美国人约翰·布林在看到自己的儿子为了学术能力测验而苦苦地在线查找资源之后,他一口气将10000多个词汇定义全部键入到网络中,创办了一个非常有趣的网站——fmerice.com。这个网站的