資料介紹
成分
ATMEGA16A-AUR
微芯片技術(shù)/愛特梅爾
|
× 1 |
NX5032GA-16MHZ-STD-CSK-8
NDK美國公司
|
× 1 |
227CKS035M
伊利諾伊電容器
|
× 1 |
741C083510JP
|
× 1 |
Y16271K00000T9R
|
× 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 上重要連接器和其他組件的快速概覽:
?
?
在上圖中,藍(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 播放功能不需要它們,包括我們將在本教程中展示的示例。
?
要禁用這些引腳中的任何一個(gè),可以使用愛好刀切割其標(biāo)簽旁邊的跳線。
輸出音頻
從 MP3 Player Shield 驅(qū)動音頻有兩種選擇。最簡單、即插即用的選項(xiàng)是將一些耳機(jī)插入板載 3.5 毫米立體聲音頻插孔中。有源(有源)揚(yáng)聲器也可以插入此插孔,但僅 VS1053B 本身并沒有足夠的功率來驅(qū)動低阻抗無源揚(yáng)聲器。
?
左右聲道以及音頻接地也被分到耳機(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è)接地并形成接地回路。
?
?
如果 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)題
要開始使用屏蔽,您需要焊接一些接頭。如果您希望保持屏蔽層可堆疊,可堆疊接頭可能是最佳選擇。否則,直男頭也可以。
?
?
一個(gè) MP3 Player Shield,上面焊接了可堆疊的接頭。
查看我們的屏蔽組裝指南,獲取更多有關(guān)將接頭添加到屏蔽的幫助。
MP3 文件和 μSD 卡設(shè)置
在連接的這個(gè)階段,您可能還想開始準(zhǔn)備您的 μSD 卡。首先,確保它的格式正確。我們將使用的 SDFat Arduino 庫僅支持格式化為 FAT16 或 FAT32 的卡。您的卡可能已經(jīng)格式化為這些標(biāo)準(zhǔn)之一,但仔細(xì)檢查并沒有什么壞處。
?
?
您可能還需要準(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)如下所示:
?
?
?
現(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)航的菜單:
?
?
希望在菜單底部,您會看到草圖在您的 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)行具體命名。
?
?
第一個(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
#include
#include
#include
?
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í)短接到地。
?
- Arduino之基于網(wǎng)絡(luò)的MP3播放器
- Arduino MP3點(diǎn)頭玩具
- stm32的MP3播放器 56次下載
- 數(shù)碼MP3維修培訓(xùn)教材
- MP3編碼原理
- MP3主芯片識別軟件
- 聲控點(diǎn)歌mp3技術(shù)說明
- MP3音訊解碼芯片
- mp3原理圖
- mp3芯片檢測軟件
- mp3芯片檢測工具
- mp3資料
- mp3硬件電路集錦
- mp3官方站資料(小板)
- Franks mp3制作資料
- 基于功能一體化LSI—BU9435芯片實(shí)現(xiàn)MP3播放模塊的設(shè)計(jì) 3182次閱讀
- dfrobotGravity: UART MP3語音模塊簡介 3245次閱讀
- 微雪電子VS1003B MP3 Board簡介 3277次閱讀
- MP3播放器的工作原理及工作電路的作用分析 1.3w次閱讀
- MP3播放器的基本原理及電路組成 2w次閱讀
- 怎么快速無損地把視頻轉(zhuǎn)換成mp3格式 2668次閱讀
- 怎么鑒別MP3的無損音樂格式,你會了? 1.4w次閱讀
- 探析提升MP3芯片音質(zhì)的3個(gè)小技巧 6856次閱讀
- 耳機(jī)MP3音響PCB圖詳細(xì)資料分享 5717次閱讀
- 基于AT89C51SND1C單片機(jī)的MP3播放器的設(shè)計(jì)方案 6712次閱讀
- 基于51單片機(jī)的多功能MP3設(shè)計(jì)實(shí)現(xiàn) 1.3w次閱讀
- MP3音頻解碼優(yōu)化系統(tǒng)設(shè)計(jì)分析 1953次閱讀
- C51內(nèi)核單片機(jī)的MP3播放器設(shè)計(jì) 5907次閱讀
- 汽車音響MP3發(fā)射器電路 2547次閱讀
- 定點(diǎn)DSP的MP3間頻編碼算法研究 1287次閱讀
下載排行
本周
- 1AN158 GD32VW553 Wi-Fi開發(fā)指南
- 1.51MB | 2次下載 | 免費(fèi)
- 2嵌入式軟件開發(fā)符合ISO 26262 功能安全標(biāo)準(zhǔn)
- 1.61 MB | 1次下載 | 免費(fèi)
- 3AN148 GD32VW553射頻硬件開發(fā)指南
- 2.07MB | 1次下載 | 免費(fèi)
- 4PZT驅(qū)動開關(guān)電路
- 0.09 MB | 1次下載 | 免費(fèi)
- 5模擬電路仿真實(shí)現(xiàn)
- 2.94MB | 1次下載 | 免費(fèi)
- 6PCB繪制基礎(chǔ)知識
- 2.44MB | 1次下載 | 免費(fèi)
- 7電子線路板及仿真實(shí)現(xiàn)
- 1.54MB | 1次下載 | 免費(fèi)
- 8T028M規(guī)格書 2.8寸TFT液晶屏 高清智能串口彩屏LCD顯示屏 IPS全視角豎屏顯示
- 480.15 KB | 次下載 | 免費(fèi)
本月
- 1ADI高性能電源管理解決方案
- 2.43 MB | 452次下載 | 免費(fèi)
- 2免費(fèi)開源CC3D飛控資料(電路圖&PCB源文件、BOM、
- 5.67 MB | 139次下載 | 1 積分
- 3基于STM32單片機(jī)智能手環(huán)心率計(jì)步器體溫顯示設(shè)計(jì)
- 0.10 MB | 132次下載 | 免費(fèi)
- 4美的電磁爐維修手冊大全
- 1.56 MB | 24次下載 | 5 積分
- 5如何正確測試電源的紋波
- 0.36 MB | 19次下載 | 免費(fèi)
- 6感應(yīng)筆電路圖
- 0.06 MB | 10次下載 | 免費(fèi)
- 7LZC3106G高性能諧振控制器中文手冊
- 1.29 MB | 9次下載 | 1 積分
- 8萬用表UT58A原理圖
- 0.09 MB | 9次下載 | 5 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935121次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420062次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233088次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191367次下載 | 10 積分
- 5十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183335次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73810次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評論
查看更多