け い ざ ん の D I Y 工 房

◆Home
◆住まいの D I Y
◆パソコン D I Y
◆ROBOT D I Y
◆電子工作 D I Y
◆Science

● pirate Audio DACを設定する

 2023.07.25                    更新:2023.12.22

 pirate Audio DACには LCDと4つの Buttonがついています。
 WiFiの無い環境やパソコンの無い環境でも音楽が聞ける様に
 このLCDと4つの Buttonだけで音楽が聴ける様に設定します。


 Pirate-audio DAC
pirate



 Button 機能割付
pirate



 必要となるSoftware一覧
 ・RaspbrryPi 32bit Lite (Micro SD 4GB)
   Linux raspberryPi 6.1.21+ armv6l GNU/Linux
   Version Raspbian GNU/Linux 11 (bullseye)
 ・mopidy-Audio
 ・Pirateplayer



 Raspberry Pi Software install
 1. SD Cardに Raspberry Pi Lite (32bit)を Downloadして install
 2. 作成した SD Cardを Raspi zeroにsetして初期設定を行う。
 3. /etc/dhcpcd.confを設定して IP Addressの固定をしておく。
 4. Raspberry Pi Lite には、gitなどが入っていないので先ず install
   $ sudo apt install git python3-rpi.gpio python3-spidev python3-pip
    python3-pil python3-numpy

 mopidy install
 1. Pirate-Audio install
   $ git clone https://github.com/pimoroni/pirate-audio
   $ cd pirate-audio/mopidy
   $ sudo ./install.sh
 2. mopidy.configの設定
   $ cd /etc/mopidy
   $ sudo nano mopidy.conf
   [raspberry-gpio]
   enabled = true
   bcm5 = play_pause,active_low,250
   bcm6 = volume_down,active_low,250
   bcm16 = next,active_low,250
   bcm20 = volume_up,active_low,250
   #bcm24 = volume_up,active_low,250
    bcm20とbcm24が動作すると誤表示するので bcm24を
    comment outする。
   [local]
   enabled = true          ・・・追加
   media_dir = /home/pi/Music    ・・・追加
   [http]
   enabled = false  → true     ・・・変更
   hostname = 0.0.0.0  → 192.168.1.11  ・・・変更
   port = 6680             ・・・追加
   [spotify]
   enabled = false  → true     ・・・変更
    以上を変更して ctl+oで保存、ctl+xで終了
 3. /boot/config.txtの設定追加
   $ cd /boot
   $ sudo nano config.txt
    dtoverlay=hifiberry-dac
    gpio=25=op,dh
    dtparam=spi=on
    dtparam=audio=off
 4. 電源起動で有効になる様に設定。
   $ systemctl enable mopidy.service
   $ systemctl start mopidy.service
   $ systemctl status mopidy.service
    active (running)が出れば正常動作しています。


 mopidy Web Top画面表示
pirate

  web browserを開いて 192.168.1.11:6680 を入力する。
  iris に loginする。


 iris 設定画面表示
pirate

  この状態でも Web画面から irisに loginすると Web画面から選曲もできるし
  pirate-Audioから音も出る。
  Web画面から選曲している間は pirate-Audio側の Buttonで停止・再生は
  動作する。


 Pirateplayer install
 1. まず installするもの
   $ sudo apt install gobject-introspection libgirepository1.0-dev
    libcairo2-dev
 2. pipで pirateplayer install
   この時必ず sudoを付けて installをおこなう。
   pirateplayerをroot以外でinstallすると動作しない。
   関連する numpyなども sudoをつけて installしないと Errorが出る。
   
   $ sudo pip install pirateplayer
    これで pirateplayerが /usr/local/binに installされる。
    
 3. pirateplayer.serviceの設定
   login時にnetwork Fileの終了を待たずにpirateplayerが起動してしまうと
   Failed status=1/FAILUERが出て起動しない。
   mopidyの[Unit]部分と同じ項目を書いたらErrorは出なくなった。
   起動はmopidyより後になる様に pirateplayerを設定する。
   systemdは .bashrcや.profileに書いたPATHは読み込みをしないので、
   [Service]欄に Environment=piratePathを記述する。
   ExecStart= の行の後半部分には --config PATHを書いておく。
   sudoを付けてinstallするか PermissionStartOnly=trueを入れる。

 4. PATHの作成
   /etcに sysconfig Folderを作成して piratePath Fileを作成する。
   PiratePathには /usr/loca/binの PATHを記述する。
   $ cd /etc
   $ sudo mkdir sysconfig
   $ cd sysconfig
   $ sudo nano piratePath
     PATH="/usr/local/bin:$PATH"


 5. pirateplayer.serviceの作成
   pirateplayer.serviceを systemdに作成する。
   pipで installしたらこれも作ってくれなかった。

  作成した pirateplayer.serviceの設定 File




 ・pirateplayer.serviceの設定内容
  $ cd /usr/lib/systemd/system
  $ sudo nano pirateplayer.service
   [Unit]
   Description=PiratePlayer Service
   After=avahi-daemon.service
   After=dbus.service
   After=network-online.target
   Wants=network-online.target
   After=nss-lookup.target
   After=pulseaudio.service
   After=remote-fs.target
   After=sound.target
   After=mopidy.service

   [Service]
   User=pi05
   EnvironmentFile=/etc/sysconfig/piratePath
   PermissionsStartOnly=true
   ExecStart=/usr/local/bin/pirateplayer --config /usr/lib/systemd/system/pirateplayer.service

   [Install]
   #WantedBy=default.target
   WantedBy=multi-user.target


 ・pirateplayer.serviceの場所
   $ /usr/lib/systemd/system/pirateplayer.service

 ・ シンボリックリンクの設定
   /etc/systemd/systemにシンボリックリンクを作成
   $ ln -s /usr/lib/systemd/system/pirateplayer.service  /etc/systemd/system/multi-user.target.wants

   再起動して statusを確認します。
   $ systemctl --user enable pirateplayer.service
   $ systemctl --user start pirateplayer.service
   $ systemctl --user status pirateplayer.service
    active (running)が出れば正常動作しています。

 6. pirateplayerのconf.ini
   pipで installしたら conf.iniを作ってくれなかった。
   pirateplayerの programが読み取りに行く Folderに conf.iniを作る。

   $ /home/pi/.config/pirateplayer/conf.ini
    [PLAYER]
    root = ~/Music
    [BUTTON]
    a = 5
    b = 6
    x = 16
    y = 20


 7. pirateplayer Programの場所
   
  ・binの場所
   $ /usr/local/bin/pirateplyer
  ・python programの場所
   $ /usr/local/lib/python3.9/dist-packages/pirateplayer
     __main__.py
     __init__.py
     view.py
     controller.py
     library.pyなど


 8. gstreamer install
   mopidyを installすると gstreamerの programが installされるので
   手作業で installする必要はなくなった。(2023.12.22)

 9. Errorの対処
  途中で libcblas.so.3と libopenblas.so.0 が無い Errorが発生する。
  libcblas.so.3 は libatlas3-baseに含まれるのでこれを installする。
  libopenblas.so.0 は libopenblas-devに含まれるのでこれを installする。
  ValueError Namespace Gst not available ・・・Gst Errorがでたので
  python3-gst-1.0を installする。


  ・install command
   $ sudo apt-get install libatlas3-base
   $ sudo apt-get install libopenblas-dev
   $ sudo apt-get install python3-gst-1.0


 pirateplayer起動画面
