基于ESP32构建的音频播放器

发布时间:2022-12-05  

  DIY 音乐播放器很有趣,我们之前使用 Arduino和 专用 MP3 模块构建了一些音乐播放器。现在我们正在使用 ESP32 构建一个有趣的音频播放器,您只需在 ESP32 上连接一个额外的扬声器即可在其中播放音效。在这里,我们将使用LM386 和一个带有 ESP32 的扬声器来播放音乐文件。音频输出可能不大,但此应用程序显示了 ESP32 板播放音频文件的能力。


  所需组件

  ESP32

  LM386 放大器模块

  8欧姆扬声器

  跳线

  电路原理图

  ESP32音乐播放器的电路图如下-

poYBAGLwvNCAXjBUAAOyXU_f5gU113.png

  要在 ESP32 上播放声音,我们需要一个扬声器。扬声器通过 LM386音频放大器模块连接。Amplifier Module 的 Vcc 和 GND 引脚连接到 ESP32 的 VIN 和 GND,而 Amplifier 模块的 IN 引脚连接到 ESP32 的 GPIO 25 引脚。GPIO 25 是 2 个 DAC(数模转换器)引脚之一。


  ESP32 音乐播放器的完整设置如下所示:

pYYBAGLwvMyAFLH-AAYoGvwISrI099.png

  LM386 是一款音频放大器 IC,您可以通过以下链接了解更多关于 LM386 的信息。

  准备好音频文件

  要在 ESP32 板上播放音频声音,我们需要.wav格式的音频文件,因为 ESP32 只能播放.wav格式的音频文件。


  所以第一步是获取你想在 ESP32 上播放的文件。之后,下载并安装Audacity Audio Editor App。此应用程序将用于更改文件类型、采样率和其他属性。


  安装完成后,打开 Audacity 应用程序,然后转到文件 》 打开并选择要编辑的音频文件。


  首先需要改变的是采样率。对于在 ESP32 上播放音频文件,8000 到 16000 的采样率会很好,因为 ESP32 没有太多内存。因此,将 Project Rate 更改为 16000。

poYBAGLwvMiAHr8DAACHMy65_iM935.png

  之后,导航到文件 》 导出 》 导出为 WAV以将音频文件保存为.wav格式。

pYYBAGLwvMSAffFyAAFTM-mWOgQ873.png

  现在在下一个窗口中,选择WAV (Microsoft)作为文件类型,选择Unsigned 8-bit PCM作为编码格式,然后单击保存。

poYBAGLwvMCARtd6AABplNMM3EA098.png

  现在我们需要一个 Hex Editor 应用程序来为音频文件生成 Hex 代码。因此,从给定的链接下载并安装十六进制编辑器 (HxD) 。之后,打开应用程序,然后转到文件 》 打开 并打开.wav 文件。这将为.wav 文件生成十六进制代码。

poYBAGLwvL2ANedwAAcZb4BIH3w944.png

  然后使用ctrl+A 选择完整的代码,然后转到编辑 》 复制为 》 C以复制 C 语言格式的代码。

pYYBAGLwvLmAXkusAAXE_tSPg9I287.png

  然后将此代码粘贴到 Arduino IDE 中。

代码说明

非接触式ESP32 音频播放器的完整代码在页面末尾给出。在这里,我们将解释代码的一些重要部分。在这个程序中,我们将使用来自XTronical的XT DAC 音频库。XT DAC 音频库可以从这里下载。

因此,像往常一样,通过包含所有必需的库来启动代码。SoundData.h文件包含要播放的 .Wav 文件的十六进制代码。

 

#include "SoundData.h"
#include "XT_DAC_Audio.h"

 

在下一行中,创建一个XT_Wav_Class类型的对象, DAC 音频类使用该对象将.wav数据作为参数传递。DacAudio,主要播放器类对象,其中 25 是连接放大器引脚的 DAC 引脚编号。

 

