Skip to content

3.3 动听音乐盒

3.3.1 造型介绍

  这款 AI 动听音乐盒是趣味积木智能交互摆件,机身正面装有 WonderLens 视觉摄像头充当 “眼睛”,底部搭载蜂鸣器发声元件,搭配 360° 舵机可完成音乐盒旋转展示动作。整体积木组装简单,结构拆分清晰,方便我们接线调试。当摄像头识别到不同数字卡片时,蜂鸣器会播放对应专属音调,舵机同步缓慢旋转,实现数字识别与声光联动演奏,是能直观感受 AI 数字识别与音频交互的创意小作品。

3.3.2 学习目标

  1. 学会使用 WonderLens 模块完成数字卡片识别,掌握数字识别信号读取方法。

  2. 熟练编写蜂鸣器多音调、完整旋律程序,掌握不同音符音调控制逻辑。

  3. 掌握数字识别、蜂鸣器、舵机三者联动编程,实现识别不同数字播放对应乐曲。

  4. 搭建完整造型并调试程序,具备简易 AI 视觉声光交互作品制作能力。

3.3.3 积木搭建

PDF 未正常显示? 在新窗口打开

3.3.4 设备接线

将 WonderLens 视觉模块接线插入 ESP32 主控器 接口;

将 360° 积木舵机接线插入 ESP32 主控器 接口,舵机 接线要插入 S1 的 引脚处。

示意图:

3.3.5 程序编写

(1) 程序原理图

(2) 添加扩展库

  • 在 “扩展” 中选择 “传感器” 添加 “WonderLens” 。

(3) 核心代码块解析

指令块所在类别功能说明
对比左侧数值与自定义数值,输出大于判断的布尔结果
创建自定义变量用于存储数据
读取自定义变量内存储的数据
为指定自定义变量赋予自定义数值
根据自定义音调、节拍、播放模式播放音频
控制指定接口的舵机按照设定速度进行转动
切换视觉摄像头对应的 AI 视觉工作模式
刷新摄像头画面并读取当前视觉模式的识别数据
提取数字识别结果里置信度最高的数字

(4) 完整程序展示

  1. 启动时,初始化 WonderLens 视觉模块接口 P4,将模块切换为数字识别功能;

  2. 在主程序中循环执行:更新并获取 WonderLens 视觉模块识别结果,提取置信度最大的数字存入"Result"变量;"Result"为 0 时 S1 舵机停止转动,"Result"为 1~5 时 S1 舵机以 15 速度运转,并依次播放 C4、D4、E4、F4、G4 音调,每个音符播放后延时 0.8 秒,每次循环等待 0.01 秒。

  • 程序源文件存放于「附录文件」目录内的「程序文件」,可前往该处下载压缩包获取。

3.3.6 程序下载

3.3.7 扩展提升

拓展任务 1:RGB 灯光同步声光演奏

  1. 项目目标:识别数字卡片时,蜂鸣器播放旋律的同时 RGB 彩灯匹配专属色彩同步点亮,打造声光一体演奏效果;数字 1 亮红色、数字 2 亮橙色、数字 3 亮橙色、数字 4 亮蓝色、数字 5 亮紫色。

  2. 实现思路:新增 RGB 彩灯硬件接线,在各数字识别条件分支内添加灯光调色代码;不同数字绑定对应灯光颜色与专属旋律,实现灯光、音效同步触发。

  3. 挑战点:数字识别稳定不跳号,灯光切换无频闪,音效与灯光同步输出不卡顿。

拓展任务 2:卡片移开延时停止演奏

  1. 项目目标:数字卡片移开后,音乐盒不会立刻停止播放,演奏完1s再静音,舵机缓慢回正,模拟真实八音盒演奏效果。

  2. 实现思路:新增计时变量,卡片消失标记触发演奏延时;延时未结束持续播放旋律、保持灯光,计时结束关闭蜂鸣器、灯光、舵机归位。

  3. 挑战点:延时播放不干扰摄像头实时识别新卡片,多外设同步运行无延迟卡顿。

拓展任务 3:除了动听音乐盒,本节课数字识别的思路还能改造出哪些智能小作品

  1. 数字密码锁:保留摄像头数字识别核心代码,替换蜂鸣器为电动锁,识别指定数字组合自动解锁。

  2. 数字抢答计分器:搭配点阵屏,识别不同数字卡片自动累加对应分数,屏幕实时更新总分。

  3. 通用改造思路:不用修改摄像头数字识别的核心代码,只更换输出硬件,新增对应硬件控制指令,依靠 “识别到指定数字就触发动作” 的逻辑,就能做出不同智能作品。

3.3.8 课后问答

问题 1:舵机接线时,橙色信号线必须接 S1 白色引脚,接错会出现什么问题?

:S1 接口白色引脚是专门传输控制信号的引脚,舵机依靠这个信号判断转动角度。如果橙色信号线接到电源或接地引脚,主板无法给舵机发送控制指令,会出现两种故障:一是舵机完全不动,音乐盒无法旋转;二是舵机不停抖动、乱转,严重时会发热损坏。同时程序里所有控制音乐盒旋转的代码都会失效,无法实现播放乐曲同步旋转的效果。

问题 2:摄像头可以正常识别数字卡片,蜂鸣器能发声,但舵机完全不旋转,请给出最常见故障和排查方法。

:1. 接线故障:舵机橙色信号线没有插在 S1 白色信号引脚。排查:断电后重新对照图纸核对三根线接线顺序。

  1. 程序故障:舵机旋转代码没有放进 “识别到数字卡片” 的条件分支里。排查:打开程序,把舵机旋转、延时指令移动到数字识别成功分支内。

  2. 硬件损坏:舵机本身故障或 ESP32 的 S1 接口损坏。排查:更换完好舵机接入 S1 测试,依旧不动则更换主板其他舵机接口测试。

3.3.9 技术支持与产品讨论

如果您在产品使用过程中遇到困难,欢迎您通过如下方式向我们反馈:

表单未正常显示? 在新窗口打开

如果您在产品体验后有更好的创意,欢迎您进入幻尔社区将您的创意分享: