تعد مشغلات DIY Music ممتعة في البناء ، وقد قمنا مسبقًا ببناء عدد قليل من مشغلات الموسيقى باستخدام Arduino ووحدة MP3 مخصصة. نحن الآن نستخدم ESP32 لبناء مشغل صوتي مثير للاهتمام ، حيث يمكنك من خلاله مؤثرات صوتية بمجرد توصيل مكبر صوت إضافي بـ ESP32. هنا سوف نستخدم LM386 ومكبر صوت مع ESP32 لتشغيل ملفات الموسيقى. قد لا يكون إخراج الصوت مرتفعًا ولكن هذا التطبيق يوضح قدرة لوحة ESP32 على تشغيل ملفات الصوت.
المكونات مطلوبة
- ESP32
- وحدة مكبر الصوت LM386
- سماعة 8 أوم
- أسلاك توصيل
مخطط الرسم البياني
الدائرة الرسم التخطيطي ل ESP32 مشغل موسيقى وتعطى below-
لتشغيل الصوت على ESP32 ، نحتاج إلى مكبر صوت. يتم توصيل مكبر الصوت من خلال وحدة مكبر الصوت LM386. يتم توصيل دبابيس Vcc و GND لوحدة مكبر الصوت بـ VIN و GND لـ ESP32 بينما يتم توصيل دبوس IN الخاص بوحدة مكبر الصوت بـ GPIO 25 pin of ESP32. GPIO 25 هو أحد دبابيس DAC (المحول الرقمي إلى التناظري).
هكذا سيبدو الإعداد الكامل لمشغل الموسيقى ESP32:
LM386 هو مكبر صوت IC ، يمكنك معرفة المزيد عن LM386 باتباع الرابط.
الاستعداد مع ملفات الصوت
لتشغيل الأصوات الصوتية على لوحة ESP32 ، نحتاج إلى ملفات صوتية بتنسيق .wav لأن ESP32 يمكنه تشغيل ملف صوتي بتنسيق .wav فقط.
لذلك ستكون الخطوة الأولى هي الحصول على الملف الذي تريد تشغيله على ESP32. بعد ذلك ، قم بتنزيل وتثبيت تطبيق Audacity Audio Editor. سيتم استخدام هذا التطبيق لتغيير نوع الملف ومعدل العينة والخصائص الأخرى.
بمجرد اكتمال التثبيت ، افتح تطبيق Audacity ثم انتقل إلى ملف> فتح وحدد ملف الصوت لتحريره.
أول شيء يجب تغييره هو معدل أخذ العينات. لتشغيل ملف صوتي على ESP32 ، سيكون معدل أخذ العينات من 8000 إلى 16000 جيدًا لأن ESP32 لا يحتوي على ذاكرة كبيرة. لذلك قم بتغيير سعر المشروع إلى 16000.
بعد ذلك ، انتقل إلى File> Export> Export as WAV لحفظ ملف الصوت بتنسيق .wav .
الآن في النافذة التالية ، حدد WAV (Microsoft) كنوع ملف و Unsigned 8-bit PCM كتنسيق ترميز ثم انقر فوق حفظ.
نحتاج الآن إلى تطبيق Hex Editor لإنشاء رموز Hex لملف الصوت. لذا قم بتنزيل وتثبيت محرر Hex (HxD) من الرابط المحدد. بعد ذلك ، افتح التطبيق ، ثم انتقل إلى ملف> افتح وافتح ملف wav . سيؤدي هذا إلى إنشاء رمز Hex لملف.wav .
ثم استخدم ctrl + A لتحديد الكود الكامل ثم انتقل إلى تحرير> نسخ كـ> C لنسخ الكود بتنسيق لغة C.
ثم الصق هذا الرمز في Arduino IDE.
شرح الكود
يتم توفير الكود الكامل لمشغل الصوت Contactless ESP32 في نهاية الصفحة. نحن هنا نوضح بعض الأجزاء المهمة من الكود. في هذا البرنامج ، سنستخدم مكتبة الصوت XT DAC من XTronical. يمكن تنزيل مكتبة الصوت XT DAC من هنا.
لذا كالمعتاد ، ابدأ الكود بتضمين جميع المكتبات المطلوبة. يحتوي الملف SoundData.h على رمز Hex لملف.Wav الذي سيتم تشغيله.
# تضمين "SoundData.h" #include "XT_DAC_Audio.h"
في السطر التالي ، قم بإنشاء كائن من النوع XT_Wav_Class يتم استخدامه بواسطة فئة الصوت DAC التي تمرر بيانات .wav كمعامل . DacAudio ، كائن فئة المشغل الرئيسي حيث يكون 25 هو رقم دبوس DAC حيث يتم توصيل دبوس مكبر الصوت.
XT_Wav_Class Sound (عينة) ؛ XT_DAC_Audio_Class DacAudio (25،0) ؛
داخل وظيفة setup () ، قم بتهيئة Serial Monitor بمعدل باود 115200 لأغراض التصحيح.
إعداد باطل () {Serial.begin (115200) ؛
داخل وظيفة الحلقة () ، املأ مخزن الصوت بالبيانات وتحقق مما إذا كان الصوت يعمل أم لا ، إذا لم يكن كذلك ، قم بتشغيل الصوت في الحلقة.
حلقة باطلة () {DacAudio.FillBuffer () ، إذا (Sound.Playing == false) DacAudio.Play (والصوت) ؛ Serial.println (DemoCounter ++) ؛ }
اختبار مشغل الصوت ESP32
بمجرد أن يصبح الرمز جاهزًا ، قم بتوصيل السماعة بـ GPIO 25 من ESP32 عبر LM386 أو أي وحدة مضخم أخرى. الآن قم بتوصيل ESP32 بجهاز كمبيوتر محمول وقم بتحميل الكود. بمجرد تحميل الرمز ، يبدأ ESP32 في تشغيل الصوت. يمكن تغيير جودة الصوت باستخدام مقياس الجهد لوحدة مكبر الصوت.
أتمنى أن تكون قد استمتعت بالمشروع. يوجد أدناه فيديو عملي وكود كامل ، ويمكن تنزيل ملف رأس SoundData.h من هنا. إذا كانت لديك أي شكوك ، فاتركها في قسم التعليقات.