- Thành phần bắt buộc
- Sơ đồ mạch
- Sẵn sàng với tệp âm thanh
- Giải thích mã
- Kiểm tra Trình phát âm thanh ESP32
Trình phát nhạc DIY rất thú vị khi xây dựng và trước đây chúng tôi đã xây dựng một vài trình phát nhạc bằng Arduino và mô-đun MP3 chuyên dụng. Bây giờ chúng tôi đang sử dụng ESP32 để xây dựng một trình phát âm thanh thú vị, trong đó bạn có thể tạo hiệu ứng âm thanh bằng cách kết nối một loa phụ với ESP32. Ở đây chúng tôi sẽ sử dụng LM386 và một loa với ESP32 để phát các tập tin nhạc. Đầu ra âm thanh có thể không lớn nhưng ứng dụng này cho thấy khả năng phát các tệp âm thanh của bo mạch ESP32.
Thành phần bắt buộc
- ESP32
- Mô-đun Khuếch đại LM386
- Loa 8 ohm
- Dây nhảy
Sơ đồ mạch
Sơ đồ mạch cho Trình phát nhạc ESP32 được cung cấp bên dưới-
Để phát âm thanh trên ESP32, chúng ta cần một loa. Loa được kết nối thông qua mô-đun Bộ khuếch đại âm thanh LM386. Các chân Vcc và GND của Mô-đun Bộ khuếch đại được kết nối với VIN và GND của ESP32 trong khi chân IN của mô-đun Bộ khuếch đại được kết nối với chân GPIO 25 của ESP32. GPIO 25 là một trong 2 chân DAC (Digital to Analog Converter).
Đây là cách thiết lập hoàn chỉnh cho Trình phát nhạc ESP32 sẽ trông như thế nào:
LM386 là IC khuếch đại âm thanh, bạn có thể tìm hiểu thêm về LM386 theo link.
Sẵn sàng với tệp âm thanh
Để phát âm thanh trên bo mạch ESP32, chúng tôi cần tệp âm thanh ở định dạng .wav vì ESP32 chỉ có thể phát tệp âm thanh ở định dạng .wav .
Vì vậy, bước đầu tiên sẽ là lấy tệp mà bạn muốn phát trên ESP32. Sau đó, tải xuống và cài đặt Ứng dụng Audacity Audio Editor. Ứng dụng này sẽ được sử dụng để thay đổi loại tệp, Tốc độ mẫu và các thuộc tính khác.
Sau khi cài đặt hoàn tất, hãy mở ứng dụng Audacity, sau đó chuyển đến tệp> Mở và chọn tệp âm thanh để chỉnh sửa.
Điều đầu tiên cần thay đổi là tỷ lệ lấy mẫu. Để phát tệp âm thanh trên ESP32, tốc độ lấy mẫu từ 8000 đến 16000 sẽ tốt vì ESP32 không có nhiều bộ nhớ. Vì vậy, hãy thay đổi Tỷ lệ dự án thành 16000.
Sau đó, điều hướng đến Tệp> Xuất> Xuất dưới dạng WAV để lưu tệp âm thanh ở định dạng .wav .
Bây giờ trong cửa sổ tiếp theo, chọn WAV (Microsoft) làm loại tệp và PCM 8-bit không dấu làm định dạng Mã hóa rồi nhấp vào Lưu.
Bây giờ chúng ta cần một ứng dụng Hex Editor để tạo mã Hex cho tệp âm thanh. Vì vậy, hãy tải xuống và cài đặt Hex Editor (HxD) từ liên kết đã cho. Sau đó, mở ứng dụng, sau đó đi tới Tệp> mở và mở tệp.wav . Thao tác này sẽ tạo mã Hex cho tệp.wav .
Sau đó, sử dụng ctrl + A để chọn mã hoàn chỉnh và sau đó đi tới Chỉnh sửa> Sao chép dưới dạng> C để sao chép mã ở định dạng Ngôn ngữ C.
Sau đó, dán mã này vào Arduino IDE.
Giải thích mã
Mã hoàn chỉnh cho Trình phát âm thanh ESP32 không tiếp xúc được đưa ra ở cuối trang. Ở đây chúng tôi đang giải thích một số phần quan trọng của mã. Trong chương trình này, chúng tôi sẽ sử dụng thư viện XT DAC Audio từ XTronical. Thư viện XT DAC Audio có thể được tải xuống từ đây.
Vì vậy, như thường lệ, hãy bắt đầu mã bằng cách bao gồm tất cả các thư viện được yêu cầu. Tệp SoundData.h chứa mã Hex cho tệp.Wav sẽ được phát.
#include "SoundData.h" #include "XT_DAC_Audio.h"
Trong dòng tiếp theo, hãy tạo một đối tượng kiểu XT_Wav_Class được sử dụng bởi lớp âm thanh DAC chuyển dữ liệu .wav làm tham số. DacAudio, đối tượng lớp trình phát chính trong đó 25 là số chân DAC nơi kết nối chân khuếch đại.
XT_Wav_Class Sound (mẫu); XT_DAC_Audio_Class DacAudio (25,0);
Bên trong hàm setup () , khởi chạy Serial Monitor ở tốc độ truyền 115200 cho mục đích gỡ lỗi.
void setup () {Serial.begin (115200);
Bên trong hàm loop () , điền dữ liệu vào bộ đệm âm thanh và kiểm tra xem âm thanh có đang phát hay không, nếu không, hãy phát âm thanh trong vòng lặp.
void loop () {DacAudio.FillBuffer (); if (Sound.Playing == false) DacAudio.Play (& Âm thanh); Serial.println (DemoCounter ++); }
Kiểm tra Trình phát âm thanh ESP32
Khi mã đã sẵn sàng, hãy kết nối loa với GPIO 25 của ESP32 thông qua LM386 hoặc bất kỳ mô-đun khuếch đại nào khác. Bây giờ kết nối ESP32 với Máy tính xách tay và tải lên mã. Sau khi mã được tải lên, ESP32 bắt đầu phát Âm thanh. Chất lượng âm thanh có thể được thay đổi bằng cách sử dụng chiết áp của mô-đun Bộ khuếch đại.
Hy vọng bạn thích dự án. Video hoạt động và mã hoàn chỉnh được cung cấp bên dưới, tệp tiêu đề SoundData.h có thể được tải xuống từ đây. Nếu bạn có bất kỳ nghi ngờ, hãy để lại chúng trong phần bình luận.