XT_Wav_Class 声音(样本);
XT_DAC_Audio_Class DacAudio(25,0);

 

在setup()函数中,以 115200 的波特率初始化串行监视器以进行调试。

 

无效设置(){
  序列号.开始(115200);

 

在loop()函数中,用数据填充声音缓冲区并检查声音是否正在播放,如果没有,则在循环中播放声音。

 

无效循环(){
  DacAudio.FillBuffer();               
  如果(声音。播放==假)      
    DacAudio.Play(&Sound);      
  Serial.println(DemoCounter++);      
}

 

  测试 ESP32 音频播放器

  代码准备好后,通过 LM386 或任何其他放大器模块将扬声器连接到 ESP32 的 GPIO 25。现在将 ESP32 连接到笔记本电脑并上传代码。上传代码后,ESP32 开始播放音频。使用放大器模块的电位器可以改变音质。

#include "SoundData.h"
#include "XT_DAC_Audio.h"
XT_Wav_Class 声音(样本);
XT_DAC_Audio_Class DacAudio(25,0);
uint32_t DemoCounter=0;
无效设置(){
序列号.开始(115200);
}
无效循环(){
DacAudio.FillBuffer();
如果(声音。播放==假)
DacAudio.Play(&Sound);
Serial.println(DemoCounter++);
}


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    基于ESP32构建的音频播放器;  DIY 音乐播放器很有趣,我们之前使用 Arduino和 专用 MP3 模块构建了一些音乐播放器。现在我们正在使用 ESP32 构建一个有趣的音频播放器,您只......
    电源给人工耳供电并传递音频信号。功放电源的音频输出接口接音频分析仪。音频分析仪通过USB连接控制主机并打开音频分析软件,进行数据分析获得测试结果。 4.3 EN50332-3测试系统 说明:EN50332-3的被测物可以是单独的播放器或者耳机加播放器......
    再见了!苹果宣布停更iPod,MP3播放器走向小众市场;资料显示,第一代iPod产品发布于2001年,是一款MP3播放器。其系列在产品线主要有:iPod windows、iPod nano、iPod......
    如何使用PicoScope PC示波器对CD播放器的音频频谱进行分析;1、频谱分析仪的分类 频谱分析仪一般分为两类:所谓“扫频”频谱分析仪和FFT频谱分析仪。扫频......
    基于S3C44B0X芯片的多通道MP3播放器设计;1 引 言 随着微电子技术的飞速发展,嵌入式产品以其自然的人机交互界面和丰富的多媒体处理能力迅速得以推广,并取得了巨大成功。目前,在多......
    超炫云形磁悬浮音箱:还能释放闪电;目前人们已经习惯通过流媒体来欣赏视频和音乐,“云”的概念就此诞生。 现在,有一款客厅音乐播放器就将“云”给具象化,看起来相当的炫酷。 这种由国外一家公司研发的云形音乐播放器......
    制式中波广播  56KBPS=话音  64KBPS=增加话音(手机铃声最佳比特率设定值、手机单声道MP3播放器最佳设定值)  112KBPS=FM调频立体声广播  128KBPS=磁带(手机立体声MP3播放器最佳设定值、低档......
    基于STM32单片机的简易电子琴设计(1);1.1 系统功能 按照设计要求,本系统具有以下功能: 共有三个基本模式:电子琴模式、录音模式、播放器模式 电子琴模式:7个基本按键控制产生7种音调,功能......
    基于AT89C51SND1C单片机的MP3播放器的设计方案;首先分析了便携式MP3播放器的工作原理及其系统构成,接着介绍了一种基于51单片机的MP3播放器设计方案。采用 AT89C51SND1C单片......
    使用MC34063设计的mp3播放器充电器;该mp3播放器充电器电子项目电路图是使用MC34063电路设计的,该电路是提供直流直流电压转换主要功能的单片控制电路。 这款MC34063mp3播放器......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>