12162浏览
楼主: 驴友花雕

[项目] 【花雕动手做】看见声音,基于Arduino系列音乐可视器(14)

[复制链接]

驴友花雕  中级技神
 楼主|

发表于 2022-8-9 09:57:01

实验的视频记录(1分39秒)

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



回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-8-9 09:58:46

本帖最后由 驴友花雕 于 2022-8-9 10:06 编辑

找到一个其他家用电器上的塑料盒子。

【花雕动手做】看见声音,基于Arduino系列音乐可视器(14)图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-8-9 10:09:53

准备用它来做十位120颗LED彩色音乐节奏灯的底座。

【花雕动手做】看见声音,基于Arduino系列音乐可视器(14)图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-8-9 12:05:33

为打这个孔,特意收了几个大规格扩孔器........


【花雕动手做】看见声音,基于Arduino系列音乐可视器(14)图1


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-8-9 12:09:00

没想到效果比预料的好

【花雕动手做】看见声音,基于Arduino系列音乐可视器(14)图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-8-10 12:53:58

实验场景图  动态图(水杯+水瓶)

【花雕动手做】看见声音,基于Arduino系列音乐可视器(14)图1



回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-8-10 13:03:03

实验的视频记录(1分13秒)

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




回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-8-10 13:30:10

定制的十片灯环,终于到了

【花雕动手做】看见声音,基于Arduino系列音乐可视器(14)图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-8-13 09:29:54

水瓶灯座初步成型了

【花雕动手做】看见声音,基于Arduino系列音乐可视器(14)图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-8-13 20:24:02

没想到,安装灯环就用了大半天功夫........

【花雕动手做】看见声音,基于Arduino系列音乐可视器(14)图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-8-13 20:34:44

简单测试十个灯环120颗LED

【花雕动手做】看见声音,基于Arduino系列音乐可视器(14)图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-8-13 20:43:21

  【花雕动手做】有趣好玩的音乐可视化系列小项目(14)---水杯水瓶灯
  项目程序之四:十位水杯音乐反应灯
  模块接线:WS2812B接D7
  MAX4466      UNO
  VCC          5V
  GND         GND
  OUT          A0

  1. /*
  2.   【花雕动手做】有趣好玩的音乐可视化系列小项目(14)---水杯水瓶灯
  3.   项目程序之四:十位水杯音乐反应灯
  4.   模块接线:WS2812B接D7
  5.   MAX4466      UNO
  6.   VCC          5V
  7.   GND         GND
  8.   OUT          A0
  9. */
  10. #include<FastLED.h>
  11. #define LED_PIN 7
  12. #define NUM_LEDS 120
  13. CRGB leds[NUM_LEDS];
  14. uint8_t hue = 0;
  15. int soundsensor = A0;
  16. void setup() {
  17.   delay(2000);
  18.   FastLED.setBrightness(130);
  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.     Serial.println("ON");
  26.     leds[0] = CRGB :: Red;
  27.     fill_solid(leds, NUM_LEDS, CRGB :: Blue);
  28.     rainbow_moving();
  29.     FastLED.show();
  30.     delay(10);
  31.   }
  32.   else {
  33.     leds[0] = CRGB :: Black;
  34.     fill_solid(leds, NUM_LEDS, CRGB :: Black);
  35.     FastLED.show();
  36.     delay(10);
  37.   }
  38. }
  39. void rainbow_moving() {
  40.   for (int i = 0; i < NUM_LEDS; i++) {
  41.     leds[i] = CHSV(hue + (i * 10), 255, 255);
  42.   }
  43.   EVERY_N_MILLISECONDS(10) {
  44.     hue++;
  45.   }
  46. }
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-8-13 20:45:31

实验场景图  动态图

【花雕动手做】看见声音,基于Arduino系列音乐可视器(14)图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-8-13 20:53:53

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-8-14 10:08:00

