כיף לבנות נגני מוסיקה DIY, ובנינו בעבר כמה נגני מוסיקה באמצעות Arduino ומודול MP3 ייעודי. כעת אנו משתמשים ב- ESP32 לבניית נגן שמע מעניין, בו תוכלו להשפיע על קול רק על ידי חיבור רמקול נוסף ל- ESP32. כאן נשתמש ב- LM386 וברמקול עם ESP32 להפעלת קבצי מוסיקה. פלט השמע אולי לא חזק אבל יישום זה מראה את היכולת של לוח ESP32 לנגן קבצי שמע.
רכיבים נדרשים
- ESP32
- מודול מגבר LM386
- 8 אוהם רמקול
- חוטי מגשר
תרשים מעגל
דיאגרמת מעגלים עבור נגן המוסיקה ESP32 מובאת להלן-
כדי להשמיע צליל ב- ESP32, אנו זקוקים לרמקול. הרמקול מחובר באמצעות מודול מגבר האודיו LM386. סיכות Vcc ו- GND של מודול המגבר מחוברות ל- VIN ו- GND של ESP32 בעוד שסיכה IN של מודול המגבר מחוברת ל- GPIO 25 פינים של ESP32. GPIO 25 הוא אחד משני הפינים של DAC (ממיר דיגיטלי לאנלוגי).
כך תיראה ההתקנה המלאה עבור נגן המוסיקה ESP32:
LM386 הוא מגבר שמע IC, תוכלו ללמוד עוד על LM386 על ידי לחיצה על הקישור.
מתכונן לקבצי שמע
כדי להשמיע צלילי שמע על לוח ESP32, אנו זקוקים לקבצי שמע בפורמט .wav מכיוון ש- ESP32 יכול להשמיע קובץ שמע בפורמט .wav בלבד.
אז השלב הראשון יהיה קבלת הקובץ שברצונך להפעיל ב- ESP32. לאחר מכן, הורד והתקן את אפליקציית Audacity Audio Editor. אפליקציה זו תשמש לשינוי סוג הקובץ, קצב הדגימה ומאפיינים אחרים.
לאחר השלמת ההתקנה, פתח את אפליקציית Audacity ואז עבור לקובץ> פתח ובחר את קובץ השמע לעריכה.
הדבר הראשון שהיה צורך לשנות הוא קצב הדגימה. להפעלת קובץ שמע ב- ESP32, קצב דגימה של 8000 עד 16000 יהיה טוב מכיוון של- ESP32 אין הרבה זיכרון. אז שנה את שיעור הפרויקט ל 16000.
לאחר מכן, נווט אל קובץ> ייצוא> ייצא כ- WAV כדי לשמור את קובץ השמע בפורמט .wav .
כעת בחלון הבא בחר WAV (מיקרוסופט) כסוג קובץ ו- PCM 8 סיביות לא חתום כפורמט קידוד ואז לחץ על שמור.
כעת אנו זקוקים לאפליקציית Hex Editor כדי ליצור קודי Hex עבור קובץ השמע. אז הורידו והתקינו את עורך Hex (HxD) מהקישור הנתון. לאחר מכן, פתח את האפליקציה ואז עבור אל קובץ> פתח ופתח את קובץ ה- .wav . זה ייצור את קוד ה- Hex עבור קובץ ה- .wav .
לאחר מכן השתמש ב- ctrl + A כדי לבחור את הקוד השלם ואז עבור אל Edit> Copy as> C כדי להעתיק את הקוד בפורמט C שפה.
ואז הדבק קוד זה בארדואינו IDE.
הסבר קוד
הקוד המלא עבור נגן האודיו Contactless ESP32 ניתן בסוף העמוד. כאן אנו מסבירים כמה חלקים חשובים בקוד. בתוכנית זו אנו נשתמש בספריית שמע XT DAC מבית XTronical. ניתן להוריד את ספריית שמע XT DAC מכאן.
אז כרגיל, התחל את הקוד על ידי הכללת כל הספריות הנדרשות. הקובץ SoundData.h מכיל את קוד ה- Hex עבור קובץ ה- Wav שיש לנגן.
#include "SoundData.h" #include "XT_DAC_Audio.h"
בשורה הבאה, צור אובייקט מסוג XT_Wav_Class המשמש את מחלקת האודיו DAC המעבירה נתוני .wav כפרמטר. DacAudio, האובייקט הראשי של הנגן בו 25 הוא מספר הסיכה של DAC שבו מחובר סיכת המגבר.
XT_Wav_Class סאונד (דוגמה); XT_DAC_Audio_Class DacAudio (25,0);
בתוך פונקציית setup () , אתחל את צג הסידורי בקצב שידור של 115200 למטרות איתור באגים.
הגדרת חלל () {Serial.begin (115200);
בתוך פונקציית הלולאה () , מלא את מאגר הצליל בנתונים ובדוק אם הצליל מתנגן או לא, אם לא, השמע את הצליל בלולאה.
loop loop () {DacAudio.FillBuffer (); אם (Sound.Playing == false) DacAudio.Play (& Sound); Serial.println (DemoCounter ++); }
בדיקת נגן האודיו ESP32
לאחר שהקוד מוכן, חבר את הרמקול ל- GPIO 25 של ESP32 דרך LM386 או לכל מודול מגבר אחר. כעת חבר את ה- ESP32 למחשב נייד והעלה את הקוד. לאחר העלאת הקוד, ESP32 מתחיל להשמיע את האודיו. ניתן לשנות את איכות הצליל באמצעות הפוטנציומטר של מודול המגבר.
מקווה שנהניתם מהפרויקט. סרטון עבודה וקוד מלא ניתנים להלן, ניתן להוריד את קובץ הכותרת של SoundData.h מכאן. אם יש לך ספקות, השאר אותם במדור התגובות.