pirate



   Pirateplayer LCD画面が1分で消える
  LCDの画面が1分で消えた後は Button操作後の内容が表示されないので
  選曲ができなくて不便
  $ cd /usr/local/lib/python3.9/dist-packages/mopidy_pidi
  $ sudo nano ext.conf
   [pidi]
   enabled=true
   display=st7789
   rotation=90
   idle_timeout=60  ⇒ 36000に変更
   #を付けて無効にすると Errorが出るので36000(10時間)にした。


 pirateplayer起動後の LCD画面
pirate


  電源投入後の Pirate-Audio mopidy の LCD表示。
  この状態では「A」と「X」の Buttonは動作していない。
  「B」と「Y」の Volume Controllは出来る。

  Passwordを keyinして raspiに loginすると Pirateplayerが有効になる。
  その後は 4つの Buttonで、曲選択・再生・停止が可能になる。
  raspi zeroが自動 loginする様に raspi-configで修正する。
  $ sudo nano raspi-config
  簡易 GUI が表示されたら下記項目を変更する。
  1. System Option   ・・・Select
  2. Boot/Auto Login  ・・・Select
  3. B2 Console Autologin  ・・・OK
   Finish 選択して終了・再起動。

  mopidy.localを開いて ext.confに PATHを追加する。
  $ cd /usr/local/lib/python3.9/dist-packages/mopidy_local
  $ sudo nano ext.conf
   [local]
   #media_dir=$XDG_MUSIC_DIR      comment outする
   media_dir=$XDG_MUSIC_DIR/Music   Music folderを追加
   これは再起動しないと有効にならない   → $ sudo reboot


 Button操作でも選曲メニューが表示される様になった。
pirate



  LCD画面の表示が更新されない
  PCから mp3を転送しても LCD画面に反映されません。
  これは iris Web画面から Local scanを行うか又は LXTerminalから scanを
  行なわねば反映されません。
  1. Web画面からの操作: irisに loginして下記操作
   「設定」画面の「詳細」⇒「ローカルスキャン開始」を押して反映させる。
  2. LXTerminalを開いて command入力により反映させる。
    $ sudo mopidyctl local scan



 曲を選択した後の LCD画面
 Music folder に cover.pngという fileを追加して背景にする
pirate



  Bluetooth headset 接続
  raspberryPi zeroの bluetoothは pairingまでは出来るが
   Errorが出てconnectが出来ない。

  $ systemctl status bluetooth.service   
  Failed to set privacy:Rejected (0x0b)   
  これは bluealsa が installされていない事による。

  $ sudo apt install bluealsa         
   install出来ない。・・・なぜ?

  原因は、raspberryPi zeroのこの versionの bluealsaはまだ開発中だった。
  Linux raspberryPi 6.1.21+ armv6l GNU/Linux
  Version Raspbian GNU/Linux 11 (bullseye)
  Raspbian version 12から提供される予定。


----------------------------------------------------------------------------------------------------------------------------
・けいざん美術館
・Blog 油絵もろもろ
・EXCEL VBAであくせく
・けいざんの食べログ


                 Site Designed by Kasio Keizan