DIY 뮤직 플레이어는 재미있게 제작할 수 있으며 이전에는 Arduino와 전용 MP3 모듈을 사용하여 몇 가지 뮤직 플레이어를 제작했습니다. 이제 우리는 ESP32를 사용하여 흥미로운 오디오 플레이어를 구축하고 있습니다. 여기에서 추가 스피커를 ESP32에 연결하기 만하면 음향 효과를 얻을 수 있습니다. 여기에서는 LM386과 ESP32 가 있는 스피커를 사용 하여 음악 파일을 재생합니다. 오디오 출력은 크지 않을 수 있지만이 응용 프로그램은 ESP32 보드가 오디오 파일을 재생하는 기능을 보여줍니다.
필요한 구성 요소
- ESP32
- LM386 증폭기 모듈
- 8 옴 스피커
- 점퍼 와이어
회로도
ESP32 Music Player의 회로도 는 다음과 같습니다.
ESP32에서 사운드를 재생하려면 스피커가 필요합니다. 스피커는 LM386 오디오 증폭기 모듈을 통해 연결됩니다. Amplifier 모듈의 Vcc 및 GND 핀은 ESP32의 VIN 및 GND에 연결되고 Amplifier 모듈의 IN 핀은 ESP32의 GPIO 25 핀에 연결됩니다. GPIO 25는 2 개의 DAC (Digital to Analog Converter) 핀 중 하나입니다.
ESP32 Music Player 의 전체 설정 은 다음과 같습니다.
LM386은 오디오 증폭기 IC이며 링크를 따라 가면 LM386에 대해 자세히 알아볼 수 있습니다.
오디오 파일 준비
ESP32 보드에 오디오 사운드를 재생하기 위해, 우리는 오디오 파일이 필요 .WAV ESP32가에서 오디오 파일을 재생할 수 있기 때문에 형식 .WAV 전용 형식.
따라서 첫 번째 단계는 ESP32에서 재생할 파일을 가져 오는 것입니다. 그런 다음 Audacity Audio Editor 앱을 다운로드하여 설치하십시오. 이 앱은 파일 유형, 샘플 속도 및 기타 속성을 변경하는 데 사용됩니다.
설치가 완료되면 Audacity 앱을 열고 파일> 열기 로 이동 하여 편집 할 오디오 파일을 선택합니다.
가장 먼저 변경해야 할 것은 샘플링 속도입니다. ESP32에서 오디오 파일을 재생하려면 ESP32에 메모리가 많지 않으므로 8000 ~ 16000의 샘플링 속도가 좋습니다. 따라서 프로젝트 속도를 16000으로 변경하십시오.
그런 다음 파일> 내보내기> WAV 로 내보내기로 이동 하여 오디오 파일을 .wav 형식으로 저장 합니다.
이제 다음 창에서 파일 형식으로 WAV (Microsoft) 를 선택 하고 인코딩 형식으로 서명되지 않은 8 비트 PCM 을 선택한 다음 저장 을 클릭합니다 .
이제 오디오 파일에 대한 Hex 코드를 생성하려면 Hex Editor 앱이 필요합니다. 따라서 주어진 링크에서 Hex Editor (HxD)를 다운로드하여 설치하십시오. 그런 다음 앱을 열고 파일> 열기 로 이동 하여 .wav 파일을 엽니 다. 그러면 .wav 파일에 대한 Hex 코드가 생성 됩니다 .
그런 다음 ctrl + A 를 사용 하여 전체 코드를 선택한 다음 편집> 다른 이름으로 복사> C 로 이동하여 코드를 C 언어 형식으로 복사합니다.
그런 다음이 코드를 Arduino IDE에 붙여 넣습니다.
코드 설명
비접촉식 ESP32 오디오 플레이어 의 전체 코드 는 페이지 끝에 제공됩니다. 여기서 우리는 코드의 중요한 부분을 설명합니다. 이 프로그램에서는 XTronical 의 XT DAC 오디오 라이브러리 를 사용합니다. XT DAC 오디오 라이브러리는 여기에서 다운로드 할 수 있습니다.
따라서 평소와 같이 필요한 모든 라이브러리를 포함하여 코드를 시작합니다. SoundData.h 파일에 대한 16 진수 코드가 포함되어 .wav 파일 재생하는 것입니다.
#include "SoundData.h"#include "XT_DAC_Audio.h"
다음 줄에서 .wav 데이터를 매개 변수로 전달하는 DAC 오디오 클래스에서 사용하는 XT_Wav_Class 유형의 개체를 만듭니다. 25는 앰프 핀이 연결된 DAC 핀 번호 인 주 플레이어 클래스 개체 인 DacAudio 입니다.
XT_Wav_Class 사운드 (샘플); XT_DAC_Audio_Class DacAudio (25,0);
setup () 함수 내에서 디버깅을 위해 115200의 전송 속도로 직렬 모니터를 초기화합니다.
void setup () {Serial.begin (115200);
loop () 함수 내에서 사운드 버퍼를 데이터로 채우고 사운드가 재생 중인지 확인하고 그렇지 않은 경우 루프에서 사운드를 재생합니다.
void loop () {DacAudio.FillBuffer (); if (Sound.Playing == false) DacAudio.Play (& Sound); Serial.println (DemoCounter ++); }
ESP32 오디오 플레이어 테스트
코드가 준비되면 스피커를 LM386 또는 다른 증폭기 모듈을 통해 ESP32의 GPIO 25에 연결합니다. 이제 ESP32를 노트북에 연결하고 코드를 업로드하십시오. 코드가 업로드되면 ESP32는 오디오 재생을 시작합니다. 앰프 모듈의 전위차계를 사용하여 음질을 변경할 수 있습니다.
프로젝트가 즐거웠기를 바랍니다. 작동하는 비디오와 전체 코드가 아래에 제공되며 SoundData.h 헤더 파일은 여기에서 다운로드 할 수 있습니다. 의심스러운 점이 있으면 댓글 섹션에 남겨주세요.