資料介紹
成分
ATMEGA16A-AUR
微芯片技術/愛特梅爾
|
× 1 |
NX5032GA-16MHZ-STD-CSK-8
NDK美國公司
|
× 1 |
227CKS035M
伊利諾伊電容器
|
× 1 |
741C083510JP
|
× 1 |
Y16271K00000T9R
|
× 1 |
106CKH050M
伊利諾伊電容器
|
× 1 |
741C083510JP
CTS電阻器產品
|
× 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。(它還能夠對音頻進行編碼,盡管這超出了 MP3 Shield 的范圍。)
支持 VS1053 的是一個 μSD 卡插槽,您可以使用它來存儲 MP3 文件。使用 Arduino SD 庫,很容易從 SD 卡中讀取音樂文件,并將它們流式傳輸到 VS1053B。板上還有額外的電路可以將信號電平轉換到 SD 卡允許的最大值 3.3V。
?
以下是 MP3 Player Shield 上重要連接器和其他組件的快速概覽:
?
?
在上圖中,藍色標簽是 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 播放功能不需要它們,包括我們將在本教程中展示的示例。
?
要禁用這些引腳中的任何一個,可以使用愛好刀切割其標簽旁邊的跳線。
輸出音頻
從 MP3 Player Shield 驅動音頻有兩種選擇。最簡單、即插即用的選項是將一些耳機插入板載 3.5 毫米立體聲音頻插孔中。有源(有源)揚聲器也可以插入此插孔,但僅 VS1053B 本身并沒有足夠的功率來驅動低阻抗無源揚聲器。
?
左右聲道以及音頻接地也被分到耳機插孔旁邊的 0.1" 接頭上。您可以使用這些引腳連接到揚聲器或放大器輸入。
線路輸出警告
如果您要將揚聲器輸出連接到功率放大器或電路,請務必閱讀 VLSI 的連接模擬輸出應用說明。
“R”和“L”旁邊標有“-”的引腳連接到 VS1053B 上的“GBUF”引腳。該引腳不接地,不應接地!它在 VS1053B 內部偏置為 1.25V。例如,如果 GBUF 連接到 PC 上的線路輸入,它可以在 PC 側接地并形成接地回路。
?
?
如果 GBUF 連接到放大器接地,則可能會產生危險的(對 VS1053B 而言)電流回路。(來自 VS10XX 模擬輸出應用說明。)
不要那樣做!VLSI 應用筆記有一些推薦的電路(見第 3.1 和 3.2 節),以幫助避免此類問題。
組裝和準備
在我們開始上傳代碼和流式傳輸一些曲調之前,首先需要完成一些準備步驟。您需要在屏蔽層上焊接一些東西,并準備一張 μSD 卡。
添加標題
要開始使用屏蔽,您需要焊接一些接頭。如果您希望保持屏蔽層可堆疊,可堆疊接頭可能是最佳選擇。否則,直男頭也可以。
?
?
一個 MP3 Player Shield,上面焊接了可堆疊的接頭。
查看我們的屏蔽組裝指南,獲取更多有關將接頭添加到屏蔽的幫助。
MP3 文件和 μSD 卡設置
在連接的這個階段,您可能還想開始準備您的 μSD 卡。首先,確保它的格式正確。我們將使用的 SDFat Arduino 庫僅支持格式化為 FAT16 或 FAT32 的卡。您的卡可能已經格式化為這些標準之一,但仔細檢查并沒有什么壞處。
?
?
您可能還需要準備音樂文件。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 文件夾中)。安裝后,您的文件結構應如下所示:
?
?
?
現在重新啟動 Arduino(如果它已打開),并在“Sketch”>“Import Library”菜單下檢查以確保“SFEMP3Library”和“SdFat”都列在那里。
上傳示例草圖
SFEMP3Shield 庫包含一些有趣的示例草圖,展示了其所有令人敬畏的能力。首先,嘗試加載“FilePlayer”示例,方法是轉到“File”>“Examples”>“SFEMP3Shield”>“Examples”>“FilePlayer”。
確保 MP3 Player Shield 舒適地坐在您的 Arduino 上,然后上傳!
上傳后,打開串行監視器并將波特率設置為 115200 bps。一旦草圖初始化,它應該為您提供一個可導航的菜單:
?
?
希望在菜單底部,您會看到草圖在您的 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”進行具體命名。
?
?
第一個觸發器 - 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
#include
#include
#include
?
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 短暫接地。
您可以將這些觸發引腳中的任何一個連接到各種按鈕或開關,或者只需使用一根電線將它們暫時短接到地。
?
- Arduino之基于網絡的MP3播放器
- Arduino MP3點頭玩具
- stm32的MP3播放器 49次下載
- 數碼MP3維修培訓教材
- MP3編碼原理
- MP3主芯片識別軟件
- 聲控點歌mp3技術說明
- MP3音訊解碼芯片
- mp3原理圖
- mp3芯片檢測軟件
- mp3芯片檢測工具
- mp3資料
- mp3硬件電路集錦
- mp3官方站資料(小板)
- Franks mp3制作資料
- 基于功能一體化LSI—BU9435芯片實現MP3播放模塊的設計 2981次閱讀
- dfrobotGravity: UART MP3語音模塊簡介 3088次閱讀
- 微雪電子VS1003B MP3 Board簡介 2873次閱讀
- MP3播放器的工作原理及工作電路的作用分析 1.2w次閱讀
- MP3播放器的基本原理及電路組成 1.9w次閱讀
- 怎么快速無損地把視頻轉換成mp3格式 2560次閱讀
- 怎么鑒別MP3的無損音樂格式,你會了? 1.3w次閱讀
- 探析提升MP3芯片音質的3個小技巧 6620次閱讀
- 耳機MP3音響PCB圖詳細資料分享 5554次閱讀
- 基于AT89C51SND1C單片機的MP3播放器的設計方案 6464次閱讀
- 基于51單片機的多功能MP3設計實現 1.3w次閱讀
- MP3音頻解碼優化系統設計分析 1794次閱讀
- C51內核單片機的MP3播放器設計 5689次閱讀
- 汽車音響MP3發射器電路 2508次閱讀
- 定點DSP的MP3間頻編碼算法研究 1206次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多