【花雕动手做】有趣好玩音乐可视化(25)--水龙卷旋涡灯

2022-09-271.3万
精华项目
AI 快速预览详细 收起
本文介绍了音乐可视化项目——水龙卷旋涡灯。从最简单的开始,实际动手做试验,逐步积累音乐频谱可视化的资料。涉及FFT和FHT等复杂算法,适合零基础新手入门。
偶然心血来潮,想要做一个声音可视化的系列专题。这个专题的难度有点高,涉及面也比较广泛,相关的FFT和FHT等算法也相当复杂,不过还是打算从最简单的开始,实际动手做做试验,耐心尝试一下各种方案,逐步积累些有用的音乐频谱可视化的资料,也会争取成型一些实用好玩的音乐可视器项目。

偶然看到一张水龙卷的图片,感觉挺震撼的,于是就有了这个念头——尝试做个小小的水龙卷旋涡灯。

【花雕动手做】有趣好玩音乐可视化(25)--水龙卷旋涡灯图1

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(24)
驴友花雕
驴友花雕
作者
【花雕动手做】看见声音,基于Arduino系列音乐可视器(1)---LED节奏灯
https://mc.dfrobot.com.cn/thread-311167-1-1.html
【花雕动手做】看见声音,基于Arduino系列音乐可视器(2)---OLED频谱灯
https://mc.dfrobot.com.cn/thread-311174-1-1.html
【花雕动手做】看见声音,基于Arduino系列音乐可视器(3)---RGB律动灯
https://mc.dfrobot.com.cn/thread-311183-1-1.html
【花雕动手做】看见声音,基于Arduino系列音乐可视器(4)---WS2812条灯
https://mc.dfrobot.com.cn/thread-311190-1-1.html
【花雕动手做】看见声音,基于Arduino系列音乐可视器(5)---WS2812柱跳灯
https://mc.dfrobot.com.cn/thread-311192-1-1.html
【花雕动手做】看见声音,基于Arduino系列音乐可视器(6)---点阵频谱灯
https://mc.dfrobot.com.cn/thread-311201-1-1.html
【花雕动手做】看见声音,基于Arduino系列音乐可视器(7)---大方格频谱灯
https://mc.dfrobot.com.cn/thread-311364-1-1.html
【花雕动手做】看见声音,基于Arduino系列音乐可视器(8)---四位32段点阵屏
https://mc.dfrobot.com.cn/thread-311490-1-1.html
【花雕动手做】看见声音,基于Arduino系列音乐可视器(9)---X Music Spectrum
https://mc.dfrobot.com.cn/thread-311627-1-1.html
【花雕动手做】看见声音,基于Arduino系列音乐可视器(10)---WS2812硬板屏
https://mc.dfrobot.com.cn/thread-311641-1-1.html
【花雕动手做】看见声音,基于Arduino系列音乐可视器(11)---WS2812幻彩灯带
https://mc.dfrobot.com.cn/thread-313648-1-1.html
【花雕动手做】看见声音,基于Arduino系列音乐可视器(12)---米管快速节奏灯
https://mc.dfrobot.com.cn/thread-313708-1-1.html
【花雕动手做】看见声音,基于Arduino系列音乐可视器(13)---有机棒立柱灯
https://mc.dfrobot.com.cn/thread-313723-1-1.html
【花雕动手做】看见声音,基于Arduino系列音乐可视器(14)---水杯水瓶灯
https://mc.dfrobot.com.cn/thread-313803-1-1.html
【花雕动手做】看见声音,基于Arduino系列音乐可视器(15)--横排LED方管灯
https://mc.dfrobot.com.cn/thread-313811-1-1.html
【花雕动手做】看见声音,基于Arduino系列音乐可视器(16)--热干胶棒棒灯
https://mc.dfrobot.com.cn/thread-313844-1-1.html
【花雕动手做】有趣好玩音乐可视化系列(17)--光导纤维灯
https://mc.dfrobot.com.cn/thread-313867-1-1.html
【花雕动手做】看见声音,基于Arduino系列音乐可视器(18)--LED平面板灯
https://mc.dfrobot.com.cn/thread-313951-1-1.html
【花雕动手做】看见声音,基于Arduino系列音乐可视器(19)--通体光纤灯
https://mc.dfrobot.com.cn/thread-313962-1-1.html
【花雕动手做】看见声音,基于Arduino系列音乐可视器(20)--首饰盒镜子灯
https://mc.dfrobot.com.cn/thread-313969-1-1.html
【花雕动手做】看见声音,基于Arduino系列音乐可视器(21)--CD 光盘灯
https://mc.dfrobot.com.cn/thread-313984-1-1.html
【花雕动手做】看见声音,基于Arduino系列音乐可视器(22)--LED无限魔方
https://mc.dfrobot.com.cn/thread-313994-1-1.html
【花雕动手做】有趣好玩的音乐可视化(23)--3合1闪点光纤
https://mc.dfrobot.com.cn/thread-314168-1-1.html
【花雕动手做】有趣好玩的音乐可视化(24)--无限LED镜子灯
https://mc.dfrobot.com.cn/thread-314180-1-1.html
【花雕动手做】有趣好玩音乐可视化(25)--水龙卷旋涡灯
https://mc.dfrobot.com.cn/thread-314231-1-1.html
【花雕动手做】有趣好玩音乐可视化系列(26)--LED 超立方体
https://mc.dfrobot.com.cn/thread-314244-1-1.html
【花雕动手做】有趣好玩的音乐可视化(27)--磁搅LED水旋灯
https://mc.dfrobot.com.cn/thread-314273-1-1.html
驴友花雕
驴友花雕
作者
实验的视频记录
优酷:https://v.youku.com/v_show/id_XNTkwNTk2MjQwMA==.html?spm=a2hcb.playlsit.page.1
B站:https://www.bilibili.com/video/BV1qV4y1N7pS/?vd_source=98c6b1fc23b2787403d97f8d3cc0b7e5
[media=x,500,375]https://v.youku.com/v_show/id_XNTkwNTk2MjQwMA==.html?spm=a2hcb.playlsit.page.1[/media]
驴友花雕
驴友花雕
作者
[backcolor=rgb(255, 255, 255)][font=Consolas, "][color=#95a5a6] 【花雕动手做】有趣好玩的音乐可视化系列小项目(25)--水龙卷旋涡灯[/font][/backcolor][/color]
[backcolor=rgb(255, 255, 255)][font=Consolas, "][color=#95a5a6] 项目程序之三:水龙卷多彩MegunoLink音乐节拍灯[/font][/backcolor][/color]
[backcolor=rgb(255, 255, 255)][font=Consolas, "][color=#95a5a6] 模块接线:WS2812B接D6[/font][/backcolor][/color]
[backcolor=rgb(255, 255, 255)][font=Consolas, "][color=#95a5a6] MAX4466 UNO[/font][/backcolor][/color]
[backcolor=rgb(255, 255, 255)][font=Consolas, "][color=#95a5a6] VCC 5V[/font][/backcolor][/color]
[backcolor=rgb(255, 255, 255)][font=Consolas, "][color=#95a5a6] GND GND[/font][/backcolor][/color]
[backcolor=rgb(255, 255, 255)][font=Consolas, "][color=#95a5a6] OUT A0[/font][/backcolor][/color]
[backcolor=rgb(255, 255, 255)][font=Consolas, "][color=#95a5a6]
[/font][/backcolor][/color]
[backcolor=rgb(255, 255, 255)][font=Consolas, "][code]/*
【花雕动手做】有趣好玩的音乐可视化系列小项目(25)--水龙卷旋涡灯
项目程序之三:水龙卷多彩MegunoLink音乐节拍灯
模块接线:WS2812B接D6
MAX4466 UNO
VCC 5V
GND GND
OUT A0
*/
#include
#include
#include
#define N_PIXELS 16
#define MIC_PIN A0
#define LED_PIN 6
#define NOISE 10
#define TOP (N_PIXELS+2)
#define LED_TYPE WS2811
#define BRIGHTNESS 10
#define COLOR_ORDER GRB
CRGB leds[N_PIXELS];
int lvl = 0, minLvl = 0, maxLvl = 10;
ExponentialFilter ADCFilter(5, 0);
void setup() {
FastLED.addLeds(leds, N_PIXELS).setCorrection(TypicalLEDStrip);
FastLED.setBrightness(BRIGHTNESS);
}
void loop() {
int n, height;
n = analogRead(MIC_PIN);
n = abs(1023 - n);
n = (n <= NOISE) ? 0 : abs(n - NOISE);
ADCFilter.Filter(n);
lvl = ADCFilter.Current();
// Serial.print(n);
// Serial.print(" ");
// Serial.println(lvl);
height = TOP * (lvl - minLvl) / (long)(maxLvl - minLvl);
if (height < 0L) height = 0;
else if (height > TOP) height = TOP;
for (uint8_t i = 0; i < N_PIXELS; i++) {
if (i >= height) leds[i] = CRGB(0, 0, 0);
else leds[i] = Wheel( map( i, 0, N_PIXELS - 1, 30, 150 ) );
}
FastLED.show();
}
CRGB Wheel(byte WheelPos) {
if (WheelPos < 85)
return CRGB(WheelPos * 3, 255 - WheelPos * 3, 0);
else if (WheelPos < 170) {
WheelPos -= 85;
return CRGB(255 - WheelPos * 3, 0, WheelPos * 3);
} else {
WheelPos -= 170;
return CRGB(0, WheelPos * 3, 255 - WheelPos * 3);
}
}[/code]
[/font][/backcolor]

驴友花雕
驴友花雕
作者
实验的视频记录
优酷:https://v.youku.com/v_show/id_XNTkwNzYxNDA2NA==.html?spm=a2hcb.playlsit.page.1
B站:https://www.bilibili.com/video/BV1ke4y1r7Y8/?vd_source=98c6b1fc23b2787403d97f8d3cc0b7e5
[media=x,500,375]https://v.youku.com/v_show/id_XNTkwNzYxNDA2NA==.html?spm=a2hcb.playlsit.page.1[/media]
驴友花雕
驴友花雕
作者
[backcolor=rgb(255, 255, 255)][font=Consolas, "][color=#95a5a6] 【花雕动手做】有趣好玩的音乐可视化系列小项目(25)--水龙卷旋涡灯
项目程序之二:水龙卷音乐反应节奏灯
模块接线:WS2812B接D6
MAX4466 UNO
VCC 5V
GND GND
OUT D6


[code]/*
【花雕动手做】有趣好玩的音乐可视化系列小项目(25)--水龙卷旋涡灯
项目程序之二:水龙卷音乐反应节奏灯
模块接线:WS2812B接D6
MAX4466 UNO
VCC 5V
GND GND
OUT D6
*/
#include
#define LED_PIN 6
#define NUM_LEDS 16
CRGB leds[NUM_LEDS];
uint8_t hue = 0;
int soundsensor = A0;
void setup() {
delay(2000);
FastLED.addLeds(leds, NUM_LEDS);
FastLED.setBrightness(255);
pinMode(soundsensor, INPUT);
}
void loop() {
int sensval = digitalRead(soundsensor);
if (sensval == 1) {
leds[0] = CRGB :: Red;
fill_solid(leds, NUM_LEDS, CRGB :: Blue);
rainbow_moving();
FastLED.show();
delay(10);
}
else {
leds[0] = CRGB :: Black;
fill_solid(leds, NUM_LEDS, CRGB :: Black);
FastLED.show();
delay(10);
}
}
void rainbow_moving() {
for (int i = 0; i < NUM_LEDS; i++) {
leds[i] = CHSV(hue + (i * 10), 255, 255);
}
EVERY_N_MILLISECONDS(10) {
hue++;
}
}[/code]
[/font][/backcolor][/color]
驴友花雕
驴友花雕
作者
实验的视频记录2
优酷:https://v.youku.com/v_show/id_XNTkwNTcyMDA4OA==.html?spm=a2hcb.playlsit.page.1
B站:https://www.bilibili.com/video/BV1jV4y1T7ib/?vd_source=98c6b1fc23b2787403d97f8d3cc0b7e5
[media=x,500,375]https://v.youku.com/v_show/id_XNTkwNTcyMDA4OA==.html?spm=a2hcb.playlsit.page.1[/media]
驴友花雕
驴友花雕
作者
实验场景图

驴友花雕
驴友花雕
作者
实验的视频记录
优酷:https://v.youku.com/v_show/id_XNTkwNTcyMDA0NA==.html?spm=a2hcb.playlsit.page.1
B站:https://www.bilibili.com/video/BV1Ke4y1r7XQ/?vd_source=98c6b1fc23b2787403d97f8d3cc0b7e5
[media=x,500,375]https://v.youku.com/v_show/id_XNTkwNTcyMDA0NA==.html?spm=a2hcb.playlsit.page.1[/media]
驴友花雕
驴友花雕
作者
实验场景图 动态图

驴友花雕
驴友花雕
作者
实验场景图

驴友花雕
驴友花雕
作者
[backcolor=rgb(255, 255, 255)][font=Consolas, "][color=#95a5a6] 【花雕动手做】有趣好玩的音乐可视化系列小项目(25)--水龙卷旋涡灯
项目程序之一:四色彩灯循环测试
模块接线:WS2812B接D6
MAX4466 UNO
VCC 5V
GND GND
OUT D6


[code]/*
【花雕动手做】有趣好玩的音乐可视化系列小项目(25)--水龙卷旋涡灯
项目程序之一:四色彩灯循环测试
模块接线:WS2812B接D6
MAX4466 UNO
VCC 5V
GND GND
OUT D6
*/
#include
#define LEDPIN 6
#define NUMOFLEDS 16
CRGB leds[NUMOFLEDS];
void setup() {
FastLED.addLeds(leds, NUMOFLEDS);
}
void loop() {
for (int i = 0; i <= 15; i++) {
leds[i] = CRGB(0, 0, 255);
FastLED.show();
delay(40);
}
for (int i = 15; i >= 0; i--) {
leds[i] = CRGB(255, 0, 0);
FastLED.show();
delay(40);
}
for (int i = 0; i <= 15; i++) {
leds[i] = CRGB(0, 255, 0);
FastLED.show();
delay(40);
}
for (int i = 15; i >= 0; i--) {
leds[i] = CRGB(255, 255, 255);
FastLED.show();
delay(40);
}
}[/code]
[/font][/backcolor][/color]
驴友花雕
驴友花雕
作者
试了一下,功率太小,没有旋涡......

驴友花雕
驴友花雕
作者
接上水管

驴友花雕
驴友花雕
作者

驴友花雕
驴友花雕
作者
水泵的功率有点小

驴友花雕
驴友花雕
作者
简易防水灯带安装在饮料瓶子上

驴友花雕
驴友花雕
作者


驴友花雕
驴友花雕
作者
主要特点
1、智能反接保护,电源反接不会损坏IC。
2、IC控制电路与LED点光源公用一个电源。
3、控制电路与RGB芯片集成在一个5050封装的元器件中,构成一个完整的外控像素点。
4、内置信号整形电路,任何一个像素点收到信号后经过波形整形再输出,保证线路波形畸变不会累加。
5、内置上电复位和掉电复位电路。
6、每个像素点的三基色颜色可实现256级亮度显示,完成16777216种颜色的全真色彩显示,扫描频率不低于400Hz/s。
7、串行级联接口,能通过一根信号线完成数据的接收与解码。
8、任意两点传传输距离在不超过5米时无需增加任何电路。
9、当刷新速率30帧/秒时,级联数不小于1024点。
10、数据发送速度可达800Kbps。
11、光的颜色高度一致,性价比高。
应用领域
具有低电压驱动,环保节能,亮度高,散射角度大,一致性好,超低功率,超长寿命等优点。将控制电路集成于LED上面,电路变得更加简单,体积小,安装更加简便。主要应用领域,LED全彩发光字灯串,LED全彩模组, LED全彩软灯条硬灯条,LED护栏管。LED点光源,LED像素屏,LED异形屏,各种电子产品,电器设备跑马灯等。

驴友花雕
驴友花雕
作者
[backcolor=rgb(255, 255, 255)][font="]WS2812B[/font][/backcolor]
[backcolor=rgb(255, 255, 255)][font="]是一个集控制电路与发光电路于一体的智能外控LED光源。其外型与一个5050LED灯珠相同,每个元件即为一个像素点。像素点内部包含了智能数字接口数据锁存信号整形放大驱动电路,还包含有高精度的内部振荡器和12V高压可编程定电流控制部分,有效保证了像素点光的颜色高度一致。数据协议采用单线归零码的通讯方式,像素点在上电复位以后,DIN端接受从控制器传输过来的数据,首先送过来的24bit数据被第一个像素点提取后,送到像素点内部的数据锁存器,剩余的数据经过内部整形处理电路整形放大后通过DO端口开始转发输出给下一个级联的像素点,每经过一个像素点的传输,信号减少24bit。像素点采用自动整形转发技术,使得该像素点的级联个数不受信号传送的限制,仅仅受限信号传输速度要求。[/font][/backcolor]
[backcolor=rgb(255, 255, 255)][font="]
[/font][/backcolor]

驴友花雕
驴友花雕
作者
仍旧使用WS2812灯带来做实验,多加一个简易防水套子