7258| 0
|
[教程] 音乐电平表 |
项目由来 声音是用来听的,但是听觉又是不真切的。为此,人们发明了电平表,用来直观地视觉佐证。每当看见仪表盘上的跳跃光柱,踏实的感觉油然而生,有声音啦! 类似我们在音乐播放器或者其他软件中看到的波形/条形,看着它们随着音乐跳动,心里感觉就特别舒服。那为什么不自己动手做一个呢? 材料清单
硬件连接很简单,首先将 Micro:bit 插入到 Mico:bit Boson 扩展板上,然后用连接线依次将模拟角度传感器、模拟声音传感器和彩色 LED 灯带接到扩展板的 P0、P1 和 P2 接口上。在开始编程之前还需用数据线连接 Micro:bit 和计算机。 步骤2 实现声控灯带功能 模拟声音传感器是基于麦克风为声音检测的传感器,可用来对周围环境中的声音强度进行检测。我们可以将声音的强度与灯带亮起的 LED 灯的数目做一个关联。即声音越响,亮起的 LED 灯越多。 我们打开 Mind+,选择【上传模式】,在【扩展】的【主控板】中选择【Micro:bit】,然后在【显示器】中选择【WS2812 RGB 灯】。 首先在【Microbit】选项卡中找到“Micro:bit 主程序开始”,拖到右侧脚本区。然后需要设置彩色 LED 灯带的具体 LED 数目和亮度。从【显示器】选项卡中找到“RGB 灯引脚 P2 灯总数 7 亮度 255”,将其拖到“Micro:bit 主程序开始”下面。 接下来就一直重复读取声音传感器的数值,依据数值的大小在彩色 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-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed