做这个软件的初衷其实挺简单的。每次给孩子们讲“声音是由振动产生的”这节课时,都觉得挺费劲。你跟他说“鼓面在振动”,他眼睛瞪得溜圆也看不见。后来我就想,能不能在屏幕上做一个会跳动的鼓,再撒上一把纸屑和沙子,让振动直接“蹦”到他们眼睛里?于是就有了这个小程序。】
打开就能玩,上课不折腾
考虑到是在教室的大屏白板上用,我把界面做得特别简单,也没什么乱七八糟的菜单。一打开,屏幕中间就是一个大鼓,鼓面上散落着花花绿绿的小颗粒。屏幕上方就两个大按钮,字号和触摸区域都设计得很大,就算是站在后排的老师也能伸手点到,不用凑近了去戳屏幕。
右下角有个不起眼的水印,写着“设计:吴健 | 00后勇闯生活”,算是给自己留个小小的印记吧。
两种玩法,讲透两个概念
这个软件的核心其实就是两种敲鼓的方式,对应着课堂上最常讲的两个知识点。
第一种是“用力敲击鼓面”。 你点一下那个绿色按钮,就跟真的拿鼓槌敲了一下似的。这时候你能看到鼓面会猛地往下一沉,然后剧烈地上下抖动,振幅特别大。最直观的是鼓面上那些小颗粒——纸屑和沙子一下子全被弹飞起来,噼里啪啦地往四周蹦。与此同时,电脑会发出一声短促低沉的“咚”的声音,随着鼓面振动慢慢变小,颗粒落回去,声音也就跟着消失了。学生一下子就能明白:哦,是鼓面的振动让沙子跳起来的,振动没了,声音也就没了。
第二种是“持续发声”。 这个按钮是按住才生效的。你用手指头摁住它别松,鼓面就会一直保持一种中等幅度的颤抖,就像有人持续在敲鼓面一样。那些小颗粒也一直处在被弹起来又落下去的循环里,处于一种“沸腾”的状态。同时耳朵里会听到一个持续的低频轰鸣声,你手指一松开,振动和声音几乎是同时停止。这个演示特别适合用来解释“为什么有的声音能一直响?——因为振动一直在持续。”
看不见的物理,藏在代码里
虽然界面看着简单,但我其实在里面藏了一个轻量级的物理引擎。鼓面上那一共250个小颗粒,一半是方形的彩色纸屑,一半是圆形的沙子,每一个都有自己的重量、速度和方向。鼓面振动的时候,振幅越大,传给颗粒的反弹力就越大,蹦得就越高,这模拟的就是能量传递。而且颗粒落地之后还会带点摩擦力,慢慢减速,看起来不会很假。
声音部分我没用现成的音频文件,而是用程序实时合成的。敲鼓那一下是80赫兹往下降的正弦波,听起来就是“咚”的一声;持续发声是60赫兹的三角波,更像是一种低频的轰鸣。这样做的好处是声音和画面能精确同步,振动幅度一变化,声音的强弱就跟着变。
在课堂上到底怎么用?
说实话,我设计的时候就想好了它在课堂上的几个用法。一开始讲课的时候,可以先不着急讲概念,先找个学生上来点一下“敲击”按钮,让全班看看纸屑飞起来的画面,然后反问一句:“你看到什么在动?”孩子自然会说是鼓面。接着你就可以引导了:“鼓面在动,我们给它一个科学的名字,叫振动。”