エントリー

セレクター兼ネットワークプレーヤーの作製

自前のコンポ作製の第二弾として「パワーアンプ」はちょっと材料に問題があって後回しとなり「セレクター」とした

セレクター仕様

選択するメディアを考えて,

  • GoogleTV(外部入力:AUX or EXT)
  • FMラジオ
  • Bluetooth

ってところか・・・少し考えて「ネットワークプレーヤー」の良いかもと材料が手持ちにあり閃いた

IMG_20250323_153058.jpg

「ラズパイ」+「DAC」なので「Volumio」が良さそう

となるとラジオやBluetoothもVolumioで可能かな思っていたら,ラジオはネットで配信している局だけなので通常聴くFMーEHIMEなどローカル局は無いし,Bluetoothは有料版で対応となっていてこれが高額だったので,

  • Volumio
  • FMラジオ
  • Bluetooth

として,手持ちの3回路以上のロータリースイッチが3接点しかないため「GoogleTV」は外部ジャック化で入力があると「外部入力」となるように決定

名称は「セレクター兼ネットワークプレーヤー」か「ネットワークプレーヤー兼セレクター」なのか?「メディアプレーヤー」とか「ミュージックプレーヤー」かもしれないなぁ

Volumio

「Raspberry Pi Zero W」と「PCM5102 DAC Decoder」をI2Sで接続(こちらが判り易い)

IMG_20250323_171526.jpg

PCM5102 Raspberry
VCC 5V
GND GND
BCK GPIO18(PCM_CLK)
DIN GPIO21(PCM_DOUT)
LCK GPIO19(PCM_FS)

ラズパイ用Volumio(OS含む)をDLして32MBのμSDカードにセットアップ

PCM5102は「Generic I2S DAC」のDAC設定で利用可能となる(「HifiBerry DAC」では出力されなかった)

FMラジオ

前に購入してテスト受信していたコンパクトな「RDA5807M」をラズパイで使用できないか確認

IMG_20250324_102928.jpg

環境が整っているラズパイ3で先駆者様のFMラジオを聴くのソフトウェアを利用して動作確認

PCM5102との整合性確認のため実機にI2Cによる接続回路を組み動作チェック

IMG_20250324_161857.jpg

Volumio OSではpython環境など無いので動作させるためのセットアップが必要

最初に操作できるように「http://volumio.local/DEV/」にアクセスしてsshをenableにする

ホスト名: volumio.local
ユーザ: volumio
パスワード: volumio

以下,端末にて操作(必要ないセットアップもあり)

$ sudo raspi-config
sudo: raspi-config: command not found

※)raspi-config はなし

I2Cは有効化されている

$ sudo apt update

updateを実施しないと何もinstall不可

$ sudo apt -y install python3-smbus
$ sudo apt -y install RPi.GPIO
$ apt -y install vim

日本語化

$ sudo apt -y install task-japanese locales-all
$ sudo localectl set-locale LANG=ja_JP.UTF-8 LANGUAGE="ja_JP:ja"
$ exit (一度抜ける)

ラジオを聴く

$ python3 radio_on.py
Bluetooth

Amazonで購入したブルートゥースデコーダーボードを使用

ロータリースイッチによるハードウェア切替なので接続するのみとなる

消費電量を確認するとほとんどないようだ

IMG_20250325_193403.jpg

電源

ラズパイZEROとPCM5102は5V入力,RDA5807Mは3.3Vでラズパイの3.3Vを利用

消費電力は実働で確認したところ通信+音出し時でも最大でも200mAと超えないようで約1W以下となる(ラズパイZEROが公称5V150mAなので問題なさそう)

IMG_20250325_193642.jpg

供給電圧の5Vを降圧DCDCで作り,コイルと平滑コンデンサ(10000μF)を追加してみた

IMG_20250326_181706.jpg

基本的に常時となるため電源ボタンは簡単に操作できなくても良く,むしろできないように後ろにスライドスイッチとして付ける

LEDインジケータと選局ボタン

ラズパイは電源投入してもOS起動時間があるため操作可能を示すLEDによるインジケータを前面に付けOS起動後点灯させる

FMラジオの選局は少ないので後ろにボタンを設けて変えられる程度にすることにした

IMG_20250327_180616.jpg

ケース用のボタンがないので,手抜きだがタクトスイッチで作った

ディスプレイ

当初,予定ではなかったディスプレイを突然だがステータス表示などのためにも付けることにした

選択したのは使わなくて余っている「AQM1602Y」でI2C接続のために加工する必要がある(こちら

IMG_20250327_180407.jpgIMG_20250327_180417.jpg

で,ケースに合うように加工してみたのだが,ラズパイでは直接I2Cで繋いで使えないことが判る

ラズパイのI2Cのプルアップ抵抗が小さくで「AQM1602Y」の仕様に合わないらしい

使うためには間にI2Cのバッファーを入れないと駄目らしく,ちゃんと説明書にも書いてあった

ss20250330_001.png

ここで諦める訳にもいかず,代わりにOLEDを使用することにした

OLEDはコンパクトな横長タイプでなくケースに付けやすい四角タイプの方をチョイス

IMG_20250330_115312.jpgIMG_20250330_115321.jpg

ラズパイの温度表示で使ったことがあり同じ操作で動作する(こちら

ディスプレイにはセレクト(Volumio,Radio,Bluetooth)の表示と,選局名表示を行う

これによりLEDインジケータは電源投入表示用に変更

資料

(メイン基板構成)

IMG_20250328_151647.jpg

誤)3.3V

正)5V

(ケース内構成)

IMG_20250330_115705.jpg

(ソフトウェア)

ロータリースイッチの切り替え監視と,FMラジオの制御を行う

netPlayer.py(SJIS,TAB4),動作には「rda5807m.py」が必要

現在python3のGPIO変化のcallbackが使えないためループ+sleepでボタン判定など行っている

 GPIO.add_event_detect(16, GPIO.FALLING, callback=event_callback, bouncetime=300)
RuntimeError: Failed to add edge detection

(メモ書き)

IMG_20250331_132039.jpg

(外観)

IMG_20250331_131538.jpg

(正面)

IMG_20250331_143810.jpg

(裏面)

IMG_20250331_143745.jpg

 

ページ移動

コメント

  • コメントはまだありません。

コメント登録

  • コメントを入力してください。
登録フォーム
名前(ニックネーム)
メールアドレス(必須ではありません)
URL(必須ではありません)
コメント
閲覧制限
投稿キー(スパム対策に、投稿キー を半角で入力してください。)

ユーティリティ

検索

エントリー検索フォーム
キーワード

新着コメント

Re:ATS-25を作製する
2025/03/23 from kazu
Re:ATS-25を作製する
2025/03/22 from admin
Re:ATS-25を作製する
2025/03/22 from kazu
Re:NOAA受信システム復旧
2025/03/20 from admin
Re:NOAA受信システム復旧
2025/03/16 from とおりすがり

過去ログ

Feed