电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>电子资料>Arduino的Mp3屏蔽

Arduino的Mp3屏蔽

2022-07-04 | zip | 0.09 MB | 次下载 | 免费

资料介绍

PCB图如下:
pYYBAGKxqnyAdoKCAAD75EjtxIo515.png
poYBAGKxqn6AZ1xNAABaMK9Kj80904.png

pYYBAGKxqoKAIXEHAABj3YyNTFY124.png

成分

ATMEGA16A-AUR
芯片技术/爱特梅尔
× 1
NX5032GA-16MHZ-STD-CSK-8
NDK美国公司
× 1
227CKS035M
伊利诺伊电容器
× 1
741C083510JP
× 1
Y16271K00000T9R
Vishay电阻器(Vishay Precision Group 的部门)
× 1
106CKH050M
伊利诺伊电容
× 1
741C083510JP
CTS电阻器产品
× 1
G2RL-2A-CF-DC24
× 1
双堆叠 1/4" 电话插孔 p/n NSJ12HF-1
纽特里克
× 1

描述

Arduino 的 Mp3 屏蔽

 

硬件概述

MP3 Player Shield 的核心是 VS1053B 音频编解码器 ICVS1053B 是一款多才多艺的小芯片除了 MP3 之外,它还可以解码 Ogg Vorbis、AAC、WMA 和 MIDI。(它还能够对音频进行编码,尽管这超出了 MP3 Shield 的范围。)

支持 VS1053 的是一个 μSD 卡插槽,您可以使用它来存储 MP3 文件。使用 Arduino SD 库,很容易从 SD 卡中读取音乐文件,并将它们流式传输到 VS1053B。板上还有额外的电路可以将信号电平转换到 SD 卡允许的最大值 3.3V。

 

以下是 MP3 Player Shield 上重要连接器和其他组件的快速概览:

 

pYYBAGKxqpiATrirAAUdWbIVlig643.png

 

在上图中,蓝色标签是 VS1053 MP3 编解码器 IC 使用的引脚,红色标签用于与 μSD 卡通信,紫色标签的引脚由两个组件使用(耶 SPI!)。

使用了哪些引脚?

MP3 Player Shield 需要专门使用少量引脚。这些引脚不能用于与其他设备接口

D2 连接到 VS1053B 的数据请求输出。该引脚是一个中断,它告诉 Arduino IC 需要更多音乐数据。

D6 连接到 VS1053B 的片选输入。该低电平有效引脚告诉芯片何时向其发送数据。

D7 连接到 VS1053B 的数据片选输入,它告诉芯片何时发送音乐数据。

D8 连接到 VS1053B 的复位输入。

D9 连接到 μSD 卡的片选输入。

Arduino 的三个 SPI 数据和时钟引脚——D11、D12 和 D13——可用于连接其他 SPI 组件。但是,它们不能用于 SPI 以外的任何目的。

哪些引脚是免费的?

哇!屏蔽确实用掉了很多引脚,但这里的引脚仍然可用于连接其他组件。

硬件 UART 引脚——RX 和 TX——在引脚 0 和 1

D5 和 D10(PWM 引脚!)

所有模拟引脚(A0 到 A5)。

可选引脚跳线

我们还没有提到的两个引脚是 D3 和 D4,它们分别连接到 VS1053B 的 MIDI-In 和 GPIO1 引脚。这些引脚的使用是可选的。大多数 MP3 播放功能不需要它们,包括我们将在本教程中展示的示例。

 

poYBAGKxqpuAFG-sAAIoCu208e4729.png

要禁用这些引脚中的任何一个,可以使用爱好刀切割其标签旁边的跳线。

输出音频

从 MP3 Player Shield 驱动音频有两种选择。最简单、即插即用的选项是将一些耳机插入板载 3.5 毫米立体声音频插孔中。有源(有源)扬声器也可以插入此插孔,但仅 VS1053B 本身并没有足够的功率来驱动低阻抗无源扬声器。

poYBAGKxqp6AEV8lAAI9nYTiq14810.png

 

左右声道以及音频接地也被分到耳机插孔旁边的 0.1" 接头上。您可以使用这些引脚连接到扬声器或放大器输入。

线路输出警告

如果您要将扬声器输出连接到功率放大器或电路,请务必阅读 VLSI 的连接模拟输出应用说明。

“R”和“L”旁边标有“-”的引脚连接到 VS1053B 上的“GBUF”引脚。该引脚不接地,不应接地!它在 VS1053B 内部偏置为 1.25V。例如,如果 GBUF 连接到 PC 上的线路输入,它可以在 PC 侧接地并形成接地回路。

 

