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

CatalexシリアルMP3プレーヤー:Arduino UNOで簡単セットアップと制御

必要な部品と材料

部品数量備考
Arduino UNO1
Catalex シリアルMP3プレーヤー V1.01
お好みの音楽ファイル(MP3/WAV)1microSDカードに保存

使用アプリ・オンラインサービス

プロジェクト概要

CatalexシリアルMP3プレーヤー V1.0の使い方

まず必要なライブラリをインクルードします。

#include <SoftwareSerial.h>

ArduinoのどのピンをMP3モジュールのTX/RXに接続するか定義し、ソフトウェアシリアルを初期化します。

#define ARDUINO_RX 5  // モジュールのTXに接続
#define ARDUINO_TX 6  // モジュールのRXに接続
SoftwareSerial mySerial(ARDUINO_RX, ARDUINO_TX);

データシートに基づくコマンド定義

モジュールは8バイトのコマンド配列 0x7E FF 06 command 00 00 00 EF 形式で動作します。主なコマンドを#defineで定義します。

#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  0X06  // 音量0-30(0x1E)指定(データ必要)
#define CMD_PLAY_WITHVOLUME 0X22 // 音量と曲番号指定(データ必要)
#define CMD_SEL_DEV     0X09  // ストレージ選択(データ必要)
#define DEV_TF          0X02  // microSDカード選択
#define SLEEP_MODE_START 0X0A
#define SLEEP_MODE_WAKEUP 0X0B
#define CMD_RESET       0X0C
#define CMD_PLAY        0X0D
#define CMD_PAUSE       0X0E
#define CMD_PLAY_WITHFOLDER 0X0F // フォルダ指定再生
#define STOP_PLAY       0X16
#define PLAY_FOLDER     0X17
#define SET_CYCLEPLAY   0X19
#define SET_DAC         0X17

コマンド送信関数

コマンドとデータから8バイト配列を組み立て、シリアル送信する関数です。

static int8_t Send_buf[8] = {0};

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; // フィードバックなし
  Send_buf[5] = (int8_t)(dat >> 8);
  Send_buf[6] = (int8_t)(dat);
  Send_buf[7] = 0xef;
  for (uint8_t i = 0; i < 8; i++) {
    mySerial.write(Send_buf[i]);
  }
}

セットアップとループ

void setup() {
  Serial.begin(9600);
  mySerial.begin(9600);
  delay(500);
  sendCommand(CMD_SEL_DEV, DEV_TF); // TFカード選択
  delay(200);
}

void loop() {
  sendCommand(CMD_PLAY_WITHVOLUME, 0X0F01); // 音量15で最初の曲再生
  delay(1000000); // 100秒ごとに再生コマンド送信
}

SDカードへの楽曲配置方法

データシートによると、チップは.mp3/.wavファイルをアルファベット順にインデックスします。確実に制御するには、フォルダを01, 02...、曲ファイルを001xxxx.mp3, 002xxxx.mp3...のように命名します。

Enjoy your hacking!

ソースコード(完全版)

// Javier Muñoz 作成 2016/11/10
#include <SoftwareSerial.h>
#define ARDUINO_RX 5
#define ARDUINO_TX 6
SoftwareSerial mySerial(ARDUINO_RX, ARDUINO_TX);

static int8_t Send_buf[8] = {0};
// コマンド定義(上記と同一)

void setup() {
  Serial.begin(9600);
  mySerial.begin(9600);
  delay(500);
  sendCommand(CMD_SEL_DEV, DEV_TF);
  delay(200);
}

void loop() {
  sendCommand(CMD_PLAY_WITHVOLUME, 0X0F01);
  delay(1000000);
}

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;
  Send_buf[5] = (int8_t)(dat >> 8);
  Send_buf[6] = (int8_t)(dat);
  Send_buf[7] = 0xef;
  for (uint8_t i = 0; i < 8; i++) {
    mySerial.write(Send_buf[i]);
    Serial.print(Send_buf[i], HEX);
  }
  Serial.println();
}

回路図

電源電圧は3.2〜5V、消費電流約200mAです。
CatalexシリアルMP3プレーヤー:Arduino UNOで簡単セットアップと制御

製造プロセス

  1. 「維持管理クライシスソング」ブルース&レゲエ版を無料DL、危機啓発を増幅
  2. プレーヤーピアノ:音響伝統と自動演奏精密技術の融合
  3. Arduino UNOで作る『イカゲーム』テーマのインタラクティブ人形 - DIYプロジェクト
  4. Bluetooth操作のArduinoスパイボットを自作する
  5. FlickMote:ジェスチャー操作のIRリモコンでスマートホームを制御
  6. 自作Arduino TV-B-Gone:全テレビ対応の万能リモコン
  7. 12メートル先から見える大型LEDマスタークロック(アラーム機能付き)を自作しよう
  8. ArduinoとBluetoothで作るスマート紛失防止タグ「Find Me」
  9. Arduinoプロジェクトのための最適化電源ソリューション
  10. Arduino UNOとDFPlayer Miniで音声を再生する方法 - ステップバイステップガイド
  11. Arduinoウェブ制御MP3プレーヤー:ブラウザから簡単オーディオ再生