数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 1257|回复: 37

[影音] 【花雕动手做】有趣好玩的音乐可视化系列小项目(18)--LED平面板灯

[复制链接]
发表于 2022-8-27 11:14:23 | 显示全部楼层 |阅读模式
偶然心血来潮,想要做一个音乐可视化的系列专题。这个专题的难度有点高,涉及面也比较广泛,相关的FFT和FHT等算法也相当复杂,不过还是打算从最简单的开始,实际动手做做试验,耐心尝试一下各种方案,逐步积累些有用的音乐频谱可视化的资料,也会争取成型一些实用好玩的音乐可视器项目。这次找到了一个规格30X30厘米的吊顶平面板灯,准备尝试一下作为音乐可视化平板灯是否可行,看看效果如何。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x

打赏

参与人数 1家元 +20 收起 理由
玛德陛下 + 20 謝謝分享

查看全部打赏

 楼主| 发表于 2022-9-29 13:47:52 | 显示全部楼层
the0503 发表于 2022-9-28 17:58
又出新作品了,楼主真棒!向您学习!

谢谢鼓励
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-9-29 13:47:38 | 显示全部楼层
aladdincp 发表于 2022-9-28 17:38
这个灯条做LED频谱多好 加上平板灯的雾化效果 应该不错

这个还没有试过
回复 支持 反对

使用道具 举报

发表于 2022-9-28 17:58:59 | 显示全部楼层
又出新作品了,楼主真棒!向您学习!
回复 支持 反对

使用道具 举报

发表于 2022-9-28 17:38:28 | 显示全部楼层
这个灯条做LED频谱多好 加上平板灯的雾化效果 应该不错
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-30 15:35:47 | 显示全部楼层
实验场景图


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-30 15:26:33 | 显示全部楼层
实验的视频记录之二(4分39秒)

https://v.youku.com/v_show/id_XN ... hcb.playlsit.page.1





回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-30 15:22:36 | 显示全部楼层
实验的视频记录之一(1分05秒)

https://v.youku.com/v_show/id_XN ... hcb.playlsit.page.3




回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-30 15:18:58 | 显示全部楼层
  【花雕动手做】有趣好玩的音乐可视化系列小项目(18)--LED平面板灯
  项目程序之四:多彩MegunoLink伸缩音乐节拍灯
  模块接线:WS2812B接D6
  MAX4466      UNO
  VCC          5V
  GND         GND
  OUT          A0

  1. /*
  2.   【花雕动手做】有趣好玩的音乐可视化系列小项目(18)--LED平面板灯
  3.   项目程序之四:多彩MegunoLink伸缩音乐节拍灯
  4.   模块接线:WS2812B接D6
  5.   MAX4466      UNO
  6.   VCC          5V
  7.   GND         GND
  8.   OUT          A0
  9. */

  10. #include<FastLED.h>
  11. #include<MegunoLink.h>
  12. #include<Filter.h>

  13. #define N_PIXELS  48
  14. #define MIC_PIN   A0
  15. #define LED_PIN   6
  16. #define NOISE 10
  17. #define TOP   (N_PIXELS+2)
  18. #define LED_TYPE  WS2811
  19. #define BRIGHTNESS  10
  20. #define COLOR_ORDER GRB

  21. CRGB leds[N_PIXELS];
  22. int lvl = 0, minLvl = 0, maxLvl = 10;

  23. ExponentialFilter<long> ADCFilter(5, 0);

  24. void setup() {
  25.   FastLED.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, N_PIXELS).setCorrection(TypicalLEDStrip);
  26.   FastLED.setBrightness(BRIGHTNESS);
  27. }

  28. void loop() {
  29.   int n, height;
  30.   n = analogRead(MIC_PIN);
  31.   n = abs(1023 - n);
  32.   n = (n <= NOISE) ? 0 : abs(n - NOISE);
  33.   ADCFilter.Filter(n);
  34.   lvl = ADCFilter.Current();
  35.   //  Serial.print(n);
  36.   //  Serial.print(" ");
  37.   //  Serial.println(lvl);
  38.   height = TOP * (lvl - minLvl) / (long)(maxLvl - minLvl);
  39.   if (height < 0L) height = 0;
  40.   else if (height > TOP) height = TOP;
  41.   for (uint8_t i = 0; i < N_PIXELS; i++) {
  42.     if (i >= height) leds[i] = CRGB(0, 0, 0);
  43.     else leds[i] = Wheel( map( i, 0, N_PIXELS - 1, 30, 150 ) );
  44.   }
  45.   FastLED.show();
  46. }

  47. CRGB Wheel(byte WheelPos) {
  48.   if (WheelPos < 85)
  49.     return CRGB(WheelPos * 3, 255 - WheelPos * 3, 0);
  50.   else if (WheelPos < 170) {
  51.     WheelPos -= 85;
  52.     return CRGB(255 - WheelPos * 3, 0, WheelPos * 3);
  53.   } else {
  54.     WheelPos -= 170;
  55.     return CRGB(0, WheelPos * 3, 255 - WheelPos * 3);
  56.   }
  57. }
