- Kinakailangan ang Mga Bahagi
- Diagram ng Circuit
- Paghahanda sa Mga Audio File
- Paliwanag sa Code
- Pagsubok sa ESP32 Audio Player
Ang mga manlalaro ng DIY Music ay nakakatuwang mabuo, at dati kaming nagtayo ng ilang mga manlalaro ng musika gamit ang Arduino at isang nakalaang MP3 module. Gumagamit kami ngayon ng ESP32 upang bumuo ng isang kagiliw-giliw na audio player, kung saan maaari kang mag-sound effects sa pamamagitan lamang ng pagkonekta ng isang sobrang speaker sa ESP32. Dito ay gagamitin namin ang LM386 at isang speaker na may ESP32 upang i-play ang mga file ng musika. Ang output ng audio ay maaaring hindi malakas ngunit ipinapakita ng application na ito ang kakayahan ng board na ESP32 na maglaro ng mga audio file.
Kinakailangan ang Mga Bahagi
- ESP32
- LM386 Module ng Amplifier
- 8 ohm Tagapagsalita
- Jumper Wires
Diagram ng Circuit
Ang Circuit Diagram para sa ESP32 Music Player ay ibinibigay sa ibaba-
Upang makapagpatugtog ng tunog sa ESP32, kailangan namin ng isang speaker. Ang speaker ay konektado sa pamamagitan ng module ng LM386 Audio Amplifier. Ang mga Vcc at GND na pin ng Amplifier Module ay konektado sa VIN at GND ng ESP32 habang ang IN pin ng module ng Amplifier ay konektado sa GPIO 25 pin ng ESP32. Ang GPIO 25 ay isa sa mga 2 DAC (Digital to Analog Converter) na mga pin.
Ito ang magiging hitsura ng kumpletong pag-set up para sa ESP32 Music Player:
Ang LM386 ay isang audio amplifier IC, maaari kang matuto nang higit pa tungkol sa LM386 sa pamamagitan ng pagsunod sa link.
Paghahanda sa Mga Audio File
Upang mag-play ng mga tunog ng audio sa board ng ESP32, kailangan namin ng mga audio file sa format na .wav dahil ang ESP32 ay maaaring maglaro ng isang audio file sa format na .wav lamang.
Kaya ang unang hakbang ay ang pagkuha ng file na nais mong i-play sa ESP32. Pagkatapos nito, mag-download at mag-install ng Audacity Audio Editor App. Gagamitin ang app na ito upang baguhin ang uri ng file, Sample Rate, at iba pang mga pag-aari.
Kapag nakumpleto na ang pag-install, buksan ang Audacity app at pagkatapos ay pumunta sa file> Buksan at piliin ang audio file upang mai-edit.
Ang unang bagay na kailangang baguhin ay ang rate ng sampling. Para sa pag-play ng isang audio file sa ESP32, ang isang rate ng sampling ng 8000 hanggang 16000 ay magiging mabuti dahil ang ESP32 ay walang gaanong memorya. Kaya baguhin ang Project Rate sa 16000.
Pagkatapos nito, mag-navigate sa File> Export> I-export bilang WAV upang i-save ang audio file sa format na .wav .
Ngayon sa susunod na window, piliin ang WAV (Microsoft) bilang uri ng file at Unsigned 8-bit PCM bilang isang format ng Encoding at pagkatapos ay mag-click sa I- save.
Ngayon kailangan namin ng Hex Editor app upang makabuo ng Hex code para sa audio file. Kaya i-download at i-install ang Hex Editor (HxD) mula sa ibinigay na link. Pagkatapos nito, buksan ang app, pagkatapos ay pumunta sa File> buksan at buksan ang .wav file . Lilikha ito ng Hex code para sa .wav file .
Pagkatapos ay gamitin ang ctrl + A upang piliin ang kumpletong code at pagkatapos ay pumunta sa I - edit> Kopyahin bilang> C upang kopyahin ang code sa format na C Wika.
Pagkatapos i-paste ang code na ito sa Arduino IDE.
Paliwanag sa Code
Ang kumpletong code para sa contactless ESP32 Audio Player ay ibinibigay sa dulo ng pahina. Narito ipinapaliwanag namin ang ilang mahahalagang bahagi ng code. Sa program na ito, gagamitin namin ang XT DAC Audio library mula sa XTronical. Maaaring ma-download ang XT DAC Audio library mula rito.
Kaya't tulad ng dati, simulan ang code sa pamamagitan ng pagsasama ng lahat ng mga kinakailangang aklatan. Naglalaman ang file ng SoundData.h ng Hex code para sa .Wav file na dapat i-play.
# isama ang "SoundData.h" # isama ang "XT_DAC_Audio.h"
Sa susunod na linya, lumikha ng isang bagay ng uri XT_Wav_Class na ginagamit ng DAC audio class na dumadaan sa .wav data bilang isang parameter. Ang DacAudio, ang pangunahing object ng klase ng manlalaro kung saan 25 ang numero ng pin ng DAC kung saan nakakonekta ang amplifier pin.
XT_Wav_Class Sound (sample); XT_DAC_Audio_Class DacAudio (25,0);
Sa loob ng pag- andar ng pag- setup () , simulan ang Serial Monitor sa baud rate na 115200 para sa mga layuning pag-debug.
void setup () {Serial.begin (115200);
Sa loob ng pag- andar ng loop () , punan ang data buffer ng data at suriin kung tumutugtog ang tunog o hindi, kung hindi, patugtugin ang tunog sa loop.
void loop () {DacAudio.FillBuffer (); kung (Sound.Playing == false) DacAudio.Play (& Sound); Serial.println (DemoCounter ++); }
Pagsubok sa ESP32 Audio Player
Kapag handa na ang code, ikonekta ang speaker sa GPIO 25 ng ESP32 sa pamamagitan ng LM386 o anumang iba pang module ng amplifier. Ngayon ikonekta ang ESP32 sa Laptop at i-upload ang code. Kapag na-upload na ang code, sinimulang i-play ng ESP32 ang Audio. Maaaring mabago ang kalidad ng tunog gamit ang potentiometer ng module ng Amplifier.
Sana nasiyahan ka sa proyekto. Ang isang gumaganang video at kumpletong code ay ibinibigay sa ibaba, ang SoundData.h header file ay maaaring ma-download mula dito. Kung mayroon kang anumang mga pagdududa, iwanan ang mga ito sa seksyon ng komento.