好好搭搭官方文档
  • FAQ
  • 好好搭搭平台
    • 浏览器
    • 插件
    • 微信物联网小程序
      • 帐号绑定
      • 联网配置
      • 设备绑定
      • 物联应用
      • 在线编程
      • 自定义组件使用
    • 离线版
      • 好好搭搭Scratch中文离线版
      • 好好搭搭Scratch Arduino 2.0
      • Mixly For WuHan
    • 远程协助软件
    • PC端配网工具
    • 配网APP
  • 在线入门课程
    • Scratch编程入门
      • 第1课 喵喵初体验
      • 第2课 喵喵背古诗
      • 第3课 喵喵游西湖
      • 第4课 喵喵学做操
      • 第5课 喵喵学英语
      • 第6课 喵喵演奏会
      • 第7课 喵喵大抽奖
      • 第8课 喵喵运动会
      • 第9课 喵喵学画画
      • 第10课 喵喵出题目
      • 阅读材料一:好好搭搭Scratch中文离线版的使用
      • 阅读材料二:“好好搭搭”网站中的作品管理
      • 阅读材料三:使用PowerPoint制作中文文字角色
      • 阅读材料四:Scratch中的指令类型
      • 阅读材料五:Scratch中的三种程序结构
    • 基于Scratch的传感器板编程
      • 第1课 认识Scratch传感器板
      • 第2课 在Scratch中使用按键——点亮卧室里的灯
      • 第3课 在Scratch中使用LED——防火小卫士
      • 第4课 在Scratch中使用滑杆——生日快乐
      • 第5课 在Scratch中使用蜂鸣器——守卫松饼
      • 第6课 在Scratch中使用声音传感器——赛龙舟
      • 第7课 在Scratch中使用亮度传感器——太阳公公笑了
      • 第8课 在Scratch中使用摇杆――猴子接香蕉
      • 第9课 在Scratch中使用扩展模块——智能灯控
      • 第10课 综合作品制作——森林小卫士
    • 基于Scratch的Nova智能造物入门
      • 第1课 初识智能造物神器——Nova
      • 第2课 在Nova中使用单色LED——模拟红绿灯
      • 第3课 在Nova中使用数码管与按键——送给妈妈的计时器
      • 第4课 在Nova中使用蜂鸣器——音乐播放器
      • 第5课 在Nova中使用超声波传感器——魔法音乐盒
      • 第6课 在Nova中使用RGB LED与电位器——多彩台灯
      • 第7课 在Nova中使用声音与亮度传感器——智能声控灯
      • 第8课 在Nova中使用温湿度传感器——环境自动监测仪
      • 第9课 在Nova中使用电机与红外遥控――智能小风扇
      • 第10课 在Nova中使用舵机——会摇头的电风扇
      • 阅读材料一:“好好搭搭”插件的下载与安装
    • WU-Link智能造物入门
      • 第一课 初识物联网造物神器——WU-Link
      • 第二课 在WU-Link中使用点阵屏——玩转图案设计
      • 第三课 在WU-Link中使用点阵屏——送给妈妈的计时器
      • 第四课 在WU-Link中使用板载传感器——环境自动检测仪
      • 第五课 在WU-Link中使用加速度计——自制计步器
      • 第六课 在WU-Link中使用电子罗盘——指南针来了
      • 第七课 在WU-Link中使用红外传感器——红外电子琴
      • 第八课 Scratch与WU-Link互联互控——物联网点读机
      • 第九课 Scratch与WU-Link互联互控――物联网环境监测仪
      • 第十课 WU-Link之间的互联互控——抽签与抢答程序
      • 阅读材料一:WU-Link的无线网络连接设置
      • 阅读材料二:添加并绑定设备
  • 教学产品
    • Scratch传感器板
    • 好搭Box
    • Nova电子积木
      • Nduino HD
      • Nduino BOT
      • Nduino-Wulink
      • LED
      • 蜂鸣器模块
      • RGB模块
      • RGB灯带模块
      • 单按键模块
      • 四按键模块
      • 电位器模块
      • 亮度传感器模块
      • 超声波传感器模块
      • 声音传感器模块
      • 温湿度模块
      • 灰度传感器模块
      • 4位计时数码管
      • 4位计数数码管
      • 点阵模块
      • 红外接收模块
      • 红外对射模块
      • 蓝牙4.0模块
      • 单路电机驱动模块
      • 双路电机驱动模块
      • 大电流舵机驱动模块
      • MP3音乐模块
      • 火焰传感器模块
      • 霍尔开关模块
      • 继电器模块
      • 倾斜开关模块
      • 震动开关模块
      • 限位开关模块
      • 时钟模块
      • 陀螺仪模块
      • 摇杆模块
      • MQ2传感器模块
      • MQ3传感器模块
      • MQ7传感器模块
    • Arduino开源硬件
      • Arduino UNO主控板
      • Arduino IO扩展板
      • Wulink-UNO
      • haodaMIDI模块
      • LED灯模块
      • 蜂鸣器模块
      • RGB灯模块
      • 单按键模块
      • 四按键模块
      • 电位器模块
      • 亮度传感器模块
      • 超声波传感器模块
      • 声音传感器模块
      • LM35温度传感器
      • 温湿度传感器模块
      • 灰度传感器模块
      • 数码管模块
      • 点阵模块
      • 蓝牙模块
      • MP3模块
      • OLED模块
      • LCD1602显示模块
      • 红外接收模块
      • 红外发射模块
      • 激光发射模块
      • 继电器模块
      • 倾角传感器模块
      • 震动开关模块
      • 人体红外传感器模块
      • 上拉扩展模块
      • 土壤湿度模块
      • 颜色传感器模块
      • 摇杆模块
      • 音频录放模块
    • WU-Link
    • PythonBoard
    • 掌控
      • 掌控板刷好搭固件
      • WULink-Python
    • 3D打印套件
      • 时钟主板
      • 音乐主板
      • 通用主板
      • 机器人主板
      • 互联网主板
      • 电机主板
      • 灯光主板
      • 月球灯
    • 好搭磁性电子积木
    • 数字科学家
      • 主控
      • PH值传感器
      • 水浊度传感器
      • 拉力传感器
      • 压力传感器
      • 气压传感器
      • 水泵
    • KT板套件
    • 徽章板
    • 好搭Bit
      • Scratch3.0互动编程
      • MakeCode
      • Mind+
      • KittenBlock
      • MU Python编程
      • APP 移动端编程
  • 造物产品
    • WuLink-Nano
    • 好搭酷
  • 编程语法
    • Scratch
      • 指令
      • 程序结构
    • Arduino
      • 程序结构
      • 变量
      • 基本函数
      • 类库
    • Micropython
