Page Title

第5课 蜂鸣器的使用——音乐盒


2019-08-02 16:53:00

blob.png

音乐盒又叫做八音盒。1796年由瑞士钟表匠安托·法布尔发明,常见的音乐盒是转动盒内的链环,音乐盒便可自动演奏音乐,一般一个音乐盒只有一首音乐。若是要让音乐盒一直重复播放音乐,一首歌结束之后就需要去转动链环,那样便不能悠闲舒适地听音乐了。在沿袭传统,又结合现代技术的情况下,如何去创造一个属于自己的音乐盒呢?一个能够自己设定音乐,自己设定开关的音乐盒。

blob.png

       音乐盒的制作需要有一个会发声的工具,还有一个可控制开关的工具。按键作为常见的开关装置大家已经熟知。接下来好搭BOX带来一个会“说话”的新工具——蜂鸣器。

蜂鸣器模块

blob.png

蜂鸣器是一种能够发出指定频率声音的装置(如下图5-1所示)能将音频信号转化为声音信号的发音器件,在家用电器上,在银行、公安的报警系统中,在电子玩具、游戏机中都得到普遍应用

blob.png

    图5-1 蜂鸣器模块

声音是由物体振动产生的声波。它有三个主观属性:响度、音调和音色。响度指人耳感受到的声音强弱,也叫做“音量”;音调指人耳能分辨一个声音调子的高低程度;音色指声音振动频率的特性,不同的物体由于材料、结构不同,发声时的振动频率也不相同,就会产生不同音色的声音。

对于蜂鸣器来说:它的驱动电流决定了所发声音的响度;它的工作频率决定了所发声音的音调;它的内部结构与发声原理决定了所发声音的音色。

 

要控制蜂鸣器的响度和音调,还需要使用以下新的指令:

blob.png

blob.png

使用这个指令可以设置蜂鸣器的响度,对于蜂鸣器来说,使用这个指令可以控制所发出声音的音量。

blob.png

blob.png

使用这个指令可以设置蜂鸣器的频率,对于蜂鸣器来说,使用这个指令可以控制所发出声音的音调。

blob.png

要制作本课的范例作品,可以按以下步骤先连接硬件、运行插件程序,然后进入“好好搭搭”网站编写、调试、编译、下载程序。

准备工作:搭建硬件、运行插件、进入网站                        

blob.png 

第一步:搭建硬件。将蜂鸣器模块和按键模块,放置在主控板上的任意六边形位置,磁铁吸合;接着用USB线把主控板和计算机连接起来,然后打开主控板电源开关(图5-3)。

第二步:运行插件。打开“好好搭搭硬件下载”插件,确认插件程序显示“打开端口成功”。

blob.png

5-2 “音乐盒”范例作品硬件图

第三步:进入网站。打开浏览器进入“好好搭搭”网站;单击网站上方的“创作”按钮,在“创作模板”网页中选择“好搭BOX智能实验箱”模板,进入“模版项目页”;在“模版项目页”中单击网页右上角的“转到设计页”按钮,进入“好搭BOX 编程设计页”。

若要制作音乐盒,首先需要掌握如何让蜂鸣器发出不同的声音,然后增加按键的控制。

案例一:让蜂鸣器演奏音符                       

blob.png 

要让蜂鸣器演奏一个音符,可以在“更多模块”中先找到设置蜂鸣器输出频率和强度的指令,将两条指令分别添加到舞台上的“重复执行”指令中,默认输出频率为“523”,输出强度为“5”。参考下图5-6的音符表,可以看到让蜂鸣器发出频率为“523”的声音,也就是C调中的“do”;若让蜂鸣器间断地发声声音,可借鉴单色LED闪烁的制作方法,增加等待时间和控制蜂鸣器停止发声的语句。让蜂鸣器以“响一秒停一秒”的规律重复循环,具体程序代码如下图5-3所示:

blob.png

5-3 “让蜂鸣器演奏音符”程序代码

案例二:会唱歌的蜂鸣器                      

blob.png 

[1] 

音乐是由一个个的音符加上节奏组成的,蜂鸣器唱歌和人唱歌一样,按照乐谱的顺序有节奏地发出每一个音调。该案例中,同样使用“设置蜂鸣器频率”和“设置蜂鸣器响度”来控制蜂鸣器歌唱的每一个音符,而节奏可以理解为每一个音符发声的时间长短,这里可用等待语句实现节奏的控制。以《上学歌》中第一句“太阳当空照”为例,共有5个音符,其中前面四个音符都为半拍,第五个音符有两拍,若设置一拍的时间为1秒,则前四个音符声音持续的时间为0.5秒,第五个音符声音持续的时间为2秒,(《上学歌》的乐谱可见图5-6,每一个音符对应的频率值可参照图5-5)本案例具体程序如下图5-4

