電子發(fā)燒友App

硬聲App

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>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電阻器產(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。(它還能夠對音頻進行編碼,盡管這超出了 MP3 Shield 的范圍。)

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

?

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

?

pYYBAGKxqpiATrirAAUdWbIVlig643.png

?

在上圖中,藍色標簽是 VS1053 MP3 編解碼器 IC 使用的引腳,紅色標簽用于與 μSD 卡通信,紫色標簽的引腳由兩個組件使用(耶 SPI!)。

使用了哪些引腳?

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

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

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

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

D8 連接到 VS1053B 的復位輸入。

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

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

哪些引腳是免費的?

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

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

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

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

可選引腳跳線

我們還沒有提到的兩個引腳是 D3 和 D4,它們分別連接到 VS1053B 的 MIDI-In 和 GPIO1 引腳。這些引腳的使用是可選的。大多數(shù) 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 連接到放大器接地,則可能會產(chǎn)生危險的(對 VS1053B 而言)電流回路。(來自 VS10XX 模擬輸出應用說明。)

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

組裝和準備

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

添加標題

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

?

poYBAGKxqqWADL5MAAgb5p2ZYFU517.png

?

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

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

MP3 文件和 μSD 卡設置

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

?

poYBAGKxqqiAROnUAACKVHwxu4g247.png

?

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

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

?

?

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

上傳示例草圖

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

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

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

?

poYBAGKxqq6AaYyoAAL08zB2jnA620.png

?

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

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

有用的 SFEMP3Shield 庫文檔

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

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

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

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

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

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

第 1 步:設置 SD 卡

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

?

pYYBAGKxqrCAawnOAAJoQx8Qijg531.png

?

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

第 2 步:設置硬件

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

?

?

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

第 3 步:加載代碼

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

語言:c

/*

MP3 屏蔽觸發(fā)器

作者:吉姆·林德布洛姆

火花電子

日期:2013年9月23日

?

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

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

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

護盾。每當這些引腳中的任何一個對地短路時,

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

?

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

停止,新的將開始。

?

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

?

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

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

觸發(fā)銷。此外,因為引腳 0 和 1 用作觸發(fā)器

串行不可用于調試。將它們禁用為

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

?

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

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

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

*/

?

#include // SPI 庫

#include // SDFat 庫

#include // SDFat Util 庫

#include // Mp3 屏蔽庫

?

SdFat 標準差;// 創(chuàng)建對象來處理 SD 函數(shù)

?

SFEMP3Shield MP3播放器;// 創(chuàng)建 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;//此引腳觸發(fā)軌道停止。

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

?

無效設置()

{

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

for (int i=0; i

{

pinMode(triggerPins[i], INPUT_PULLUP);

}

pinMode(stopPin, INPUT_PULLUP);

?

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

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

}

?

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

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

// 當前播放曲目,并開始播放新曲目。

無效循環(huán)()

{

for (int i=0; i

{

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

{

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

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

如果 (MP3player.isPlaying())

MP3player.stopTrack();

?

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

uint8_t 結果 = MP3player.playTrack(lastTrigger);

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

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

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

?

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

{

// 成功

}

else // 否則有錯誤,檢查代碼

{

// 以某種方式打印錯誤代碼

}

}

}

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

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

if (digitalRead(stopPin) == LOW)

{

最后觸發(fā)器 = 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() 函數(shù),檢查

// 對于錯誤,如果找到則應用補丁,并設置音量/

//立體聲模式。

無效的 initMP3Player()

{

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

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

{

// 錯誤檢查可以到這里!

}

MP3player.setVolume(音量, 音量);

MP3player.setMonoMode(monoMode);

}

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

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

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

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

?


評論

查看更多

下載排行

本周

  1. 1ADE-12H混頻器規(guī)格書
  2. 0.28 MB   |  1次下載  |  5 積分
  3. 2AD9984A高性能10位顯示接口英文手冊
  4. 0.49 MB   |  1次下載  |  5 積分
  5. 351開發(fā)板芯片資料
  6. 14.95 MB   |  1次下載  |  1 積分
  7. 4用TL431LI-Q1監(jiān)控電流供應
  8. 176.71KB   |  1次下載  |  免費
  9. 5十進制數(shù)據(jù)轉十六進制字符_轉ASCII碼
  10. 0.01 MB   |  次下載  |  免費
  11. 6使用TRF7970A進行NFC主動和被動點對點通信
  12. 926.87KB   |  次下載  |  免費
  13. 7LP8864-Q1 LP8864S-Q1 LP8866-Q1和LP8866S-Q1診斷說明和故障處理程序
  14. 577.42KB   |  次下載  |  免費
  15. 8將設計移植到LP3470A低lq電壓監(jiān)控器,以改善電源監(jiān)控
  16. 115.28KB   |  次下載  |  免費

本月

  1. 1HFSS電磁仿真設計應用詳解PDF電子教程免費下載
  2. 24.30 MB   |  129次下載  |  1 積分
  3. 2正激、反激、推挽、全橋、半橋區(qū)別和特點
  4. 0.91 MB   |  36次下載  |  1 積分
  5. 3GBT 4706.1-2024家用和類似用途電器的安全第1部分:通用要求
  6. 7.43 MB   |  20次下載  |  免費
  7. 4在設計中使用MOSFET瞬態(tài)熱阻抗曲線
  8. 1.57MB   |  15次下載  |  免費
  9. 5幾張電動車充電器電路圖
  10. 0.23 MB   |  9次下載  |  1 積分
  11. 6AD18學習筆記
  12. 14.47 MB   |  8次下載  |  2 積分
  13. 7H橋中的電流感測
  14. 545.39KB   |  7次下載  |  免費
  15. 8電機驅動器電路板布局的最佳實踐
  16. 3.03MB   |  6次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935113次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
  4. 1.48MB  |  420061次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233084次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費下載
  8. 340992  |  191360次下載  |  10 積分
  9. 5十天學會AVR單片機與C語言視頻教程 下載
  10. 158M  |  183329次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81578次下載  |  10 積分
  13. 7Keil工具MDK-Arm免費下載
  14. 0.02 MB  |  73804次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65985次下載  |  10 積分