超级音乐家

本课使用Speaker块去驱动M5GO发出声音,制作一段音乐,使用按键控制与小伙伴们来一次大合奏游戏。学完本课你将掌握声音的原理,加深程序运行结构的了解,学习次数循环Repeat。

一、制作个人音乐

本小节将学习如何编程驱动M5GO发出声音,并制作一些简单的音乐。

我们每天会听到很多很多的声音,你是否思考过,为什么会有不同的声音?声音是怎么产生的?

物理小实验:我们可以把尺子放在桌边并将一小段伸出桌外,用手去拨动尺子,当尺子伸出桌面的部分较多时,拨动后尺子摆动缓慢且发出的声音低沉,当尺子伸出桌面较少时,拨动后尺子摆动快速且发出声音高亮。

实验分析:通过拨动尺子使其震动,验证了“声音是由震动产生的”这一物理原理,尺子震动的速度也就是我们所说的“频率”,当频率越高,则音调越高,一般人的听力范围为20H到20KH,大小(超声波)或小于(次声波)这个范围的声音,我们无法听到。

1.音调与频率

了解了声音的原理,我们开始使用Speaker块来驱动M5GO发出声音,点击程序块菜单中的Speaker选项,将“Speaker beep freq”块拖动到编程区域,并连接到“Setup”,点击块上的参数框,可以修改声音的“频率”、持续时间“,尝试修改不同的数字并运行程序,听听声音有什么不同吧。

在一些乐谱上,能够看到一些音符,像是”C-D-E-F-G-A-B“,事实上这些音符只是对不同频率声音的称呼。

在Speaker选项中,也提供了发出指定音调的块“Play tone”,将它添加到程序中,点击块上的三角按钮选择不同的音调,还可以设定它的节拍。


我们通过一个程序来测试频率与音调的关系。


使用“Play tone”制作一小段音乐。


当我们想要编写一段长的音乐时,其中会有很多重复的小节,通过“Repeat“块,可使其包括的程序块重复执行指定的次数。


下面的两个程序,执行的效果是一样的,不同的是,使用了”Repeat“的程序,变得更加精简且易懂。

在编程过程中,除了实现功能以外,还要有清晰的结构与可读性,这样才称得上是一个好程序。


二、大合唱

使用按键控制与“Play tone”块,你可以与几个小伙伴一起,每个人分别代表一个或者多个音符,配合的,来一场大合奏。


 


评论:
相关文章
ESP32 使用DAC模拟输出完成两路呼吸灯

ESP32的DAC函数可以实现真正的模拟输出。


在 ESP32 上使用 LEDC (PWM)

ESP32 没有Arduino输出 PWM 的 analogWrite(pin, value) 方法,取而代之的 ESP32 有一个 LEDC 来实现PWM功能。


Micropython基于ESP32的多线程开发

本文学习如何使用ESP32开发板来进行多线程的开发。


ESP8266 Arduino WIFI

ESP8266有三种工作模式,分别为:AP,STA,AP混合STA


ESP32 SPI

ESP32有四个SPI外设,分别为SPI0、SPI1、HSPI和VSPI。