HOME
  Security
   Software
    Hardware
  
FPGA
  CPU
   Android
    Raspberry Pi
  
nLite
  Xcode
   etc.
    ALL
  
LINK
BACK
 

2023/02/18

Arduino ESP32で MP3ファイルを再生する方法 Arduino ESP32で MP3ファイルを再生する方法

(ESP8266Audioライブラリで MP3ファイルをお手軽に再生する方法)

Tags: [電子工作]




● ESP32で東方の Bad Apple!!の動画を 128 x 64 dotの OLED SSD1306で再生する!

2023/02/18
ESP32で東方の Bad Apple!!の動画を 128 x 64 dotの OLED SSD1306で再生する!
ESP32で東方の Bad Apple!!の動画を 128 x 64 dotの OLED SSD1306で再生する!

  ESP32で東方の Bad Apple!!の動画を再生する!実際にはパラパラ漫画です

 注意: ESP32で MP3を再生して音楽が鳴ります!
Touhou Bad Apple!! Demo ESP32 with MP3 Audio and SSD1306 OLED (128x64 dot)



● Arduino ESP32で MP3ファイルを再生する方法

 上記の東方の Bad Apple!!の動画を ESP32で再生するプログラムに MP3の音楽機能を追加したくて調査しました。

 MP3を再生するライブラリは幾つか有りますが、ESP8266Audioライブラリが高機能で一番便利です。

ESP8266Audio - supports ESP8266 & ESP32 & Raspberry Pi Pico RP2040

・ ESP8266Audioライブラリの特徴
 対応しているエンコード形式が多い AudioGenerator系
 ・MP3
 ・AAC
 ・Opus
 ・WAVE
 ・FLAC
 ・MIDI
 ・Amiga MOD tracker
 ・Nokia ringtone RTTTL
 ・Talkie old TI speech chips

 対応している再生デバイスが多い AudioOutput系
 ・GPIOピン 1本で頑張って音を出す AudioOutputI2SNoDAC
 ・I2S DAC
 ・S/PDIF(TOSLINKの光ケーブル)
 ・PWM audio RP2040

 対応しているメディアが多い AudioFileSource系
 ・PROGMEM array プログラム内のメモリ
 ・SPIFFS SPIFFSファイルシステム
 ・LittleFS LittleFSファイルシステム
 ・FATFS FATファイルシステム
 ・SDカード
 ・HTTPStream HTTP通信のストリーム


●基本的な使い方
#include <Arduino.h>
#include "AudioFileSourceSPIFFS.h"
#include "AudioGeneratorMP3.h"
#include "AudioOutputI2SNoDAC.h"

AudioGeneratorMP3 *mp3;
AudioFileSourceSPIFFS *file;
AudioOutputI2SNoDAC *out;
void setup()
{
  Serial.begin(115200);
  delay(1000);

  SPIFFS.begin();

  file = new AudioFileSourceSPIFFS("/jamonit.mp3");
  out = new AudioOutputI2SNoDAC();
  out->SetPinout(I2S_BCLK, I2S_LRC, I2S_DOUT);
  mp3 = new AudioGeneratorMP3();
  mp3->begin(file, out);
}

void loop()
{
  if (mp3->isRunning()) {
    if (!mp3->loop()) mp3->stop();
  } else {
    Serial.printf("MP3 done\n");
    delay(1000);
  }
}
※ mp3->loop()を只管ループで実行する。

● AudioOutputI2SNoDACの場合も SetPinoutの I2S_DOUTで GPIOピンを指定する。

esp8266 AudioOutputI2SNoDAC change pin #431
AudioOutputI2SNoDAC is a subclass of AudioOutputI2S. The following method is available.
SetPinout(26,25,22); // bclkPin = 26 wclkPin = 25 doutPin = 22
You can change the pin

● AudioOutputI2SNoDACの場合の音量の設定は SetGainで最大は 3.999

// float f
// Max 4.0 but Become Silent so I set 3.999
pOutput->SetGain(3.999);

 ソース上では最大で 4.0まで設定できますが、4.0を設定すると音が出なくなりました。

ESP8266Audio/src/AudioOutput.h
virtual bool SetGain(float f) { if (f>4.0) f = 4.0; if (f<0.0) f=0.0; gainF2P6 = (uint8_t)(f*(1<<6)); return true; }


● ESP32で AudioOutputI2SNoDACで MP3オーディオを再生する方法、圧電ブザーの接続の回路図

・ESP32で AudioOutputI2SNoDACで MP3オーディオを再生する方法、圧電ブザーの接続の回路図
ESP32で AudioOutputI2SNoDACで MP3オーディオを再生する方法、圧電ブザーの接続の回路図



・ESP32に小型で薄型の圧電ブザー(5mm四方)を半田付けしました
ESP32に小型で薄型の圧電ブザー(5mm四方)を半田付けしました


ESP32に小型で薄型の圧電ブザー(5mm四方)を半田付けしました


ESP32に小型で薄型の圧電ブザー(5mm四方)を半田付けしました




● ESP32で AudioOutputI2SDACで MP3オーディオを再生する方法、I2S DAC接続の回路図

・ESP32で AudioOutputI2SDACで MP3オーディオを再生する方法、I2S DAC MAX94357の回路図
ESP32で AudioOutputI2SDACで MP3オーディオを再生する方法、I2S DAC MAX94357の回路図



・ESP32で AudioOutputI2SDACで MP3オーディオを再生する方法、I2S DAC CS4344の回路図
ESP32で AudioOutputI2SDACで MP3オーディオを再生する方法、I2S DAC CS4344の回路図
 ※ CS4344は MCLKが必要です。

 ※ PCM5102は SCKを GNDに接続して使えます。
  BCLK
  LRC
  DIN


●その他の MP3再生用の Arduinoライブラリ

ESP32-audioI2S

 DAC PT8211に対応している。
16bit2chDAコンバータ PT8211 [PT8211-S-TP]
void Audio::setI2SCommFMT_LSB(bool commFMT) {
    // false: I2S communication format is by default I2S_COMM_FORMAT_I2S_MSB, right->left (AC101, PCM5102A)
    // true:  changed to I2S_COMM_FORMAT_I2S_LSB for some DACs (PT8211)
    //        Japanese or called LSBJ (Least Significant Bit Justified) format

ESP32 MP3 Player



Tags: [電子工作]

●関連するコンテンツ(この記事を読んだ人は、次の記事も読んでいます)

ESP32で東方の Bad Apple!!の動画を 128 x 64 dotの OLED SSD1306で再生する!
ESP32で東方の Bad Apple!!の動画を 128 x 64 dotの OLED SSD1306で再生する!

  ESP32で東方の Bad Apple!!の動画を再生する!実際にはパラパラ漫画です

LilyGO ESP32 LoRa SX1276を買ってみた、LPWAの急先鋒、LoRaWANも無料
LilyGO ESP32 LoRa SX1276を買ってみた、LPWAの急先鋒、LoRaWANも無料

  LilyGO ESP32 LoRa SX1276を買ってみた

LoRa通信を使用してポストに郵便物が投函されるとスマホの LINE宛に通知する IoTの作り方
LoRa通信を使用してポストに郵便物が投函されるとスマホの LINE宛に通知する IoTの作り方

  LoRaを使用した IoT郵便受け LoRa IoT Mailbox Sensor with LINE Messaging API

ESP32で Slackに「勤怠管理」メッセージをワンボタン操作で投稿する方法
ESP32で Slackに「勤怠管理」メッセージをワンボタン操作で投稿する方法

  Slackの勤怠チャンネルに毎日毎日毎日毎日 手動で投稿するのが馬鹿らしいので ESP32で作った

ESP32のプログラムを ESP8266に移植する方法、Arduinoでも微妙に互換性が無い所が有ります
ESP32のプログラムを ESP8266に移植する方法、Arduinoでも微妙に互換性が無い所が有ります

  ESP32の https SSLや GPIO割込み等を ESP8266に移植する方法

Espressif ESP32 Arduino互換でスケッチが使える WROOM32開発基板
Espressif ESP32 Arduino互換でスケッチが使える WROOM32開発基板

  Espressif ESP32 32ビット Arduino互換マイコンボードをお手軽に開発する方法

Espressif ESP8266 Arduino互換でスケッチが使える ESP-12Eモジュール基板
Espressif ESP8266 Arduino互換でスケッチが使える ESP-12Eモジュール基板

  Espressif ESP8266 ESP-12-E NodeMCU V1 ESP12 CP2102

ESP8266で Python言語 MicroPythonを動かす方法
ESP8266で Python言語 MicroPythonを動かす方法

  Windows 10の WSL環境で ESP8266で Python言語 MicroPythonを動かします

ESP32で Python言語 MicroPythonを動かす方法
ESP32で Python言語 MicroPythonを動かす方法

  Windows 10の WSL環境で ESP32で Python言語 MicroPythonを動かします

LilyGO TTGO T-display ESP32/ RP2040/ GD32 GD32VF103CBT6を買ってみた
LilyGO TTGO T-display ESP32/ RP2040/ GD32 GD32VF103CBT6を買ってみた

  LilyGO TTGO T-display ESP32/ RP2040/ GD32 GD32VF103CBT6を買ってみた

新型 Arduino UNO R4 Minimaのクローンを買った!!
新型 Arduino UNO R4 Minimaのクローンを買った!!

  Renesas RA4M1 Arduino UNO R4 Minima clone 无名科技Nologo Tech




[HOME] | [BACK]
リンクフリー(連絡不要、ただしトップページ以外は Web構成の変更で移動する場合があります)
Copyright (c) 2023 FREE WING,Y.Sakamoto
Powered by 猫屋敷工房 & HTML Generator

http://www.neko.ne.jp/~freewing/hardware/espressif_esp32_play_mp3_music/