基于ESP32-S3和Mi...ython的音乐播放器开发_李昊.pdf
《基于ESP32-S3和Mi...ython的音乐播放器开发_李昊.pdf》由会员分享,可在线阅读,更多相关《基于ESP32-S3和Mi...ython的音乐播放器开发_李昊.pdf(4页珍藏版)》请在咨信网上搜索。
1、2023.6电脑编程技巧与维护1概述游戏开发板是基于ESP32-S3芯片和数字电路模块搭 建 的 开 发 平 台。开 发 板 主 要 由ESP32-S3芯 片、74HC165D矩阵键盘、MAX98357、ST7735S、MPU6050和带有自定义模块的Micropython固件组成。其中,载有ESP32-S3芯片的开发板用来支撑整体的MP3播放器软件的开发和运行,并将所有的控制单元有机地结合成一个整体。设备运行时游戏开发板界面如图1所示。2背景知识随着科技的发展和进步,信息传输的效率不断提高,物联网逐渐崛起,而嵌入式软件与硬件的结合开发是未来发展的一个重要趋势。考虑到这方面的迅速发展,同时关注
2、到当下欠缺一款多功能的物联网开发平台,于是开发者在查询了大量相关知识并进行研究、准备和研讨后,制订了相关计划,研发了这款集成式开发平台。基于目前的硬件市场,对于小型开发平台的制作需要考虑到两方面因素,一方面是成本,另一方面是性能,而能兼顾这两方面因素的令人相对满意的开发平台制作比较困难。因此,选择了低成本、高性能的微控制器进行控制。市面上有许多的游戏开发平台,但性能相对较差、框架不够成熟,因此对其展开了相关的探讨和研究。在编程语言方面,选择了相对火热、上手快的Mi-cropython语言,进行程序的设计开发。熟练掌握Mi-cropython后,开发者对其底层源码进行了深入研究,掌握了Micro
3、python固件模块的制作方法,并制作出MP3解码播放模块,提供了多种功能方法,搭建并实现了MP3播放器的功能。3整体架构开 发 平 台 在 此MP3播 放 器 中 主 要 使 用 由 载 有ESP32-S3芯片的开发板、ST7735S显示屏、MP3模块、MAX98357、74HC165D等硬件元件。用作美化界面的图片都转换为二进制编码存储在“mp3Pic.bnbapic”文件中。音频文件全部存储在TF卡中名为“MP3”的文件夹中,相关的代码及驱动存储于开发板的闪存中。开发平台由多种模块相互配合最终形成一个整体,在此MP3播放器中,开发者将所有的MP3音频文件都存储于TF卡中,再由模块读取TF
4、卡中的内容,实现TF卡文件的读取。读取MP3数据后首先会经过自制的Micropython模块“hzmp3”解码第1帧数据获取MP3文件的基本信息,之后逐帧解码送入的音频数据,解码后由此模块内置的I2S写出音频数据,最终由MAX98357输出相应电频信号。MP3文件数据经过多种模块和硬件工具的转化后,形成符合开发板要求的数据信息后被输出。开发者同时搭建了相对美观的图形化操作界面,提基于 ESP32-S3 和 Micropython 的音乐播放器开发李昊,杜洋,蔡依婷,刘新,吴亚峰*(华北理工大学,河北 唐山063210)摘要:介绍了基于 ESP32-S3 芯片和 Micropython 开发的一
5、款具有图形化操作界面的 MP3 音乐播放器。此播放器借助载有 ESP32-S3 芯片的游戏开发平台,并使用带有自主研发模块的 Micropython 固件。在平台的研发中,将 ESP32-S3 芯片和 ST7735S 显示屏等多种模块相互结合于此电路板上,搭建了一台可以开发简易游戏的平台。讲解了基于上述游戏平台及固件开发的一款 MP3 音乐播放器。关键词:ESP32-S3 芯片;数字电路模块;MP3 解码;自制 Micropython;多核心作者简介:李昊(2002),学士;杜洋,学士;蔡依婷,学士;刘新,学士;吴亚峰(1978),男,通信作者,硕士,教师,研究方向为图形学及深度学习。图1游戏
6、开发板界面158DOI:10.16184/prg.2023.06.0392023.6电脑编程技巧与维护供了切换音乐、显示TF卡文件列表、暂停、快进、循环播放、单曲循环、播放时间进度等功能。用户通过操作界面选择想要欣赏的音乐,按下相应的按键即可播放选中的音乐,操作简单便捷,符合当下主流的音乐播放器的要求。音乐开始播放后,用户可在预留的耳机接口上插入耳机收听MP3音乐。4开发板主体的制造4.1硬件选择在硬件的选择上,选择了国货之光乐鑫科技公司生产的在2.4 GHz频带支持160 MHz频宽的ESP32-S3芯片。在显示屏上,选择了支持262 K彩色图形型号为TFT-LCD的单芯片控制器ST7735
7、S,它是一款表现力良好的TFT液晶显示屏。在音频的输出方面,选用了成本较低的支持896 kHz采样速率的MAX98357,这款音频产品支持单声道和双声道,低射频(RF)敏感度,可抑制全球移动通信系统(GSM)发射的时分多址(TD-MA)噪声,并且具有体积小巧,邮票孔设计可直插或贴装在项目印制电路板(PCB)上或面包板上的特性,非常符合集成化电路板的制作要求,在与屏幕的结合下,会对使用者产生良好的视觉与听觉效果。在内存方面,由于存储空间十分有限(共有4 MB),所以改变了设计思路。在开发中,MP3数据读取采用分批次读取原则,即每次只读取合适大小的数据进行解码播放,空间闲余时,再继续读取下一批数据
8、。同时开发平台还配备了整合性6轴运动处理组件MPU6050,可以较为精确地读取到当前开发板的三轴加速度数值及三轴陀螺仪数值,解决了组合独立陀螺仪与加速度计时间轴偏差的问题,为体态的识别和一些动作操控类游戏的设计提供了硬件支持。4.2TF 卡音频文件的加载考虑到用户拥有大量的MP3文件资源,但是开发平台内存非常有限,因此在开发板上设计了TF卡模块,可以读取上限为32 GB的TF卡、存储上限为32 GB的资源文件,大大提高了播放器存储音乐数量的上限,使其具有一定的商业价值。为了在上述内存容量较小的开发平台实现播放大量MP3的功能,采用了分批读取、分批解码、逐步输出的设计理念。在程序运行开始时,首先
9、,会读取TF卡根目录下MP3文件夹下所有的MP3文件名称列表,将此名称列表中的元素依次绘制在屏幕左侧。其次,会对单个文件数据的加载进行分批次处理,因首批数据为基本信息数据,则将数据分为首批数据和普通数据,先将首批数据进行解码,读取MP3的基本信息后,分批次读取普通数据,解码获取到音频数据后,逐帧送入I2S音频总线输出。因为TF卡的文件读取,和最后的音频输出分别在两个不同的核心CPU内进行,所以,从TF卡读取一批数据后,会将此批数据传入消息队列,送入另一个核心CPU等待解码播放时,可继续读取下一批数据,直至读取结束。此番操作可以减少开发平台的内存压力,实现播放任意大小的MP3音频文件。4.3客制
10、化 Micropython考虑到Micropython语言本身的性能,在Micropy-thon固件中进行了客制化开发,增加了MP3解码器的功能,将解码的部分在Micropython固件中以C+语言实现,通过软件开发工具包(SDK)和Micropython相互串联起来,并运用FreeRTOS中对于进程的创建销毁和资源访问互斥信号量及消息队列等机制,实现了Mi-cropython自身无法实现的双核心CPU工作机制,大幅度提高了此播放器的性能。在固件的MP3模块中,提供了MP3解码器、播放MP3、获取播放时间、快进、快退和暂停等常用的MP3播放器功能的访问接口,并将I2S初始化、销毁和写入音频数据
11、的相关操作置于固件层,节省出Micropython的算力进行画面的绘制和呈现,以及操控功能的实现等直接和用户对接的部分。对于Micropython端的开发,只需调用模块提供的访问接口,便可轻松地实现双核心的MP3数据解码和播放的功能,而Micropython端的开发者便可将注意力集中在图形化界面的操控功能设计上。为了适配自制的开发硬件,开发者对Micropython的相关硬件配置进行了研究和更改,因为Micropython是由ESP-IDF搭建而成,所以学习ESP-IDF的使用技巧后,在Micropython官方网站下载了源码进行分析研究,经过一段时间的努力后,熟悉了Micropython的代
12、码架构和相关配置文件的编写更改。在进行一定的实践后,着手更改Micropython的底层源码,使Micropython更好地配合硬件,发挥出硬件的最大性能,同时开发了一些性能要求高的模块放置于Micropython中,例如,MP3模块。5整体程序架构由于性能问题,将一部分耗费算力较大的任务放入了带有自主研发的模块的Micropython中,所以该MP3播放器大面积调用了自主研发模块的应用程序编程接口(API)。首先看一下数据从读取到传入播放部分。if(isFirst):isFirst=FalseneedBytes=frameSizeFirst1592023.6电脑编程技巧与维护#如果没有送入成
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 ESP32 S3 Mi ython 音乐 播放 开发 李昊
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【自信****多点】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【自信****多点】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。