10623| 0
|
[教程] 音乐电平表 |
项目由来 声音是用来听的,但是听觉又是不真切的。为此,人们发明了电平表,用来直观地视觉佐证。每当看见仪表盘上的跳跃光柱,踏实的感觉油然而生,有声音啦! ![]() 材料清单
硬件连接很简单,首先将 Micro:bit 插入到 Mico:bit Boson 扩展板上,然后用连接线依次将模拟角度传感器、模拟声音传感器和彩色 LED 灯带接到扩展板的 P0、P1 和 P2 接口上。在开始编程之前还需用数据线连接 Micro:bit 和计算机。 ![]() 模拟声音传感器是基于麦克风为声音检测的传感器,可用来对周围环境中的声音强度进行检测。我们可以将声音的强度与灯带亮起的 LED 灯的数目做一个关联。即声音越响,亮起的 LED 灯越多。 我们打开 Mind+,选择【上传模式】,在【扩展】的【主控板】中选择【Micro:bit】,然后在【显示器】中选择【WS2812 RGB 灯】。 ![]() 接下来就一直重复读取声音传感器的数值,依据数值的大小在彩色 LED 灯带上显示相对应的柱状图。我们可以通过显示柱状图命令来实现该功能。我们一共有 7 颗 LED 灯泡,所以只能显示 7 以内的整数颗。而 LED 灯泡是从 0 开始编号的。所以需要修改一下数字。另外,声音传感器读出来的数值我们并不知道在哪个区间,也不太好和灯带的区间 [0, 6] 进行映射。那就假设读出来的数值在 [0, 511] 之间吧。 ![]() 步骤3 实现灵敏度调节功能 如果声音太轻,LED 灯带上的柱状图波动不明显怎么办?或者声音太响了,灯带上的柱状图一直飙升到顶部怎么办?这时的显示效果就很糟糕了。那能不能增加一个调节灵敏度的功能呢?这样就可以在不改变声音大小的情况下更改柱状图的显示效果,使其看上去“更顺眼”些。 我们可以增加一个模拟角度传感器,通过调节角度传感器,更改声音最高值的范围。在上面,我们人为假设声音的上限是 511,基本已经满足一般声音大小的测定。为了更改这个上限的范围,我们可以在 500 上下浮动 250 。即通过角度传感器,将声音的最大值映射到 [250, 750] 之间。稍稍修改一下程序块即可实现。 ![]() 步骤4 制作外观 ![]() 项目代码 https://gitee.com/TomHGTang/music_level_meter.git 改进提升 1. 电平表一直都处于工作状态,为了节约能源,可以增加一个开关,实现开关电平表的功能。 2. 外观看上去有些简陋,可以重新设计,或者采用 3D 打印。 原帖发布于 http://makelog.dfrobot.com.cn/article-983.html |
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed