DIYミュージックプレーヤーは作成するのが楽しいです。以前は、Arduinoと専用のMP3モジュールを使用していくつかのミュージックプレーヤーを作成しました。現在、ESP32を使用して、追加のスピーカーをESP32に接続するだけで効果音を鳴らすことができる興味深いオーディオプレーヤーを構築しています。ここでは、LM386とESP32を備えたスピーカーを使用して音楽ファイルを再生します。オーディオ出力は大きくない場合がありますが、このアプリケーションは、オーディオファイルを再生するESP32ボードの機能を示しています。
必要なコンポーネント
- ESP32
- LM386アンプモジュール
- 8オームスピーカー
- ジャンパー線
回路図
以下のための回路図ESP32音楽プレーヤーが与えられていますbelow-
ESP32でサウンドを再生するには、スピーカーが必要です。スピーカーはLM386オーディオアンプモジュールを介して接続されています。アンプモジュールのVccピンとGNDピンはESP32のVINとGNDに接続され、アンプモジュールのINピンはESP32のGPIO25ピンに接続されます。GPIO 25は、2つのDAC(デジタル-アナログコンバーター)ピンの1つです。
ESP32 MusicPlayerの完全なセットアップは次のようになります。
LM386はオーディオアンプICです。リンクをたどるとLM386の詳細を知ることができます。
オーディオファイルの準備
ESP32ボード上のオーディオサウンドを再生するには、我々は、オーディオファイルが必要 .WAV ESP32は、オーディオファイルを再生することができますので、形式 wavファイル 形式のみ。
したがって、最初のステップは、ESP32で再生するファイルを取得することです。その後、Audacity AudioEditorアプリをダウンロードしてインストールします。このアプリは、ファイルタイプ、サンプルレート、およびその他のプロパティを変更するために使用されます。
インストールが完了したら、Audacityアプリを 開き 、[ファイル]> [開く]に 移動して、編集するオーディオファイルを選択します。
最初に変更する必要があるのは、サンプリングレートです。ESP32でオーディオファイルを再生する場合、ESP32には多くのメモリがないため、8000〜16000のサンプリングレートが適しています。したがって、プロジェクトレートを16000に変更します。
その後、 [ファイル]> [エクスポート]> [WAVとしてエクスポート] に移動して、オーディオファイルを .wav 形式で保存します。
次のウィンドウで、ファイルの種類としてWAV(Microsoft)を選択し、エンコード形式として符号なし8ビットPCMを選択して、[ 保存 ]をクリックし ます。
次に、オーディオファイルの16進コードを生成するための16進エディターアプリが必要です。したがって、指定されたリンクからHex Editor(HxD)をダウンロードしてインストールします。その後、アプリを開き、 [ファイル]> [ 開いて .wavファイル]に移動します 。これにより、 .wavファイルの 16進コードが生成され ます 。
次に、 ctrl + A を使用して完全なコードを選択し、[ 編集]> [名前を付け てコピー] > [C]に移動 して、コードをC言語形式でコピーします。
次に、このコードをArduinoIDEに貼り付けます。
コードの説明
非接触型ESP32オーディオプレーヤーの完全なコードは、ページの最後に記載されています。ここでは、コードのいくつかの重要な部分について説明します。このプログラムでは、XTronicalのXTDACオーディオライブラリを使用します。XTDACオーディオライブラリはここからダウンロードできます。
したがって、いつものように、必要なすべてのライブラリを含めることからコードを開始します。SoundData.hファイルには、再生される .Wavファイルの 16進コードが含まれています。
#include "SoundData.h" #include "XT_DAC_Audio.h"
次の行で、 .wav データをパラメーターとして渡すDACオーディオクラスによって使用されるタイプ XT_Wav_Classの オブジェクトを作成します。 DacAudio、 メインプレーヤークラスオブジェクト 。25はアンプピン が接続されているDACピン番号です。
XT_Wav_Class Sound(sample); 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のGPIO25に接続します。次に、ESP32をラップトップに接続してコードをアップロードします。コードがアップロードされると、ESP32はオーディオの再生を開始します。音質は、アンプモジュールのポテンショメータを使用して変更できます。
あなたがプロジェクトを楽しんだことを願っています。動作するビデオと完全なコードを以下に示します 。SoundData.h ヘッダーファイルはここからダウンロードできます。疑問がある場合は、コメントセクションに残してください。