blob.png

5-4 “会唱歌的蜂鸣器”程序代码

 

blob.png

5-5音调表

blob.png 

5-6《上学歌》简谱

 

blob.png

以上的程序运行之后,蜂鸣器在通电情况下会一直唱歌,如何实现只有按下“中”按键之后,蜂鸣器才会唱歌呢?请你尝试添加控制按钮,并完成整首歌的指令编写。

 

案例三: 快速编曲法                      

blob.png 

从上图5-4程序中可以发现,完成一个音符的演奏需要四条指令(设置蜂鸣器输出音频、设置蜂鸣器响度为5、等待时间、设置蜂鸣器响度为0),而一首歌都有几十个音符,编写整首曲子便需要近百行指令,程序会变得很复杂,不仅不易于观看,之后的制作也容易出错,那如何解决以上的问题呢?

再仔细观察,不难发现,以上四个语句针对不同的音符只需要修改输出的频率和等待的时间长短。在更多模块中,有一个“新建功能块”的功能按键,可以实现将以上四个一句整合为一个语句,具体操作方法如下:

下面以新建一个名为“Note”的音符演奏功能块为例,介绍具体操作步骤:

1.      单击“更多模块”指令类别中的“新建功能块”按钮,在打开的“New Block”对话框中,输入新建的功能块名称“Note”。如下图5-7所示:

 

blob.png

5-7 “新建功能块”对话框

注意:与变量一样,在好搭BOX中功能块名称也不能是中文,只能使用英文字母和数字作为变量名、并且首位必须是英文字母。

由于演奏音符需要指定音符的“音调”、“节拍”,因此需要为新建的功能块添加两个数字参数,并且应该为每个参数添加标签,说明参数的用途。

要添加参数标签,可以先单击“新建功能块”对话框中的“选项”,展开进行具体的设置;再单击“添加文本标签”选项右边的图标,会在功能块名称右边自动出现一个文本标签,用键盘修改标签名称为“音调”。

添加完标签后,继续单击“添加一个数字参数”选项右边的图标,在刚才添加的标签右边添加一个数字参数文本框,修改这个数字参数文本框的名称为“tone”,作为功能块的第一个数字参数。

第二个参数的添加方法与前一个类似,也是先添加文本标签“节拍”,再添加数字参数“beat”。这两个参数添加完成后,如下图5-8所示:

blob.png

5-8 为新建功能块添加数字参数

2.      功能块设置完成后,单击“确定”按钮关闭对话框 。会在“更多模块”指令类别的“新建功能块”按钮下方增加这个新添加的功能块;在脚本区也会增加一个名为“定义Note”的功能块脚本指令。

3.      在“定义Note”指令下方添加“设置蜂鸣器频率”、“设置蜂鸣器响度为5”、“等待”以及 “设置蜂鸣器响度为0”指令;将“定义Note”指令中的“tone”参数拖动到“设置蜂鸣器频率”指令参数位置,“beat”参数拖动到“等待”指令参数位置如下图5-9所示:

blob.png

5-9 “演奏音符功能块”脚本代码

添加了这个名为“Note”的演奏音符功能块后,就可以在主程序中调用它编写演奏音符的程序代码。如下图5-10所示就是基于图5-4的内容,增加了按钮控制,并用新建功能模块改进后的程序代码。

blob.png

5-10 “调用功能块演奏音符”主程序代码

blob.png

蜂鸣器不仅可以根据不同的乐谱制作成百变的音乐盒,还可以应用在我们生活的更多方面,例如门铃、消防警报,救护车警报灯等。下面请你根据阅读材料二中提供的信息,尝试制作更多的案例。

blob.png

我发现:________________________________________________________________

_______________________________________________________________________

 

 

blob.png

蜂鸣器除了用于各种警报,在很多电子产品的提示音中也扮演中重要的角色,请你查找相关应用,并尝试用蜂鸣器制作更多案例。

我打算这么做:_______________________________________________________

______________________________________________________________________

做的时候需要注意:____________________________________________________

______________________________________________________________________


若是唱歌可能两个音符不够明显