驴友花雕 发表于 2022-10-26 22:05:23

实验场景图



驴友花雕 发表于 2022-10-27 07:59:32

【花雕动手做】有趣好玩的音乐可视化系列项目(29)--16X16硬屏灯
项目之六:Arduino 和 FastLED多彩音乐节奏灯

/*
【花雕动手做】有趣好玩的音乐可视化系列项目(29)--16X16硬屏灯
项目之六:Arduino 和 FastLED多彩音乐节奏灯
*/

#include <FastLED.h>
#define SAMPLEPERIODUS 200
#define MIC_PIN A0
#define LED_DT 6
#define COLOR_ORDER GRB
#define LED_TYPE WS2812
#define NUM_LEDS 256
uint8_t max_bright = 33;
struct CRGB leds;
CRGBPalette16 currentPalette = RainbowColors_p;
CRGBPalette16 targetPalette;

void setup() {
pinMode(LED_BUILTIN, OUTPUT);
LEDS.addLeds<LED_TYPE, LED_DT, COLOR_ORDER>(leds, NUM_LEDS);
FastLED.setBrightness(max_bright);
}

float bassFilter(float sample) {
static float xv = {0, 0, 0}, yv = {0, 0, 0};
xv = xv; xv = xv;
xv = sample / 9.1f;
yv = yv; yv = yv;
yv = (xv - xv) + (-0.7960060012f * yv) + (1.7903124146f * yv);
return yv;
}

float envelopeFilter(float sample) {
static float xv = {0, 0}, yv = {0, 0};
xv = xv;
xv = sample / 160.f;
yv = yv;
yv = (xv + xv) + (0.9875119299f * yv);
return yv;
}

float beatFilter(float sample) {
static float xv = {0, 0, 0}, yv = {0, 0, 0};
xv = xv; xv = xv;
xv = sample / 7.015f;
yv = yv; yv = yv;
yv = (xv - xv) + (-0.7169861741f * yv) + (1.4453653501f * yv);
return yv;
}

void loop() {
unsigned long time = micros();
float sample, value, envelope, beat, thresh, micLev;
for (uint8_t i = 0; ; ++i) {
    sample = (float)analogRead(MIC_PIN);
    micLev = ((micLev * 67) + sample) / 68;
    sample -= micLev;
    value = bassFilter(sample);
    value = abs(value);
    envelope = envelopeFilter(value);
    if (i == 200) {
      beat = beatFilter(envelope);
      thresh = 0.02f * 75.;

      if (beat > thresh) {
      digitalWrite(LED_BUILTIN, LOW);

      int strt = random8(NUM_LEDS / 2);
      int ende = strt + random8(NUM_LEDS / 2);
      for (int i = strt; i < ende; i++) {
          uint8_t index = inoise8(i * 30, millis() + i * 30);
          leds = ColorFromPalette(currentPalette, index, 255, LINEARBLEND);
      }
      } else {
      digitalWrite(LED_BUILTIN, HIGH);
      }
      i = 0;
    }

    EVERY_N_SECONDS(5) {
      uint8_t baseC = random8();
      targetPalette = CRGBPalette16(CHSV(baseC + random8(32), 255, random8(128, 255)),
                                    CHSV(baseC + random8(64), 255, random8(128, 255)),
                                    CHSV(baseC + random8(64), 192, random8(128, 255)),
                                    CHSV(baseC + random8(),   255, random8(128, 255)));
    }

    EVERY_N_MILLISECONDS(50) {
      uint8_t maxChanges = 24;
      nblendPaletteTowardPalette(currentPalette, targetPalette, maxChanges);
    }

    EVERY_N_MILLIS(50) {
      fadeToBlackBy(leds, NUM_LEDS, 64);
      FastLED.show();
    }

    for (unsigned long up = time + SAMPLEPERIODUS; time > 20 && time < up; time = micros()) {}

} // for i
} // loop()

驴友花雕 发表于 2022-10-27 08:40:17

本帖最后由 驴友花雕 于 2022-10-27 08:42 编辑

实验场景图动态图



驴友花雕 发表于 2022-10-27 08:50:04

实验的视频记录
优酷:
B站:https://www.bilibili.com/video/BV1C14y157zB/?vd_source=98c6b1fc23b2787403d97f8d3cc0b7e5

https://www.bilibili.com/video/BV1C14y157zB/?vd_source=98c6b1fc23b2787403d97f8d3cc0b7e5

驴友花雕 发表于 2022-10-27 08:55:27

实验场景图



驴友花雕 发表于 2022-10-29 11:13:05

镜像扩展的实验场景图



驴友花雕 发表于 2022-10-29 11:20:53