【花雕动手做】有趣好玩的音乐可视化系列小项目(14)---水杯水瓶灯
  项目之四:MegunoLink柱状音乐灯

  1. /*
  2. 【花雕动手做】有趣好玩的音乐可视化系列小项目(14)---水杯水瓶灯
  3.   项目之四:MegunoLink柱状音乐灯
  4. */
  5. #include<FastLED.h>
  6. #include<MegunoLink.h>
  7. #include<Filter.h>
  8. #define N_PIXELS  120
  9. #define MIC_PIN   A0
  10. #define LED_PIN   6
  11. #define NOISE 10
  12. #define TOP   (N_PIXELS+2)
  13. #define LED_TYPE  WS2811
  14. #define BRIGHTNESS  22
  15. #define COLOR_ORDER GRB
  16. CRGB leds[N_PIXELS];
  17. int lvl = 0, minLvl = 0, maxLvl = 10;
  18. ExponentialFilter<long> ADCFilter(5, 0);
  19. void setup() {
  20.   FastLED.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, N_PIXELS).setCorrection(TypicalLEDStrip);
  21.   FastLED.setBrightness(BRIGHTNESS);
  22. }
  23. void loop() {
  24.   int n, height;
  25.   n = analogRead(MIC_PIN);
  26.   n = abs(1023 - n);
  27.   n = (n <= NOISE) ? 0 : abs(n - NOISE);
  28.   ADCFilter.Filter(n);
  29.   lvl = ADCFilter.Current();
  30.   //  Serial.print(n);
  31.   //  Serial.print(" ");
  32.   //  Serial.println(lvl);
  33.   height = TOP * (lvl - minLvl) / (long)(maxLvl - minLvl);
  34.   if (height < 0L) height = 0;
  35.   else if (height > TOP) height = TOP;
  36.   for (uint8_t i = 0; i < N_PIXELS; i++) {
  37.     if (i >= height) leds[i] = CRGB(0, 0, 0);
  38.     else leds[i] = Wheel( map( i, 0, N_PIXELS - 1, 30, 150 ) );
  39.   }
  40.   FastLED.show();
  41. }
  42. CRGB Wheel(byte WheelPos) {
  43.   if (WheelPos < 85)
  44.     return CRGB(WheelPos * 3, 255 - WheelPos * 3, 0);
  45.   else if (WheelPos < 170) {
  46.     WheelPos -= 85;
  47.     return CRGB(255 - WheelPos * 3, 0, WheelPos * 3);
  48.   } else {
  49.     WheelPos -= 170;
  50.     return CRGB(0, WheelPos * 3, 255 - WheelPos * 3);
  51.   }
  52. }
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-8-14 10:21:53

实验场景图  动态图

【花雕动手做】看见声音,基于Arduino系列音乐可视器(14)图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-8-14 10:28:54

实验的视频记录(1分08秒)

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




回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-8-14 11:41:15

