图形化编程与炫彩多变的灯珠矩阵
2021-10-11林娟林建斌
林娟 林建斌
教学背景
当今时代,编程教育逐步走向低龄化,越来越多的青少年较早地与编程和人工智能相关产品深度接触,这已经是科技发展所形成的不可阻挡的趋势。而国家对编程教育的低龄化发展也愈加重视,中小学编程教育课程逐渐得到普及,信息技术(含编程)也开始被纳入高考范围。这些无不彰显着编程教育在我国教育体系中的地位正稳步提高。
青少年学习编程,更多地需要基于兴趣这个出发点。在枯燥的代码书写中掌握编程的理念与逻辑性,培养青少年的创新创造意识,并不是一件容易的事。针对这个问题,图形化编程与开源硬件或许是个潜在的突破口。图形化编程将密密麻麻的英文代码转化成一个个积木式的功能模块,通过模块的调用与模块间的穿插组合实现各种代码功能,使得编程的逻辑性变得显然,而色彩丰富的界面也让孩子眼中的编程更加有趣。开源硬件则将原本纯软式的编程转变为软硬结合的形式。孩子们在电脑上编写的程序,都可以在相应的硬件中得到真实可感的呈现,让编程过程真正成为一个创造性过程。从虚拟界面中的一行行代码,映射到真实世界里一个个可操作的编程项目,孩子们能在动手创造的过程中体会到编程的乐趣与作用,从而大大提高他们对于编程学习的积极性。
教学主题
本节课基于图形化编程与micro:bit开源硬件,以“炫彩多变的灯珠矩阵”为主题,引导学生在材料准备与组装、模块学习、项目设计与实施的过程中了解图形化编程的逻辑原理,掌握灯珠控制模块的使用,利用灯珠矩阵创作出自己的灯光作品。
教学实施
主题引入
每当夜幕降临,城市的夜晚总是被炫目多彩的霓虹灯光点亮。一些建筑高楼的外墙上还会借助变换的灯光呈现出各种美丽的图案。不同灯光的点亮和熄灭、各类灯光颜色的变幻,构成了每一座城市独特的夜景。如何做到精确地控制这些灯光,这其中便是编程在发挥作用。而本节课所要学习的灯珠矩阵,就能够通过模块代码控制各色灯珠的亮灭,创作出一个个精致的灯光项目。
灯珠矩阵(如图1),顾名思义,就是由一个个可以通过编程控制点亮的灯珠整齐排列形成的方阵。而我们所要讲的6×6灯珠矩阵,则是由6行6列,一共36个灯珠组成的方阵。方阵中,每一个灯珠的颜色都由3部分组成:红色、绿色和蓝色。没错,这是光的三原色。因为矩阵的每一个灯珠都能够进行单独编程精确控制,我们只需要通过调控这3种原色的配比,就可以让每一个灯珠都能呈现出不同的颜色。36个灯珠的亮灭状态与炫彩多变的光色结合起来,就可以做出十分丰富而有趣的作品。
材料准备、组装与硬件测试
材料清单见表1。
材料组装:将micro:bit下端插入主板的长插槽;将灯板驱动插入主板的插槽A或者插槽B;将6×6灯珠矩阵与灯板驱动相连接;在主板后方的电池槽中装入电池(如图2)。
硬件测试:组装完成后,将主板左侧电源开关拨至“on”,右侧模块开关拨至“test”,进行硬件测试。如果灯珠矩阵上的灯珠全部点亮,并不断变换颜色,表明硬件运行正常。
声明灯珠位置
组装完micro:bit和灯珠矩阵,接下来要做的就是控制矩阵中的这些灯珠了。矩阵里有36个灯珠,我们要精确控制每一个灯珠的亮灭与颜色,就必须以某种方法声明每一个灯珠的位置,也就是告诉计算机,我们现在要控制的是哪一个灯珠。那应该怎样表达这些灯珠的位置呢?
像素位定位:从矩阵左上角的灯珠开始,按照先从左到右,后从上到下的顺序给每一个灯珠编号。左上角的灯珠记为0号,往右依次是1号、2号、……一直到5号;从第2排开始就是6号、7号……以此类推,右下角最后一个灯珠是35号。这些编号,相当于就是每一个灯珠的名字,叫作像素位。按照以上规则完成编号后,我们只需声明是第x号(x在0~35之间)灯珠,就能确定它的位置(如图3)。
坐标定位:灯珠的位置还可以用“第几列”“第几排”这样的描述确定。我们将矩阵中的每一列,按从左到右的顺序依次标记为第0列、第1列……一直到第5列,一共是6列;再将矩阵中的每一排,按从上到下的顺序依次标记为第0排、第1排……一直到第5排,一共是6排。这样每一个灯珠,我们都能够说出它所在的是第几列、第几排了。但是灯珠数量增多之后,这样的描述显然有些繁琐,不如像素位定位法简单。所以为了简化这种描述,我们就将第x列、第y排的灯珠位置,记作(x,y),这就是灯珠的坐标。例如,我们只需声明灯珠(3,0),别人就能知道我们所说的是第3列、第0排的灯珠(如图4)。
灯珠的控制方法
解决了灯珠位置的确定问题,灯珠的控制就简单了许多。在图形化编程的DinoStick扩展包中的DxK模块里,通过表2中的几个功能模块,就能够控制灯珠矩阵了。
案例学习
有了以上几个功能模块,我们就可以开始控制灯珠做一些有趣的事情了,别看功能模块不多,但能做到的事情可丰富了,下面我们用2个案例学习一下这些模块的实际运用。
项目展示
教师挑选具有代表性的學生作品进行展示与评价,其余作品可由学生进行组内分享与讨论。作品的挑选与评价可以参考如下几个方面。
·案例要求的完成度:是否实现了案例描述的基本功能?
·个人创新程度:加入了哪些具有特色的变化?
·是否反映了编程过程中学生普遍存在的问题?
反思与总结
灯珠矩阵将图形化的编程与炫彩灯光的呈现效果相结合,从生活中绚丽多彩的霓虹灯触发,用简洁的功能模块,与各种不用的代码逻辑相互碰撞,从而衍生出丰富的成果。五颜六色的实物作品既能让学生学习到编程的逻辑性和思维模式,又能激发出他们的学习热情与创新创想。而硬件的组装与效果展示不仅锻炼了学生的动手操作能力,更让他们体会到编程的真实可感,并在展示作品的同时带来自信心和成就感。这种软硬结合、寓教于乐的教学模式无论是在提高学生的逻辑思维能力上,还是在为他们未来一步一步走向计算机前沿领域的道路铺垫中,都是极具前景的方式。
在本节课的实践当中,也存在一些值得思考与改进的地方。比如,在案例分析环节更多地由教师带领,学生自主思考的时间较少;在案例的延伸优化与展示环节上,需要给学生更充足的时间进行案例的改进与展示,但课堂时间有限,可以考虑定期开设额外的展示课进行个人项目的展示。