你能给聚会带来光明,让它变得更有趣吗?
这就是问题所在。答案是肯定的(当然)。
本教程是关于制作一个可听音乐的便携式设备,并使用 NeoPixel LED 的同心环创建音乐可视化。
试图让设备“跳舞”,即随着音乐的节拍移动,但事实证明节拍检测比听起来更复杂(不是双关语),所以“跳舞”有点尴尬,但仍然存在。
该设备支持蓝牙,并将响应文本命令。我没有时间编写应用程序来控制派对灯(Android 或 iOS)。如果你能胜任这项任务 - 请告诉我!!!
如果您喜欢本教程,请在Make It Glow比赛中投票!
要构建派对灯,您将需要:
这个想法是有一个便携式设备,可以放置在靠近音乐源的地方,这将创建丰富多彩的音乐可视化。您应该能够通过按钮(触摸)和蓝牙控制设备行为。
目前,Party Lights 实现了 7 个可视化(如果您有更多想法,请告诉我!):
默认情况下,设备将每分钟循环一次可视化。但是,用户可以选择坚持使用一种可视化和/或手动循环浏览它们。
如果用户喜欢特定的颜色组合,则旋转其调色板的可视化也可能被“冻结”。
作为更多控制,用户可以更改麦克风灵敏度并启用/禁用伺服电机“跳舞”模式。
一个fritzing原理图文件包含在Github上的“files”子文件夹中。
基本上,MSEQ7 芯片进行音频处理,将音频信号分成 7 个频段:63Hz、160Hz、400Hz、1kHz、2.5kHz、6.25kHz 和 16kHz
微控制器使用这 7 个波段来创建各种可视化,基本上将各自的波段幅度映射到 LED 光强度和颜色组合。
声源是具有 3 级增益控制的麦克风。您可以根据声源的远近/响亮,使用其中一个按钮循环切换增益设置。
微控制器还尝试在 63Hz“低音”频带上执行“节拍”检测。我仍在研究一种可靠的方法来检测和保持节拍对齐。
“触摸”按钮的使用是一项实验。我认为它们工作得很好,但是,缺乏新闻反馈有点令人困惑。
可视化的核心是一个 61 LED 轮。
请注意,这部分是单独的戒指,您必须将它们放在一起。我宁愿认为铜线用于电源线(也可以很好地将环固定在一起)和细信号线。
LED 编号为 0 到 60,从底部外部 LED 开始,顺时针向内。中心 LED 为 60 号。
每个可视化都依赖于二维数据阵列,将每个 LED 映射到目标可视化段的特定位置。
例如,对于同心圆,有 5 个段:
可视化映射了 7 个音频通道中的 5 个,并根据它们在圆形频带中的位置与频带中的声音级别成比例地逐渐点亮 LED。
其他可视化使用不同的数据结构和格式,但想法始终是由数据数组驱动可视化,而不是由代码驱动。通过这种方式,可以将可视化调整为不同的形状(更多或更少的 LED,更多的 EQ 波段),而无需更改代码,只需更改数据数组中的值。
例如,这是可视化 1 的数据结构在草图中的样子:
// Visualization 1 & 3 - full 5 circles
const byte TOTAL_LAYERS1 = 5;
const byte LAYERS1[TOTAL_LAYERS1][25] = {
//00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
{ 24, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 },
{ 16, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39 },
{ 12, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51 },
{ 8, 52, 53, 54, 55, 56, 57, 58, 59 },
{ 1, 60 }
};
到目前为止,有 7 个可视化和一个启动动画:
开机动画
当设备打开时,会显示模仿烟花。这应该是一个 LED 和伺服测试序列,但后来演变成此类测试的动画版本
同心彩色圆圈
灯光以与相应 eq 波段的幅度成比例的同心圆环绕显示屏。在顺时针和逆时针之间随机切换,并在 256 色轮上缓慢旋转颜色
马耳他十字
一个波段是中心 LED。另一个波段是 LED 的垂直和水平线,其余部分代表每个 EQ 波段。所有段都在 128 偏移中旋转颜色以保持对比度。
脉动灯
每个圆圈为一个专用的 eq 波段一致地点亮所有 LED,同时缓慢旋转颜色并略微偏移。EQ 频段逐渐从一个圆圈移动到下一个圆圈,从而产生向外的进展。
壁炉
这些带是从底部到顶部点亮的半圆形,从鲜红色开始,然后在上升的过程中添加黄色,模拟壁炉中燃烧的火焰。偶尔明亮的白色“火花”会随机射出。没有颜色旋转
行车灯
每个同心圆都是一个单独的 EQ 频段。领先的 LED 是位于中心 LED 下方垂直线上的 LED。一旦 LED 点亮与波段幅度成正比,它就会开始围绕相应的圆圈“运行”,强度逐渐降低。支持时钟和逆时针旋转,随机切换。
光树
这些部分从底部 LED 以一条直线向上点亮,然后以同心半圆形向侧面点亮,模仿棕榈树。颜色旋转。
横向段
这是以前马耳他十字的一个版本,仅使用了 2 个对角线段。应该类似于声波的图标。
有 4 个触摸感应按钮:
在跳舞模式下,设备会尝试检测当前播放音乐的“节拍”,并根据节拍转动头部。说实话,到目前为止,“跳舞”不是很漂亮,而是尴尬。
该设备不断尝试将当前曲调的“节拍”检测为 63Hz 频带的连续峰值之间的距离。一旦检测到(并且仅在舞蹈模式打开时),设备将激活其伺服电机根据节拍随机向左或向右转动。
欢迎任何关于如何使其更可靠的好主意!
“Music_Test_LED”草图以适合使用 Arduino IDE 绘图的方式输出 7 个 EQ 频段。
整个派对灯组件是使用 Autodesk TinkerCAD 从头开始设计的。
原始设计位于此处。github.com 上的“files/3D”文件夹包含 STL 模型。
此设计说明了设备的组装方式。
所有组件都经过打印,然后组装/粘合在一起。
“圆顶”承载着微控制器、蓝牙板和麦克风。微控制器放置在 40 毫米 x 60 毫米板上,并由指定的导轨支撑。
伺服系统位于圆顶的“腿”中,而按钮位于底座中。
电池仓专为耗材部分中提到的电池类型而印刷。如果您选择使用不同的电池,隔间将不得不进行相应的重新设计。
一个超紧凑的 5000 毫安双 USB 输出超薄移动电源似乎提供了足够的电力运行数小时。
电池盒的设计使其与设备的其余部分分离,并且可以更换为专为不同类型电池设计的电池盒。
USB 插头已定位并热粘合到位,以便在电池滑入时连接电池。
添加了一个 HC-05 模块以提供一种无线控制设备的方法。
打开时,设备会创建一个名为“ LEDDANCE ”的蓝牙连接,您可以将其与手机配对。
理想情况下,应该有一个允许控制 PartyLights 的应用程序(选择调色板、模拟按钮按下等)。然而,我还没有写过一篇。
如果您有兴趣帮助为 Party Lights 编写 Android 或 iOS 应用程序,请告诉我!
控制设备,目前可以使用蓝牙终端应用,发送如下命令:
LEDDSTAT - 返回一个由 '0' 和 '1' 组成的 3 字符数字:
Blynk ( blynk.io ) 是一个与硬件无关的物联网平台。我在我的物联网自动植物灌溉系统教程中使用了 Blynk,对该平台的易用性和稳健性印象深刻。
Blynk 支持通过蓝牙连接到边缘设备——这正是 PartyLights 所需要的。
如果您还没有,请下载Blynk 应用程序,使用此步骤附带的屏幕截图注册并重新创建 Blynk PartyLights 应用程序。请确保虚拟引脚分配与屏幕截图上的相同,否则应用程序上的按钮将无法按预期工作。
文件“ blynk_settings.h ”包含我个人的 Blynk UID。当你创建你的项目时,它会被分配一个新的供你使用。
上传PartyLightsBlynk.ino草图,启动应用程序。与蓝牙设备配对,享受派对。
主要草图和支持文件位于 Github.com上。
Party Lights 草图中使用了以下库:
此Wiki 页面解释了如何将 STM32 板与 Arduino IDE 一起使用。
在这个设计中可以改进一些事情,如果你开始这个项目,你可能会考虑:
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !