工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

ArduinoMp3プレーヤーCatalex

コンポーネントと消耗品

>
Arduino UNO
× 1
カタレックスのシリアルMP3プレーヤー
× 1
素敵なファンクミュージック
× 1

アプリとオンラインサービス

>
Arduino IDE

このプロジェクトについて

CATALEXのSERIALMP3 PLAYER V1.0の使用方法:

  • まず、通常どおりライブラリをダウンロードします。
  #include   
  • ここで、mp3プレーヤーに接続するArduinoピンを選択し、シリアルプロトコルを初期化します。
  #define ARDUINO_RX 5 //シリアルMP3プレーヤーモジュールのTXに接続する必要があります#defineARDUINO_TX 6 //モジュールのRXに接続しますSoftwareSerialmySerial(ARDUINO_RX、ARDUINO_TX); //シリアルプロトコルを初期化し、指示しますmyserialへのピンはTXとRXです 
  • ここでは、 #define に翻訳しました データシートの内容:
  //////////////////////////////////////////// //////////////////////////////////////////データシートに必要なすべてのコマンド( http://geekmatic.in.ua/pdf/Catalex_MP3_board.pdf)static int8_t Send_buf [8] ={0}; // MP3プレーヤーは8int文字列の注文を理解しません// 0X7E FF06コマンド0000 00 EF; (コマンド=01次の曲の順序の場合)#define NEXT_SONG 0X01 #define PREV_SONG 0X02 #define CMD_PLAY_W_INDEX 0X03 //データが必要です(曲の数)#define VOLUME_UP_ONE 0X04 #define VOLUME_DOWN_ONE 0X05 #define CMD_SET_VOLUME 0 0から30までのボリュームの数(0x1E))#define SET_DAC 0X17 #define CMD_PLAY_WITHVOLUME 0X22 //データが必要0x7E06 22 00 xx yy EF;(xx volume)(yy曲数)#define CMD_SEL_DEV 0X09 // SELECT STORAGEデバイス、データが必要です#define DEV_TF 0X02 // HELLO、IM必要なデータ#define SLEEP_MODE_START 0X0A #define SLEEP_MODE_WAKEUP 0X0B #define CMD_RESET 0X0C // Chip RESET #define CMD_PLAY 0X0D // RESUME PLAYBACK #define CMD_再生が一時停止されました#defineCMD_PLAY_WITHFOLDER 0X0F //データが必要です、0x7E 06 0F 00 01 02 EF;(ディレクトリ\ 01 \ 002xxxxxx.mp3 #define STOP_PLAY 0X16 #define PLAY_FOLDER 0X17 //データが必要です0x7E06 17 00 01 XX EF;(01フォルダーを再生)(値xxは気にしない)#define SET_CYCLEPLAY 0X19 //データが必要00start; 01 close #define SET_DAC 0X17 //データが必要00start DAC OUTPUT; 01DAC出力なし////////////////////////////// ////////////////////////////////////////////////// ////  
  • MP3チップは、この形式のint array [8]からの注文を理解していません
  0x7E FF aa bb 00 xx yy EF  

場所:

  • 最初と最後のintは0x7Eと0xEFの値で固定されています
  • aa はバージョン番号です。0x06を入力してください。
  • bb 前のポイントにリストされている実際の制御コマンドです
  • xx データの最初のビットです
  • yy データの2番目の整数です

そして、これは配列を構築する実際の関数です。 #defined の1つを選択するだけです コマンドを実行し、データの値を入力します。

  void sendCommand(int8_t command、int16_t dat){delay(20); Send_buf [0] =0x7e; //開始バイトSend_buf [1] =0xff; //バージョンSend_buf [2] =0x06; //開始バイトと終了バイトがないコマンドのバイト数Send_buf [3] =command; // Send_buf [4] =0x00; // 0x00 =フィードバックなし、0x01 =フィードバックSend_buf [5] =(int8_t)(dat>> 8); // datah Send_buf [6] =(int8_t)(dat); // datal Send_buf [7] =0xef; //終了バイトfor(uint8_t i =0; i <8; i ++)// {mySerial.write(Send_buf [i]); }}  

セットアップ機能に、TFに適切なデバイスを選択し、落ち着くまでの時間を与える必要があります(非同期プロセスマジック):

  void setup(){mySerial.begin(9600); //シリアルモニターのシリアルコムを開始します! delay(500); //チップの初期化が完了するのを待つsendCommand(CMD_SEL_DEV、DEV_TF); // TFカードを選択delay(200); // 200ms待つ}  

ループでは、001というラベルの付いた曲を簡単に再生しました:

  void loop(){sendCommand(CMD_PLAY_WITHVOLUME、0X0F01); //ボリューム15の最初の曲を再生クラスdelay(1000000); //プログラムは100秒ごとに再生オプションをcatalexチップに送信します}  

SDカードに曲をアップロードする方法:

彼らがデータシートで本当に悪い英語で言っているように:

Mp3チップは .mp3 を読み取ります または .wav アルファベット順にインデックスが付けられているため、01、02という名前のフォルダを作成すると、 001xxxxx.mp3 という名前の曲が作成されます。 、 002xxxx.mp3 。使用している曲/フォルダを確認できます。

ここに無料のサウンドライブラリがあります。

HAPPY HACKING!

追加:
同じコードですが、ハードウェアシリアルを使用しています(STM32ボードでは必要でした)

コード

  • デバイスをテストする
デバイスをテストする Arduino
イニシャリスとボリューム30で1曲を再生します
 //JavierMuñozによって再配置されたコード2016年10月11日[email protected]#include  #define ARDUINO_RX 5 //のTXに接続する必要がありますSerial MP3 Player module#define ARDUINO_TX 6 // moduleSoftwareSerial mySerial(ARDUINO_RX、ARDUINO_TX); //シリアルプロトコルを初期化し、ピンがTXとRXであるかをmyserialに通知します/////////// ////////////////////////////////////////////////// /////////////////////////データシートに必要なすべてのコマンド(http://geekmatic.in.ua/pdf/Catalex_MP3_board.pdf)static int8_t Send_buf [8] ={0}; // MP3プレーヤーは8int文字列の注文を理解しません// 0X7E FF06コマンド0000 00 EF;(コマンド=01次の曲の注文の場合)#define NEXT_SONG 0X01 #define PREV_SONG 0X02 #define CMD_PLAY_W_INDEX 0X03 // DATA IS REQUIRED(number of songs)#define VOLUME_UP_ONE 0X04#define VOLUME_DOWN_ONE 0X05#define CMD_SET_VOLUME 0X06 // DATA IS REQUIRED(number of volume from 0 up to 30(0x1E))#define SET_DAC CM D_PLAY_WITHVOLUME 0X22 //データが必要です0x7E06 22 00 xx yy EF;(xx volume)(yy number of song)#define CMD_SEL_DEV 0X09 //ストレージデバイスを選択し、データが必要です#define DEV_TF 0X02 // HELLO、IM必要なデータ#define SLEEP_MODE_START 0X0A#define SLEEP_MODE_WAKEUP 0X0B#define CMD_RESET 0X0C // Chip RESET#define CMD_PLAY 0X0D // RESUME PLAYBACK#define CMD_PAUSE 0X0E // PLAYBACK IS PAUSED#define CMD_PLAY_WITHFOLDER 0X;(ディレクトリ\ 01 \ 002xxxxxx.mp3#define STOP_PLAY 0X16#define PLAY_FOLDER 0X17 //データが必要です0x7E06 17 00 01 XX EF;(01フォルダを再生)(値xx私たちは気にしない)#define SET_CYCLEPLAY 0X19 // dataが必要です00start; 01 close#define SET_DAC 0X17 // data is required 00 start DAC OUTPUT; 01 DAC no output ////////////////////////////// ////////////////////////////////////////////////// //// void setup(){Serial.begin(9600); // pcmySerial.begin(9600);でシリアルモニターのシリアルcomを開始します; // MP3delay(500); //待機のシリアルcomを開始しますチップの初期化が完了しましたsendCommand(CMD_SEL_DEV、DEV_TF); // TFカードの遅延を選択(200); // 200ms待機} void loop(){sendCommand(CMD_PLAY_WITHVOLUME、0X0F01); //ボリューム15のclassdelayで最初の曲を再生(1000000); //プログラムは100秒ごとに再生オプションをcatalexチップに送信します} void sendCommand(int8_t command、int16_t dat){delay(20); Send_buf [0] =0x7e; //開始バイトSend_buf [1] =0xff; //バージョンSend_buf [2] =0x06; //開始バイトと終了バイトがないコマンドのバイト数Send_buf [3] =command; // Send_buf [4] =0x00; // 0x00 =フィードバックなし、0x01 =フィードバックSend_buf [5] =(int8_t)(dat>> 8); // datah Send_buf [6] =(int8_t)(dat); // datal Send_buf [7] =0xef; //終了バイトfor(uint8_t i =0; i <8; i ++)// {mySerial.write(Send_buf [i]); //ビットをシリアルmp3に送信Serial.print(Send_buf [i]、HEX); / / PCのシリアルモニターにビットを送信} Serial.println();} 

回路図

データシートでは、電源装置が3,2から5vまで変化する可能性があることがわかります
200mAの消費で

製造プロセス

  1. 自動ピアノ
  2. これらのメンテナンス曲をMP3プレーヤーに貼り付けます
  3. ArduinoUNOを使用したイカゲーム人形のビルド
  4. Arduino Spybot
  5. FlickMote
  6. 自家製テレビB-Gone
  7. マスタークロック
  8. Find Me
  9. Arduino Power
  10. Arduinoでオーディオを再生する
  11. Arduino-WebベースのMP3プレーヤー