pYYBAGKxqqCAfFImAAHUwp95z0k889.png

 

如果 GBUF 连接到放大器接地,则可能会产生危险的(对 VS1053B 而言)电流回路。(来自 VS10XX 模拟输出应用说明。)

不要那样做!VLSI 应用笔记有一些推荐的电路(见第 3.1 和 3.2 节),以帮助避免此类问题。

组装和准备

在我们开始上传代码和流式传输一些曲调之前,首先需要完成一些准备步骤。您需要在屏蔽层上焊接一些东西,并准备一张 μSD 卡。

添加标题

要开始使用屏蔽,您需要焊接一些接头。如果您希望保持屏蔽层可堆叠,可堆叠接头可能是最佳选择。否则,直男头也可以。

 

poYBAGKxqqWADL5MAAgb5p2ZYFU517.png

 

一个 MP3 Player Shield,上面焊接了可堆叠的接头。

查看我们的屏蔽组装指南,获取更多有关将接头添加到屏蔽的帮助。

MP3 文件和 μSD 卡设置

在连接的这个阶段,您可能还想开始准备您的 μSD 卡。首先,确保它的格式正确。我们将使用的 SDFat Arduino 库仅支持格式化为 FAT16 或 FAT32 的卡。您的卡可能已经格式化为这些标准之一,但仔细检查并没有什么坏处。

 

poYBAGKxqqiAROnUAACKVHwxu4g247.png

 

您可能还需要准备音乐文件。VS1053B 能够播放 MP3、AAC、WMA、MIDI 和 Ogg Vorbis 音频文件。VS1053B 支持每种文件类型的各种采样率和比特率。查看数据表(从第 8 节开始——第 26 页),确保支持您的音频文件。例如,MP3 支持高达 320 kbps 的比特率和 48 kHz 的采样率。

最后,在将音频文件加载到 SD 卡之前,您需要修改它们的名称。SDFat 库仅支持“8.3”文件名——即 '.' 之前的八个字符。和后面的三个字符(例如“track001.mp3”)。此外,我们稍后将使用的一些示例代码要求使用特殊约定命名音频文件。在 MP3 触发器示例中,文件需要命名为“track001.mp3”、“track002.mp3”等。

 

使用 SFEMP3Shield 库

 

SFEMP3Shield Arduino 库 - 由 Bill Porter、Michael Flaga、ddz 和 Wade Brainerd 合作编写 - 是 MP3 Player Shield 的惊人资源。结合同样出色的 SdFat 库,SFEMP3Shield 极大地简化了与 VS1053 连接和使用 MP3 Player Shield 的任务。

我们建议将 SFEMP3Shield 库与此屏蔽一起使用。在此页面上,我们将介绍如何安装和使用该库。在下一页,我们将使用它制作一个有趣的示例草图。

安装 SFEMP3Shield 库

下载最新版本的 SFEMP3Shield,请单击库 GitHub 页面上的“下载 ZIP”链接。您还应该能够直接从这里获取它。

此 GitHub 存储库已包含 SdFat 库的副本,因此您已被覆盖。

您提取的“Sparkfun-MP3-Player-Shield-Arduino-Library-master”文件夹中应该有一些文件夹。“SFEMP3Shield”和“SdFat”文件夹尤其需要安装为 Arduino 库。如需安装库的帮助,请查看我们的安装 Arduino 库教程。您需要将这两个文件夹放在您的 Arduino 速写本中(默认情况下在您的 home/Arduino 文件夹中)。安装后,您的文件结构应如下所示:

 

pYYBAGKxqquAfoTsAAFXp-z3zOY422.png

 

 

现在重新启动 Arduino(如果它已打开),并在“Sketch”>“Import Library”菜单下检查以确保“SFEMP3Library”和“SdFat”都列在那里。

上传示例草图

SFEMP3Shield 库包含一些有趣的示例草图,展示了其所有令人敬畏的能力。首先,尝试加载“FilePlayer”示例,方法是转到“File”>“Examples”>“SFEMP3Shield”>“Examples”>“FilePlayer”。

确保 MP3 Player Shield 舒适地坐在您的 Arduino 上,然后上传!

上传后,打开串行监视器并将波特率设置为 115200 bps。一旦草图初始化,它应该为您提供一个可导航的菜单:

 

poYBAGKxqq6AaYyoAAL08zB2jnA620.png

 

希望在菜单底部,您会看到草图在您的 SD 卡上找到的 MP3 文件列表。尝试发送一个带有填充零的 3 位数字(例如 001、003 等),以使列出的文件之一开始播放。你现在开槽了吗?