实验的视频记录
优酷:
B站:https://www.bilibili.com/video/BV1nW4y1j7Rs/?vd_source=98c6b1fc23b2787403d97f8d3cc0b7e5

https://www.bilibili.com/video/BV1nW4y1j7Rs/?vd_source=98c6b1fc23b2787403d97f8d3cc0b7e5

驴友花雕 发表于 2022-10-29 11:23:01

实验场景图动态图



驴友花雕 发表于 2022-10-29 11:30:56

【花雕动手做】有趣好玩音乐可视化16X16硬屏灯(镜像扩展)之二

实验的视频记录
优酷:
B站:https://www.bilibili.com/video/BV1yd4y1k7bT/?vd_source=98c6b1fc23b2787403d97f8d3cc0b7e5


https://www.bilibili.com/video/BV1yd4y1k7bT/?vd_source=98c6b1fc23b2787403d97f8d3cc0b7e5

驴友花雕 发表于 2022-10-29 11:33:14

实验场景图



驴友花雕 发表于 2022-10-29 11:38:03

【花雕动手做】有趣好玩音乐可视化16X16硬屏灯(镜像扩展)之三

实验的视频记录
优酷:
B站:https://www.bilibili.com/video/BV1Tg41167Mh/?vd_source=98c6b1fc23b2787403d97f8d3cc0b7e5


https://www.bilibili.com/video/BV1Tg41167Mh/?vd_source=98c6b1fc23b2787403d97f8d3cc0b7e5

驴友花雕 发表于 2022-10-29 12:37:18

实验场景图



驴友花雕 发表于 2022-10-29 12:49:02

【花雕动手做】有趣好玩音乐可视化16X16硬屏灯(组合镜像)

实验场景图



驴友花雕 发表于 2022-10-29 13:09:33

实验场景图动态图



驴友花雕 发表于 2022-10-29 13:35:07

【花雕动手做】有趣好玩音乐可视化16X16硬屏灯(组合镜像)

实验的视频记录
优酷:https://v.youku.com/v_show/id_XNTkxNTgyMjAxNg==.html?spm=a2hcb.playlsit.page.3
B站:https://www.bilibili.com/video/BV1yP4y1S7FJ/?vd_source=98c6b1fc23b2787403d97f8d3cc0b7e5

https://www.bilibili.com/video/BV1yP4y1S7FJ/?vd_source=98c6b1fc23b2787403d97f8d3cc0b7e5

驴友花雕 发表于 2022-10-29 15:19:16

实验场景图



驴友花雕 发表于 2022-10-29 15:33:09

【花雕动手做】有趣好玩音乐可视化16X16硬屏灯(组合镜像)之二

实验的视频记录
优酷:https://v.youku.com/v_show/id_XNTkxNTgxOTE5Ng==.html?spm=a2hcb.playlsit.page.1
B站:https://www.bilibili.com/video/BV1BG4y1h7rs/?vd_source=98c6b1fc23b2787403d97f8d3cc0b7e5

https://www.bilibili.com/video/BV1BG4y1h7rs/?vd_source=98c6b1fc23b2787403d97f8d3cc0b7e5

驴友花雕 发表于 2022-10-29 15:41:21

【花雕动手做】有趣好玩音乐可视化16X16硬屏灯(组合镜像)之三

实验的视频记录
优酷:https://v.youku.com/v_show/id_XNTkxNTgyNjQ1Ng==.html?spm=a2hcb.playlsit.page.5
B站:https://www.bilibili.com/video/BV1Tg41167Mh/?vd_source=98c6b1fc23b2787403d97f8d3cc0b7e5

https://www.bilibili.com/video/BV1Tg41167Mh/?vd_source=98c6b1fc23b2787403d97f8d3cc0b7e5

驴友花雕 发表于 2022-10-29 15:45:20

实验场景图



驴友花雕 发表于 2022-11-7 17:58:52

