विषयसूची:
- आपूर्ति
- चरण 1: ब्रेडबोर्ड बिछाना
- चरण 2: एसडी कार्ड को तार करना
- चरण 3: सॉफ्टवेयर पुस्तकालय
- चरण 4: सीरियल मॉनिटर पर एमपी3 डेटा प्लॉट करें
वीडियो: MP3 डिकोडिंग के लिए Arduino लाइब्रेरी: 4 चरण
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:19
ESP32 और ARM M सीरीज MP3 डिकोडिंग जैसे तेज माइक्रोकंट्रोलर्स के बढ़ते प्रचलन के कारण अब विशेषज्ञ हार्डवेयर द्वारा किए जाने की आवश्यकता नहीं है। डिकोडिंग अब सॉफ्टवेयर में की जा सकती है।
इयरलेफिलहोवर से एक महान पुस्तकालय उपलब्ध है जो दिखाता है कि विभिन्न प्रकार की ऑडियो फाइलों को कैसे डीकोड किया जाए और उन्हें ईएसपी माइक्रोकंट्रोलर पर चलाया जाए। इससे प्रेरित होकर मैंने माइक्रोकंट्रोलर्स पर एमपी3 फाइलों को पढ़ने की एक मॉड्यूलर विधि बनाने के लिए कुछ कोड को अनुकूलित किया।
मेरी आशा है कि यह विधि किसी भी तेजी से पर्याप्त माइक्रोकंट्रोलर (न केवल एक ईएसपी 32 बोर्ड) पर उपयोग के लिए पर्याप्त सामान्य होगी, लेकिन अभी तक मैंने केवल ईएसपी 32 पर परीक्षण किया है।
आपूर्ति
जैसा कि मैंने पहले कहा, मुझे आशा है कि यह विधि किसी भी तेज़ माइक्रोकंट्रोलर के लिए काम करेगी, लेकिन ऐसा नहीं हो सकता है। इसलिए मेरे परिणामों को दोहराने के लिए आपको आवश्यकता होगी:
- एक ESP32 बोर्ड
- एसडी ब्रेकआउट बोर्ड
- एसडी कार्ड
- जम्पर तार
- ब्रेड बोर्ड
- माइक्रो यूएसबी केबल (स्केच अपलोड करने के लिए)
- अरुडिनो आईडीई
चरण 1: ब्रेडबोर्ड बिछाना
ब्रेडबोर्ड पर ESP32 और SD कार्ड ब्रेकआउट रखें।
चरण 2: एसडी कार्ड को तार करना
एसडी कार्ड कनेक्शन (ESP32 SD ब्रेकआउट) इस प्रकार हैं:
जीएनडी जीएनडी
3v3 वीडीडी
23 डीआई (एमओएसआई)
19 डीओ (एमआईएसओ)
18 एससीएलके
5 सीएस
कृपया ध्यान दें कि यदि आप किसी भिन्न माइक्रोकंट्रोलर का उपयोग कर रहे हैं तो ये कनेक्शन भिन्न होंगे।
चरण 3: सॉफ्टवेयर पुस्तकालय
यदि आपके पास उनकी वेबसाइट पर ESP-IDF स्थापित नहीं है और इसे स्थापित करें।
फिर माइक्रोडिकोडर लाइब्रेरी स्थापित करें। आप इसे रिपॉजिटरी को डाउनलोड करके और इसे अपने Arduino लाइब्रेरी फ़ोल्डर में रखकर कर सकते हैं। माइक्रोडिकोडर लाइब्रेरी वर्तमान में.wav और.mp3 फ़ाइलों का समर्थन करती है।
प्रारूप के बावजूद, प्रत्येक वर्ग से जुड़े कुछ सामान्य तरीके हैं और उन्हें नीचे दिए गए कोड में शामिल किया गया है। इनमें कुछ फाइलें मेटाडेटा प्राप्त करना और इसे सीरियल मॉनिटर पर प्रिंट करना शामिल है।
#शामिल "SD.h" // इनपुट
#include "mp3.h" // डिकोडर #include "pcm.h" // रॉ ऑडियो डेटा कंटेनर mp3 MP3; शून्य सेटअप () {Serial.begin(११५२००); // सेटअप सीरियल SD.begin (); // सेटअप एसडी कनेक्शन फ़ाइल फ़ाइल = एसडी.ओपन ("/ cc.mp3"); // एक एमपी 3 फ़ाइल खोलें MP3.begin (फ़ाइल); // MP3 वर्ग को बताएं कि MP3.getMetadata () को संसाधित करने के लिए कौन सी फ़ाइल है; // मेटाडाटा सीरियल.प्रिंट प्राप्त करें ("प्रति नमूना बिट्स:"); Serial.println (MP3.bitsPerSample); // प्रति नमूना प्रिंट बिट्स सीरियल.प्रिंट ("नमूना दर:"); Serial.println (MP3. Fs); // और नमूना दर} शून्य लूप () { }
चरण 4: सीरियल मॉनिटर पर एमपी3 डेटा प्लॉट करें
नीचे दिए गए कोड से आप सीरियल मॉनीटर पर कुछ ऑडियो डेटा प्लॉट कर सकते हैं। यह बहुत धीमा होगा लेकिन आपको दिखाएगा कि एमपी 3 लाइब्रेरी का उपयोग कैसे करें। यह डेटा को 16 के फ़ैक्टर से भी घटाता है ताकि जब डेटा प्लॉट किया जाए तो यह एक ऑडियो तरंग जैसा दिखता है। यह कोड उदाहरण SPI_MP3_Serial.ino से लिया गया है जो माइक्रोडिकोडर लाइब्रेरी के साथ आता है। बेशक, आगे बढ़ते हुए आप इस ऑडियो डेटा को किसी तरह चलाना चाहेंगे, लेकिन यह एक अलग निर्देश का विषय है।
#शामिल "SD.h" // इनपुट
#include "mp3.h" // डिकोडर mp3 MP3; // एमपी 3 क्लास पीसीएम ऑडियो; // कच्चा ऑडियो डेटा शून्य सेटअप () {Serial.begin (115200); // सेटअप सीरियल SD.begin (); // सेटअप एसडी कनेक्शन फ़ाइल फ़ाइल = एसडी.ओपन ("/ cc.mp3"); // एक एमपी 3 फ़ाइल खोलें MP3.begin (फ़ाइल); // MP3 क्लास में फाइल पास करें} शून्य लूप () {ऑडियो = MP3.decode (); // ऑडियो डेटा को pcm वर्ग में डिकोड करें /* audio.interleaved में 32 नमूने हैं (16 बाएं और 16 दाएं) * लेकिन हम केवल प्रत्येक चैनल में पहला डेटा बिंदु प्लॉट करने जा रहे हैं। * यह प्रभावी रूप से डेटा को 16 के कारक से कम कर देता है (* केवल तरंग देखने के लिए) */ Serial.print(audio.interleaved[0]); // बायां चैनल सीरियल.प्रिंट (""); Serial.println(audio.interleaved[1]); // सही चैनल }
सिफारिश की:
Arduino Uno के साथ ध्वनिक उत्तोलन चरण-दर-चरण (8-चरण): 8 चरण
Arduino Uno के साथ ध्वनिक उत्तोलन चरण-दर-चरण (8-चरण): अल्ट्रासोनिक ध्वनि ट्रांसड्यूसर L298N डीसी महिला एडाप्टर बिजली की आपूर्ति एक पुरुष डीसी पिन के साथ Arduino UNOBreadboardयह कैसे काम करता है: सबसे पहले, आप Arduino Uno पर कोड अपलोड करते हैं (यह डिजिटल से लैस एक माइक्रोकंट्रोलर है और कोड (C++) कन्वर्ट करने के लिए एनालॉग पोर्ट
लाइब्रेरी के बिना स्क्रॉलिंग टेक्स्ट प्रदर्शित करने के लिए एक और Arduino का उपयोग करके एक Arduino प्रोग्रामिंग: 5 कदम
लाइब्रेरी के बिना स्क्रॉलिंग टेक्स्ट प्रदर्शित करने के लिए किसी अन्य Arduino का उपयोग करके एक Arduino प्रोग्रामिंग करना: Sony Spresense या Arduino Uno इतने महंगे नहीं हैं और इसके लिए बहुत अधिक शक्ति की आवश्यकता नहीं होती है। हालाँकि, यदि आपकी परियोजना में बिजली, स्थान या बजट की सीमा है, तो आप Arduino Pro Mini का उपयोग करने पर विचार कर सकते हैं। Arduino Pro Micro के विपरीत, Arduino Pro Mi
YouTube साइट के लिए Arduino लाइब्रेरी बनाना: 7 कदम
YouTube साइट के लिए एक Arduino लाइब्रेरी बनाना: हाय सब लोग, मैंने हाल ही में YouTube साइट नामक एक सेवा बनाई है जो YouTube Analytics API से ग्राहकों का डेटा निकाल सकती है और आपको अधिक सटीक ग्राहक संख्या प्रदान कर सकती है क्योंकि YouTube ने परिणामों को एकत्र करना शुरू किया है। इसके साथ, मैंने एक उदाहरण बनाया है
Arduino और Python की Arduino मास्टर लाइब्रेरी का उपयोग करके लाइट इंटेंसिटी प्लॉटिंग: 5 चरण
Arduino और Python की Arduino मास्टर लाइब्रेरी का उपयोग करके हल्की तीव्रता की प्लॉटिंग: Arduino एक किफायती लेकिन अत्यधिक कुशल और कार्यात्मक उपकरण होने के कारण, इसे एंबेडेड C में प्रोग्रामिंग करना परियोजनाओं को थकाऊ बनाने की प्रक्रिया को बनाता है! पायथन का Arduino_Master मॉड्यूल इसे सरल बनाता है और हमें गणना करने देता है, कचरा मूल्यों को हटाता है
वीएचएस लाइब्रेरी पाई सुरक्षा कैमरा: 3 चरण (चित्रों के साथ)
वीएचएस लाइब्रेरी पीआई सुरक्षा कैमरा: यह एक पुराना वीएचएस वीडियो लाइब्रेरी केस है जो अब रास्पबेरी पीआई सुरक्षा कैमरे के लिए एक आदर्श घर प्रदान कर रहा है। मामले में एक पाई ज़ीरो है और कैमरा नकली किताब की रीढ़ से बाहर झांकता है। यह पुरानी दुनिया के रूप के साथ वास्तव में सरल निर्माण है