MP3 Voice Module DFR0534


2020年2月4日 サンプルプログラム追加

1.モジュール情報

DFRobot製のMP3再生モージュールで、UART通信で制御出来ます。
私は秋月にて購入しました。
http://akizukidenshi.com/catalog/g/gM-13708/
使用方法やUARTでのコマンドのやり取りは、下記に説明が掲載されています。
https://wiki.dfrobot.com/Voice_Module_SKU__DFR0534
基板上に実装されたmicroUSBにてPCに接続すると、ストレージとして認識され、自分で作成したMP3フォーマットの音声データを8MB近くまで、格納し再生することが出来る模様です。
再生には、Mbedのようなマイクロプロセッサから9600bpsのUARTの相互通信でコマンドやデータ取得を行い制御します。
従って、予めPC側から必要なMP3ファイルをメモリ内にセーブして置き、実際の利用はMbedなどで制御する方式となります。
Mbed側からMP3ファイルの書き換えは出来ません。

2.ライブラリ作成

先ずは、簡単なデモができる程度に仕上がったライブラリを公開しました。

Import libraryMP3_DFR0534

UART MP3 Voice Module with 8MB Flash Memory / DFR0534


コマンドの形式は、一様記述されていますが、現時点では30種類以上あるすべてのコマンドの動作を確認したわけではありません。
コマンドは、全て0xaaで始まり短いコマンドで4バイト、長いものは8バイト以上で構成される可変長タイプで、且つコマンド内にパラメータを挿入して送信するものや、モジュールからコマンドに対する返答があるタイプと様々なために、UARTは送受信を双方向を制御する必要があります。
送受信されるパケットは、最後にチェックサムが付与されていますので、固定長のコマンドはそのままバイト列を送信できますが、パラメータを変化させることもあるので基本毎回計算する必要があります。
チェックサムは、8ビットの単純加算をヘッダー0xaaを含めオーバーフローを無視した形式で計算できます。
MP3の再生中にも基本的にはコマンドは受け付けてくれるようですが、再生中はBUSY信号がHiとなりますので、この信号を監視しながら次の再生するファイルを指定してあげる必要があります。
ライブラリ内で、再生を中断させてしまうコマンドなどには、このBUSY信号を確認しています。

3.結線

/media/uploads/kenjiArai/circuit.jpg

DFR0534ピン接続先
BUSYDigitalInとして使える端子に接続(F446RE PA_4)
TXUART RX端子に接続(F446REではPA_0でSerial4RX)
RXUART TX端子に接続(F446REではPA_1でSerial4TX)
GNDMbedグランドへ
VCC3.3Vに接続(F446REは各端子の殆どが5Vトレランス保証なので、5V接続で使用)
SP+8Ω3Wを使用するようにWikiページには書かれている
SP-スピーカーもう一端子へ
DACL未接続(外付けアンプ用出力端子)
DACR未接続(外付けアンプ用出力端子)
ONE未接続(どんな目的の端子か調査出来ず)

Mbedボードとの接続は、信号線3本(TX,RX,BUSY)と電源線2本(VCC,GND) で可能です。

4.サンプルプログラム

Import programDFR0534_MP3_Test_os5

Test program for UART MP3 Voice Module with 8MB Flash Memory / DFR0534

スピーカから音が出てくれば成功です。

#define USE_VOL     1

となっていて、可変抵抗器の3.3Vでの分圧値をA5端子でモニターして音量設定していますが、上記を0とすれば、可変抵抗器は無くても動作します。
ライブラリとmain.cppをそのままで。os2でも動作確認しました。
但し、今回はNucleo-F446REボードのみの確認で他のMbedでは確認していませんので、動作しないときにはお知らせください。

2020年2月4日サンプルプログラム追加
TYBLE16のモジュールで制御して、iPhone上のRCBControlerで操作できるようにしてみました。

Import programTYBLE16_MP3_Air

MP3(DFR0534)+BLE(TYBLE16)


5. 注意点

ボリューム最大では、想像以上に音量が上がりますので、最初にプログラムを動作させる場合には注意願います。


Please log in to post comments.