第5课 让智能小车唱起来

情景描述

有趣的智能小车除了具备直行、转弯、亮灯功能以外,还可以拥有报警、载歌载舞等特技。本课,就让我们一起来设计一辆能载歌载舞的智能小车吧!

图5-1 智能小车演奏的歌曲简谱

 

知识概念

要让小车发出警报或演奏出动听的旋律,需要借助以下硬件模块:

蜂鸣器模块

蜂鸣器是一种一体化结构的电子讯响器,可以发出不同频率的声音。智能小车套件中的蜂鸣器模块(如下图5-2所示)已集成在主控板上。

图5-2 智能小车套件中的蜂鸣器模块

 

要完成本课的设计任务,除了认识蜂鸣器以外,还需了解以下知识概念:

这条指令可以控制蜂鸣器发出不同频率的声音。频率默认值为523,取值范围为(20—20000)。在此范围内,频率值越大,声音的音高越高。

 

这条指令主要用于控制蜂鸣器的音量大小,默认值为5,取值范围为(0—255)。在此范围内,响度值越大,声音越响。

我们平时听到的音乐旋律,是由一个个音符组成的,而每个音符都有固定的频率值。C调音符相对应的频率值如下图5-3所示:

图5-3 C调音符相对应的频率值

 

试一试:

先编写如下图5-4所示的程序,编译下载到小车中运行,仔细倾听小车发出的声音。

图5-4 让蜂鸣器发出声音的程序代码一

然后编写如下图5-5所示的程序,同样编译下载到小车中运行,感受小车发出的声音是否和前一次相同?根据你的分析,哪一段程序是正确的?

图5-5 让蜂鸣器发出声音的程序代码二

 

作品制作

载歌载舞,即边唱歌边跳舞。要让小车随着歌曲《两只老虎》载歌载舞,具体可以按以下步骤操作:

第一步:编写第一小节

通过“试一试”可以发现,要让小车演奏出指定的音符,必须把“设置蜂鸣器频率”这个指令放在“设置蜂鸣器响度”指令前面。节拍则可以用“等待”指令来控制。一般情况下,把1秒作为1拍,0.5秒作为半拍。歌曲《两只老虎》第一小节的程序如下图5-6所示:

图5-6 歌曲《两只老虎》第一小节的程序代码

 

第二步:使用音符变量

通过分析歌曲《两只老虎》的乐谱可以发现,很多音符都是重复出现的。但没有规律可寻的频率值记起来并不容易。为方便程序编写,我们可以用具有一定含义的简洁的变量来存储频率值。

变量是数据的临时存放场所。一般情况下,变量名由字母、数字、下划线等字符组成。取变量名时,尽量简洁易懂,但不能出现中文字符,否则会编译失败。要在Scratch中使用一个变量,具体可以按照以下步骤操作:

首先单击“数据”类别中的“新建变量”按钮。在弹出的“新建变量”对话框中输入变量名,如音符“1”对应的变量名可命名为“yf1”,输入完毕后单击“确定”按钮(如下图5-7所示)。

图5-7 创建变量yf1的图示

然后把“将yf1设定为”指令拖放到“好好搭搭硬件程序”下方,并在参数框内输入“523”。

最后把变量“yf1”拖放到“设置蜂鸣器频率”指令的参数框中,组合成为“设置蜂鸣器频率为 yf1”。 重复上述三个步骤,给音符“2”和“3”分别创建相应的变量名yf2、yf3,并在程序中运用。具体程序如下图5-8所示:

图5-8 使用变量后的程序代码

 

试一试:

首先仔细寻找《两只老虎》乐谱中的几种音符,并记录在下列表格中(如图5-9所示);然后对照“C调音符频率表”填写相应的频率值;最后创建相应的变量名。

图5-9  《两只老虎》音符记录表

 

第三步:让小车载歌载舞

小车演奏 1 2节拍时,朝左前方行驶,演奏 3 1节拍时,往右前方行驶。如此重复,小车就可以载歌载舞了。 要让小车朝左前方或右前方行驶,需在原有程序的基础上添加“设置双电机”指令。具体程序代码如下图5-10所示:

图5-10 小车载歌载舞的程序代码

 

练一练:

根据歌曲《两只老虎》的乐谱编写完整的程序代码,让小车以多种舞姿载歌载舞,比如“S”形、“8”形、“O”形等。

 

拓展思考

运用所学的知识为父母设计一辆俏皮可爱的生日祝福小车。