Skip to content

ys4i/M5core2-mp3-player

Repository files navigation

M5Stack Core2 単一トリガ順次再生 MP3プレーヤー(M5Unified対応)

M5Stack Core2 v1.1 用スケッチ(M5core2-mp3-player.ino)。
microSD 直下に置いた 0001_xxx.mp3 などを、1 つの入力(タッチ A/B/C または任意 GPIO)を押すたびに順番に再生します。再生中はトリガ単押しで次曲スキップ、ダブルタップ(既定 400ms 以内)で停止。
ログはシリアル(115200bps)と画面に表示し、画面下部のスライダーで M5.Speaker の音量を変更できます。

依存

  • Arduino IDE 2.x(ボード設定: M5Stack-Core2、esp32 3.x / IDF v5 対応可)
  • ライブラリ: M5Unified, ESP8266Audio(AudioFileSourceSD / AudioGeneratorMP3 / AudioOutputI2S)

MP3 ファイル配置と命名

  • microSD のルート直下のみを走査(サブディレクトリ非対応)。
  • 先頭 4 桁が数字、5 文字目が非数字の 0001_xxxx.mp3 形式をプレイリストに採用。番号は 1〜9999、拡張子は大小文字を問わない .mp3 のみ。
    • DFPlayer mini用のSDカードをそのまま転用可能
  • 起動時に番号順でソートし、最後まで再生すると先頭に戻ります。規則外のファイルはスキップされます。
    • 起動時に読み込まれたファイルが表示されます

トリガと操作

  • config.hTRIGGER_CONFIG で入力を選択
  • TriggerType::Touch + TouchButtonId::A/B/C にすればタッチボタンでも動作。
  • Idle 時: トリガ 1 回で現在のインデックスの曲を再生開始(初回は最小番号から)。再生終了後は自動で Idle に戻ります。
  • 再生中: トリガ単押しで次の曲にスキップし再生継続。ダブルタップ判定 (DOUBLE_TAP_WINDOW_MS, 既定 400ms) で再生停止。

音量/UI

  • 起動時の音量は USER_SPK_VOLUME(0〜255)。画面下部のスライダーでリアルタイム変更し、USER_MP3_GAIN でデコーダ出力ゲインを調整できます。
  • ログ領域とスライダーを描画するため、LoggingVolumeUI が表示用ミューテックスを共有しています。

ハードウェア設定のメモ

  • I2S は Core2 内蔵 DAC 経由でモノラル出力(BCLK=12, LRCK=0, DATA=2)。
  • microSD は VSPI: SCLK=18, MISO=38, MOSI=23, CS=4。M5.config().output_power = true でスピーカ/SD 電源を有効化してから SD.begin() を呼びます。

使い方

  1. microSD ルートに 0001_*.mp3, 0002_*.mp3 ... を配置。
  2. 必要に応じて config.hTRIGGER_CONFIG, 音量/ゲイン、ダブルタップ判定時間や UI 高さを調整。
  3. Arduino IDE で M5core2-mp3-player.ino を開き、ボード設定を Core2 にして書き込み。
  4. 起動後にシリアルまたは画面ログでプレイリスト読込結果と SD 初期化結果を確認。
  5. 設定した入力を押して再生・スキップ・停止を確認(ボリュームは画面下スライダーで調整)。

ライセンス

本リポジトリは MIT License で提供されます。詳細は LICENSE を参照してください。

免責事項

本ソフトウェア/ハードウェアは「現状のまま」提供され、一切の保証はありません。
利用は利用者自身の責任において行ってください。
作者は損害等について一切責任を負いません。

フィードバック募集中

このリポジトリを使った方は、GitHub Discussionsやtwitter(@yasushi_tech)に「どんな用途で使ったか」共有いただけると嬉しいです(任意)。

About

DFPlayer mini風MP3プレーヤー

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors