第二课:认识蜂鸣器和声音奥秘

1、编程知识点(循环逻辑、变量)

2、模块知识点(蜂鸣器模块)

3、科学知识点(声音的奥秘)

环境:网络及手机/电脑

准备:小龟小车主控板

第二课:认识蜂鸣器和声音奥秘



第一节:认识蜂鸣器和声音频率(约15分钟)


课程内容

1、认识蜂鸣器和图形编程蜂鸣器模块

2、声音频率的基础知识和实际体验对应的频率


1、认识蜂鸣器和图形编程蜂鸣器模块

首先来认识一下,主控板上红圈圈出来的位置就是蜂鸣器。

小龟还在网上找了其他蜂鸣器的样式,小伙伴们也可以认识一下。



2、声音频率的基础知识和实际体验对应的频率

大家都知道声音的频率越高越尖,越低越低沉。正好我们用图形编程来验证一下!

前面是频率,后面是播放时长赫兹(hz),赫兹是频率的单位。

频率和播放时长都是可以修改的~


我们先来验证一下800赫兹的声音!

<xml xmlns="https://developers.google.com/blockly/xml"><block type="buzzer_play" id=",|UcfMZL?sS.Qd4U7=E;" x="69" y="156"><value name="hz"><shadow type="math_number" id="(;wXUfj%O6O$90tNSYP5"><field name="NUM">800</field></shadow></value><value name="time"><shadow type="math_number" id="@Q$2!0TcX|Q@Q`qG;!gQ"><field name="NUM">1</field></shadow></value></block></xml>

小伙伴们可以随意输入一些数值,体验一下不同频率蜂鸣器发出声音的高低。

趣味挑战

人类的听力极限,探索人类能听到的声音的上限和下限!



第二节:认识音乐音阶和播放简谱(约20分钟)


课程内容

1、音乐简谱与声音频率的基础知识

2、体验图形编程简谱模块


1、音乐简谱与声音频率的基础知识

我们知道音乐里的音阶其实就是固定频率的声音,那么我们尝试一下用蜂鸣器来模仿音乐音阶。

感兴趣的小伙伴还可以去百度搜索一下,各个音阶对应的频率。

小龟为您提供了部分音阶对应的频率,把这些数值输入到框内,蜂鸣器便可以发出对应的音符声音。


<xml xmlns="https://developers.google.com/blockly/xml"><block type="buzzer_play" id="ex1Pu(]S?q)5x.gJel@F" x="62" y="128"><value name="hz"><shadow type="math_number" id="8N_{rwLy9JYmfD17#*=n"><field name="NUM">800</field></shadow></value><value name="time"><shadow type="math_number" id="b*#V,%S|u2kkrjrN!rD$"><field name="NUM">1</field></shadow></value></block></xml>



2、体验图形编程简谱模块

我们网站图形编程中已经有了一部分简谱,点击执行蜂鸣器就可以开始播放歌曲了,小伙伴们可以体验一下!

<xml xmlns="https://developers.google.com/blockly/xml"><block type="buzzer_music_item" id="zPl],gjbSP16{0~oDu*y" x="16" y="447"><field name="music">5_5_ | 6 5 1' | 7 0 5_5_ | 6 5 2' |&#10; 1' - 5_5_ | 5' 3' 1'| 7 0</field></block></xml>

还可以点击这个积木块,可以按照自己的想法修改里面的内容~

<xml xmlns="https://developers.google.com/blockly/xml"><block type="buzzer_music" id="Iok4JXy7Ro]79y+0O}4j" x="16" y="60"><field name="music">1=2=3=4=5=6=7=</field></block></xml>

趣味挑战

百度自己喜欢的歌曲的简谱,参考小龟给出的语法,挑战一下自己。

小龟音乐简谱格式规范



第三节:图形编程实现警报效果(约25分钟)


课程内容

图形编程使用递增FOR循环和变量


我们在这一节,将会学习递增FOR循环和变量。

点击下方视频,我们可以先来听一下警报效果。可以听出来他是重复一段“逐渐上扬+逐渐降低”的音效来达到的。

现在我们来看一下这个外星人语音的图形编程。

小伙伴们可以执行这段图形编程体验一下。

