電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>Arduino的Mp3屏蔽

Arduino的Mp3屏蔽

2022-07-04 | zip | 0.09 MB | 次下載 | 免費(fèi)

資料介紹

PCB圖如下:
pYYBAGKxqnyAdoKCAAD75EjtxIo515.png
poYBAGKxqn6AZ1xNAABaMK9Kj80904.png

pYYBAGKxqoKAIXEHAABj3YyNTFY124.png

成分

ATMEGA16A-AUR
芯片技術(shù)/愛特梅爾
× 1
NX5032GA-16MHZ-STD-CSK-8
NDK美國公司
× 1
227CKS035M
伊利諾伊電容器
× 1
741C083510JP
× 1
Y16271K00000T9R
Vishay電阻器(Vishay Precision Group 的部門)
× 1
106CKH050M
伊利諾伊電容
× 1
741C083510JP
CTS電阻器產(chǎn)品
× 1
G2RL-2A-CF-DC24
× 1
雙堆疊 1/4" 電話插孔 p/n NSJ12HF-1
紐特里克
× 1

描述

Arduino 的 Mp3 屏蔽

?

硬件概述

MP3 Player Shield 的核心是 VS1053B 音頻編解碼器 IC。VS1053B 是一款多才多藝的小芯片除了 MP3 之外,它還可以解碼 Ogg Vorbis、AAC、WMA 和 MIDI。(它還能夠?qū)?a target='_blank' class='arckwlink_none'>音頻進(jìn)行編碼,盡管這超出了 MP3 Shield 的范圍。)

支持 VS1053 的是一個(gè) μSD 卡插槽,您可以使用它來存儲 MP3 文件。使用 Arduino SD 庫,很容易從 SD 卡中讀取音樂文件,并將它們流式傳輸?shù)?VS1053B。板上還有額外的電路可以將信號電平轉(zhuǎn)換到 SD 卡允許的最大值 3.3V。

?

以下是 MP3 Player Shield 上重要連接器和其他組件的快速概覽:

?

pYYBAGKxqpiATrirAAUdWbIVlig643.png

?

在上圖中,藍(lán)色標(biāo)簽是 VS1053 MP3 編解碼器 IC 使用的引腳,紅色標(biāo)簽用于與 μSD 卡通信,紫色標(biāo)簽的引腳由兩個(gè)組件使用(耶 SPI?。?/font>

使用了哪些引腳?

MP3 Player Shield 需要專門使用少量引腳。這些引腳不能用于與其他設(shè)備接口

D2 連接到 VS1053B 的數(shù)據(jù)請求輸出。該引腳是一個(gè)中斷,它告訴 Arduino IC 需要更多音樂數(shù)據(jù)。

D6 連接到 VS1053B 的片選輸入。該低電平有效引腳告訴芯片何時(shí)向其發(fā)送數(shù)據(jù)。

D7 連接到 VS1053B 的數(shù)據(jù)片選輸入,它告訴芯片何時(shí)發(fā)送音樂數(shù)據(jù)。

D8 連接到 VS1053B 的復(fù)位輸入。

D9 連接到 μSD 卡的片選輸入。

Arduino 的三個(gè) SPI 數(shù)據(jù)和時(shí)鐘引腳——D11、D12 和 D13——可用于連接其他 SPI 組件。但是,它們不能用于 SPI 以外的任何目的。

哪些引腳是免費(fèi)的?

哇!屏蔽確實(shí)用掉了很多引腳,但這里的引腳仍然可用于連接其他組件。

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

D5 和 D10(PWM 引腳?。?/font>

所有模擬引腳(A0 到 A5)。

可選引腳跳線

我們還沒有提到的兩個(gè)引腳是 D3 和 D4,它們分別連接到 VS1053B 的 MIDI-In 和 GPIO1 引腳。這些引腳的使用是可選的。大多數(shù) MP3 播放功能不需要它們,包括我們將在本教程中展示的示例。

?

poYBAGKxqpuAFG-sAAIoCu208e4729.png

要禁用這些引腳中的任何一個(gè),可以使用愛好刀切割其標(biāo)簽旁邊的跳線。

輸出音頻

從 MP3 Player Shield 驅(qū)動音頻有兩種選擇。最簡單、即插即用的選項(xiàng)是將一些耳機(jī)插入板載 3.5 毫米立體聲音頻插孔中。有源(有源)揚(yáng)聲器也可以插入此插孔,但僅 VS1053B 本身并沒有足夠的功率來驅(qū)動低阻抗無源揚(yáng)聲器。

poYBAGKxqp6AEV8lAAI9nYTiq14810.png

?

左右聲道以及音頻接地也被分到耳機(jī)插孔旁邊的 0.1" 接頭上。您可以使用這些引腳連接到揚(yáng)聲器或放大器輸入。

線路輸出警告

如果您要將揚(yáng)聲器輸出連接到功率放大器或電路,請務(wù)必閱讀 VLSI 的連接模擬輸出應(yīng)用說明。

“R”和“L”旁邊標(biāo)有“-”的引腳連接到 VS1053B 上的“GBUF”引腳。該引腳不接地,不應(yīng)接地!它在 VS1053B 內(nèi)部偏置為 1.25V。例如,如果 GBUF 連接到 PC 上的線路輸入,它可以在 PC 側(cè)接地并形成接地回路。

?

pYYBAGKxqqCAfFImAAHUwp95z0k889.png

?

如果 GBUF 連接到放大器接地,則可能會產(chǎn)生危險(xiǎn)的(對 VS1053B 而言)電流回路。(來自 VS10XX 模擬輸出應(yīng)用說明。)

不要那樣做!VLSI 應(yīng)用筆記有一些推薦的電路(見第 3.1 和 3.2 節(jié)),以幫助避免此類問題。

組裝和準(zhǔn)備

在我們開始上傳代碼和流式傳輸一些曲調(diào)之前,首先需要完成一些準(zhǔn)備步驟。您需要在屏蔽層上焊接一些東西,并準(zhǔn)備一張 μSD 卡。

添加標(biāo)題

要開始使用屏蔽,您需要焊接一些接頭。如果您希望保持屏蔽層可堆疊,可堆疊接頭可能是最佳選擇。否則,直男頭也可以。

?

poYBAGKxqqWADL5MAAgb5p2ZYFU517.png

?

一個(gè) MP3 Player Shield,上面焊接了可堆疊的接頭。

查看我們的屏蔽組裝指南,獲取更多有關(guān)將接頭添加到屏蔽的幫助。

MP3 文件和 μSD 卡設(shè)置

在連接的這個(gè)階段,您可能還想開始準(zhǔn)備您的 μSD 卡。首先,確保它的格式正確。我們將使用的 SDFat Arduino 庫僅支持格式化為 FAT16 或 FAT32 的卡。您的卡可能已經(jīng)格式化為這些標(biāo)準(zhǔn)之一,但仔細(xì)檢查并沒有什么壞處。

?

poYBAGKxqqiAROnUAACKVHwxu4g247.png

?

您可能還需要準(zhǔn)備音樂文件。VS1053B 能夠播放 MP3、AAC、WMA、MIDI 和 Ogg Vorbis 音頻文件。VS1053B 支持每種文件類型的各種采樣率和比特率。查看數(shù)據(jù)表(從第 8 節(jié)開始——第 26 頁),確保支持您的音頻文件。例如,MP3 支持高達(dá) 320 kbps 的比特率和 48 kHz 的采樣率。

最后,在將音頻文件加載到 SD 卡之前,您需要修改它們的名稱。SDFat 庫僅支持“8.3”文件名——即 '.' 之前的八個(gè)字符。和后面的三個(gè)字符(例如“track001.mp3”)。此外,我們稍后將使用的一些示例代碼要求使用特殊約定命名音頻文件。在 MP3 觸發(fā)器示例中,文件需要命名為“track001.mp3”、“track002.mp3”等。

?

使用 SFEMP3Shield 庫

?

SFEMP3Shield Arduino 庫 - 由 Bill Porter、Michael Flaga、ddz 和 Wade Brainerd 合作編寫 - 是 MP3 Player Shield 的驚人資源。結(jié)合同樣出色的 SdFat 庫,SFEMP3Shield 極大地簡化了與 VS1053 連接和使用 MP3 Player Shield 的任務(wù)。

我們建議將 SFEMP3Shield 庫與此屏蔽一起使用。在此頁面上,我們將介紹如何安裝和使用該庫。在下一頁,我們將使用它制作一個(gè)有趣的示例草圖。

安裝 SFEMP3Shield 庫

下載最新版本的 SFEMP3Shield,請單擊庫 GitHub 頁面上的“下載 ZIP”鏈接。您還應(yīng)該能夠直接從這里獲取它。

此 GitHub 存儲庫已包含 SdFat 庫的副本,因此您已被覆蓋。

您提取的“Sparkfun-MP3-Player-Shield-Arduino-Library-master”文件夾中應(yīng)該有一些文件夾。“SFEMP3Shield”和“SdFat”文件夾尤其需要安裝為 Arduino 庫。如需安裝庫的幫助,請查看我們的安裝 Arduino 庫教程。您需要將這兩個(gè)文件夾放在您的 Arduino 速寫本中(默認(rèn)情況下在您的 home/Arduino 文件夾中)。安裝后,您的文件結(jié)構(gòu)應(yīng)如下所示:

?

pYYBAGKxqquAfoTsAAFXp-z3zOY422.png

?

?

現(xiàn)在重新啟動 Arduino(如果它已打開),并在“Sketch”>“Import Library”菜單下檢查以確保“SFEMP3Library”和“SdFat”都列在那里。

上傳示例草圖

SFEMP3Shield 庫包含一些有趣的示例草圖,展示了其所有令人敬畏的能力。首先,嘗試加載“FilePlayer”示例,方法是轉(zhuǎn)到“File”>“Examples”>“SFEMP3Shield”>“Examples”>“FilePlayer”。

確保 MP3 Player Shield 舒適地坐在您的 Arduino 上,然后上傳!

上傳后,打開串行監(jiān)視器并將波特率設(shè)置為 115200 bps。一旦草圖初始化,它應(yīng)該為您提供一個(gè)可導(dǎo)航的菜單:

?

poYBAGKxqq6AaYyoAAL08zB2jnA620.png

?

希望在菜單底部,您會看到草圖在您的 SD 卡上找到的 MP3 文件列表。嘗試發(fā)送一個(gè)帶有填充零的 3 位數(shù)字(例如 001、003 等),以使列出的文件之一開始播放。你現(xiàn)在開槽了嗎?

如果太安靜,請嘗試使用“+”命令調(diào)高音量,或使用“-”調(diào)低音量。還有各種其他有趣的選擇可以嘗試。

有用的 SFEMP3Shield 庫文檔

如果您正在尋求使用 SFEMP3Shield 的幫助,請首先查看其支持網(wǎng)站的主頁。那里有一些很好的故障排除信息。

要深入研究代碼,您可以查看他們的 GitHub 存儲庫。還有一個(gè)有用的 SFEMP3Shield 類參考指南,其中列出了該庫提供的所有功能。

在下一頁,我們將使用 MP3ShieldLibrary 制作一個(gè)示例草圖,以展示它的一些更基本的功能。

示例草圖:MP3 觸發(fā)器

無論是紅色還是紫色,每個(gè)人都喜歡好的 MP3 觸發(fā)器。只需一個(gè)簡單的按鈕或開關(guān)即可觸發(fā)歌曲或音效。讓我們使用 MP3 Player Shield 庫來制作一個(gè)可以與大男孩競爭的 MP3 觸發(fā)器。

這是一個(gè)簡單的示例,展示了如何使用 SFEMP3Shield 庫播放和停止曲目。使用引腳 0、1、5、10 和 A0-A4,屏蔽最多可以觸發(fā) 9 個(gè)軌道。A5 可用于停止當(dāng)前播放的曲目。

第 1 步:設(shè)置 SD 卡

在將 μSD 卡插入屏蔽之前,您需要重命名 MP3 文件。九個(gè)曲目中的每一個(gè)都需要從“track001.mp3”到“track009.mp3”進(jìn)行具體命名。

?

pYYBAGKxqrCAawnOAAJoQx8Qijg531.png

?

第一個(gè)觸發(fā)器 - D0 - 將播放名為“track001.mp3”的 MP3,第二個(gè)觸發(fā)器 - D1 - 將播放“track002.mp3”,依此類推,直到 A4 將播放“track009.mp3”。

第 2 步:設(shè)置硬件

當(dāng)然,Shield 會為您完成大部分硬件設(shè)置。除了將屏蔽貼在 Arduino 上之外,您還需要找一些東西來觸發(fā)引腳。您可以使用一個(gè)開關(guān),其中有很多選項(xiàng),或者您可以只使用一根簡單的跳線將一個(gè)觸發(fā)引腳接地。

?

?

您可以將耳機(jī)插入板載插孔以收聽,或者,如果您想使用它,可以使用三個(gè)斷開的“揚(yáng)聲器”引腳。這是我們結(jié)合了 MonoAmp Breakout 和 8 Ω 揚(yáng)聲器的設(shè)置:

第 3 步:加載代碼

這是我們的 MP3 Shield 觸發(fā)器草圖。從下面復(fù)制/粘貼,或在此處下載:

語言:c

/*

MP3 屏蔽觸發(fā)器

作者:吉姆·林德布洛姆

火花電子

日期:2013年9月23日

?

這是 SparkFun MP3 Shield 的示例 MP3 觸發(fā)器草圖。

引腳 0、1、5、10、A0、A1、A2、A3 和 A4 設(shè)置為觸發(fā)軌道

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

護(hù)盾。每當(dāng)這些引腳中的任何一個(gè)對地短路時(shí),

他們各自的曲目將開始播放。

?

當(dāng)一個(gè)新的 pin 被觸發(fā)時(shí),當(dāng)前正在播放的任何曲目都會

停止,新的將開始。

?

A5 設(shè)置為在觸發(fā)時(shí)全局停止播放曲目。

?

如果您需要更多觸發(fā)器,請使用針腳 3 和 4 上的屏蔽跳線

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

觸發(fā)銷。此外,因?yàn)橐_ 0 和 1 用作觸發(fā)器

串行不可用于調(diào)試。將它們禁用為

如果要使用串行,則觸發(fā)。

?

大部分代碼是從 FilePlayer 示例中獲取的

包含在 SFEMP3Shield 庫中。主要感謝比爾

波特和邁克爾弗拉加,再次,為這個(gè)了不起的圖書館!

*/

?

#include // SPI 庫

#include // SDFat 庫

#include // SDFat Util 庫

#include // Mp3 屏蔽庫

?

SdFat 標(biāo)準(zhǔn)差;// 創(chuàng)建對象來處理 SD 函數(shù)

?

SFEMP3Shield MP3播放器;// 創(chuàng)建 Mp3 庫對象

// 這些變量在 MP3 初始化時(shí)用來設(shè)置

// 一些立體聲選項(xiàng):

常量 uint8_t 體積 = 0;// MP3 播放器音量 0=最大,255=最低(關(guān)閉)

const uint16_t monoMode = 1; // 單聲道設(shè)置 0=off, 3=max

?

/* 引腳設(shè)置 */

#define TRIGGER_COUNT 9

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

int stopPin = A5;//此引腳觸發(fā)軌道停止。

整數(shù)最后觸發(fā)器 = 0;// 這個(gè)變量跟蹤正在播放的曲調(diào)

?

無效設(shè)置()

{

/* 將所有觸發(fā)引腳設(shè)置為輸入,激活上拉:*/

for (int i=0; i

{

pinMode(triggerPins[i], INPUT_PULLUP);

}

pinMode(stopPin, INPUT_PULLUP);

?

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

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

}

?

// 循環(huán)所做的就是不斷地單步執(zhí)行觸發(fā)器

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

// 當(dāng)前播放曲目,并開始播放新曲目。

無效循環(huán)()

{

for (int i=0; i

{

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

{

最后觸發(fā) = i+1; // 更新 lastTrigger 變量為當(dāng)前觸發(fā)器

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

如果 (MP3player.isPlaying())

MP3player.stopTrack();

?

/* 使用 playTrack 函數(shù)播放編號的曲目: */

uint8_t 結(jié)果 = MP3player.playTrack(lastTrigger);

// 這里的另一種選擇是使用

// playMP3(fileName) 函數(shù),只要你映射

// 觸發(fā)引腳的文件名。

?

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

{

// 成功

}

else // 否則有錯(cuò)誤,檢查代碼

{

// 以某種方式打印錯(cuò)誤代碼

}

}

}

//循環(huán)并檢查觸發(fā)引腳后,檢查到

// 查看是否觸發(fā)了 stopPin (A5)。

if (digitalRead(stopPin) == LOW)

{

最后觸發(fā)器 = 0; // 重置 lastTrigger

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

如果 (MP3player.isPlaying())

MP3player.stopTrack();

}

}

?

// initSD() 初始化 SD 卡并檢查錯(cuò)誤。

無效初始化SD()

{

//初始化SD卡。

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

sd.initErrorHalt();

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

sd.errorHalt("sd.chdir");

}

?

// initMP3Player() 設(shè)置所有的初始化

// MP3 播放器屏蔽。它運(yùn)行 begin() 函數(shù),檢查

// 對于錯(cuò)誤,如果找到則應(yīng)用補(bǔ)丁,并設(shè)置音量/

//立體聲模式。

無效的 initMP3Player()

{

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

if(result != 0) // 檢查結(jié)果,錯(cuò)誤代碼見自述文件。

{

// 錯(cuò)誤檢查可以到這里!

}

MP3player.setVolume(音量, 音量);

MP3player.setMonoMode(monoMode);

}

檢查代碼中的注釋以獲取分步演練。這個(gè)例子展示了使用 MP3 Player Shield 是多么容易(非常感謝 Bill Porter 和 Michael Flaga 的庫)。調(diào)用 MP3player.playTrack() 函數(shù)開始一首歌曲,并使用 MP3player.stopTrack() 調(diào)用停止它。

第 4 步:觸發(fā)一些曲調(diào)

加載草圖后,您所要做的就是將其中一個(gè)觸發(fā)銷(0、1、5、10、A0、A1、A2、A3、A4)接地。當(dāng)一個(gè)新的觸發(fā)引腳接地時(shí),任何當(dāng)前正在播放的歌曲都將停止,與之相關(guān)的 MP3 文件將開始播放。如果要停止軌道,請將 A5 短暫接地。

您可以將這些觸發(fā)引腳中的任何一個(gè)連接到各種按鈕或開關(guān),或者只需使用一根電線將它們暫時(shí)短接到地。

?


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1AN158 GD32VW553 Wi-Fi開發(fā)指南
  2. 1.51MB   |  2次下載  |  免費(fèi)
  3. 2嵌入式軟件開發(fā)符合ISO 26262 功能安全標(biāo)準(zhǔn)
  4. 1.61 MB  |  1次下載  |  免費(fèi)
  5. 3AN148 GD32VW553射頻硬件開發(fā)指南
  6. 2.07MB   |  1次下載  |  免費(fèi)
  7. 4PZT驅(qū)動開關(guān)電路
  8. 0.09 MB   |  1次下載  |  免費(fèi)
  9. 5模擬電路仿真實(shí)現(xiàn)
  10. 2.94MB   |  1次下載  |  免費(fèi)
  11. 6PCB繪制基礎(chǔ)知識
  12. 2.44MB   |  1次下載  |  免費(fèi)
  13. 7電子線路板及仿真實(shí)現(xiàn)
  14. 1.54MB   |  1次下載  |  免費(fèi)
  15. 8T028M規(guī)格書 2.8寸TFT液晶屏 高清智能串口彩屏LCD顯示屏 IPS全視角豎屏顯示
  16. 480.15 KB  |  次下載  |  免費(fèi)

本月

  1. 1ADI高性能電源管理解決方案
  2. 2.43 MB   |  452次下載  |  免費(fèi)
  3. 2免費(fèi)開源CC3D飛控資料(電路圖&PCB源文件、BOM、
  4. 5.67 MB   |  139次下載  |  1 積分
  5. 3基于STM32單片機(jī)智能手環(huán)心率計(jì)步器體溫顯示設(shè)計(jì)
  6. 0.10 MB   |  132次下載  |  免費(fèi)
  7. 4美的電磁爐維修手冊大全
  8. 1.56 MB   |  24次下載  |  5 積分
  9. 5如何正確測試電源的紋波
  10. 0.36 MB   |  19次下載  |  免費(fèi)
  11. 6感應(yīng)筆電路圖
  12. 0.06 MB   |  10次下載  |  免費(fèi)
  13. 7LZC3106G高性能諧振控制器中文手冊
  14. 1.29 MB   |  9次下載  |  1 積分
  15. 8萬用表UT58A原理圖
  16. 0.09 MB   |  9次下載  |  5 積分

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935121次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
  4. 1.48MB  |  420062次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233088次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費(fèi)下載
  8. 340992  |  191367次下載  |  10 積分
  9. 5十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
  10. 158M  |  183335次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81581次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費(fèi)下載
  14. 0.02 MB  |  73810次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65988次下載  |  10 積分