Page Title

第七课小小收音机


2019-10-24 11:44:34


作品图片


blob.png


情景描述


在创客作品制作中,还会经常使用蜂鸣器,用于提醒或者警告使用者;除此之外,有时也会使用它演奏一些简单的乐曲。本课我们将使用蜂鸣器和板载按键模块制作一个音乐播放器,播放我们喜欢的乐曲。


知识与概念


要学习本课的案例,需要了解以下的概念与原理:

1.蜂鸣器模块

蜂鸣器是一种能够发出指定频率声音的装置,由于结构简单、使用方便,因此在电子产品中应用非常广泛。

blob.png


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

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

当我们使用好搭bit编程界面音乐类别指令下的指令编写音乐程序时,需要将蜂鸣器接在“P0”端口。


2.声音频率与C调音符

声音的频率与C调的音符有如下表所示的对应关系,可以参照这张表,编写一段能够演奏一个你最喜欢音符的程序脚本。

blob.png



要制作本课的范例作品,还需要学习以下新的指令: 

1. ”播放音调持续节拍”指令

blob.png

这个指令属于“音乐”类别指令,使用这个指令可以设置蜂鸣器播放声音的音调和节拍,即播放一段时间的音调。有两个参数,一个参数是选择音调,一个是选择节拍。


音调参数:

blob.png

可以根据乐谱选择低中高共21个音调。


节拍参数:

blob.png

播放音调所用的时间,选择的数值越大,播放的时间越长。


2.“播放铃音”指令

blob.png

这个指令属于“音乐”类别指令,使用这个指令可以让蜂鸣器持续播放某一音调,参数默认时“中C”,可以根据自己的需要选择音调。


3.“暂停播放节拍”指令

blob.png

这个指令属于“音乐”类别指令,使用这个指令可以暂停音乐播放的时间为多少个节拍,默认参数是1节拍,可以根据需要修改节拍,设置暂停的时间。

 

作品制作


1.作品说明

音乐盒是对蜂鸣器、板载按键以及相关指令进行综合应用的案例,本课以“两只老虎”为例来展开程序的编写,先编写发出一个音符,再编写发出一句,最后编写整首歌,再使用板载按键来控制音乐的播放。程序编写完成后,通过乐高搭建,搭出音乐盒的结构造型。从而更加完整的完成音乐盒的案例制作。

两只老虎乐谱如下:

blob.png


2.硬件连接

将模块与haoda:bit连接起来:蜂鸣器模块连接在“P0”端口;接着haoda:bit与计算机连接,将haoda:bit开机,确定电脑资源管理器跳出“MICROBIT”U盘,进入下载模式。

blob.png


3.让蜂鸣器演奏一个音符

登录“好好搭搭”网站,选择“创作”栏目中的“好搭bit模板”,进入“haoda:bit编程设计页”进行编程。

要让蜂鸣器演奏一个音符,可以在“无线循环”指令中,使用”播放音调持续节拍”指令,修改指令的参数,我们来设置“两只老虎“歌曲的第一个音调,C调音符1对应音调是中C,我们设置最短的一个节拍为1/2。具体程序代码如下图:

blob.png


4.让蜂鸣器演奏多个音符

让蜂鸣器演奏“两只老虎“第一句”两只老虎”, 要让蜂鸣器演奏多个音符,每个音符都应该使用”播放音调持续节拍”指令,修改参数音调和节拍,如下图所示就是演奏第一句歌曲的程序。

blob.png


5.用板载按键控制乐曲演奏

按照以上步骤编写的程序,程序编译后下载到主控板上会马上自动播放。为了更便于控制,可以添加用板载按键控制的功能:只有按下按键,乐曲才会播放。

将上面程序中“无线循环”指令换成“当按键按下”指令,这个适合板载按键就能控制音乐盒的播放。具体的修改程序代码如下图所示:

blob.png


6.让蜂鸣器演奏整首音乐

根据上面的步骤,将生日歌完善的进行演奏!

试一试:除了“生日歌”这首乐曲,你还能编写其它喜欢的乐曲演奏吗?


拓展与思考


你能够使用7个按键和1个蜂鸣器模块,制作一个简单的电子琴吗?

我打算这么做:_____________________________________________________________________________________________________________。

做的时候需要注意:_________________________________________________________________________________________________________。