【花雕动手做】有趣好玩的音乐可视化系列小项目(14)---水杯水瓶灯
  项目之五:Arduino 和 FastLED多彩音乐节拍灯

  1. /*
  2. 【花雕动手做】有趣好玩的音乐可视化系列小项目(14)---水杯水瓶灯
  3.   项目之五:Arduino 和 FastLED多彩音乐节拍灯
  4. */
  5. #include <FastLED.h>
  6. #define SAMPLEPERIODUS 200
  7. #define MIC_PIN A0
  8. #define LED_DT 6
  9. #define COLOR_ORDER GRB
  10. #define LED_TYPE WS2812
  11. #define NUM_LEDS 120
  12. uint8_t max_bright = 33;
  13. struct CRGB leds[NUM_LEDS];
  14. CRGBPalette16 currentPalette = RainbowColors_p;
  15. CRGBPalette16 targetPalette;
  16. void setup() {
  17.   pinMode(LED_BUILTIN, OUTPUT);
  18.   LEDS.addLeds<LED_TYPE, LED_DT, COLOR_ORDER>(leds, NUM_LEDS);
  19.   FastLED.setBrightness(max_bright);
  20. }
  21. float bassFilter(float sample) {
  22.   static float xv[3] = {0, 0, 0}, yv[3] = {0, 0, 0};
  23.   xv[0] = xv[1]; xv[1] = xv[2];
  24.   xv[2] = sample / 9.1f;
  25.   yv[0] = yv[1]; yv[1] = yv[2];
  26.   yv[2] = (xv[2] - xv[0]) + (-0.7960060012f * yv[0]) + (1.7903124146f * yv[1]);
  27.   return yv[2];
  28. }
  29. float envelopeFilter(float sample) {
  30.   static float xv[2] = {0, 0}, yv[2] = {0, 0};
  31.   xv[0] = xv[1];
  32.   xv[1] = sample / 160.f;
  33.   yv[0] = yv[1];
  34.   yv[1] = (xv[0] + xv[1]) + (0.9875119299f * yv[0]);
  35.   return yv[1];
  36. }
  37. float beatFilter(float sample) {
  38.   static float xv[3] = {0, 0, 0}, yv[3] = {0, 0, 0};
  39.   xv[0] = xv[1]; xv[1] = xv[2];
  40.   xv[2] = sample / 7.015f;
  41.   yv[0] = yv[1]; yv[1] = yv[2];
  42.   yv[2] = (xv[2] - xv[0]) + (-0.7169861741f * yv[0]) + (1.4453653501f * yv[1]);
  43.   return yv[2];
  44. }
  45. void loop() {
  46.   unsigned long time = micros();
  47.   float sample, value, envelope, beat, thresh, micLev;
  48.   for (uint8_t i = 0; ; ++i) {
  49.     sample = (float)analogRead(MIC_PIN);
  50.     micLev = ((micLev * 67) + sample) / 68;
  51.     sample -= micLev;
  52.     value = bassFilter(sample);
  53.     value = abs(value);
  54.     envelope = envelopeFilter(value);
  55.     if (i == 200) {
  56.       beat = beatFilter(envelope);
  57.       thresh = 0.02f * 75.;
  58.       if (beat > thresh) {
  59.         digitalWrite(LED_BUILTIN, LOW);
  60.         int strt = random8(NUM_LEDS / 2);
  61.         int ende = strt + random8(NUM_LEDS / 2);
  62.         for (int i = strt; i < ende; i++) {
  63.           uint8_t index = inoise8(i * 30, millis() + i * 30);
  64.           leds[i] = ColorFromPalette(currentPalette, index, 255, LINEARBLEND);
  65.         }
  66.       } else {
  67.         digitalWrite(LED_BUILTIN, HIGH);
  68.       }
  69.       i = 0;
  70.     }
  71.     EVERY_N_SECONDS(5) {
  72.       uint8_t baseC = random8();
  73.       targetPalette = CRGBPalette16(CHSV(baseC + random8(32), 255, random8(128, 255)),
  74.                                     CHSV(baseC + random8(64), 255, random8(128, 255)),
  75.                                     CHSV(baseC + random8(64), 192, random8(128, 255)),
  76.                                     CHSV(baseC + random8(),   255, random8(128, 255)));
  77.     }
  78.     EVERY_N_MILLISECONDS(50) {
  79.       uint8_t maxChanges = 24;
  80.       nblendPaletteTowardPalette(currentPalette, targetPalette, maxChanges);
  81.     }
  82.     EVERY_N_MILLIS(50) {
  83.       fadeToBlackBy(leds, NUM_LEDS, 64);
  84.       FastLED.show();
  85.     }
  86.     for (unsigned long up = time + SAMPLEPERIODUS; time > 20 && time < up; time = micros()) {  }
  87.   } // for i
  88. } // loop()
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-8-14 20:19:49

实验的视频记录(3分59秒)

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



回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-8-14 20:23:38

实验的视频记录之二(3分51秒)
https://v.youku.com/v_show/id_XN ... hcb.playlsit.page.1



回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-10-5 10:02:27

【花雕动手做】看见声音,基于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


回复

使用道具 举报

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

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail