发作品签到
标准版

时光磁带(磁带外形的开源MP3播放器)

工程标签

9.8k
0
0
13

简介

该MP3播放器基于ESP32 S3微控制器,制作了一款MP3播放器。

简介:该MP3播放器基于ESP32 S3微控制器,制作了一款MP3播放器。

开源协议

GPL 3.0

创建时间:2024-09-08 17:31:00更新时间:2024-12-31 01:38:04

描述

时光磁带(ESP32 S3 MP3播放器)

客官你先别走,来看看我这个开源项目嘛!请欣赏一下渲染图!qwq,作为一个小白已经尽可能的把一个小破MP3做的很吸引人了(诈骗)话说在前面,要是文章写的不详细,可以加QQ群253739646来找我。或者跳转至联系,有更多方法联系到我!非常感谢你吖!

1233.jpg

3Dimage2.jpg

如果想要看更全面的,客官请去我的gayhub:https://github.com/Yuxiaoyu2277/ESP32-S3-player/tree/main
欢迎点星星,或者给一个免费的赞,我都很需要你的支持!让我有动力继续开发其他好玩的有意思的东西!

目录

概述(返回目录

本项目是一个提供硬件及软件的指南,用于构建基于ESP32 S3微控制器的MP3播放器。该设备拥有磁带复古外形的外壳,具备音乐播放、时间显示。

特性(返回目录

该MP3播放器基于ESP32 S3微控制器,集成了2.4 GHz Wi-Fi和蓝牙5 (LE),配备1.14英寸TFT LCD屏幕显示界面、BM8563 RTC芯片离线时间功能、WM8978 DAC高保真音频输出、NS4150B功率放大器增强音质、ETA6002充电芯片支持快速充电,同时支持USB Type-C充电和数据传输、SD/TF卡扩展存储(最高32G)、3.5mm耳机插孔以及高品质超薄扬声器,满足多样化的音乐播放需求。

硬件型号(返回目录

  • ESP32 S3:主要处理单元,集成Wi-Fi和蓝牙。
  • TFT LCD(1.14英寸):显示模块,用于用户界面。
  • BM8563 RTC:实时时钟芯片,用于离线时间。
  • WM8978 DAC:音频转换芯片,用于高保真声音。
  • NS4150B PA:功率放大器芯片,用于音频输出。
  • ETA6002 充电:锂电池充电芯片,用于锂电池充电。
  • USB Type-C端口:用于充电和数据传输。
  • SD/TF卡读卡器:用于存储扩展。
  • 耳机插孔:3.5mm音频输出。
  • 扬声器:提供音频播放。
  • 按钮:具有5个按钮对UI进行交互控制。
  • 开关:拥有1个开关控制电源开启关闭。

原理图 (返回目录

见本页面的原理图啦~~~~ QWQ

主要原理图解析(返回目录

  • 复位按钮:EN引脚是ESP32 S3核心的复位引脚,采用按钮形式下拉接地该引脚可复位。按钮增加电容和电阻是为了去除电平毛刺,避免出现错误复位。

ENbutton.png

  • 操作按钮:IO_0为ESP32 S3的切换下载模式的功能按钮也可以是作为GUI操作反馈,其他按钮为GUI操作反馈。

ENbutton2.png

  • ESP32 S3 引脚分配表:
    核心MCU接线说明:
    如图所示,这是引脚的分配,核心有两个滤波电容靠近核心,是为了过滤电源线的干扰,保证核心供电稳定。其中引脚分配如下:
引脚编号功能描述备注
IO45NS_CON对NS4150B的音频输出是否静音进行控制(高电平为允许声音输出)
IO47IN检测3.5MM耳机是否插入,如插入就是低电平
IO40TF_BLK通过PWM信号进行控制屏幕亮度
IO46RT_A3V3_EN音频的电压稳定芯片的开关(上拉给予3V3电压为开启)
IO9I2S_BCK音频接口(I2S)位时钟线
IO10I2S_WS音频接口(I2S)音频左右声数据切换
IO11I2S_DOUT音频接口(I2S)WM8978芯片数据至ESP32 S3
IO12I2S_DIN音频接口(I2S)数据至WN8978芯片
IO41I2S_MCLK音频接口(I2S)额外频率时钟参考线线
IO15SPI_CSSPI接口
IO16SPI_RSTSPI接口
IO17SPI_DCSPI接口
IO18SPI_SCLKSPI接口
IO39SPI_SDA/MOSISPI接口
IO13TF_CLKTF卡/SD接口
IO14TF_MOSITF/SD卡接口
IO7TF_CSTF/SD卡接口
IO48TF_DATA2TF/SD卡接口
IO2TF_DATA1TF/SD卡接口
IO21SW_UP按键
IO20SW_DOWN按键
IO19SW_RIGHT按键
IO8SW_LEFT按键
IO0IO0按键/切换下载模式
IO4ADC_BAT电池电量检测
IO2I2C_SCLI2C接口
IO3I2C_SDAI2C接口
IO8RTC_INT实时时钟中断接口
IO19USB_D-USB数据/type C物理接口连接
IO20USB_D+USB数据/type C物理接口连接
  • 其中仍然未用到的引脚有TXD0、RXD0原本是用于调试接口;但因为ESP32 S3支持USB日志调试,因此烧录固件可以不用单独的自动下载电路来进行烧录固件。其次关于IO37、IO36、IO35为芯片flash引脚所占用的,所以为了谨慎起见不进行使用。如果想要了解更多,请参考乐鑫官方的ESP32 S3数据手册,有你想知道的一切!
    ESP32S3.png
  • WM8978 DAC: A3V3 是提供给模拟电路部分的电源。通过 C48(100nF)和 C3(10uF)电容进行滤波,3V3 为数字部分供电,通过 C49 和 C50(100nF 和 10uF)进行滤波,SPKVDD 为扬声器供电,通过 C19 和 C20(220uF)进行电源滤波。I2C_SCL 和 I2C_SDA 引脚(引脚 16 和 17)通过 I2C 接口控制 WM8978 的配置,EAR_LOUT1 和 EAR_ROUT1 是左右声道的耳机输出引脚,他们经过钽电容输出到耳机接口(注意建议使用钽电容,假如因为成本可以换成陶瓷电容)。SPK+ 和 SPK- 是扬声器的输出引脚,支持单声道扬声器,分别通过 AGND 接地,构成差分驱动的扬声器信号。
    WM8978.png
  • NS4150B和3.5MM:该部分电路为音频放大器以及3.5MM接口电路,在3.5MM接口上R3、C15为滤波和限流是为了上拉该引脚的电平,当有耳机插入时耳机的线路会把引脚接地,这样就可以检测是否有耳机插入。当插入时就可以切换音频输出的模式。注意:IN检测电路部分我使用了一个切换焊盘,这个切换焊盘用于测试用途,默认需要把2-3点连接,可采用0R电阻进行连接。在NS4150B芯片上NS_CON为音频输出是否静音进行控制(高电平为允许声音输出),芯片的3号4号引脚是DAC的模拟音频输入,8号和5号是放大后的音频输出
    speaker_headphone.png
  • BM8563:RTC模块通过一个32.768kHz的晶振器提供时钟信号,并通过I2C接口与主控制器通信。RTC模块的电源引脚通过一个10uF的电容进行滤波,而地引脚接地。XC6206P332MR电源管理芯片负责为主RTC模块供电,它从电池(VBAT)获取电源并通过内部稳压器输出稳定的RTC_3V3电压。INT引脚为中断引脚,如果该引脚被拉低,就会触发ESP32 S3的中断,用于定时任务策略。整个设计中,多个接地电容用于稳定电源和减少噪声,确保RTC模块能在主电源断开时继续运行。(返回目录
    BM8563.png
  • TF/SD 卡:该电路图是一个SD/TF卡电路,通过10kΩ上拉电阻将TF_DATA2、TF_CS、TF_MOSI、TF_MISO、TF_DATA1和TF_CLK等信号线连接到3.3V电源,确保信号传输稳定。所有信号线引出后,使用者可以使用SDIO模式或者SPI模式访问储存卡。(返回目录
    SD.png
  • ETA6002:电路通过VBUS引脚接收USB电源输入,并利用电容进行滤波和稳定。SW引脚通过2.2uH电感和2.2k电阻控制充电芯片的开关操作。VBAT引脚连接到电池正极同时VBAT会利用ADC进行监测电池电压判断电量。SYS_OUT引脚提供稳定的系统输出电压给LDO,除此之外LED和2.2k电阻指示充电状态。NTC引脚用于热管理(但因为不用所以直接接地),ISET引脚通过470电阻设置充电电流(2A)。(返回目录
    ETS6002.png

如何开始硬件部分(返回目录

  • 本项目的PCB设计已在本页面的PCB中有,或者右上角点击编辑器打开即可看到项目的所有电路原理图以及PCB设计,如发现原理图有不合理地方,可以在评论或联系找到我的联系方式进行沟通,非常感谢你!!!qwq

PCB模型预览(返回目录

48B7C521517D4063827670425450C192.png

B07751385B9C91CB60317051DCF0A7A5.png

硬件部分注意事项(返回目录

注意小可爱们记得打印0.8MM厚的板子!
还有3.5MM的耳机座子记得买沉板的并且焊接要从屏幕那面进行焊接
另外注意买物料的时候注意封装,别搞错了
电池的尺寸都在PCB板子里面了
总的来说,后续我会完善这部分,出一份详细的购买原件表,以方便你们购买到对应的元件。最后请给一些耐心给我。感谢!

如何编译软件部分(返回目录

  • 本项目使用Arduino IDE 2.3.4版本进行编译,确保使用乐鑫官方的SDK版本为2.0.14(注意因为3.0.X版本会让工程编译产生未知的错误,为了避免请下载安装对应的SDK版本)
  • 开发板的flash容量的分配16M Flash (6.25M APP/6.25MB LittleFS),因此需要自行修改,具体修改需要对Arduino安装目录进行删除和修改文件,这里提供方法:

打开文件路径

C:\Users\(你的windows账户用户名)\AppData\Roaming\arduino-ide\Local Storage\leveldb
  • 把关于.ldb格式文件进行删除,例如:000062.ldb(编号是随机的,你并不一定是这个文件名,只需要看文件格式进行删除)

打开文件路径

C:\Users\(你的windows账户用户名)\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.14
  • 打开boards.txt文件,寻找esp32s3.menu.PartitionScheme关键字信息,并在末尾添加并保存
esp32s3.menu.PartitionScheme.myMP3=MP3 16M Flash (6.25M APP/6.25MB LittleFS)
esp32s3.menu.PartitionScheme.myMP3.build.partitions=big
esp32s3.menu.PartitionScheme.myMP3.upload.maximum_size=6553600

打开文件路径

C:\Users\你的windows账户用户名)\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.14\tools\partitions
  • 新建添加big.csv文件,并写入以下内容为flash的分区进行配置
# Name,   Type, SubType, Offset,  Size, Flags
nvs,      data, nvs,     0x9000,  0x5000,
otadata,  data, ota,     0xe000,  0x2000,
app0,     app,  ota_0,   0x10000, 0x640000,
app1,     app,  ota_1,   0x650000,0x640000,
spiffs,   data, spiffs,  0xc9000,0x360000,
coredump, data, coredump,0xFF0000,0x10000,

开发板配置信息

项目详情
开发板ESP32S3 Dev Module
端口COM4
USB CDC On BootEnabled
CPU Frequency240MHz (WiFi)
Core Debug LevelNone
USB DFU On BootDisabled
Erase All Flash Before Sketch UploadDisabled
Events Run OnCore 1
Flash ModeQIO 80MHz
Flash Size16MB (128Mb)
JTAG AdapterIntegrated USB JTAG
Arduino Runs OnCore 1
USB Firmware MSC On BootDisabled
Partition SchemeMP3 16M Flash (6.25M APP/6.25MB LittleFS)
PSRAMOPI PSRAM
Upload ModeUART0 / Hardware CDC
Upload Speed921600
USB ModeHardware CDC and JTAG
编程器Esptool

Arduino IDE 和 SDK 版本信息

项目详情
Arduino IDE 版本2.3.4
SDK 版本2.0.14

进行编译(返回目录

确保编译环境一致之后,请下载GitHub本项目中的src文件夹,里面的library是所需的第三方库,这些第三方库我都进行了修改,因此和原生的第三方库都不会进行兼容。按照开源协议,我需要把自己更改的库开放出来,并注明出处。

  • 打开文件路径
C:\Users\(你的windows账户用户名)\Documents\Arduino\libraries
  • 把本项目的libraries复制到你所打开本地的文件路径(注意如果本地文件路径相同名字相同的话,请在复制粘贴之前先删除本地文件路径相同的第三方库,避免造成冲突与不兼容)
  • 最后请下载GitHub本项目中的ESP32_MP3_PLAYER文件夹,打开ESP32_MP3_PLAYER.ino,点击上传编译到板子
  • 如果发生编译错误,请通过联系的联系方式告知我!使用QQ联系维护者2277236944或发送Email至Oliver.yuchunto@gmail.com

固件(返回目录

本项目的固件是开源的,可以在本github中的主分支中找到。为.bin格式文件,请自行google怎么直接烧录固件。

代码(返回目录

  • 代码部分,现在目前开发进度:
  • 音乐播放(播放SD卡内的音乐,支持WAVMP3
  • 屏幕亮度调节
  • 离线时钟
  • 系统睡眠策略(不用关机切断电源)
  • 小闹钟
    如果有其他有意思的功能可以跟我提出,我看看我目前的能力能不能够完善你想要的功能,同时还请给我多一些时间去多多更新,非常感谢你吖!

贡献(返回目录

欢迎贡献!如果您发现任何问题或有改进建议,请提出问题或提交拉取请求。或者直接联系我进行沟通。
特别鸣谢(排名不分先后次序):

许可证(返回目录

本项目根据GNU通用公共许可证协议,只要您遵守许可证的条款,就可以自由使用、修改和分发代码,但出处必须!必须!必须!注明本项目guthub来源网址链接或注明作者:一条优秀的闲鱼呀!

联系(返回目录

如有任何问题或咨询

设计图

原理图
PCB

BOM

IDNameDesignatorFootprintQuantity
1100nFC3,C49,C51,C29,C33,C5,C8,C18,C28C06039
2220uFC19,C20CASE-B_35282
310uFC48,C50,C52,C9,C17,C21,C53,C62,C66,C67,C68,C69,C27C060313
410KR15,R1,R2,R5,R8,R9,R11R06037
5WM8978CGEFL/RVU10WQFN-32_L5.0-W5.0-P0.50-TL-EP1

附件

序号文件名称下载次数
暂无数据
克隆工程
添加到专辑
0
0
分享
侵权投诉

评论

全部评论(1)
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航