趣味としての電子工作の製作集です。
記述内容の正確性などについて製作者は一切責任を負いません。

最終更新:2012/07/02

 

OLED表示 小型MP3プレーヤ

  • 写真
     
    (サイズ比較)

    (曲情報表示)           (スペクトラム表示)        (フォルダ選択画面)
  • 概要
    • 00年代電子工作の定番・MP3プレーヤ
    • ディスプレイに OLED 使用、視野角が広いためどこからでも見やすくきれい
    • 実用に耐えうる仕様
      • 単四電池2本 で 10時間以上再生可能
      • microSD/SDHC (〜32GB : FAT16/32) 対応
      • id3タグ(v1+v2)+日本語ファイル名(8.3+LFN)対応 豊富な情報表示
      • 連続 / シャッフル再生
      • 再生ディレクトリを複数選択可能
      • オーディオスペクトラム表示
      • レジューム機能
      • 高音・低音強調
    • この手の製作としては小型省スペース
  • プロジェクト一式・ダウンロード

詳細説明

  • 回路について
    • MP3デコーダ
      • 定番IC VS1011E を使用。
      • mp3 だけデコードできればよいので、VS1053 でなくこれを採用したが、こちらの方がアナログ性能が劣るようなのでやや後悔。
      • サイズ制約から LQFP(0.5mm ピッチ) を使用。
        • 今回はユニバーサル基板に直付け+空中配線
      • デコーダ内蔵の DSP も活用(オーディオスペクトラム表示)
    • 電源回路
      • 乾電池2本 -> 3.0V の昇圧には、BL8530-30 (上海貝岭)を使用。
      • PFM 制御なので、無出力時の消費電力が微小(12uA/typ.)
      • マイコンをスリープモードにしておけば、待機時でも常時通電でOK
      • 待機時消費電力 17uA @1.9V
    • マイコン
      • 省スペースでスリープモードの消費電力が小さい ATMEGA32P (ATMEL) を使用。
      • QFP(0.8mm ピッチ) をユニバーサル基板に直付けして配線。
      • RAM、ROM の制約がかなりきつく、unicode 変換テーブル、日本語フォントは microSD に格納する羽目になってしまった。(反省点)
    • OLED
      • aitendo で売っていた UG-2864AMBAG01 を使用
        • 128 x 64 エリアカラー OLED(有機LED)ディスプレイ
      • OLED用電源として、別途 7-15V の高電圧が必要
      • せっかくなのでデバイス内蔵の DC-DC コンバータを使用。
    • OLED とのI/F
      • ピン節約のため、シリアル接続(SPI)
      • SDカード、mp3デコーダIC と OLED で、SPI の動作種別が異なるので注意
      • SPI 接続だと、OLED内のデータを読み込むことはできない
  • 消費電力
    • 待機時消費電流:17uA @ 1.9V
    • 動作時消費電流:
      • OLED OFF -> 65mA @ 2.4V
      • OLED ON -> 90mA @ 2.4V
    • 実測連続動作時間(ENERG NiMH 600mAh 2本使用)
      • 条件:OLED常時表示、スペアナ常時実行、OLEDコントラスト2
        • 7h 26min
      • 条件:OLED 60秒 表示、スペアナ常時実行、OLEDコントラスト2
        • 9h 33min.
      • まともな電池を使えば、連続10時間動作は十分可能
  • プログラムについて
    • FAT16/32 は、自作ライブラリを実装して対応
      • したがって、SDHC にも対応 大容量メモリカードが使える
    • フォルダ構成
      • ルートにサブフォルダをつくり、サブフォルダ内にオーディオファイルを置く
      • ルートにフォントファイル(font.bin) と unicode テーブル(table.bin) を置く
    • 日本語対応
      • 2種類のロケールを使う必要がある
        (LFN : unicode / 8+3, ID3tag : Shift-JIS)
      • unicode -> SJIS 変換テーブルが必要
      • ROMに入りきらないので、microSD 内に保存して、随時読み込み
      • 日本語フォントも同様
    • シャッフル再生
      • よくあるランダム再生ではなく、シャッフル再生
      • 同じ曲が短時間に何曲も繰り返すことを防ぐ
      • 曲順リストをメモリ上に展開する必要がある
      • したがって、1フォルダ当たりの曲数が 320 曲までと制限される
    • 複数フォルダ選択
      • プレイリストを静的に置くのではなく、再生フォルダを複数選択できることで対応する
      • もちろん複数フォルダのシャッフル再生にも対応
    • レジューム機能
      • 電源を切っても前の状態を保持
  • フォントについて
    • 任意の等幅12ドット BDFフォントが使用可能
    • 英字フォント(12x6)についてはプログラムROM 内に格納
    • 日本語フォント(12x12)については、microSD 内に格納
    • 付属コンバータにより、バイナリ&ヘッダファイルにコンバート
      • 英字フォント:"font1.h" というファイル名でソースコードと同じフォルダへ
      • 日本語フォント:"font.bin"というファイル名で microSD のルートへ
  • unicode 変換テーブルについて
    • Unicode ⇔ SJIS 変換テーブル:jis0208.txt
    • 付属コンバータにより、バイナリにコンバート
      • "table.bin"というファイル名で microSD のルートへ

操作方法

  • 4ボタン(MENU, SEL, A, B)で制御
    状態 MENU

    MENU
    長押し

    SEL A A
    長押し
    B B
    長押し
    電源OFF 電源ON
    -> 再生
    - - - - - -
    再生 オプション 電源OFF 一時停止 次の曲へ 音量+ 前の曲へ 音量−
    一時停止 ファイル選択 電源OFF 再生 次の曲へ シーク
    (早送り)
    前の曲へ

    シーク
    (巻き戻し)

    ファイル選択 フォルダ選択 電源OFF 再生 カーソル移動   カーソル移動  
    フォルダ選択 フォルダ
    複数選択
    電源OFF ファイル選択 カーソル移動   カーソル移動  
    フォルダ
    複数選択
    フォルダ選択 電源OFF チェック
    ON/OFF
    カーソル移動   カーソル移動  

 

画面説明

  • 再生画面(スペクトラム表示がOFFの場合)/一時停止画面

    上から、(曲名、再生位置、アーティスト名、アルバム名、ストリーム情報+電池電圧)
     
  • 再生画面(スペクトラム表示がONの場合)

    スペクトラム表示は、対数軸、ピークホールドつき
     
  • ファイル選択画面

    リストは再生順に並んでいる
     
  • フォルダ選択画面
  • フォルダ複数選択画面






もどる