Powered by GitBook
On this page
  • 模块与指令
  • 蜂鸣器模块
  • “设置PWM口输出”指令:
  • “设置PWM口频率”指令:
  • 作品制作
  • 第一步:搭建硬件、运行插件
  • 第二步:让蜂鸣器演奏一个音符
  • 第三步:让蜂鸣器演奏多个音符
  • 第四步:调用功能块演奏音符
  • 第五步: 用按键控制乐曲演奏
  • 拓展与思考

Was this helpful?

  1. 在线入门课程
  2. 基于Scratch的Nova智能造物入门

第4课 在Nova中使用蜂鸣器——音乐播放器

Previous第3课 在Nova中使用数码管与按键——送给妈妈的计时器Next第5课 在Nova中使用超声波传感器——魔法音乐盒

Last updated 6 years ago

Was this helpful?

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

模块与指令

要制作本课的范例作品,需要认识以下这些新的硬件:

蜂鸣器模块

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

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

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

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

“设置PWM口输出”指令:

使用这个指令可以设置指定数字端口的PWM输出值。指令默认是“S0”、输出值为“0”。通过单击下拉列表,可以选择S0—S3这4个数字端口;具体输出值既可以单击下拉列表选择预置的数值,也可以直接输入。 对于蜂鸣器来说,使用这个指令可以控制所发出声音的音量。

