MP3プレーヤ第14作


更新: 2019/04/14, 2019/05/01, 2019/06/15, 2019/06/23

プラン・概要など

  • 第10作と同じく無線コントロール式のMP3プレーヤ
  • Raspberry PI zero Wのwifi/BLE機能を活用できないか検討する。→ コントローラ側の構成のいいアイディアが見つからなかった。それに代えてXBEEも検討したが、入手したXBEEがどうにも動作しなかった。結局、第10作と同じくTWELITE DIPを使うことにした。
  • 第10作と同じく外部アンプ+スピーカに接続して使うことを想定。
  • 接続先となるミニコンポのUSBメモリ用電源を活用できないか検討する。

ホスト/電源回路

  • 外部アンプにするKENWOODのミニコンポにはUSBメモリの音源を再生する機能がある(USBメモリとの相性とかの問題があって、この機能はほとんど使っていない)。このUSBポートの電源ラインを本製作の電源として利用することを考えた。
  • とはいえこのUSBラインが本製作の全電源を賄うことはむつかしいと思われるので、フォトカプラを介して起動スイッチの機能、およびミニコンポの起動状態取得の機能とした。
  • ミニコンポの起動によって本機のPICとTWELITE DIPも起動するが、その後はPICが電源回路の動作を維持する(HOLD_POWER)。
  • 本機自体の電源スイッチもある(SW/POWER)。こちらから起動したときはRaspberry PIも同時に起動する。

ホスト/デジタル部分

  • RaspberryPIは本機の電源スイッチ(SW/POWER)またはコントローラからのアクセスにより起動する。
  • TWELITE DIPのファームウエアはメーカが提供しているApp_IOをそのまま使う。(第9、10作ではApp_IOを改造して独自のプログラムとしたが、低水準すぎてあまり楽しくない)

ホスト/アナログ部分

  • DACは「ヘッドホンアンプ製作実例集(CQ出版)」に付属のUSB-DAC基板を使う。
  • このUSB-DAC基板の3つのピンしか使わない(電源はRaspberry PIのUSBバスパワー)。他はオープン。
  • FM放送やCDを聴くときと同じボリュームレベルで本MP3プレーヤを使えるようにしたいのでオーディオアンプを追加している。

