- ส่วนประกอบที่จำเป็น
- แผนภูมิวงจรรวม
- เตรียมพร้อมกับไฟล์เสียง
- คำอธิบายรหัส
- การทดสอบเครื่องเล่นเสียง ESP32
เครื่องเล่นเพลง DIY เป็นสิ่งที่สนุกในการสร้างและก่อนหน้านี้เราได้สร้างเครื่องเล่นเพลงโดยใช้ Arduino และโมดูล MP3 เฉพาะ ตอนนี้เรากำลังใช้ ESP32 เพื่อสร้างเครื่องเล่นเสียงที่น่าสนใจซึ่งคุณสามารถเอฟเฟกต์เสียงได้เพียงแค่เชื่อมต่อลำโพงเสริมเข้ากับ ESP32 ในที่นี้เราจะใช้LM386 และลำโพงที่มี ESP32เพื่อเล่นไฟล์เพลง เอาต์พุตเสียงอาจไม่ดัง แต่แอปพลิเคชั่นนี้แสดงความสามารถของบอร์ด ESP32 ในการเล่นไฟล์เสียง
ส่วนประกอบที่จำเป็น
- ESP32
- LM386 โมดูลเครื่องขยายเสียง
- ลำโพง 8 โอห์ม
- สายจัมเปอร์
แผนภูมิวงจรรวม
แผนภาพวงจรสำหรับเครื่องเล่นเพลง ESP32 แสดงไว้ด้านล่าง -
ในการเล่นเสียงบน ESP32 เราจำเป็นต้องมีลำโพง ลำโพงเชื่อมต่อผ่านโมดูล LM386 Audio Amplifier หมุด 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 ไม่มีหน่วยความจำมากนัก ดังนั้นเปลี่ยน Project Rate เป็น 16000
หลังจากนั้นไปที่ ไฟล์> ส่งออก> ส่งออกเป็น WAV เพื่อบันทึกไฟล์เสียงในรูปแบบ. wav
ในหน้าต่างถัดไปให้เลือกWAV (Microsoft)เป็นประเภทไฟล์และUnsigned 8-bit PCMเป็นรูปแบบการเข้ารหัสจากนั้นคลิกที่ บันทึก
ตอนนี้เราต้องการแอป Hex Editor เพื่อสร้างรหัส Hex สำหรับไฟล์เสียง ดังนั้นดาวน์โหลดและติดตั้ง Hex Editor (HxD) จากลิงค์ที่ให้มา หลังจากนั้นเปิดแอพจากนั้นไปที่ ไฟล์> เปิด และเปิด ไฟล์ . wav สิ่งนี้จะสร้างรหัส Hex สำหรับ ไฟล์ . wav
จากนั้นใช้ ctrl + A เพื่อเลือกรหัสที่สมบูรณ์จากนั้นไปที่ แก้ไข> คัดลอกเป็น> C เพื่อคัดลอกโค้ดในรูปแบบภาษา C
จากนั้นวางรหัสนี้ลงใน Arduino IDE
คำอธิบายรหัส
รหัสที่สมบูรณ์สำหรับ Contactless ESP32 Audio Playerจะได้รับที่ส่วนท้ายของหน้า เรากำลังอธิบายส่วนสำคัญบางส่วนของโค้ด ในโปรแกรมนี้เราจะใช้ไลบรารี XT DAC Audioจาก XTronical คุณสามารถดาวน์โหลดไลบรารี XT DAC Audio ได้จากที่นี่
ตามปกติเริ่มโค้ดโดยรวมไลบรารีที่จำเป็นทั้งหมด ไฟล์ SoundData.h มีรหัส Hex สำหรับ ไฟล์. Wav ที่จะเล่น
#include "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);
ภายในฟังก์ชันการ ตั้งค่า () เริ่มต้น Serial Monitor ที่อัตราการส่งข้อมูล 115200 เพื่อวัตถุประสงค์ในการดีบัก
การตั้งค่าเป็นโมฆะ () {Serial.begin (115200);
ภายในฟังก์ชั่น loop () กรอกข้อมูลบัฟเฟอร์เสียงและตรวจสอบว่าเสียงกำลังเล่นอยู่หรือไม่ถ้าไม่ให้เล่นเสียงในลูป
โมฆะ loop () {DacAudio.FillBuffer (); ถ้า (Sound.Playing == false) DacAudio.Play (& Sound); Serial.println (DemoCounter ++); }
การทดสอบเครื่องเล่นเสียง ESP32
เมื่อรหัสพร้อมแล้วให้เชื่อมต่อลำโพงกับ GPIO 25 ของ ESP32 ผ่าน LM386 หรือโมดูลเครื่องขยายเสียงอื่น ๆ ตอนนี้เชื่อมต่อ ESP32 กับแล็ปท็อปและอัปโหลดรหัส เมื่ออัปโหลดโค้ดแล้ว ESP32 จะเริ่มเล่นเสียง คุณภาพเสียงสามารถเปลี่ยนแปลงได้โดยใช้โพเทนชิออมิเตอร์ของโมดูลเครื่องขยายเสียง
หวังว่าคุณจะสนุกกับโครงการนี้ วิดีโอที่ใช้งานได้และรหัสที่สมบูรณ์จะได้รับด้านล่างนี้สามารถดาวน์โหลดไฟล์ส่วนหัว SoundData.h ได้จากที่นี่ หากคุณมีข้อสงสัยโปรดทิ้งไว้ในส่วนความคิดเห็น