“设置PWM口频率”指令:

使用这个指令可以设置指定数字端口的PWM频率。指令默认是“S0”、频率为“523”。通过单击下拉列表,可以选择S0—S3这4个数字端口;具体频率值可以在第二个参数的文本框中输入。

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

作品制作

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

第一步:搭建硬件、运行插件

首先将模块与主控板连接起来:蜂鸣器模块连接“S0”端口、按键模块连接“S1”端口(如下图所示);接着把主控板和计算机连接起来,最后打开“好好搭搭硬件下载”插件,确认插件程序显示“打开端口成功”。

第二步:让蜂鸣器演奏一个音符

首先打开浏览器进入“好好搭搭”网站;登录后进入网站的“创作”栏目,选择“haohaodada_NOVA模版”,进入“模版项目页”;在“模版项目页”中单击网页右上角的“转到设计页”按钮,进入“NOVA编程设计页”。

要让蜂鸣器演奏一个音符,可以在“重复执行”指令中,先使用“设置PWM频率”指令,不修改频率参数,让蜂鸣器发出频率为“523”的声音,也就是C调中的“do”;再使用“设置PWM输出”指令,设置输出参数为“100”,也就是蜂鸣器发出声音的音量是“100”;然后使用“等待”指令,让蜂鸣器持续发声“1秒”,也就是这个音符演奏的节拍;接着再使用“设置PWM输出”指令,设置输出参数为“0”,关闭蜂鸣器;最后再使用“等待”指令,等待“2秒”后重新演奏“do”这个音符。具体程序代码如下图所示:

试一试:

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

第三步:让蜂鸣器演奏多个音符

要让蜂鸣器演奏多个音符,每个音符都应该使用“设置PWM频率”、“设置PWM输出”以及“等待”指令设置音调、音量、节拍,然后再使用“设置PWM输出”指令停止声音。如下图所示就是演奏“do”、“re”这两个音符的程序。

第四步:调用功能块演奏音符

像上图这样演奏音符太过于麻烦。可以定义一个“演奏音符”功能块,将重复使用的指令都放在这个功能块里,使程序代码更为简洁。

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

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

注意:与变量一样,在Nova中功能块名称也不能是中文,只能使用英文字母和数字作为变量名、并且首位必须是英文字母。
  1. 由于演奏音符需要指定音符的“音调”、“节拍”,因此需要为新建的功能块添加两个数字参数,并且应该为每个参数添加标签,说明参数的用途。

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

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

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

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

  2. 在“定义Note”指令下方添加“设置PWM频率”、“设置PWM输出”、“等待”以及第二个“设置PWM输出”指令;将“定义Note”指令中的“number1”参数拖动到“设置PWM频率”指令参数位置,“number2”参数拖动到“等待”指令参数位置,设置第一个“设置PWM输出”指令参数为“100”,确认第二个“设置PWM输出”指令参数为“0”,如下图所示:

试一试:

根据下面这首“两只老虎”的乐谱,编写这首儿歌的演奏程序。

第五步: 用按键控制乐曲演奏

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

在“重复执行”指令里面添加一个“如果……那么”指令,设置条件为:“读数字口”指令的值等于“0”,也就是按键处于“按下”状态时条件成立。条件一旦成立,就演奏刚才编写的这些音符。演奏完成后继续处于条件判断状态,等待再次按下按键重新演奏。具体的程序代码如下图4-9所示:

练一练:

除了“两只老虎”这首乐曲,你还能编写其它喜欢的乐曲演奏吗?

拓展与思考

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