|
|
音频播放器是在8、9年前就开始有想法制作的,本人理想的音频播放器的是有实体键及LCD显示,界面有一张唱片的封面图、播放进度条及一些常见的参数等,买了不少开发板进制开发,但由于水平有限,一直没什么进展,在23、24年用树莓派及电脑小主机制作了数播,电脑小主机那台一直用到现在,效果不错,但它是台小电脑,启动需要时间,所以还是有想用单片机来制作音频播放器的想法,国庆期间看到别人的介绍用ESP32-audioI2S库的教学视频,就学习一下,感觉可以实现制作音频播放器。且现在的AI发达,用AI辅助编程的效果不错,所以就利用AI技术进行辅助编程,本制作的基础程序基本是由AI编写的,小部份是Arduino IDE里的实例,AI是用文心的,当然使用AI编写过程也出现一些问题,一些基础程序出现冲突或不可用,需要查找相关的资料进行修改,还有是Arduino 里主板及库的版本不匹配,也影响编程进度,如主板是用esp32 by espressif systems的最新版,在使用TFT_eSP库I驱动液晶时出现启动重启,后查是SPI定义不同引起的,修改定义就行了,编写好基础程序后,就根据自己的需求进行整合成一个音频播放器的程序,在整合过程中AI也提供不少的帮助。
本制作是使用ESP32S3n16r8,1.9寸中景园的ST7789液晶显示,加TF卡组及6个开关等基本电路组成,输出IIS信号,外接IIS解码是用ES9023电路的,本电路是测试的,也可以使用更加发烧的音频DA解码电路。由于不清楚ESP32S3及ESP32-audioI2S库输出IIS的原理,不知IIS时钟是如何产生的,音响发烧友对时钟准确度及音频数据要求高,所以本制作命名为了严谨,只称为音频播放器。
本制作是在国庆开始的,在国庆时测试Arduino的ESP32-audioI2S库的情况,详细看这https://www.mydigit.cn/thread-623439-1-1.html,国庆后,在制作其它制作时,顺便把播放器测试板也加入去。如下图,主要是用它编写测试完成。
由于上面摄相不多,它是纯播放,板上只有ESP32S3,输出IIS信号,外接IIS解码,IIS解码是用ES9023组成的。接USB口那片是CH340转串口模块。为了方便解说这个播放器及仿制,专门画图打样,这版本包括主板(ESP32S3+TF卡+ES9023解码)及显示操作板(1.9寸ST7789液晶显示器)。
以下为PCB图,为了减成本,把主板、显示及另一制作的稳压电源组合在一起,。
用工具割开。
本制作使用1.9寸显示屏的原因是本人打算安装以前制作的解码器上的。编码器方式操作比较麻烦,还是键盘操作方便,但由于机箱已是这样,只能适配它。
以下为面板,1.9寸ST7789液晶屏及6个开关,分别为上一首,播放暂停,下一首,模式,停止,列表。
主板如下,
这个是USB转串口,带自动控制,直插入主板,负责供电写入程序操作。
当播放器启动时,它会自动扫描SD卡的音乐文件,并把音乐文件地址记录在ESP32S3的内存里。
如插拨SD卡,也重新扫描SD卡的。
以下为SD卡出错,我的旧卡有时会出现这情况。
如SD卡正常,就进入音乐播放界面。播放器的工作界面,有两个,一个是音乐播放界面,界面显示封面图片,歌曲名称,采样率,位数,码率等数据,下面为播放进度条及播放状态,时间及文件总数及当前播放文件值,剪头是播放模式(顺序或随机播放)。
一个是列表播放界面。里有6首音乐文件的列表,上一行显示文件数量,播放模式,播放状态,及时间。
以下为播放的图片
以上本人测试过程图片,下一步将把它安装入上图的机箱内,制作成成品。
制作音频播放器的想法在8、9年前就有这个想法了,以下是在19年买的播放器的机箱,这次才有机会使用上了。
这次顺便测试,使用转换板,接3.5寸的ILI9488液晶,用SPI的驱动方式,功能与上面一样,界面修改了。
以下为裸板在朋友那试唱。
**********************************************************************************
以下为本贴的重点。
制作的电路图如下,在最下的压缩包里的电路图文件是立创EDA专业版保存为本地文件的电路图,用立创eda打开就行,全选择默认的就行了。
主控图
面板图,注意液晶接口的顺序是与液晶接口相反的。
3.5寸接口图,液晶接口是相反的,H2是用于8B方式,不使用,只安装R3,R4不安装,即设置成SPI方式。
在这增加一张使用WM8805把IIS转成同轴输出的电路图,方便做成纯数字输出。
以下压缩包里程序文件是用Arduino编写的,使用Arduino最新版本,需安装以下3个库
开发板管理里的ESP32 需为新版。
以下为esp32S3的设置。
本制作由于扫描音频文件的列表是存在单片机内存里的,且SD卡是使用spi驱动的,歌曲过多会出现扫描时间过久,所以程序设置了最大音乐文件量为256首,即只扫描256首歌,多出来的不扫描不显示不使用。扫描文件时只扫描根目录及下一层文件夹,所以本制作是对音乐文件的存放是有要求的,音乐只支持mp、wav及flac格式,只能存在根目录或下层文件夹内,根目录及下层文件里有个封面.jpg文件是界面显示图片,图片要求对于1.9寸版本是96*96的JPG文件,对于3.5寸是160*160的,不支持其它格式,各文件夹下的封面.jpg文件是对应当前文件夹下的所有音乐文件在播放时显示的图片,如文件夹不存在这个文件,就自动显示根目录的封面图片。如下图
由于本人水平有限,本制作当前还存在一些问题,1,有些歌在电脑端播放正常,在本制只有杂音(wav格式的出现比较多),重新转换正常码率的格式后正常,2,部份中文显示不正常,不正常的中文是显示方框。3,部份音乐的总时间不对,4,部份音乐显示的码率不对,5,播出过程出现程序重启,这个时间不确实,有时整天都没出现,6,部份歌曲播完后自动播放下一首时候,切换过程出现杂音,主要集中在wav格式比较明显。由于本制作是测试,以上问题原因未查,日后把它装入机箱时,在制作成成品时再慢慢处理,坛友如有解决方法请指点一下,我找时间修改它,尽量完善它。
以下压缩包是程序及图纸,电路图是立创eda专业版保存本地文件,电路图左上角的外部接口部份及三端稳压是本人另一个制作用的,不用安装的。程序文件里有两个程序文件,35那个对应是3.5寸液晶的。程序没做规划,全部写在一个文件内,比较乱,能用。由于设计时没注意,把ESP32S3的IO46接了高电平,在写入程序会出现不能进入写入状态,需按住K4,使用IO46脚为低电平才能进入写入状态。由于本人水平有限,本制作仅供参考。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
打赏
-
查看全部打赏
|