私たちのプロジェクトにサウンドや音楽を追加すると、常にクールに見え、はるかに魅力的に聞こえます。特にArduinoを使用していて、ピンがたくさんない場合は、追加のSDカードモジュールと通常のスピーカーに投資するだけで、プロジェクトにサウンドエフェクトを簡単に追加できます。この記事では、Arduinoボードを使用して音楽を再生したり効果音を追加したりするのがいかに簡単かを紹介します。これを迅速かつ簡単な方法で構築するためにいくつかのライブラリを開発してくれたArduinoコミュニティに感謝します。ここでは、増幅とノイズキャンセリングの目的でICLM386も使用しています。
このプロジェクトでは、SDカードに保存されている.wav音楽ファイルを再生します。これらの.wavファイルを読み取り、LM386オーディオアンプを介して音声で音声を再生するようにArduinoをプログラムします。現在、このコードは.wavファイルしか読み取れないため、技術的にはこのプロジェクトをArduino Mp3プレーヤーとして呼び出すことはできませんが、それでも曲を聞くことができます。SDカードのないArduio音楽プレーヤーのような単純な代替品を探している場合は、以前に構築したArduinoメロディプレーヤーをチェックする必要があります。
必要なハードウェア:
- Arduino UNO
- SDカードリーダーモジュール
- SDカード
- LM386オーディオアンプ
- 10ufコンデンサ(2個)
- 100ufコンデンサ(2個)
- 1K、10K抵抗
- 押しボタン(2個)
- ブレッドボード
- 接続線
WAVオーディオファイルの準備:
以下のためのArduinoを使ってSDカードからの音を再生するのArduinoボードは、WAV形式で、特定の形式のオーディオファイルを再生することができますので、我々は、.wav形式のオーディオファイルが必要です。arduino mp3プレーヤーを作成するために、arduinoで使用できるmp3シールドがたくさんあります。または、arduinoでmp3ファイルを再生するために、コンピューター上の任意のオーディオファイルをその特定のWAVファイルに変換するために使用できるWebサイトがあります。
したがって、オーディオファイルをwav形式に変換するには、次の手順に従います。
ステップ1:「OnlineWav Converter」をクリックして、Webサイトにアクセスします。
ステップ2: Arduinoは次の形式でwavファイルを再生できます。後で設定をいじることができますが、これらの設定は最高の品質を目指して実験されたものです。
ビット解像度 |
8ビット |
サンプリングレート |
16000 Hz |
オーディオチャンネル |
単核症 |
PCMフォーマット |
PCM符号なし8ビット |
ステップ3:ウェブサイトで「ファイルを選択」をクリックし、変換したいファイルを選択します。次に、上記の設定を入力します。完了すると、下の画像のようになります。
ステップ4: 「ファイルの変換」をクリックすると、オーディオファイルが.Wavファイル形式に変換されます。変換が完了すると、ダウンロードされます。
ステップ5:最後にSDカードをフォーマットし、.wavオーディオファイルを保存します。このファイルを追加する前に、必ずフォーマットしてください。オーディオファイルの名前も覚えておいてください。同様に、4つのオーディオのいずれかを選択して、名前1、2、3、および4で保存できます(名前は変更しないでください)。以下に示すように、4つの曲を変換し、1.wav、2.wav、3.wav、4.wavとして保存しました。
回路とハードウェア:
このArduinoオーディオファイルプレーヤーの回路図は単純です。完全な回路図を下の画像に示します。
オーディオファイルはSDカードに保存されることがわかっているため、SDカードリーダーモジュールをArduinoに接続します。アルドゥイーノとSDカードがSPI通信プロトコルを使用して通信します。したがって、モジュールは、上の図に示すように、ArduinoのSPIピンとインターフェースします。以下の表にさらにリストされています。
Arduino |
SDカードモジュール |
+ 5V |
Vcc |
Gnd |
Gnd |
ピン12 |
MISO(マスターインスレーブアウト) |
ピン11 |
MOSI(マスターアウトスレーブイン) |
ピン13 |
SCK(同期時計) |
ピン4 |
CS(チップセレクト) |
これで、ArduinoはSDカードから音楽ファイルを読み取り、ピン番号9で再生できるようになります。ただし、ピン9でArduinoによって生成されたオーディオ信号はあまり聞こえません。したがって、LM386低電圧オーディオアンプICを使用して増幅します。
上に示したアンプはゲイン200用に設計されており、Vdd(ピン6)はArduinoの5Vピンから給電されます。音を増減したい場合は、このピンに供給される電圧を増減できます。最大15Vに耐えることができます。LM386のこの200ゲイン増幅構成の詳細については、こちらをご覧ください。
また、Arduinoのピン2と3に接続された2つのプッシュボタンがあります。これらのスイッチは、曲の次のトラックの再生と音楽の再生/一時停止にそれぞれ使用されます。私はこれらのボタンをその能力を示すためだけに使用しました。必要なときにいつでも曲を再生できます。最後にデモビデオを確認してください。
下の写真に示すように、この回路をブレッドボード上で完全に組み立てることができます
Arduinoのプログラミング:
ハードウェアとSDカードの準備ができたら、すぐにそれらの曲を再生できます。カードをSDカードモジュールに挿入し、以下の手順に従います。
ステップ1:前述のように、このプロジェクトを機能させるためにライブラリを使用します。ライブラリへのリンクを以下に示します。それをクリックして「クローンまたはダウンロード」を選択し、ZIPとしてダウンロードを選択します。
- TMRpcmライブラリ
ステップ2:以下に示すように[スケッチ]-> [ライブラリを含める]-> [。ZIPライブラリを追加]を選択して、このZipファイルをArduino IDEに追加し、ダウンロードしたZIPファイルを選択します。
ステップ3:arduino音楽プレーヤープロジェクトの完全なプログラムはこの記事の最後にあります。それをコピーしてArduinoプログラムに貼り付けるだけです。次に、[アップロード]をクリックして、オーディオファイルを再生する準備をします。
コメント行があるので、プログラムは自明です。ただし、TMRpcmライブラリの機能についても以下で説明します。
オーディオファイルの再生:
以下の行を使用して、SDカードモジュール内にWav形式で保存されているオーディオを再生できます。
music.play( "3.wav"); //オブジェクト名.play(“ FileName.wav”);
この行は、オーディオをトリガーする場所で使用できます
オーディオファイルを一時停止します。
オーディオファイルを一時停止するには、以下の行を呼び出すだけです。
music.pause(); //objectname.pause();
オーディオの転送/巻き戻し:
オーディオファイルを転送または巻き戻す直接的な方法はありませんが、以下の行を使用して特定の時間に曲を再生できます。これは、いくつかの追加のプログラミングで転送/巻き戻しに使用できます。
music.play( "2.wav"、33); // 33秒から曲を再生します//objectname.play(“Filename.wav”,time in second);
オーディオの品質を設定する:
ライブラリには、音楽を再生するための2つの品質があります。1つは通常モードで再生すること、もう1つは2倍のオーバーサンプリングで再生することです。
music.quality(0); //通常モードmusic.quality(1); // 2倍のオーバーサンプリングモード
オーディオの音量の設定:
はい、ソフトウェアを使用してオーディオの音量を制御できます。下の行を使用して、簡単に音量を設定できます。音楽の音量が大きいとオーディオの品質に影響する傾向があるため、可能な場合はハードウェア制御を使用してください。
music.setVolume(5); //ボリューム5で曲を再生します//objectname.setVolume(Volumelevel);
このArduinoミュージックプレーヤーの動作:
Arduinoをプログラミングした後、ピン2に接続されているボタンを押すだけで、Arduinoが最初の曲(1.wavとして保存)を再生します。これで、ボタンをもう一度押すと、トラックを2.wavを再生する次の曲に変更できます。同様に、4つの曲すべてに移動できます。
ピン3に接続されているボタンを押して曲を再生/一時停止することもできます。1回押すと曲が一時停止し、もう一度押すと停止した場所から再生します。完全に機能するために(またはいくつかの曲でリラックスするために)以下のビデオをご覧ください。
あなたがプロジェクトを楽しんだことを願っています。今、あなたのプロジェクトでそれらを使用するのはあなたの創造性次第です。話す時計、音声アシスタント、話すロボット、音声アラートセキュリティシステムなどを作成できます。コメントセクションでどのように使用する予定かを教えてください。また、これを機能させるのに問題がある場合は、フォーラムまたは以下のコメントセクションから私に連絡できます。