- Απαιτούμενα στοιχεία
- Διάγραμμα κυκλώματος
- Προετοιμασία με αρχεία ήχου
- Επεξήγηση κώδικα
- Δοκιμή του προγράμματος αναπαραγωγής ήχου ESP32
Οι συσκευές αναπαραγωγής μουσικής DIY είναι διασκεδαστικές στην κατασκευή και προηγουμένως δημιουργήσαμε μερικές συσκευές αναπαραγωγής μουσικής χρησιμοποιώντας το Arduino και μια ειδική μονάδα MP3. Τώρα χρησιμοποιούμε το ESP32 για να δημιουργήσουμε μια ενδιαφέρουσα συσκευή αναπαραγωγής ήχου, στην οποία μπορείτε να ακούσετε εφέ συνδέοντας ένα επιπλέον ηχείο στο ESP32. Εδώ θα χρησιμοποιήσουμε το LM386 και ένα ηχείο με ESP32 για την αναπαραγωγή αρχείων μουσικής. Η έξοδος ήχου ενδέχεται να μην είναι δυνατή, αλλά αυτή η εφαρμογή δείχνει την ικανότητα της πλακέτας ESP32 να αναπαράγει αρχεία ήχου.
Απαιτούμενα στοιχεία
- ESP32
- Ενότητα ενισχυτή LM386
- 8 ohm Ηχείο
- Καλώδια αλτών
Διάγραμμα κυκλώματος
Το διάγραμμα κυκλώματος για το πρόγραμμα αναπαραγωγής μουσικής ESP32 δίνεται παρακάτω-
Για να παίξουμε ήχο στο ESP32, χρειαζόμαστε ένα ηχείο. Το ηχείο συνδέεται μέσω της μονάδας ενισχυτή ήχου LM386. Οι ακίδες Vcc και GND της μονάδας ενισχυτή συνδέονται με VIN και GND του ESP32 ενώ ο ακροδέκτης IN της μονάδας ενισχυτή είναι συνδεδεμένος με τον ακροδέκτη GPIO 25 του ESP32. Το GPIO 25 είναι ένας από τους 2 ακροδέκτες DAC (Digital to Analog Converter).
Με αυτόν τον τρόπο θα φαίνεται η πλήρης εγκατάσταση του ESP32 Music Player:
Το LM386 είναι ένα IC ενισχυτή ήχου, μπορείτε να μάθετε περισσότερα για το LM386 ακολουθώντας τον σύνδεσμο.
Προετοιμασία με αρχεία ήχου
Για αναπαραγωγή ήχων ήχου στην πλακέτα ESP32, χρειαζόμαστε αρχεία ήχου σε μορφή .wav , επειδή το ESP32 μπορεί να αναπαράγει ένα αρχείο ήχου μόνο σε μορφή .wav .
Έτσι, το πρώτο βήμα είναι να λάβετε το αρχείο που θέλετε να παίξετε στο ESP32. Μετά από αυτό, κατεβάστε και εγκαταστήστε την εφαρμογή Audacity Audio Editor. Αυτή η εφαρμογή θα χρησιμοποιηθεί για να αλλάξει τον τύπο αρχείου, το ποσοστό δειγμάτων και άλλες ιδιότητες.
Μόλις ολοκληρωθεί η εγκατάσταση, ανοίξτε την εφαρμογή Audacity και μετά μεταβείτε στο αρχείο> Άνοιγμα και επιλέξτε το αρχείο ήχου για επεξεργασία.
Το πρώτο πράγμα που έπρεπε να αλλάξει είναι ο ρυθμός δειγματοληψίας. Για την αναπαραγωγή ενός αρχείου ήχου σε ESP32, ένας ρυθμός δειγματοληψίας από 8000 έως 16000 θα είναι καλός καθώς το ESP32 δεν έχει πολλή μνήμη. Αλλάξτε το ποσοστό έργου σε 16000.
Μετά από αυτό, μεταβείτε στο Αρχείο> Εξαγωγή> Εξαγωγή ως WAV για να αποθηκεύσετε το αρχείο ήχου σε μορφή .wav .
Τώρα στο επόμενο παράθυρο, επιλέξτε WAV (Microsoft) ως τύπο αρχείου και Unsigned 8-bit PCM ως μορφή κωδικοποίησης και, στη συνέχεια, κάντε κλικ στο Αποθήκευση.
Τώρα χρειαζόμαστε μια εφαρμογή Hex Editor για τη δημιουργία κωδικών Hex για το αρχείο ήχου. Λάβετε λοιπόν και εγκαταστήστε τον Επεξεργαστή Hex (HxD) από τον δεδομένο σύνδεσμο. Μετά από αυτό, ανοίξτε την εφαρμογή και, στη συνέχεια, μεταβείτε στο Αρχείο> άνοιγμα και ανοίξτε το αρχείο.wav . Αυτό θα δημιουργήσει τον Hex κώδικα για το αρχείο.wav .
Στη συνέχεια, χρησιμοποιήστε το ctrl + A για να επιλέξετε τον πλήρη κώδικα και μετά μεταβείτε στην επιλογή Επεξεργασία> Αντιγραφή ως> C για να αντιγράψετε τον κώδικα σε μορφή Γ Γλώσσα
Στη συνέχεια, επικολλήστε αυτόν τον κωδικό στο Arduino IDE.
Επεξήγηση κώδικα
Ο πλήρης κωδικός για το Contactless ESP32 Audio Player δίνεται στο τέλος της σελίδας. Εδώ εξηγούμε μερικά σημαντικά μέρη του κώδικα. Σε αυτό το πρόγραμμα, θα χρησιμοποιήσουμε τη βιβλιοθήκη ήχου 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 () , αρχικοποιήστε το Serial Monitor με ταχύτητα baud 115200 για σκοπούς εντοπισμού σφαλμάτων
άκυρη ρύθμιση () {Serial.begin (115200);
Μέσα στη λειτουργία loop () , συμπληρώστε το buffer ήχου με δεδομένα και ελέγξτε αν ο ήχος παίζει ή όχι, εάν όχι, αναπαράγετε τον ήχο στο loop.
void loop () {DacAudio.FillBuffer (); εάν (Sound.Playing == false) DacAudio.Play (& Sound); Serial.println (DemoCounter ++); }
Δοκιμή του προγράμματος αναπαραγωγής ήχου ESP32
Μόλις ο κωδικός είναι έτοιμος, συνδέστε το ηχείο στο GPIO 25 του ESP32 μέσω LM386 ή σε οποιαδήποτε άλλη μονάδα ενισχυτή. Τώρα συνδέστε το ESP32 σε φορητό υπολογιστή και ανεβάστε τον κωδικό. Μόλις φορτωθεί ο κωδικός, το ESP32 αρχίζει να παίζει τον Ήχο. Η ποιότητα του ήχου μπορεί να αλλάξει χρησιμοποιώντας το ποτενσιόμετρο της μονάδας ενισχυτή.
Ελπίζω να απολαύσατε το έργο. Ακολουθεί ένα βίντεο εργασίας και πλήρης κωδικός, μπορείτε να κατεβάσετε το αρχείο κεφαλίδας SoundData.h από εδώ. Εάν έχετε αμφιβολίες, αφήστε τους στην ενότητα σχολίων.