几年前做过一次彩屏音乐频谱指示器,不过当时主要是给朋友制作,MCU性能不高,功能有限。后来也用ST的单片机做过几个版本,但基本也都是做给身边的好友,没怎么下功夫完善,以至于最后都遗忘了,知道今年年初搬家,在某个角落找到几个当初制作留下的“工程样机”,才重新唤起记忆,并准备进一步完善它。
首先介绍一下硬件配置。一开始MCU是使用ST的103系列,后来发现该系列的Flash存在等待周期,性能受到限制,而国产兆易创新(GD)系列的MCU由于使用了其擅长的存储技术,没有了这个等待周期,可以更好发挥出M3内核的性能,而且相同系列的MCU和ST的完全PIN2PIN,于是果断摒弃ST投入到GD阵营。
在音频输入处理方面,为了尽量减少对音源的干扰,必须做隔离。之前是简单使用三极管搭的跟随器做的简单隔离,这一次我使用仪用运放做一个输入缓冲,输出对2个声道信号做一个硬件混叠,以减轻MCU运算量。同时考虑到音频输入信号强弱不一,于是再设计了一个增益调节电路,主要是为了提高小信号输入的信噪比,最终我使用了一个4通道输入的仪用运放搭建了这个音频前置处理电路,并在实际使用中取得不错的效果。同时预留麦克风相关电路,以便在一些无法使用音频输入的场合中直接使用麦克风进行信号获取。为了便于将模块集成到一些诸如功放的设备上,使用USB和3.5音频输入不太合适,于是又增加了8PIN的输入端子,方便布线。
屏幕选用1.8寸的宽视角高对比度RGB显示屏,这是因为受制于功放面板高度,使用这个尺寸的屏显示效果最佳,实际显示效果也确实让人满意。刚开始选用的屏是普亮的,亮度偏低,后来再选用了另一款高亮屏后,色彩亮丽进一步提升,有点类似OLED的屏幕错觉。
硬件介绍完了,接下来的软件才是重点。
因为一开始主要就是做一下音乐频谱,这已经是烂大街的东西了,利用ST的官方FFT库,就可以很轻易的制作各种频谱应用。但做一个频谱应用显然有点浪费这个MCU,于是我想着做多几种不一样的音频显示效果,做成一个“音频视觉效果集合”。现在已经做了十几种效果了,中途有一些效果我觉得不满意去掉了,现保留的效果如下图所示。
这些效果光靠文字不好描述,还是直接上视频吧:
这些显示效果均可通过背面的一个按钮轻轻一按实现切换,并且会自动记忆当前的显示模式,这样当下次上电的时候就会自动进入上一次的显示模式了。
仔细看上面的效果图你会看到有2张好像与音频效果没太大关系,是的,这是额外的功能,第一个是用来辅助调节增益用的。给模块输入一个音频信号(以正弦信号为佳但不限制),在调节背面的增益调节电阻时,可以通过此页面看到放大后的音频有没有出现失真,并可直观看到当前硬件的放大倍数,对于一些显示模式可能会用到(比如VU表模式下,可以通过知道模块的放大倍数来校准该VU表)。
另外一个是升级页面。为了便于后面的升级操作,给模块添加了USB升级功能,当需要升级时只需要按住模块背面的切换按钮,给将模块连接电脑即可进入升级模式。我写了一个上位机程序,能自动检测和连接该模块,使升级操作尽可能简单。
模块在升级时会有进度条显示升级进度,升级内容不光光是程序,还可以是。。UI资源。这里就要介绍一下我花了很多心血去做的资源配置方案了。
在我之前做给朋友做频谱模块时,他们普遍有自己的配色想法等,却又不懂编程,于是我就给他们搞了一个固件修改器,可以修改固件中相关颜色数值等,然后再烧录程序。这样确实可以满足他们这种小修改的需求,但却非常不灵活,而且存在固件校验问题。这一次,我决定将效果模式中会用到的各种配色、图案以及一些显示相关的数据都以文件的形式在PC端按模式目录存放好,并编写相关资源生成要用的小工具,使用windows批处理管理这些工具,当换好相关的资源图片或配色图片等数据后,一键打包生成“资源文件”,然后通过升级工具将资源文件下载到模块中,即可完成显示效果更新。这样,固件只包含程序逻辑,而页面显示的效果相关数据就独立到资源文件中了。这样做得好处是如果你有比较好的配色和显示方案,可以直接分享你生成好的资源文件,大家烧录你的资源文件后就可以体验到你的特色效果了。
资源目录 双击一键生成资源文件,只需耐心等待几秒即可完成资源文件的生成。 打开升级工具,默认加载目录下的资源文件,自动检测并连接模块,实现一键升级。 修改效果:
如上图VU表是支持直接换表盘图片的,刻度的位置也支持更换(以刻度坐标文件存在于资源文件中),但目前还没写好相关工具去生成这个刻度坐标,换表盘图片要注意刻度位置不要发生变化。
我把相关的资源文件和资源文件修改方法放到了我的个人网页中,有兴趣的可以打开观看。
后记:这个模块历经3年多的时光(中途被遗忘2年),到现在基本定型,也是花费了我一番心血。本着对音频可视化的爱好,后续我还会继续添加相关的可视化效果,并对资源开发工具不断更新,以便让有需要的朋友可以自由发挥自己的创造力。后续我计划添加可视化的频率补偿调节工具,用于提升频谱显示效果。同时,正在研究将各个音频效果程序以APP文件方式放入资源文件中,打包并开放APP开发环境,以便有开发能力的爱好者自主开发相关显示效果。欢迎关注我的个人微信公众号”NT科技”查看最新进度,我也会在该帖下发布最新固件和分享显示效果。同时我新打板并在嘉立创贴了一些板子,如果有人感兴趣可以TB搜索“南天音乐”店铺购买。后期可能也会做一些大屏的显示,以及正在构思3D效果的可视化效果,也欢迎大家关注。
新打板
|