「看得见的声音」——小学科学《声音的变化》物联网可视化教学教具
一、项目缘起:解决一个教学难题
小学科学《声音的变化》一课,需要让学生理解:声音是由物体振动产生的,声音的强弱(响度)对应振动的幅度(振幅)。
传统教学靠"敲钢尺、听声音",学生听得到、却"看"不到振动。我一直想做一套教具:
- 让振动和声音变成屏幕上看得见的波形;
- 老师上课时能在大屏上演示,全班一起看;
- 学生能记录数据(本次振动的最高、最低、幅度),理解"幅度大→声音响"。
于是有了这台基于行空板K10的物联网可视化教学教具。
二、作品功能
| 功能 | 说明 |
| 测振动 | 用加速度传感器测钢尺/水杯琴的振动,得到振动值 |
| 测声音 | 用模拟麦克风测声音,得到声音幅度 |
| 大屏演示 | 行空板通过 WiFi + MQTT 把数据发到 Mind+ 可视化面板,电脑大屏实时显示波形 |
| 教师/学生版 | 教师版:行空板采集发送、大屏显示(演示用);学生版:行空板屏幕记录本次最高/最低/差值(记录用) |
一句话:行空板当"采集器",电脑大屏当"显示器",声音和振动都"看得见"。

四、设计原理
加速度计输出 X、Y、Z 三轴加速度,合成总加速度:
总加速度 = √(X² + Y² + Z²)静止时总加速度 ≈ 1000(1个重力g)。去掉重力后就是振动:
振动值 = 总加速度 − 1000静止时振动值≈0,振动时振动值上下摆动,摆动越大振动越强。
模拟麦克风静止时输出约1.65V(对应ADC读数2048)。去掉直流偏置:
声音值 = 模拟口读数 − 2048有声音时声音值围绕0上下摆动,摆动越大声音越响。
行空板连 WiFi → MQTT 连接 SIoT → 把振动值、声音幅度发到指定主题 → Mind+ 可视化面板订阅主题,画成折线图。
主题:siot/振幅波(振动)、siot/音量波(声音)五、程序设计(Mind+ 图形化编程)
采用 Mind+ 上传模式 + 行空板K10,全程中文变量名,小学生和老师都能照着搭。
变量
- 振动:X轴读数、Y轴读数、Z轴读数、总加速度、振动值
- 声音:声音值、声音最高、声音最低、声音差值、上一轮在响
核心逻辑
初始化: 初始化LIS2DH传感器 WiFi连接(WiFi名/密码) MQTT初始化 + 发起连接 屏幕提示"数据已发送大屏" 声音变量设0循环执行: ── 振动采集 ── 读X/Y/Z三轴 总加速度 = √(X²+Y²+Z²) 振动值 = 总加速度 − 1000 如果 -100 < 振动值 < 100,则 振动值 = 0(消噪) MQTT发送 振动值 至 "siot/振幅波" ── 声音采集 + 幅度 ── 声音值 = 读取模拟引脚P0 − 2048 如果 -200 < 声音值 < 200,则 声音值 = 0(消噪) 如果 |声音值| > 200,则(有声音): 记录本次声音最高、最低值 否则(声音结束): 声音差值 = 声音最高 − 声音最低 MQTT发送 声音差值 至 "siot/音量波" 等待 0.005 秒教师版:行空板只采集+发送,大屏显示一切,程序简洁。 学生版:行空板屏幕显示本次"最高/最低/差值",数值停在屏幕上让学生记录,第二次振动才更新。

六、调试中踩过的坑(对新手很有用)
- 压电传感器"不敲也乱跳" → 它同时拾取空气声波和固体振动。改用 LIS2DH 加速度计,从硬件上解决。
- 波形像"柱子"不像曲线 → 是给振动值套了"绝对值",把负半周翻到正半周了。去掉绝对值,波形就正常了。
- 屏幕画滚动曲线卡顿 → 行空板小屏刷新性能有限,画大量点硬件跟不上。改用"只记录数值"或"大屏画波形"。
- 静止时最低值是负的 → 静止噪声超过了阈值。把消噪阈值从 ±150 调到 ±200,噪声被滤掉。
- 波形冲出屏幕 → 用"限幅"把画线值掐在固定范围内,或调大映射范围。
- 声音差值老是0或1 → 把"声音最高 = 声音最低"(等号判断)误当成减法了,改成减号"-"就对。
- 映射很重要 → 用 Mind+ 的"映射"积木,把传感器数值换算成屏幕坐标,波形自动居中缩放。
七、效果展示

- 敲钢尺 → 大屏振动波形明显跳动;
- 说话 / 敲水杯琴 → 大屏声音幅度步步升高;
- 学生能直观看到"敲得重→波形幅度大→声音响",呼应课本知识点。
八、总结与拓展
这套教具用一块行空板K10 + 两个传感器,把抽象的"声音是振动、响度对应振幅"变成了看得见、可比较的波形和数据,非常适合小学科学课堂演示。
可拓展方向:
- 加"声音分贝"换算,显示更直观的响度数值;
- 换成温度、光照传感器,变成"热水降温""光强变化"等探究实验;
- 行空板屏幕版用于学生分组记录,大屏版用于教师演示,一套硬件两种用法。
附:参考资料
- 行空板K10 官方资料与 Mind+ 图形化编程:DFRobot / Mind+ 官网
- 参考学习:DF创客社区《基于行空板K10的物联网可视化应用——探究热水降温规律实验》
- 传感器:DFRobot SEN0224(LIS2DH)加速度计、MP23ABS1 麦克风模块数据手册
附教师版和学生两版本代码
硬件清单
- 行空板K101
- 行空板K10 IO扩展板1
- Gravity:LIS2DH 三轴加速度计(I2C,2μA,26.2 × 26.2mm)1
- 模拟麦克风模块MP23ABS1 + OPA23401
- PH2.0-4P(无倒扣)-单芯杜邦线4P线序红黑蓝绿线长30cm(10根)1






居然还有第二篇,震惊!!!
哈哈哈哈,还有呢