实验场景动态图 

 

128.gif

点赞  2021-11-22 14:29

 【花雕动手做】有趣好玩的音乐可视化系列小项目

   项目之四:FFT算法的双点阵屏的动态频谱仪

 

   实验视频剪辑 

 

https://v.youku.com/v_show/id_XNTgyMjEwNjcwMA==.html?spm=a2hcb.playlsit.page.1

 


 

 

 

点赞  2021-11-22 16:20

   实验场景动态图

 

129.gif

点赞  2021-11-22 16:35

程序说明:

 

安装所有必需的库后,通过包含库来启动代码。ArduinoFFT库用于将输入模拟信号转换为频谱。MD_MAX72xx库用于控制显示并在显示器上绘制音频频谱。而SPI库用于在Arduino和点阵显示器之间建立SPI通信。

 

#include <arduinoFFT.h>

#include <MD_MAX72xx.h>

#include <SPI.h>

 

接下来,使用函数 MD_MAX72XX () 为MD_MAX72XX创建一个实例。此功能需要三个参数,第一个是硬件类型,第二个是CS引脚,第三个是连接设备的最大数量。另外,使用 arduinoFFT() 函数为 arduinoFFT 创建一个实例。

 

MD_MAX72XX disp = MD_MAX72XX(MD_MAX72XX::FC16_HW, 10, 4);

arduinoFFT FFT = arduinoFFT();

 

然后在下一行中,定义两个新数组来存储频谱的实部和虚部的 64 位频谱分量。

 

double realComponent[64];

double imagComponent[64];

 

点赞  2022-12-4 20:59

现在,在 setup() 函数中,以 9600 的波特率初始化串行监视器以进行调试。另外,使用 disp.begin() 函数初始化点阵显示。

 

void setup()
{
  disp.begin();
  Serial.begin(9600);
}

 

现在,在循环函数中,我们将使用 for 循环通过 Arduino nano 的 A7 引脚采集 64 个麦克风读数样本,并存储到我们之前定义的“realComponent”数组中。

 

for (int i=0; i<64; i++)
  {
    realComponent = analogRead(A7)/sensitivity;
    imagComponent = 0;
  }

 

从麦克风获得 64 个频谱值后,我们通过 FFT 算法将它们传递,以计算实部和虚部信号的 64 个频谱分量。然后在接下来的几行中,我们通过了这些阅读 FFT。ComplexToMagnitude() 函数用于计算 64 个光谱分量的星等。

 


FFT.Windowing(realComponent, 64, FFT_WIN_TYP_HAMMING, FFT_FORWARD);
FFT.Compute(realComponent, imagComponent, 64, FFT_FORWARD);
FFT.ComplexToMagnitude(realComponent, imagComponent, 64);

 

现在,在接下来的几行中,我们使用 for 循环来控制 LED 矩阵的所有 32 列。在此循环中,我们首先将这些读数转换为已知范围,然后使用 map 函数将这些读数映射到 0 到 8 的范围。零表示该特定列的所有 LED 都将低电平,反之亦然。

 


for(int i=0; i<32; i++)
  {
    realComponent = constrain(realComponent,0,80);
    realComponent = map(realComponent,0,80,0,8);
    index = realComponent;
    value = spectralHeight[index];
    c = 31 - i;
    disp.setColumn(c, value);
  }

 

点赞  2022-12-4 21:05

实验的视频记录

优酷:https://v.youku.com/v_show/id_XNTkyNjUyOTU0NA==.html?spm=a2hcb.playlsit.page.1

B站:https://www.bilibili.com/video/BV1iP4y1Q7o9/?vd_source=98c6b1fc23b2787403d97f8d3cc0b7e5

 


 

点赞  2022-12-6 19:57

实验的视频记录之二

优酷:

B站:https://www.bilibili.com/video/BV1e44y1S7gi/?vd_source=98c6b1fc23b2787403d97f8d3cc0b7e5

 


 

点赞  2022-12-6 20:02
123
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复