Raspbian のインストールと設定

  • 2017-03-02-raspbian-jessie-lite (書き込みソフトは Etcher-1.4.4-x64/Windows10)
  • Windows上でRaspbianの設定
     ・config.txtを編集する(末尾に dtoverlay=dwc2 の行を追加)。
     ・cmdline.txtを編集する(行途中、rootwaitの後ろあたりに modules-load=dwc2,g_ether を追加)。
     ・bootディレクトリにsshファイルを作成する。
  • USBケーブル経由でログインできることを確認
  • 起動時間短縮のための各種設定
    • sudo systemctl disable dphys-swapfile
    • sudo systemctl disable keyboard-setup
    • sudo systemctl disable kbd
    • sudo systemctl disable triggerhappy
    • sudo systemctl disable plymouth
    • sudo systemctl disable plymouth-start
    • sudo systemctl disable ntp
    • /boot/cmdline.txt の行末に quiet を追加 (sudo vi /boot/cmdline.txt)
    • /boot/config.txt に force_turbo=1 を追加 (sudo vi /boot/config.txt)
    • 固定IP化:/etc/network/interfaces に以下を追記
      allow-hotplug usb0
      iface usb0 inet static
      address 192.168.137.9
      netmask 255.255.255.0
      (gatewayの記述なし)
    • sudo systemctl disable dhcpcd
    • 再起動してUSBケーブル経由のログインができることを確認。
  • WIFI設定(dhcpcdは無効のまま)
    • sudo iwlist wlan0 scan
      を実行してwifiネットワークを検出できるかを確認(出力結果に "ESSID:Buffalo ...."が出ている)。
    • wpa_passphrase "Buffalo-G-...(SSID)" を実行し、暗号化キーを入力。
      出力結果をコピーする。
    • sudo vi /etc/wpa_supplicant/wpa_supplicant.conf 実行。
    • ファイルの末尾にペーストする。
    • 平文で残されている暗号化キーの行を削除してから保存する。
    • sudo wpa_cli -i wlan0 reconfigure
    • raspi-config → 4 Localisation Options → I4 Change Wi-Fi Country → JP を選択して再起動
    • USBケーブル経由でログイン
    • 固定IPを振る。sudo vi /etc/network/interfaces
      allow-hotplug wlan0
      #iface wlan0 inet manual
      iface wlan0 inet static
      address 192.168.??.??
      netmask 255.255.255.0
      wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
    • 再起動後、USBケーブル経由でログイン
    • ifconfig wlan0 を実行してIPアドレスを確認。
    • USBケーブルをバスパワー専用につなぎかえて再起動
    • 設定したIPでログインできること確認。
    • WinSCPもつながることを確認。
  • wiringPi-8d188fa.tar.gz [(1)tar -xvf ... (2)cd ... (3)./build]
  • libid3tag-0.15.1b.tar.gz [(1)tar -xvf ... (2)cd ... (3)./configure (4)make (5)sudo make install]
  • libmad-0.15.1b.tar.gz [(1)tar -xvf ... (2)cd ... (3)./configure (4)Makefile編集 (-fforce-mem を削除して保存) (5)make (6)sudo make install]
  • UARTの有効化 [(1)sudo raspi-config (2)5 Interfacing Options (3)P6 Serial (4)No/login shell disable (5)Yes/serial port enable ]
  • alsa-lib-1.0.28.tar.bz2 [(1)tar -xvf ... (2)cd ... (3)./configure (4)make (5)sudo make install ]
    alsa-libのバージョンはraspbian-jessie-liteにインストール済みのaplayのバージョンに合わせた。
  • madplay-0.15.2b.tar.gz [(1)tar -xvf ... (2)cd ... (3)./configure --with-alsa (4)make (5)sudo make install ]
  • ここでmadplayを実行すると"cannot open shared object file: ...."のようなエラーがでる。次のコマンドが必要。
  • sudo /sbin/ldconfig
  • madplay --version (動くこと確認)
  • USB Audio設定
    • /lib/modprobe.d/aliases.conf を編集
      options snd-usb-audio index=-2 をコメントアウト
    • /boot/config.txt を編集
      dtparam=audio=on をコメントアウト
    • USB-DACをraspberry piに接続
    • 再起動
    • madplayでmp3ファイルを再生できることを確認
      madplay MP3ファイル名
  • libao-1.2.0.tar.gz [(1)tar -xvf ... (2)cd ... (3)./configure (4)make (5)sudo make install ]
    mpg321が必要とする。
  • sudo /sbin/ldconfig
  • mpg321_0.3.2.orig.tar.gz [(1)tar -xvf ... (2)cd ... (3)./configure (4)make (5)sudo make install ]

TWELITE DIPの設定

  • ファームウエアはメーカが公開している App_IO-Master-BLUE.bin (Ver 1.2.7)
  • TWELITEへの書き込みはTWELITE R と TWE-Programmer.exe (0.3.5.3 / Windows10)
  • インタラクティブモードで以下の設定
    • アプリケーションID:TWELITE DIPのシリアル番号の一つ
    • 論理デバイスID:子機として使う方に"02"、親機として使う方にも"01"を設定した。
    • 周波数チャンネル:20
    • 送信出力と再送回数:00
    • オプションビット:00010020 (親機:0入力12出力、子機:0出力12入力、定期送信の停止、子機受信有効)

作成したプログラム(ホスト/Raspberry PI)

  • mp3_14.sh ... crontabの@rebootに登録されて自動起動する。
  • mp3_14

作成したプログラム(ホスト/PIC)

作成したプログラム(コントローラ/PIC)


MP3プレーヤのページに戻る トップページに戻る