Arduino 系列传感器和执行器模块实验目录清单:
一块扩展板完成Arduino的10类37项实验(代码+图形+仿真)
https://mc.dfrobot.com.cn/thread-280845-1-1.html
连杆形式的腿机构十一种:盘点机器人行走背后的机械原理
https://mc.dfrobot.com.cn/thread-308097-1-1.html
【花雕动手做】超低成本,尝试五十元的麦克纳姆轮小车!
https://mc.dfrobot.com.cn/thread-307863-1-1.html
【花雕动手做】超迷你哦,用徽商香烟盒做个智能小车!
https://mc.dfrobot.com.cn/thread-307907-1-1.html
【花雕动手做】太搞笑啦,一支胶管制成二只蠕动机器人
https://mc.dfrobot.com.cn/thread-308046-1-1.html
【花雕动手做】快餐盒盖,极低成本搭建机器人实验平台
https://mc.dfrobot.com.cn/thread-308063-1-1.html
【花雕动手做】特别苗条,使用微波传感器控制的纤细小车
https://mc.dfrobot.com.cn/thread-308866-1-1.html
【花雕动手做】脑洞大开、五花八门的简易机器人66种
https://mc.dfrobot.com.cn/thread-307900-1-1.html
【花雕动手做】看见声音,基于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
【花雕动手做】有趣好玩的音乐可视化系列项目(28)--LED乒乓球灯
https://mc.dfrobot.com.cn/thread-314321-1-1.html
【花雕动手做】有趣好玩的音乐可视化系列项目(29)--16X16硬屏灯
https://mc.dfrobot.com.cn/thread-314474-1-1.html
【花雕动手做】有趣好玩的音乐可视化(30)--P6 LED单元板
https://mc.dfrobot.com.cn/thread-314540-1-1.html


实验一百五十八:QMC5883L电子指南针罗盘模块 三轴磁场传感器GY-271
https://mc.dfrobot.com.cn/thread-308195-1-1.html
实验一百六十三:BMI160 6轴惯性运动传感器 16位3轴加速度+超低功耗3轴陀螺仪I2C/SPI 14LGA
https://mc.dfrobot.com.cn/thread-310371-1-1.html
实验一百六十五:2.4 英寸 TFT LCD 触摸屏模块 XPT2046 PCB ILI9341 240x320 像素 8 位 SPI 串口显示器 300mA
https://mc.dfrobot.com.cn/thread-309803-1-1.html
实验一百七十六:6mm大尺寸8x8LED方块方格点阵模块 可级联 红绿蓝白色 可选8级亮度
https://mc.dfrobot.com.cn/thread-309845-1-1.html
实验一百七十九:0.66英寸OLED显示模块 液晶屏模块IIC/I2C接口 64*48像素 SSD1306驱动芯片
https://mc.dfrobot.com.cn/thread-311179-1-1.html
实验一百八十一:1.3寸OLED液晶屏I2C IIC通信 4针模块 1106/1306驱动 128*64像素
https://mc.dfrobot.com.cn/thread-311123-1-1.html
实验一百八十三:GY-530 VL53L0X 激光测距 ToF测距 飞行时间测距传感器模块 IIC通信协议
https://mc.dfrobot.com.cn/thread-310273-1-1.html
实验一百八十五:MAX4466声音传感器 驻极体话筒放大器 麦克风可调功放模块 microphone
https://mc.dfrobot.com.cn/thread-310193-1-1.html
实验一百八十九:TDA1308 硅麦克风 数字咪头放大模块 拾音器放大板 楼氏SUNLEPHANT
https://mc.dfrobot.com.cn/thread-310246-1-1.html
实验一百九十三:TCS34725颜色识别传感器 RGB IIC明光感应模块 ColorSensor
https://mc.dfrobot.com.cn/thread-310209-1-1.html
实验二百:RCWL-0515微波雷达感应开关 人体感应 智能感应探测传感器 12-15米远距离2.7G微波检测模块
https://mc.dfrobot.com.cn/thread-310313-1-1.html
实验二百零一:OPT101模拟光照传感器 TEMT6000光强度模块 单片光电二极管 YourCee
https://mc.dfrobot.com.cn/thread-311164-1-1.html
实验二百零三:Air724UG合宙 Cat14G模块 DTU物联网UART串口通信数据TCP透传 核心板组合套餐
https://mc.dfrobot.com.cn/thread-310342-1-1.html
实验二百零七:I2C红色8*8LED点阵模块ht16k33驱动1088BS树莓派物联网可扩展编程
https://mc.dfrobot.com.cn/thread-310951-1-1.html
实验二百零九:Gravity: I2C & UART BC20 NB-IoT & GNSS通信模块 NB-IoT广域低功耗无线通信 GPS/北斗精准定位
https://mc.dfrobot.com.cn/thread-310433-1-1.html
实验二百十一:LED 圆环内置IC全彩点控1-8-12-16-24-32 WS2812B 93灯 环形 圆盘
https://mc.dfrobot.com.cn/thread-314225-1-1.html
实验二百一十四:WS2812B全彩RGB像素屏 8x32点阵LED显示屏 可编程硬屏模块
https://mc.dfrobot.com.cn/thread-314378-1-1.html
实验二百一十七:2.9寸epd电子纸屏模块 spi电纸屏黑白红三色eink墨水屏QYEG0290BNS800F6
https://mc.dfrobot.com.cn/thread-311306-1-1.html#pid498640
实验二百一十八:1.3寸 TFT显示屏 ST7735S驱动高清ips 模块
https://mc.dfrobot.com.cn/thread-313540-1-1.html#pid518278
实验二百二十:P6全彩LED模组 16X32显示屏单元板 P6-RGB-16X32-8S室内全彩8扫电子屏(HX-P6-16X32-A)
https://mc.dfrobot.com.cn/thread-314576-1-1.html

【花雕测评】【AI】尝试搭建Maixduino几种开发环境
https://makelog.dfrobot.com.cn/article-311383.html
【花雕测评】【AI】MaixPy基本使用、显示文字及摄像机的22个小项目
https://makelog.dfrobot.com.cn/article-311389.html
【花雕测评】【AI】Mind+图片文字显示、呼吸灯和网络应用的22项小实验
https://makelog.dfrobot.com.cn/article-311386.html
【花雕测评】【AI】MaixPy机器视觉与Color识别的8个尝试
https://makelog.dfrobot.com.cn/article-311393.html
【花雕测评】【AI】Mind+机器视觉之数字图像处理和显示的22种小测试
https://makelog.dfrobot.com.cn/article-311405.html
【花雕测评】【AI】MaixPy之神经网络KPU与人脸识别的初步体验
https://makelog.dfrobot.com.cn/article-311400.html
【花雕测评】【AI】Mind+机器视觉之颜色、维码与形状识别的8个小实验
https://makelog.dfrobot.com.cn/article-311417.html

驴友花雕 发表于 2022-11-17 21:38:34

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百七十七:Wemos D1 R32 ESP32开发板
项目之四十七:快速傅里叶变换256位频谱仪

/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百七十七:Wemos D1 R32 ESP32开发板
项目之四十七:快速傅里叶变换256位频谱仪
*/

#include"arduinoFFT.h"
#include <FastLED.h>   

#define NUM_LEDS 256   
#define LED_TYPE WS2812
#define COLOR_ORDER GRB

arduinoFFT FFT = arduinoFFT();
CRGB leds;         

#define CHANNEL 39
#define DATA_PIN 23

const uint8_t max_bright = 2;         
const uint16_t samples = NUM_LEDS / 4;
const byte halfsamples = samples / 2;
uint8_t gHue;                        
int value;                           
double vReal;               
double vImag;               
char toData;            

int pointJump;
int uJump;   
int dJump;   

int uValue;               
int dValue;               
int tValue;               
int toDown = 0;            
uint8_t toDownSpeed = 3;   
int pointDown = 0;         
uint8_t pointDownSpeed = 9;

void setup(){
delay(100);            
Serial.println("Ready");
FastLED.addLeds<LED_TYPE, DATA_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip);
FastLED.setBrightness(max_bright);
}

void loop(){
FastLED.clear();                        
EVERY_N_MILLISECONDS(10) {
    gHue += 10;
}
for (int i = 0; i < samples; i++)      
{
    value = analogRead(CHANNEL);
    vReal = value;      
    vImag = 0.0;         
}

FFT.Windowing(vReal, samples, FFT_WIN_TYP_HAMMING, FFT_FORWARD);
FFT.Compute(vReal, vImag, samples, FFT_FORWARD);
FFT.ComplexToMagnitude(vReal, vImag, samples);

for (int i = 0; i < halfsamples; i++)
{
    toData = vReal;   
    toData = constrain(toData, 0, 100);
    toData = map(toData, 0, 100, 1, 7);
}
for (int i = 0; i < halfsamples; i++)
{
    uValue = toData;   
    uJump++;            
    if (uValue > uJump)
    {
      uValue = uJump;
    }
    else
    {
      uJump = uValue;
    }
    dValue = uValue;
    toDown++;                     
    if (toDown % toDownSpeed == 0)
    {
      dJump--;
      toDown = 0;
    }
    if (dValue > pointJump)
    {
      dJump = dValue;
    }
    else
    {
      dValue = dJump;
    }
    tValue = uValue;                     
    pointDown++;                        
    if (pointDown % pointDownSpeed == 0)
    {
      pointJump--;
      pointDown = 0;
    }
    if (tValue > pointJump)
    {
      pointJump = tValue;
    }
    else
    {
      tValue = pointJump;
    }
    fill_rainbow(leds + 8 * i, uValue, gHue, 30);
    fill_rainbow(leds + 8 * i, dValue, gHue, 30);
    fill_solid(leds + 8 * i + tValue, 1, CRGB::White);
   
}
FastLED.show();
delay(2);      
}

页: 1 [2] 3
查看完整版本: 【花雕动手做】看见声音,基于Arduino系列音乐可视器(29)