<xml xmlns="https://developers.google.com/blockly/xml"><variables><variable id="Nyp[NV(ulaRe*2wK!/1S">i</variable></variables><block type="controls_repeat_ext" id="tz2tGM`mxoVD}nlZ_FKi" x="16" y="102"><value name="TIMES"><shadow type="math_number" id="gPQGEhN]th-i}c)7P#,t"><field name="NUM">10</field></shadow></value><statement name="DO"><block type="controls_for" id="iUK:j(4x|$h$]g};D;)3"><field name="VAR" id="Nyp[NV(ulaRe*2wK!/1S">i</field><value name="FROM"><shadow type="math_number" id="HrhCnecTdX:87PBlxHaK"><field name="NUM">650</field></shadow></value><value name="TO"><shadow type="math_number" id="p[|cOZ|Bf_fChfj/C|2T"><field name="NUM">750</field></shadow></value><value name="BY"><shadow type="math_number" id="?b=R#+q!=0$ymPi10C#3"><field name="NUM">1</field></shadow></value><statement name="DO"><block type="buzzer_play" id="3?/3YBu,Bv)_?+n;VE*{"><value name="hz"><shadow type="math_number" id="XpbWcL0$wq:O3K{cPF+r"><field name="NUM">800</field></shadow><block type="variables_get" id="f8T{`z_ewx!j{):ybn_i"><field name="VAR" id="Nyp[NV(ulaRe*2wK!/1S">i</field></block></value><value name="time"><shadow type="math_number" id="{sSU^bluc]VJA*Kw,g0U"><field name="NUM">0.01</field></shadow></value><next><block type="sleep_var" id="BHWS!vp46Jz,f[!fTn]%"><value name="keep"><shadow type="math_number" id="+yFJHq%JwH%~|BsPdNEs"><field name="NUM">0.01</field></shadow></value></block></next></block></statement><next><block type="controls_for" id="6W;!K22=K_,WZtS|^r2d"><field name="VAR" id="Nyp[NV(ulaRe*2wK!/1S">i</field><value name="FROM"><shadow type="math_number" id="!0Wtb;J*?^?uZ[z$i(YI"><field name="NUM">750</field></shadow></value><value name="TO"><shadow type="math_number" id="-$`uK|5c:^ET_KF,+Sl?"><field name="NUM">650</field></shadow></value><value name="BY"><shadow type="math_number" id="(8j!FXA`Y%rLw:-yle(o"><field name="NUM">-1</field></shadow></value><statement name="DO"><block type="buzzer_play" id=";o/a@YZ$cis!;B7!fKkJ"><value name="hz"><shadow type="math_number"><field name="NUM">800</field></shadow><block type="variables_get" id="~e9#/HAJW?[tW,/r|*/k"><field name="VAR" id="Nyp[NV(ulaRe*2wK!/1S">i</field></block></value><value name="time"><shadow type="math_number" id="au=OT1oSro~B4y/@L32,"><field name="NUM">0.01</field></shadow></value><next><block type="sleep_var" id="}mS+-V|4.6WkTp.eSrzG"><value name="keep"><shadow type="math_number" id="MEAeM|O.I~iV7p}|q8Pa"><field name="NUM">0.01</field></shadow></value></block></next></block></statement></block></next></block></statement></block></xml>

我们首先来编写上扬部分的图形编程。

1、首先需要创建一个变量i,把他的范围设置在650-750。由于上扬部分的音是循序渐进的,因此每次增加设置为1。


2、接着拖入这个模块,把变量i拖入到这个地方,单位是赫兹,那么变量i就代表了声音的频率。由于这段音效频率变化特别快才能达到警报的效果,因此我们在后面的位置设置为0.01秒。


3、在下方还需设置间隔0.01s,如果不设置这个,由于切换过快,人耳会无法识别。


设置好了上扬部分,降低部分的图形编程只需反着来就可以了。

1、手机端长按复制上扬部分模块(电脑端鼠标右键复制),把变量i的范围设置在750-650,每次增加设置为-1。

2、其他参数保持不变,将上扬模块和降低模块衔接在一起。


最后拖入重复10次模块,点击执行,蜂鸣器就可以发出警报了。



今天的课程到这里就已经结束了!

小龟强烈建议小伙伴们整理一下思路,按照自己的逻辑把所有的图形编程手动编写一遍,会更加印象深刻~