有趣的智能小车除了具备直行、转弯、亮灯功能以外,还可以拥有报警、载歌载舞等特技。本课,就让我们一起来设计一辆能载歌载舞的智能小车吧!
图5-1 智能小车演奏的歌曲简谱
要让小车发出警报或演奏出动听的旋律,需要借助以下硬件模块:
蜂鸣器是一种一体化结构的电子讯响器,可以发出不同频率的声音。智能小车套件中的蜂鸣器模块(如下图5-2所示)已集成在主控板上。
图5-2 智能小车主控板上集成的蜂鸣器模块
要完成本课的设计任务,除了认识蜂鸣器以外,还需了解以下知识概念:
这条指令可以控制蜂鸣器发出不同频率的声音。频率默认值为523,取值范围为(20—20000)。在此范围内,频率值越大,声音的音高越高。
这条指令主要用于控制蜂鸣器的音量大小,默认值为5,取值范围为(0—255)。在此范围内,响度值越大,声音越响。
我们平时听到的音乐旋律,是由一个个音符组成的,而每个音符都有固定的频率值。C调音符相对应的频率值如下图5-3所示:
图5-3 C调音符相对应的频率值
| 先编写如下图5-4所示的程序,编译下载到小车中运行,仔细倾听小车发出的声音。然后编写如下图5-5所示的程序,同样编译下载到小车中运行,感受小车发出的声音是否和前一次相同?根据你的分析,哪一段程序是正确的? 我感觉,小车发出的两次声音: □相同 □不同 据我分析,□图5-4 □图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”形等。 |
运用所学的知识为父母设计一辆俏皮可爱的生日祝福小车。
我设计的生日祝福小车亮点有:
_______________________________________________________________________________
_______________________________________________________________________________
我编写的这个智能小车程序保存在“好好搭搭”网站上的名称是__________________;爸爸妈妈看了后,觉得我的作品__________________;将作品分享后,有_________人给我点赞;综合别人给我提的建议,我认为还可以在以下方面进行改进:_______________________________________________________________________________。