如果太安静,请尝试使用“+”命令调高音量,或使用“-”调低音量。还有各种其他有趣的选择可以尝试。

有用的 SFEMP3Shield 库文档

如果您正在寻求使用 SFEMP3Shield 的帮助,请首先查看其支持网站的主页。那里有一些很好的故障排除信息

要深入研究代码,您可以查看他们的 GitHub 存储库。还有一个有用的 SFEMP3Shield 类参考指南,其中列出了该库提供的所有功能。

在下一页,我们将使用 MP3ShieldLibrary 制作一个示例草图,以展示它的一些更基本的功能。

示例草图:MP3 触发器

无论是红色还是紫色,每个人都喜欢好的 MP3 触发器。只需一个简单的按钮或开关即可触发歌曲或音效。让我们使用 MP3 Player Shield 库来制作一个可以与大男孩竞争的 MP3 触发器。

这是一个简单的示例,展示了如何使用 SFEMP3Shield 库播放和停止曲目。使用引脚 0、1、5、10 和 A0-A4,屏蔽最多可以触发 9 个轨道。A5 可用于停止当前播放的曲目。

第 1 步:设置 SD 卡

在将 μSD 卡插入屏蔽之前,您需要重命名 MP3 文件。九个曲目中的每一个都需要从“track001.mp3”到“track009.mp3”进行具体命名。

 

pYYBAGKxqrCAawnOAAJoQx8Qijg531.png

 

第一个触发器 - D0 - 将播放名为“track001.mp3”的 MP3,第二个触发器 - D1 - 将播放“track002.mp3”,依此类推,直到 A4 将播放“track009.mp3”。

第 2 步:设置硬件

当然,Shield 会为您完成大部分硬件设置。除了将屏蔽贴在 Arduino 上之外,您还需要找一些东西来触发引脚。您可以使用一个开关,其中有很多选项,或者您可以只使用一根简单的跳线将一个触发引脚接地。

 

 

您可以将耳机插入板载插孔以收听,或者,如果您想使用它,可以使用三个断开的“扬声器”引脚。这是我们结合了 MonoAmp Breakout 和 8 Ω 扬声器的设置:

第 3 步:加载代码

这是我们的 MP3 Shield 触发器草图。从下面复制/粘贴,或在此处下载:

语言:c

/*

MP3 屏蔽触发器

作者:吉姆·林德布洛姆

火花电子

日期:2013年9月23日

 

这是 SparkFun MP3 Shield 的示例 MP3 触发器草图。

引脚 0、1、5、10、A0、A1、A2、A3 和 A4 设置为触发轨道

“track001.mp3”、“track002.mp3”等加载到 SD 卡上

护盾。每当这些引脚中的任何一个对地短路时,

他们各自的曲目将开始播放。

 

当一个新的 pin 被触发时,当前正在播放的任何曲目都会

停止,新的将开始。

 

A5 设置为在触发时全局停止播放曲目。

 

如果您需要更多触发器,请使用针脚 3 和 4 上的屏蔽跳线

(MIDI-IN 和 GPIO1)可以切开并用作附加

触发销。此外,因为引脚 0 和 1 用作触发器

串行不可用于调试。将它们禁用为

如果要使用串行,则触发。

 

大部分代码是从 FilePlayer 示例中获取的

包含在 SFEMP3Shield 库中。主要感谢比尔

波特和迈克尔弗拉加,再次,为这个了不起的图书馆!

*/

 

#include // SPI 库

#include // SDFat 库

#include // SDFat Util 库

#include // Mp3 屏蔽库

 

SdFat 标准差;// 创建对象来处理 SD 函数

 

SFEMP3Shield MP3播放器;// 创建 Mp3 库对象

// 这些变量在 MP3 初始化时用来设置

// 一些立体声选项:

常量 uint8_t 体积 = 0;// MP3 播放器音量 0=最大,255=最低(关闭)

const uint16_t monoMode = 1; // 单声道设置 0=off, 3=max

 

/* 引脚设置 */

#define TRIGGER_COUNT 9

int triggerPins[TRIGGER_COUNT] = {0, 1, 5, 10, A0, A1, A2, A3, A4};

int stopPin = A5;//此引脚触发轨道停止。

整数最后触发器 = 0;// 这个变量跟踪正在播放的曲调

 

无效设置()

