תוכן עניינים:

ספריית Arduino לפענוח MP3: 4 שלבים
ספריית Arduino לפענוח MP3: 4 שלבים

וִידֵאוֹ: ספריית Arduino לפענוח MP3: 4 שלבים

וִידֵאוֹ: ספריית Arduino לפענוח MP3: 4 שלבים
וִידֵאוֹ: Output DC or AC Voltage using MCP4725 DAC with LCD and PWM to Voltage Converter with Arduino 2024, יולי
Anonim
ספריית Arduino לפענוח MP3
ספריית Arduino לפענוח MP3
ספריית Arduino לפענוח MP3
ספריית Arduino לפענוח MP3

בשל השכיחות המוגברת של בקרי מיקרו מהירים כגון ESP32 ופענוח MP3 מסדרת ARM M כבר לא נדרש לבצע חומרה מומחית. כעת ניתן לבצע את הפענוח בתוכנה.

ישנה ספרייה מצוינת מ- earlephilhower שמראה כיצד לפענח מגוון רחב של קבצי שמע ולהפעיל אותם על מיקרו -בקרי ESP. בהשראת זה התאמתי חלק מהקוד ליצירת שיטה מודולרית לקריאת קבצי MP3 על בקרי מיקרו.

התקווה שלי היא ששיטה זו תהיה מספיק כללית לשימוש על כל מיקרו -בקר מספיק מהיר (לא רק לוח ESP32), אך נכון לעכשיו בדקתי רק על ESP32.

אספקה

כפי שאמרתי קודם, אני מקווה ששיטה זו תעבוד עבור כל מיקרו -בקר מהיר, אך ייתכן שלא. לכן כדי לשכפל את התוצאות שלי תזדקק ל:

  • לוח ESP32
  • לוח פריצת SD
  • כרטיס זיכרון
  • חוטי מגשר
  • קרש לחם
  • כבל מיקרו USB (להעלאת סקיצה)
  • Arduino IDE

שלב 1: פריסת לוח הלוח

פריסת לוח הלחם
פריסת לוח הלחם

מניחים פריצת כרטיס ESP32 וכרטיס SD על לוח הלחם.

שלב 2: חיווט כרטיס ה- SD

חיווט כרטיס ה- SD
חיווט כרטיס ה- SD

חיבורי כרטיס ה- SD (פריצת ESP32 SD) הם כדלקמן:

GND GND

3v3 VDD

23 DI (MOSI)

19 DO (MISO)

18 SCLK

5 CS

שים לב שהחיבורים האלה יהיו שונים אם אתה משתמש במיקרו -בקר אחר.

שלב 3: ספריות התוכנה

אם אין לך את ESP-IDF מותקן עברו לאתר שלהם והתקינו אותו.

לאחר מכן התקן את ספריית המיקוד. אתה יכול לעשות זאת על ידי הורדת המאגר והצבתו בתיקיית ספריות Arduino שלך. ספריית המיקרו -מפענחים תומכת כעת בקבצי.wav ו-.mp3.

ללא קשר לפורמט, ישנן כמה שיטות נפוצות הקשורות לכל כיתה והן מכוסות בקוד שלהלן. אלה כוללים קבלת מטא נתונים של הקבצים והדפסתם לצג הטורי.

#כלול "SD.h" // קלט

#כלול "mp3.h" // מפענח #כלול "pcm.h" // מיכל נתוני אודיו גולמי mp3 MP3; הגדרת חלל () {Serial.begin (115200); // הגדרת סדרתי SD.begin (); // הגדרת קובץ חיבור SD = SD.open ("/cc.mp3"); // פתח קובץ MP3 MP3.begin (קובץ); // לספר למחלקת MP3 איזה קובץ לעבד MP3.getMetadata (); // לקבל את המטא -נתונים Serial.print ("ביטים לדגימה:"); Serial.println (MP3.bitsPerSample); // סיביות הדפסה לדגימה Serial.print ("קצב דגימה:"); Serial.println (MP3. Fs); // and rate rate} לולאת חלל () {}

שלב 4: תכנן נתוני MP3 על הצג הסידורי

תכנן נתוני MP3 על הצג הסידורי
תכנן נתוני MP3 על הצג הסידורי

בעזרת הקוד למטה תוכל לשרטט כמה נתוני שמע על הצג הסידורי. זה יהיה איטי מאוד אבל יראה לך כיצד להשתמש בספריית MP3. הוא גם מקטין את דגימות הנתונים בגורם 16 כך שכאשר הנתונים מתווים הם נראים כמו צורת גל שמע. קוד זה נלקח מהדוגמה SPI_MP3_Serial.ino המצורפת לספריית המיקרו -מפענחים. כמובן שתתקדם קדימה, תרצה לנגן את נתוני השמע האלה איכשהו, אבל זה הנושא של הוראה אחרת.

#כלול "SD.h" // קלט

#כלול "mp3.h" // מפענח mp3 MP3; // אודיו MP3 בקבוצת MP3; // הגדרת חלל של נתוני שמע גולמיים () {Serial.begin (115200); // הגדרת סדרתי SD.begin (); // הגדרת קובץ חיבור SD = SD.open ("/cc.mp3"); // פתח קובץ MP3 MP3.begin (קובץ); // העבר קובץ לכיתת MP3} לולאת חלל () {audio = MP3.decode (); // פענוח נתוני שמע למחלקת pcm / * ישנם 32 דוגמאות ב- audio.interleaved (16 שמאל ו -16 ימין) * אך אנו מתכננים לתכנן את נקודת הנתונים הראשונה בכל ערוץ. * זה למעשה ממזער את הנתונים בפקטור של 16 (לצפייה * בצורת הגל בלבד) */ Serial.print (audio.interleaved [0]); // ערוץ שמאלי Serial.print (""); Serial.println (audio.interleaved [1]); // ערוץ מימין}

מוּמלָץ: