理工男总是被人黑没情调,但这其实只是人家不屑于和你谈情调。真要遇上了心爱的对象,就算一块看似枯燥的pcb板,都能被做出诱人的味道。本次分享一个超级炫酷的音乐频谱项目,废话不多说,先上张效果图。
下面就分享音乐频谱的整体制作过程,也顺便记录自己对新鲜事物的学习过程。
一、音乐频谱所需材料:
1)ws2812b制作的16x32的矩阵;
2)这里是用两个16x16的矩阵拼接成的,我是直接在网络够买的矩阵,感兴趣的朋友也可以够买单个的ws2812b来自己制作;
3)stm32f103rbt6芯片及其他电容电阻晶振等元器件;
4)线材包括杜邦线等等;
5)接口器件包括usb、音频座、插针等等;
6)音频线一根用于采集电脑音频信号到adc。
二、音乐频谱制作过程
step 1) 音乐频谱----led连接
将两个16*16的led矩阵串联,拼接成一块16*32的led矩阵,连接方法:第一块led矩阵的dou接口连接到第二块的din接口。
step 2) 音乐频谱----电源连接
我的led工作电压是5v,所以将两块led的电源接口分别连到5v开关电源的输出口。注意,一块led在工作时最大电流18a,建议使用40a以上的开关电源,使用足够粗的电线连接。
step 3) 音乐频谱----控制板制作:
控制板是接收电脑传递过来的音频信号,并用fft处理后得到的结果将其送出显示到led矩阵中来。被控led是ws2812b可编程led制作的点阵,其受控信号频率为800khz,控制时序图如下所示:
每个led由24位数据来控制,24位的数据结构是g7~g0+r7~r0+b7~b0,高位先发,按照grb的顺序发送数据。
模拟电路采集使用lm358搭的放大电路,如下图所示:
图中in_ch是电脑音频接入端,pc3是信号放大后给stm32模拟信号采集引脚的信号输出端。
c13、r6、r7组成信号抬升电路,将信号电压抬升,使负电压变成正电压。r8之后是信号放大电路,pc3的信号强度等于r8前面信号的r9/r8倍。in1+处设定的是out1端输出的最小电压值。
这里我推荐使用easyeda来设计控制板,easyeda是一个在线eda设计软件 ,简洁高效,你可以在他上面原理图,pcb,甚至是样板制作,非常方便。
step 4) 音乐频谱---- 原理图&pcb制作:
因为考虑文章篇幅过长,如果需要本次设计的原理图,可以去easyeda网站搜索我的项目,然后直接将我设计好的图纸拷贝到你的账号里,以下是一些设计截图。
(原理图绘制截图)
(pcb设计过程截图)
接下来就是将本次设计拿去打样,打样厂家请自行百度,这边也不做多叙述。
下图是我打样回来的的样板。
样板到手,接下来就是将元器件都焊接上,像下面这个样子,一块控制板就完成了。
step 5) 音乐频谱----项目调试
将电脑音频线连接到刚刚焊接好的测试版接头上,将电脑音乐打开(电脑音乐可能插上
音频线后不能听见声音,我们可以用1分2的接头来讲电脑音频输出变为两路音频输出,其中一路接到核心板,另一路接到一个音箱上).
图是系统的接线图,核心板直接用电脑usb供电,接入电脑的音频输出端口,电脑音频输出一端接入核心板,另一端接入外放音响,将点阵控制接口的信号线与地线与点阵的din和gnd相连接即可。
step 6) 音乐频谱----程序编写
编写程序下载进核心板,炫彩的音乐频谱就出现啦
当然你也可以编写程序,让音乐频谱变得更加绚丽。