Πίνακας περιεχομένων:
- Προμήθειες
- Βήμα 1: Τοποθέτηση του Breadboard
- Βήμα 2: Καλωδίωση της κάρτας SD
- Βήμα 3: Οι βιβλιοθήκες λογισμικού
- Βήμα 4: Σχεδιάστε δεδομένα MP3 στη σειριακή οθόνη
Βίντεο: Βιβλιοθήκη Arduino για αποκωδικοποίηση MP3: 4 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:32
Λόγω της αυξημένης επικράτησης γρήγορων μικροελεγκτών όπως το ESP32 και η σειρά ARM M, η αποκωδικοποίηση MP3 δεν απαιτείται πλέον να γίνεται από εξειδικευμένο υλικό. Η αποκωδικοποίηση μπορεί πλέον να γίνει σε λογισμικό.
Υπάρχει μια μεγάλη βιβλιοθήκη διαθέσιμη από το earlephilhower που δείχνει πώς να αποκωδικοποιήσετε μια μεγάλη ποικιλία αρχείων ήχου και να τα παίξετε σε μικροελεγκτές ESP. Εμπνευσμένο από αυτό, προσάρμοσα μέρος του κώδικα για να δημιουργήσω μια αρθρωτή μέθοδο ανάγνωσης αρχείων MP3 σε μικροελεγκτές.
Η ελπίδα μου είναι ότι αυτή η μέθοδος θα είναι αρκετά γενική για χρήση σε οποιοδήποτε αρκετά γρήγορο μικροελεγκτή (όχι μόνο σε έναν πίνακα ESP32), αλλά μέχρι τώρα έχω δοκιμάσει μόνο σε ένα ESP32.
Προμήθειες
Όπως είπα και πριν, ελπίζω ότι αυτή η μέθοδος θα λειτουργήσει για οποιονδήποτε γρήγορο μικροελεγκτή, αλλά μπορεί και όχι. Επομένως, για να επαναλάβετε τα αποτελέσματά μου θα χρειαστείτε:
- Μια πλακέτα ESP32
- SD σανίδα ξεμπλοκαρίσματος
- κάρτα SD
- Jumper Wires
- σανίδα ψωμιού
- καλώδιο micro USB (για μεταφόρτωση σκίτσου)
- Arduino IDE
Βήμα 1: Τοποθέτηση του Breadboard
Τοποθετήστε το ξεμπλοκάρισμα ESP32 και κάρτας SD στο breadboard.
Βήμα 2: Καλωδίωση της κάρτας SD
Οι συνδέσεις κάρτας SD (ESP32 SD breakout) είναι οι εξής:
GND GND
3v3 VDD
23 DI (MOSI)
19 DO (MISO)
18 SCLK
5 CS
Λάβετε υπόψη ότι αυτές οι συνδέσεις θα είναι διαφορετικές εάν χρησιμοποιείτε διαφορετικό μικροελεγκτή.
Βήμα 3: Οι βιβλιοθήκες λογισμικού
εάν δεν έχετε εγκαταστήσει το ESP-IDF, μεταβείτε στον ιστότοπό τους και εγκαταστήστε τον.
Στη συνέχεια, εγκαταστήστε τη βιβλιοθήκη μικροκωδικοποιητή. Μπορείτε να το κάνετε αυτό κατεβάζοντας το αποθετήριο και τοποθετώντας το στο φάκελο Arduino Libraries. Η βιβλιοθήκη μικροκωδικοποιητή υποστηρίζει προς το παρόν αρχεία.wav και.mp3.
Ανεξάρτητα από τη μορφή, υπάρχουν μερικές κοινές μέθοδοι που σχετίζονται με κάθε κλάση και καλύπτονται στον παρακάτω κώδικα. Αυτά περιλαμβάνουν τη λήψη ορισμένων μεταδεδομένων αρχείων και την εκτύπωσή τους στη σειριακή οθόνη.
#include "SD.h" // είσοδος
#include "mp3.h" // αποκωδικοποιητής #include "pcm.h" // raw MP3 audio data container mp3; void setup () {Serial.begin (115200); // Setup Serial SD.begin (); // Ρύθμιση σύνδεσης SD Αρχείο αρχείου = SD.open ("/cc.mp3"); // Άνοιγμα αρχείου MP3 MP3.begin (αρχείο). // πείτε στην τάξη MP3 ποιο αρχείο θα επεξεργαστεί το MP3.getMetadata (); // λάβετε το metdadata Serial.print ("Bits per Sample:"); Serial.println (MP3.bitsPerSample); // κομμάτια εκτύπωσης ανά δείγμα Serial.print ("Ποσοστό δείγματος:"); Serial.println (MP3. Fs); // και δείγμα ρυθμού} void loop () {}
Βήμα 4: Σχεδιάστε δεδομένα MP3 στη σειριακή οθόνη
Με τον παρακάτω κώδικα μπορείτε να σχεδιάσετε ορισμένα δεδομένα ήχου στη Σειριακή οθόνη. Αυτό θα είναι πολύ αργό, αλλά θα σας δείξει πώς να χρησιμοποιήσετε τη βιβλιοθήκη MP3. Χαμηλώνει επίσης τα δεδομένα κατά συντελεστή 16, έτσι ώστε όταν σχεδιάζονται τα δεδομένα να μοιάζει με ηχητική κυματομορφή. Αυτός ο κωδικός λαμβάνεται από το παράδειγμα SPI_MP3_Serial.ino που συνοδεύει τη βιβλιοθήκη μικροκωδικοποιητή. Φυσικά, προχωρώντας προς τα εμπρός, θα θέλετε να παίξετε με κάποιο τρόπο αυτά τα ηχητικά δεδομένα, αλλά αυτό είναι το θέμα μιας διαφορετικής διδακτικής.
#include "SD.h" // είσοδος
#include "mp3.h" // αποκωδικοποιητής mp3 MP3; // Κλάση MP3 pcm ήχου. // ακατέργαστα δεδομένα ήχου void setup () {Serial.begin (115200); // Setup Serial SD.begin (); // Ρύθμιση σύνδεσης SD Αρχείο αρχείου = SD.open ("/cc.mp3"); // Άνοιγμα αρχείου MP3 MP3.begin (αρχείο). // Μεταφορά αρχείου στην κλάση MP3} void loop () {audio = MP3.decode (); // Αποκωδικοποιήστε τα δεδομένα ήχου σε κλάση pcm / * υπάρχουν 32 δείγματα στο audio.interleaved (16 αριστερά και 16 δεξιά) * αλλά θα σχεδιάσουμε μόνο το πρώτο σημείο δεδομένων σε κάθε κανάλι. * Αυτό μειώνει αποτελεσματικά τα δεδομένα κατά συντελεστή 16 (για * προβολή μόνο της κυματομορφής) */ Serial.print (audio.interleaved [0]). // αριστερό κανάλι Serial.print (""); Serial.println (audio.interleaved [1]); // δεξί κανάλι}
Συνιστάται:
Προγραμματισμός ενός Arduino χρησιμοποιώντας ένα άλλο Arduino για την εμφάνιση ενός κυλιόμενου κειμένου χωρίς βιβλιοθήκη: 5 βήματα
Προγραμματισμός ενός Arduino Χρησιμοποιώντας ένα άλλο Arduino για την εμφάνιση ενός κειμένου κύλισης χωρίς βιβλιοθήκη: Το Sony Spresense ή το Arduino Uno δεν είναι τόσο ακριβά και δεν απαιτούν πολλή ισχύ. Ωστόσο, εάν το έργο σας έχει περιορισμούς ισχύος, χώρου ή ακόμη και προϋπολογισμού, μπορείτε να χρησιμοποιήσετε το Arduino Pro Mini. Σε αντίθεση με το Arduino Pro Micro, το Arduino Pro Mi
Μετατροπέας κειμένου σε ομιλία Arduino χρησιμοποιώντας LM386 - Talking Arduino Project - Βιβλιοθήκη Talkie Arduino: 5 βήματα
Μετατροπέας κειμένου σε ομιλία Arduino χρησιμοποιώντας LM386 | Talking Arduino Project | Βιβλιοθήκη Talkie Arduino: Γεια σας παιδιά, σε πολλά έργα απαιτούμε από το arduino να μιλάει κάτι σαν να μιλάει ρολόι ή να λέει κάποια δεδομένα σε αυτά τα εκπαιδευτικά, θα μετατρέψουμε κείμενο σε ομιλία χρησιμοποιώντας το Arduino
Πώς να προσθέσετε μια εξωτερική βιβλιοθήκη στο Arduino: 3 βήματα
Πώς να προσθέσετε μια εξωτερική βιβλιοθήκη στο Arduino: Η βιβλιοθήκη παρέχει πρόσθετες λειτουργίες για το σκίτσο που κάναμε. Αυτές οι λειτουργίες μπορούν να μας βοηθήσουν να κάνουμε τα σκίτσα ευκολότερα. Υπάρχουν πολλές βιβλιοθήκες που μπορούμε να χρησιμοποιήσουμε. Η προεπιλεγμένη βιβλιοθήκη ή εξωτερική βιβλιοθήκη του Arduino IDE που δημιουργήθηκε από κάποιον ή μια κοινότητα. Σε αυτό
Δημιουργήστε τη δική σας βιβλιοθήκη Arduino: 5 βήματα
Δημιουργήστε τη δική σας βιβλιοθήκη Arduino: Γεια σε όλους. Σε ορισμένα έργα μπορεί να χρειαστεί να δημιουργήσετε τη δική σας βιβλιοθήκη όταν δεν μπορείτε να χρησιμοποιήσετε τις έτοιμες βιβλιοθήκες. Or μπορείτε να δημιουργήσετε τη δική σας βιβλιοθήκη με τα δικά της πρότυπα. Σήμερα, θα σας δείξω πόσο εύκολα μπορείτε να φτιάξετε τη δική σας βιβλιοθήκη και
Βιβλιοθήκη για BMP280 και BME280: 7 βήματα
Βιβλιοθήκη για BMP280 και BME280: Εισαγωγή Δεν είχα σκοπό να γράψω αυτήν τη βιβλιοθήκη. Έγινε " συνέβη " ως παρενέργεια ενός έργου που ξεκίνησα και χρησιμοποιεί ένα BMP280. Αυτό το έργο δεν έχει ακόμη ολοκληρωθεί, αλλά νομίζω ότι η βιβλιοθήκη είναι έτοιμη να μοιραστεί με άλλους. Στη συνέχεια είχα μια