{

/* 将所有触发引脚设置为输入,激活上拉:*/

for (int i=0; i

{

pinMode(triggerPins[i], INPUT_PULLUP);

}

pinMode(stopPin, INPUT_PULLUP);

 

初始化SD();//初始化SD卡

initMP3Player(); // 初始化 MP3 屏蔽

}

 

// 循环所做的就是不断地单步执行触发器

//引脚以查看是否拉低。如果是,它将停止任何

// 当前播放曲目,并开始播放新曲目。

无效循环()

{

for (int i=0; i

{

if ((digitalRead(triggerPins[i]) == LOW) && ((i+1) != lastTrigger))

{

最后触发 = i+1; // 更新 lastTrigger 变量为当前触发器

/* 如果正在播放另一首曲目,请停止:*/

如果 (MP3player.isPlaying())

MP3player.stopTrack();

 

/* 使用 playTrack 函数播放编号的曲目: */

uint8_t 结果 = MP3player.playTrack(lastTrigger);

// 这里的另一种选择是使用

// playMP3(fileName) 函数,只要你映射

// 触发引脚的文件名。

 

if (result == 0) // playTrack() 成功返回 0

{

// 成功

}

else // 否则有错误,检查代码

{

// 以某种方式打印错误代码

}

}

}

//循环并检查触发引脚后,检查到

// 查看是否触发了 stopPin (A5)。

if (digitalRead(stopPin) == LOW)

{

最后触发器 = 0; // 重置 lastTrigger

// 如果正在播放另一首曲目,请停止。

如果 (MP3player.isPlaying())

MP3player.stopTrack();

}

}

 

// initSD() 初始化 SD 卡并检查错误。

无效初始化SD()

{

//初始化SD卡。

if(!sd.begin(SD_SEL, SPI_HALF_SPEED))

sd.initErrorHalt();

if(!sd.chdir("/"))

sd.errorHalt("sd.chdir");

}

 

// initMP3Player() 设置所有的初始化

// MP3 播放器屏蔽。它运行 begin() 函数,检查

// 对于错误,如果找到则应用补丁,并设置音量/

//立体声模式。

无效的 initMP3Player()

{

uint8_t 结果 = MP3player.begin(); // 初始化 mp3 播放器屏蔽

if(result != 0) // 检查结果,错误代码见自述文件。

{

// 错误检查可以到这里!

}

MP3player.setVolume(音量, 音量);

MP3player.setMonoMode(monoMode);

}

检查代码中的注释以获取分步演练。这个例子展示了使用 MP3 Player Shield 是多么容易(非常感谢 Bill Porter 和 Michael Flaga 的库)。调用 MP3player.playTrack() 函数开始一首歌曲,并使用 MP3player.stopTrack() 调用停止它。

第 4 步:触发一些曲调

加载草图后,您所要做的就是将其中一个触发销(0、1、5、10、A0、A1、A2、A3、A4)接地。当一个新的触发引脚接地时,任何当前正在播放的歌曲都将停止,与之相关的 MP3 文件将开始播放。如果要停止轨道,请将 A5 短暂接地。

您可以将这些触发引脚中的任何一个连接到各种按钮或开关,或者只需使用一根电线将它们暂时短接到地。

 


评论

查看更多

下载排行

本周

  1. 1山景DSP芯片AP8248A2数据手册
  2. 1.06 MB  |  532次下载  |  免费
  3. 2RK3399完整板原理图(支持平板,盒子VR)
  4. 3.28 MB  |  339次下载  |  免费
  5. 3TC358743XBG评估板参考手册
  6. 1.36 MB  |  330次下载  |  免费
  7. 4DFM软件使用教程
  8. 0.84 MB  |  295次下载  |  免费
  9. 5元宇宙深度解析—未来的未来-风口还是泡沫
  10. 6.40 MB  |  227次下载  |  免费
  11. 6迪文DGUS开发指南
  12. 31.67 MB  |  194次下载  |  免费
  13. 7元宇宙底层硬件系列报告
  14. 13.42 MB  |  182次下载  |  免费
  15. 8FP5207XR-G1中文应用手册
  16. 1.09 MB  |  178次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234315次下载  |  免费
  3. 2555集成电路应用800例(新编版)
  4. 0.00 MB  |  33566次下载  |  免费
  5. 3接口电路图大全
  6. 未知  |  30323次下载  |  免费
  7. 4开关电源设计实例指南
  8. 未知  |  21549次下载  |  免费
  9. 5电气工程师手册免费下载(新编第二版pdf电子书)
  10. 0.00 MB  |  15349次下载  |  免费
  11. 6数字电路基础pdf(下载)
  12. 未知  |  13750次下载  |  免费
  13. 7电子制作实例集锦 下载
  14. 未知  |  8113次下载  |  免费
  15. 8《LED驱动电路设计》 温德尔著
  16. 0.00 MB  |  6656次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935054次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537798次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420027次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234315次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233046次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191187次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183279次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138040次下载  |  免费