所有分类
主题 主题
平台 平台
我的工作台
userHead
注册时间 [[userInfo.create_time]]
创造力 [[userInfo.creativity]]
[[userInfo.remark]]
[[d.project_title]]
articleThumb
[[d.material_name]]
timelineThumb
进入工作台
折叠
所有分类 我的工作台
展开
探索者D1系列教程四 蜂鸣器
Ski Ski 2018-12-28 11:02:18
1
0
简单

使蜂鸣器演奏出一段音乐旋律,学习蜂鸣器的使用方法。

器材清单

        Romeo、USB数据线、蜂鸣器(功放喇叭模块)

蜂鸣器

        蜂鸣器能够发出声音信息,可用以演奏音乐,或播放警报、提示等其他声音信息。蜂鸣器分为有源蜂鸣器和无源蜂鸣器两种,这里的“源”是指振荡源。有源蜂鸣器中含有振荡源,通电即可发声,但只能发出一种固定频率的声音;而无源蜂鸣器不含振荡源,需要使用一定的方波来驱动,可以发出不同频率的声音。要制作能够演奏旋律的机器人,可以使用无源蜂鸣器开发的功放喇叭模块实现。

projectImage

音调不同,音符不同,需要蜂鸣器的发声频率也会不同,蜂鸣器发声频率与其对应的音符、音调如下图所示。

projectImage

控制蜂鸣器

       Mind+中控制蜂鸣器的模块位于“Romeo”中。如下图,可以通过改变第二个下拉框的音调和第三个下拉框的节拍来控制蜂鸣器使其发出需要的声音。也可以将蜂鸣器设置为静音。

projectImage

子程序

        当程序代码中有重复的程序段的时候,可以将重复出现的程序段设计为子程序,在主程序中进行调用,以达到简化主程序的目的。

        可以在Mind+指令区“函数”中进行创建,步骤如下:

        (1)单击“自定义模块...”后出现“添加一个自定义模块”浮窗,如下图所示。

projectImage

        (2)输入模块名称“quiet”,单击“确定”按钮,则“函数”中会新增“quiet”,如下图所示。

                 同时脚本区会自动出现 “定义函数‘quiet’"。

projectImage

         (3)将喇叭静音的程序写到子程序中,并命名为quiet,如下图所示。

projectImage

        (4)将“quiet”拖至脚本区,之后便可在主程序中调用子程序quiet,如下图所示。

projectImage

实现过程

        (一)连接蜂鸣器

        将蜂鸣器模块与Romeo连接,如下图所示,蜂鸣器连接数字针脚3。

projectImage

        (二)编写程序

          以儿歌《小星星》为例,利用蜂鸣器播放歌曲第一句“一闪一闪亮晶晶,满天都是小星星”的旋律。该简谱的音调为C,第一句的音符如下图所示。

projectImage

       仔细观察会发现,乐谱中有一些旋律是重复出现的。当某段旋律重复出现时,可以通过复制(在需要复制的模块上右击鼠标即可进行相应的操作)以简化操作,但这无疑会使程序变得冗长。此时可以将重复出现的旋律作为子程序,当需要时在主程序中调用即可。如下图所示,是歌曲《小星星》第一段的主程序,最后调用演奏《小星星》第一句的子程序melody1。

projectImage

        子程序melody1的代码如下图所示。

projectImage

测试效果

        上传程序,成功后观察蜂鸣器能否发出预期的音乐。

拓展提升

        蜂鸣器演奏音乐带来的是听觉感受,LED则是视觉感受。将这二者结合,当蜂鸣器演奏时LED亮,当两个音符之间停顿时LED灭。试一试完成这场“视听盛宴”吧。

Makelog作者原创文章,未经授权禁止转载。
1
0
评论
[[c.user_name]] [[c.create_time]]
[[c.parent_comment.count]]
[[c.comment_content]]