引き続き今回もRaspberry Pi Zero 2 Wをいじって、基本的な使い方を調べたい。
で、今回のテーマは
・PCM5102を繋いで、MP3ファイルの再生
を試してみたい
いつものようにChatGPTに、PCM5102を繋いでmp3音源を再生するにはどうすれば良いか、聞いてみた。
まず接続を、このようにするよう、指示があった
BCK GPIO18 (ピン12) - I2S BCLK
DIN GPIO21 (ピン40) - I2S DIN
LRCK GPIO19 (ピン35) - I2S LRCLK
SCK 未接続でOK (PCM5102内部で生成)
で、回路図はこちら
今回はロータリーエンコーダーとカラー液晶は使わないけど、いずれ使うので繋いでおく。
ブレッドボードでこんな感じ
とりあえず、イヤホンを挿して動作確認する。
次にI2Sドライバを有効化
テキストエディタで編集sudo nano /boot/firmware/config.txt
ファイルを開いたら以下を追加:
# PCM5102 用 I2S 設定
dtparam=i2s=on
dtoverlay=hifiberry-dac
dtparam=i2s=on
dtoverlay=hifiberry-dac
保存してリブート
再生用の適当なファイルが無かったので、ここ↓からフリー音源をダウンロード
pastel_house.mp3と言う名前で保存。
リモート接続のRealVNCでは、ファイルの転送も出来るので、PCからRspberry Piのpythonファイルを収めている所に転送しておく。
ChatGPTによると、MP3再生にはpygame が安定していて軽量なのでおすすめです、ということなので、簡単なコードを書いてもらった
import pygame
import time
# 初期化
pygame.mixer.init()
#音量の制御
pygame.mixer.music.set_volume(0.3) # 0.0〜1.0
# 音楽ファイルを読み込み (MP3 / AAC / WAV)
pygame.mixer.music.load("pastel_house.mp3")
# 再生 (ループ1回なら -1 にすると無限ループ)
pygame.mixer.music.play(-1)
# 再生時間分スリープ
while pygame.mixer.music.get_busy():
time.sleep(1)
Thonnyにコピペして実行
最初、配線間違いで焦ったが、繋ぎなおしたらちゃんと動作した・・・・
と思ったら、再生速度が遅い!
え、なんで、と思ってChatGPTに訊いて色々試してみたが、全然治らない。
ネットで調べたら以下の記事があった。↓
どうやらPCMと前回試したpigpiodと競合が起きているらしい。
pigpioが、ヘッドフォンジャック出力との競合を避けるために、PWM用タイマーを使わずにPCM用タイマーを使ってPWM機能を提供しているので、今度はPCMと競合が起きているらしいのだ。しかもpigpioは常駐サービスなので、使っている意識がないときでも使ってる。
ああ、これを修正すれば解決できると思ったが、記事の中で編集する以下のファイル↓
/etc/systemd/system/pigpiod.service.d/public.conf
/etc/systemd/system/pigpiod.service.d/public.conf
が現在のOSには無いのである。
記事は3年以上前で、今のOSとは異なるようなのである。
今度はChatGPTに、上記記事に有るように、ヘッドホンジャック出力は使わないので、pigpioがPWMタイマーを使う設定での起動とするには、どうすれば良いか訊いた。
試行錯誤の結果、オーバーライド設定ファイルを直接作る 以下の方法で上手く動作した。
sudo mkdir -p /etc/systemd/system/pigpiod.service.d
sudo nano /etc/systemd/system/pigpiod.service.d/override.conf
sudo nano /etc/systemd/system/pigpiod.service.d/override.conf
エディタが開いたら以下を記入
[Service]
ExecStart=
ExecStart=/usr/bin/pigpiod -t 0 -l
再起動して以下を実行
ExecStart=
ExecStart=/usr/bin/pigpiod -t 0 -l
再起動して以下を実行
ps aux | grep pigpiod
出力に以下が含まれていればOK
/usr/bin/pigpiod -t 0 -l
今度は再生速度が正常になり、軽快な音楽が聞こえるようになった
まったく・・・何か動かそうとするたびに問題が起こる。
素人にはなかなか厳しいものが有るのである。
だが、ようやくこれで、Webラジオを作るための下準備は出来た。
次回からようやくWebラジオを作っていきたいのである。
こんな調子で大丈夫だろうか?
「そんなことより、おいらを撫でたらどうニャ?」





