สารบัญ:
- เสบียง
- ขั้นตอนที่ 1: วางเขียงหั่นขนม
- ขั้นตอนที่ 2: การเดินสายการ์ด SD
- ขั้นตอนที่ 3: ไลบรารีซอฟต์แวร์
- ขั้นตอนที่ 4: พล็อตข้อมูล MP3 บน Serial Monitor
วีดีโอ: Arduino Library สำหรับการถอดรหัส MP3: 4 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
เนื่องจากการแพร่หลายของไมโครคอนโทรลเลอร์ที่รวดเร็วขึ้น เช่น ESP32 และ ARM M series MP3 ไม่จำเป็นต้องใช้ฮาร์ดแวร์ผู้เชี่ยวชาญอีกต่อไป ตอนนี้การถอดรหัสสามารถทำได้ในซอฟต์แวร์
มีห้องสมุดที่ยอดเยี่ยมจาก Earlephilhower ที่แสดงวิธีถอดรหัสไฟล์เสียงที่หลากหลายและเล่นบนไมโครคอนโทรลเลอร์ ESP ด้วยแรงบันดาลใจจากสิ่งนี้ ฉันได้ดัดแปลงโค้ดบางส่วนเพื่อสร้างวิธีการอ่านไฟล์ MP3 แบบแยกส่วนบนไมโครคอนโทรลเลอร์
ความหวังของฉันคือวิธีการนี้จะเป็นแบบทั่วไปเพียงพอสำหรับใช้กับไมโครคอนโทรลเลอร์ที่เร็วพอ (ไม่ใช่แค่บอร์ด ESP32) แต่ ณ ตอนนี้ฉันได้ทดสอบบน ESP32 เท่านั้น
เสบียง
อย่างที่ฉันพูดไปก่อนหน้านี้ ฉันหวังว่าวิธีนี้จะใช้ได้กับไมโครคอนโทรลเลอร์ที่รวดเร็ว แต่อาจไม่เป็นเช่นนั้น ดังนั้นเพื่อทำซ้ำผลลัพธ์ของฉัน คุณจะต้อง:
- บอร์ด ESP32
- กระดานฝ่าวงล้อม SD
- การ์ด SD
- สายจัมเปอร์
- เขียงหั่นขนม
- สาย micro USB (สำหรับอัพโหลดภาพร่าง)
- Arduino IDE
ขั้นตอนที่ 1: วางเขียงหั่นขนม
วาง ESP32 และ SD card breakout บนเขียงหั่นขนม
ขั้นตอนที่ 2: การเดินสายการ์ด SD
การเชื่อมต่อการ์ด SD (ESP32 SD breakout) มีดังนี้:
GND GND
3v3 VDD
23 DI (MOSI)
19 DO (มิโซะ)
18 SCLK
5 CS
โปรดทราบว่าการเชื่อมต่อเหล่านี้จะแตกต่างกันหากคุณใช้ไมโครคอนโทรลเลอร์ตัวอื่น
ขั้นตอนที่ 3: ไลบรารีซอฟต์แวร์
หากคุณไม่ได้ติดตั้ง ESP-IDF ให้ไปที่เว็บไซต์และติดตั้ง
จากนั้นติดตั้งไลบรารี microdecoder คุณสามารถทำได้โดยดาวน์โหลดที่เก็บและวางไว้ในโฟลเดอร์ Arduino Libraries ของคุณ ปัจจุบันไลบรารี microdecoder รองรับไฟล์.wav และ.mp3
โดยไม่คำนึงถึงรูปแบบ มีวิธีการทั่วไปสองสามวิธีที่เกี่ยวข้องกับแต่ละคลาส และครอบคลุมในโค้ดด้านล่าง ซึ่งรวมถึงการรับข้อมูลเมตาของไฟล์และการพิมพ์ไปยังจอภาพแบบอนุกรม
#include "SD.h" // อินพุต
#include "mp3.h" // ตัวถอดรหัส #include "pcm.h" // ที่เก็บข้อมูลเสียงดิบ mp3 MP3; การตั้งค่าเป็นโมฆะ () { Serial.begin (115200); // ตั้งค่า Serial SD.begin(); // ตั้งค่าไฟล์การเชื่อมต่อ SD = SD.open("/cc.mp3"); // เปิดไฟล์ MP3 MP3.begin(ไฟล์); // บอกคลาส MP3 ว่าไฟล์ใดที่จะประมวลผล MP3.getMetadata(); // รับ metadata Serial.print ("บิตต่อตัวอย่าง: "); Serial.println (MP3.bitsPerSample); // พิมพ์บิตต่อตัวอย่าง Serial.print("Sample Rate: "); Serial.println(MP3. Fs); // และอัตราตัวอย่าง } วงเป็นโมฆะ () { }
ขั้นตอนที่ 4: พล็อตข้อมูล MP3 บน Serial Monitor
ด้วยรหัสด้านล่าง คุณสามารถพล็อตข้อมูลเสียงบางส่วนบนจอภาพแบบอนุกรม การดำเนินการนี้จะช้ามากแต่จะแสดงให้คุณเห็นถึงวิธีใช้ไลบรารี MP3 นอกจากนี้ยังลดขนาดข้อมูลลงเป็น 16 เท่า เพื่อให้เมื่อวางแผนข้อมูลแล้ว ข้อมูลจะดูเหมือนรูปคลื่นเสียง รหัสนี้นำมาจากตัวอย่าง SPI_MP3_Serial.ino ที่มาพร้อมกับไลบรารี microdecoder แน่นอน ก้าวไปข้างหน้าคุณจะต้องการเล่นข้อมูลเสียงนี้อย่างใด แต่นั่นเป็นหัวข้อของคำสั่งอื่น
#include "SD.h" // อินพุต
#include "mp3.h" // ตัวถอดรหัส mp3 MP3; // MP3 คลาส pcm เสียง; // การตั้งค่าข้อมูลเสียงดิบเป็นโมฆะ () { Serial.begin (115200); // ตั้งค่า Serial SD.begin(); // ตั้งค่าไฟล์การเชื่อมต่อ SD = SD.open("/cc.mp3"); // เปิดไฟล์ MP3 MP3.begin(ไฟล์); // ส่งไฟล์ไปที่คลาส MP3 } void loop () { เสียง = MP3.decode (); // ถอดรหัสข้อมูลเสียงเป็นคลาส pcm /* มี 32 ตัวอย่างใน audio.interleaved (16 ซ้ายและ 16 ขวา) * แต่เรากำลังจะพล็อตจุดข้อมูลแรกในแต่ละช่องเท่านั้น * ลดขนาดข้อมูลอย่างมีประสิทธิภาพด้วยปัจจัย 16 (สำหรับ * ดูรูปคลื่นเท่านั้น) */ Serial.print(audio.interleaved[0]); // ช่องซ้าย Serial.print(" "); Serial.println(เสียง.อินเตอร์ลีฟ[1]); // ช่องขวา }
แนะนำ:
การสร้าง Arduino Library สำหรับ YouTube Sight: 7 ขั้นตอน
การสร้างห้องสมุด Arduino สำหรับ YouTube Sight: สวัสดีทุกคน ฉันเพิ่งสร้างบริการที่เรียกว่า YouTube Sight ซึ่งสามารถดึงข้อมูลสมาชิกจาก YouTube Analytics API และให้จำนวนสมาชิกที่แม่นยำยิ่งขึ้นตั้งแต่ YouTube เริ่มรวบรวมผลลัพธ์ ด้วยสิ่งนี้ ฉันได้สร้างตัวอย่าง
การทำพล็อตความเข้มของแสงโดยใช้ Arduino และ Arduino Master Library ของ Python: 5 ขั้นตอน
การทำพล็อตความเข้มของแสงโดยใช้ Arduino และ Python's Arduino Master Library: Arduino เป็นเครื่องมือที่ประหยัดแต่มีประสิทธิภาพสูงและใช้งานได้จริง การเขียนโปรแกรมใน Embedded C ทำให้กระบวนการในการทำโปรเจ็กต์น่าเบื่อหน่าย! โมดูล Arduino_Master ของ Python ทำให้สิ่งนี้ง่ายขึ้น และช่วยให้เราทำการคำนวณ ลบค่าขยะ
พูดคุย Arduino - เล่น MP3 ด้วย Arduino โดยไม่ต้องใช้โมดูลใด ๆ - การเล่นไฟล์ Mp3 จาก Arduino โดยใช้ PCM: 6 ขั้นตอน
พูดคุย Arduino | เล่น MP3 ด้วย Arduino โดยไม่ต้องใช้โมดูลใด ๆ | การเล่นไฟล์ Mp3 จาก Arduino โดยใช้ PCM: ในคำแนะนำนี้ เราจะเรียนรู้วิธีเล่นไฟล์ mp3 ด้วย Arduino โดยไม่ต้องใช้โมดูลเสียงใด ๆ ที่นี่เราจะใช้ไลบรารี PCM สำหรับ Arduino ซึ่งเล่น PCM 16 บิตที่ความถี่ 8kHZ เพื่อทำสิ่งนี้
วิธีเปลี่ยนตำแหน่งสื่อใน JW Library: 4 ขั้นตอน
วิธีเปลี่ยนตำแหน่งสื่อใน JW Library: JW Library เป็นแอพ Metro ซึ่งหมายความว่ามีอินเทอร์เฟซที่เรียบง่าย นี่เป็นสิ่งที่ดีโดยส่วนใหญ่สำหรับผู้ใช้ส่วนใหญ่ คุณเพียงแค่โหลดแอปและใช้งานตามที่คุณต้องการ ถูมาเมื่อคุณต้องการทำสิ่งที่ขั้นสูงขึ้นเล็กน้อย
กล้องรักษาความปลอดภัย VHS Library Pi: 3 ขั้นตอน (พร้อมรูปภาพ)
กล้องรักษาความปลอดภัย VHS Library Pi: นี่เป็นเคส VHS Video Library แบบเก่าที่ตอนนี้เป็นบ้านที่สมบูรณ์แบบสำหรับกล้องรักษาความปลอดภัย Raspberry Pi เคสนี้มี Pi Zero และกล้องมองผ่านกระดูกสันหลังของหนังสือปลอม เป็นงานสร้างที่เรียบง่ายด้วยรูปลักษณ์แบบโลกเก่า