复制代码


回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-30 14:25:11 | 显示全部楼层
lw0459 发表于 2022-8-29 11:05
很有趣的制作,这灯装在露台,春节时候用很有气氛

是的,规格可以做大一些
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-30 14:24:34 | 显示全部楼层

谢谢鼓励
回复 支持 反对

使用道具 举报

发表于 2022-8-29 11:05:50 | 显示全部楼层
很有趣的制作,这灯装在露台,春节时候用很有气氛
回复 支持 反对

使用道具 举报

发表于 2022-8-28 22:50:26 | 显示全部楼层
看不懂也支持下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-28 17:34:18 | 显示全部楼层
kkdkj 发表于 2022-8-28 17:29
不错不错,很好很好

谢谢老师的鼓励
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-28 17:33:33 | 显示全部楼层
实验场景图



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
回复 支持 反对

使用道具 举报

发表于 2022-8-28 17:29:40 | 显示全部楼层
不错不错,很好很好
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-28 17:27:47 | 显示全部楼层
实验的视频记录(4分25秒)

https://v.youku.com/v_show/id_XN ... hcb.playlsit.page.1




回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-28 15:48:31 | 显示全部楼层
  【花雕动手做】有趣好玩的音乐可视化系列小项目(18)--LED平面板灯
  项目程序之三:FastLED音乐反应节奏灯
  模块接线:WS2812B接D6
  MAX4466      UNO
  VCC          5V
  GND         GND
  OUT          D7

  1. /*
  2.   【花雕动手做】有趣好玩的音乐可视化系列小项目(18)--LED平面板灯
  3.   项目程序之三:FastLED音乐反应节奏灯
  4.   模块接线:WS2812B接D6
  5.   MAX4466      UNO
  6.   VCC          5V
  7.   GND         GND
  8.   OUT          D7
  9. */

  10. #include<FastLED.h>
  11. #define LED_PIN 6
  12. #define NUM_LEDS 48

  13. CRGB leds[NUM_LEDS];
  14. uint8_t hue = 0;
  15. int soundsensor = 7;

  16. void setup() {
  17.   delay(2000);
  18.   FastLED.setBrightness(220);
  19.   pinMode(soundsensor, INPUT);
  20.   FastLED.addLeds<WS2812B, LED_PIN, GRB>(leds, NUM_LEDS);
  21. }

  22. void loop() {
  23.   int sensval = digitalRead(soundsensor);

  24.   if (sensval == 1) {
  25.     leds[0] = CRGB :: Red;
  26.     fill_solid(leds, NUM_LEDS, CRGB :: Blue);
  27.     rainbow_moving();
  28.     FastLED.show();
  29.     delay(10);
  30.   }
  31.   else {
  32.     leds[0] = CRGB :: Black;
  33.     fill_solid(leds, NUM_LEDS, CRGB :: Black);
  34.     FastLED.show();
  35.     delay(10);
  36.   }
  37. }

  38. void rainbow_moving() {
  39.   for (int i = 0; i < NUM_LEDS; i++) {
  40.     leds[i] = CHSV(hue + (i * 10), 255, 255);
  41.   }
  42.   EVERY_N_MILLISECONDS(10) {
  43.     hue++;
  44.   }
  45. }
复制代码


回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-28 13:50:47 | 显示全部楼层
实验场景图  动态图



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-8-28 13:47:32 | 显示全部楼层
实验场景图



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-8-19 07:09 , Processed in 0.140400 second(s), 14 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

快速回复 返回顶部 返回列表