mieki256's diary



2020/09/22(火) [n年前の日記]

#1 [raspberrypi] Raspberry Pi Zero W でBluetoothスピーカを鳴らしてみた

Raspberry Pi Zero W には音声出力用のジャックがついてないので、以下の方法で音を出すしかないのだけど。 今回、3番目の、Bluetoothスピーカで鳴らす方法を試してみたいなと。先日ダイソーで購入した600円のBluetoothスピーカ BTS-032A を使ってみる。環境は、Raspbian Buster。

その手の記事は巷に溢れているけど、結構ハマった。どうやら、Raspbian Jessie時代の解説記事が多いようで、そのままコピペして作業したら鳴らなくて…。

Raspbian Buster の場合、pulseaudio はインストールしない状態で作業したほうが良さそう。というかアンインストールしたらようやく素直に鳴ってくれた。
sudo apt purge pulseaudio pulseaudio-module-bluetooth pavucontrol
sudo reboot

記事内で pulseaudio の設定をしている部分があったらソレは古い情報と決めつけてしまってもいいのかもしれない。もちろん、以前のバージョンのOSを使ってる環境なら参考になる記事だろうから、それはそれで残しておいてほしいのだけど。

「bluealsa amixer」でググれば、関連記事に遭遇しやすいかもしれない…?

GUIでの設定作業。 :

デスクトップ環境が使えるなら、GUIで作業したほうが楽かも。
  1. デスクトップの右上のほうに Bluetoothのアイコンがあるからクリック。
  2. Make Discoverable を選ぶと Bluetooth機器を検索開始する。
  3. Add Device... で、Bluetoothスピーカが出てきたら、選んで Pair ボタンをクリック。
  4. Stop Discoverable で、検索停止。
  5. スピーカアイコンを右クリックして、Bluetoothスピーカ名(今回は BTS-032A)を選ぶと、そちらが出力先になる。

作業過程をメモ。 :

Raspbian Buster の場合、bluealsa なるパッケージが肝っぽい。
sudo apt install bluealsa
bluetoothctl を使って、Bluetoothデバイスとペアリングとやらをするらしい。
$ bluetoothctl --version
bluetoothctl: 5.50
$ sudo bluetoothctl
[bluetooth]# agent on

[bluetooth]# scan on
Discovery started
[CHG] Controller B8:27:EB:93:58:00 Discovering: yes
[NEW] Device 41:42:9E:54:68:72 BTS-032A

[bluetooth]# info 41:42:9E:54:68:72
[bluetooth]# pair 41:42:9E:54:68:72
[bluetooth]# trust 41:42:9E:54:68:72
[bluetooth]# connect 41:42:9E:54:68:72
[BTS-032A]# quit

以下は詳細メッセージ。
$ sudo bluetoothctl
Agent registered

[bluetooth]# agent on
Agent is already registered

[bluetooth]# scan on
Discovery started
[CHG] Controller B8:27:EB:93:58:00 Discovering: yes
[NEW] Device 41:42:9E:54:68:72 BTS-032A

[bluetooth]# info 41:42:9E:54:68:72
Device 41:42:9E:54:68:72 (public)
        Name: BTS-032A
        Alias: BTS-032A
        Class: 0x00240418
        Icon: audio-card
        Paired: no
        Trusted: no
        Blocked: no
        Connected: no
        LegacyPairing: no
        RSSI: -48

[bluetooth]# pair 41:42:9E:54:68:72
Attempting to pair with 41:42:9E:54:68:72
[CHG] Device 41:42:9E:54:68:72 Connected: yes
[CHG] Device 41:42:9E:54:68:72 Modalias: bluetooth:v05ACp0220d0001
[CHG] Device 41:42:9E:54:68:72 UUIDs: 00001101-0000-1000-8000-00805f9b34fb
[CHG] Device 41:42:9E:54:68:72 UUIDs: 0000110b-0000-1000-8000-00805f9b34fb
[CHG] Device 41:42:9E:54:68:72 UUIDs: 0000110c-0000-1000-8000-00805f9b34fb
[CHG] Device 41:42:9E:54:68:72 UUIDs: 0000110e-0000-1000-8000-00805f9b34fb
[CHG] Device 41:42:9E:54:68:72 UUIDs: 0000111e-0000-1000-8000-00805f9b34fb
[CHG] Device 41:42:9E:54:68:72 UUIDs: 00001124-0000-1000-8000-00805f9b34fb
[CHG] Device 41:42:9E:54:68:72 UUIDs: 00001200-0000-1000-8000-00805f9b34fb
[CHG] Device 41:42:9E:54:68:72 ServicesResolved: yes
[CHG] Device 41:42:9E:54:68:72 Paired: yes
Pairing successful
[CHG] Device 41:42:9E:54:68:72 ServicesResolved: no
[CHG] Device 41:42:9E:54:68:72 Connected: no
[CHG] Device 41:42:9E:54:68:72 RSSI: -39

[bluetooth]# trust 41:42:9E:54:68:72
[CHG] Device 41:42:9E:54:68:72 Trusted: yes
Changing 41:42:9E:54:68:72 trust succeeded

[bluetooth]# connect 41:42:9E:54:68:72
Attempting to connect to 41:42:9E:54:68:72
[CHG] Device 41:42:9E:54:68:72 Connected: yes
Connection successful
[CHG] Device 41:42:9E:54:68:72 ServicesResolved: yes

[BTS-032A]# quit

ちなみに BTS-032A は、接続したり接続が切れたりするたびに「connect」「disconnect」と喋ってくれる。電源オンオフ時も「power on」「power off」と喋る。

さておき。以下を参考にして状態を確認してみた。

_Raspberry Pi 4のBluetoothから音を鳴らす呪い | hixの日記 | スラド

sudo systemctl status bluetooth.service
Sap driver でエラーが出てたので、設定ファイルを修正。
sudo vi /lib/systemd/system/bluetooth.service
#ExecStart=/usr/lib/bluetooth/bluetoothd
ExecStart=/usr/lib/bluetooth/bluetoothd --noplugin=sap
sudo reboot

出力先として認識できているか確認。
$ amixer -D bluealsa scontrols
Simple mixer control 'BTS-032A - A2DP',0
Simple mixer control 'BTS-032A - SCO',0
Simple mixer control 'BTS-032A | Battery',0
'BTS-032A - A2DP' てのが表示されていたら、音が鳴らせる状態になってるということらしい。

A2DP って何だろう…。音楽用のプロファイルらしい。

_ケータイ用語の基礎知識 第259回:A2DP とは

もう少し詳細を見てみる。
$ amixer -D bluealsa
Simple mixer control 'BTS-032A - A2DP',0
  Capabilities: pvolume pswitch
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 127
  Mono:
  Front Left: Playback 127 [100%] [on]
  Front Right: Playback 127 [100%] [on]
Simple mixer control 'BTS-032A - SCO',0
  Capabilities: pvolume pvolume-joined cvolume cvolume-joined pswitch pswitch-joined cswitch cswitch-joined
  Playback channels: Mono
  Capture channels: Mono
  Limits: Playback 0 - 15 Capture 0 - 15
  Mono: Playback 14 [93%] [on] Capture 9 [60%] [on]
Simple mixer control 'BTS-032A | Battery',0
  Capabilities: pvolume pvolume-joined
  Playback channels: Mono
  Limits: Playback 0 - 100
  Mono: Playback 255 [255%]

ボリュームを変更。
amixer -D bluealsa sset 'BTS-032A - A2DP' 70%

再生確認。aplay なるものを使うと wavファイルが再生できるっぽい。また、/usr/share/sounds/alsa/ 以下に wav ファイルがいくつかあるので、再生確認に使える。
cd /usr/share/sounds/alsa/
aplay Front_Center.wav
aplay Noise.wav

巷の解説記事では speaker-test を使って再生確認する場合が紹介されてるけど。今回、speaker-test -t wav と打っても鳴ってくれなかった…。

デスクトップ上で BTS-032A を選んだりしていたせいか、~/.asoundrc にそれっぽい記述がされていた。
$ cat ~/.asoundrc
pcm.!default {
        type asym
        playback.pcm {
                type plug
                slave.pcm "output"
        }
        capture.pcm {
                type plug
                slave.pcm "input"
        }
}

pcm.output {
        type bluealsa
        device "41:42:9E:54:68:72"
        profile "a2dp"
}

ctl.!default {
        type bluealsa
}
もしかすると、この ~/.asoundrc が再生関係に絡んでるのかもしれないけど、まだそのあたりは全然調べてない…。

問題点。 :

音を鳴らし始めた最初のあたりの音声が聞こえてこない。例えば、「Front Center」という音声なら、最初の一発目は「ter」しか聞こえない感じ。

Raspberry Pi Zero W 側に問題があるのか、それとも Bluetoothスピーカ側に問題があるのかは不明。でもまあ、 HDMI接続で音を鳴らした際も、同じように最初のあたりが聞こえなかったりするので、そういうものなのかもしれない…。

ずっと鳴らし続けてる分には問題ない。しばらく音を出してない状態で、音を出そうと最初の一発目を鳴らし始めた際に聞こえない状態というか。

参考ページ。 :

#2 [raspberrypi][linux] Linux上で各種音声フォーマットを再生

Raspberry Pi Zero W + Raspbian Buster で作業。コマンドラインで、wav だけではなく、mp3 や ogg も鳴らせるようにしたい。

_コマンドラインで音声再生:aplay/mpg321/ogg123 - Linux Memo: Vine Linux 5 設定 tips
_Flac を Mp3 に変換 - ArchWiki
_FLACオーディオ形式との間で変換するための優れたコマンドラインツールはありますか?
_flacとlameでFLACをMP3にする - majishini

sudo apt install alsa-utils mpg321 vorbis-tools flac ffmpeg lame

flac も再生したい…が、そんなことできるのかよくわからないので、せめて mp3 に変換したい。ffmpeg や sox を使えばコマンドラインですぐ変換できるっぽいけど、今回は flac と lame をインストールして、参考ページと同様にスクリプトを作って変換することにした。
vi flac2mp3.sh
#! /bin/sh
flac -c -d "$1" | lame -V 5 - "`basename "$1" ".flac"`.mp3"
chmod +x flac2mp3.sh
./flac2mp3.sh hoge.flac

一応、sox もインストールしておいた。Debian系パッケージは、mp3の再生でバグがあるという話も見かけたけれど…。
sudo apt install sox libsox-fmt-all

#3 [pc] ダイソーでUSBハブを購入

ダイソーでUSBハブを購入してみた。

200円商品。個別スイッチ付き。USB2.0、4ポート。ケーブル長15cm。パッケージの下のほうに、G134、200円パソコン、No.13、と書いてある。

以前もダイソーでUSBハブを購入してみたことがあるけれど、その際購入した製品は、USB2.0対応とパッケージで謳っていながらUSB1.1の速度しかでないというアレな製品で…。今回もそういうオチなのではないかと不安だったけど、既に購入した方々のレビュー記事ではちゃんとUSB2.0の速度が出てるっぽいという話だったので、だったら試しに、と購入してみた次第。

Raspberry Pi Zero W に繋いで使ってみた。ワイヤレスキーボードの子機は動いてるっぽい。手持ちのUSBスピーカ SANWA SUPPLY MM-PSU4WH も繋いでみた。音が鳴った。動いているっぽい。

#4 [raspberrypi] Raspberry Pi Zero WにUSBスピーカを繋いでみた

Raspberry Pi Zero W から Bluetoothスピーカを使ってみたものの、鳴らし始めの最初のあたりが鳴ってくれない点が気になった。まあ、HDMI接続も同じ状態になるのだけど…。

解決するには別の方法しかないのかなと思えてきたので、試しに手持ちのUSBスピーカを繋いでみた。環境は Raspbian Buster。試用したスピーカは SANWA SUPPLY MM-PSU4WH。1.2W (0.6W + 0.6W)。

_MM-SPU4WH【USBスピーカー(ホワイト)】USBケーブル1本で電源と音源を供給できるコンパクトサイズの木製USBスピーカー。ホワイト。 | サンワサプライ株式会社

USBハブに差して、デスクトップ上の右上のスピーカアイコンを右クリック。Audio Advantage MicroII を選択してみたら、すんなり音が鳴ってくれた。簡単なんだな…。しかも、Bluetoothスピーカと違って、最初のあたりの音声もちゃんと聞こえる。

ちなみに、lsusb と打ってみると、MM-SPU4WH は、C-Media CM102-A+/102S+ と表示されてた。
$ lsusb
Bus 001 Device 004: ID 0d8c:0103 C-Media Electronics, Inc. CM102-A+/102S+ Audio Controller
Bus 001 Device 003: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 002: ID 214b:7250
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

バスパワー駆動のUSBハブに接続しても大丈夫なのだろうか、消費電力の面で厳しいのではないかと不安だったけど、1.2W(0.6W + 0.6W)ぐらいなら、音量を絞れば一応動いてくれる、ということなのかな…。

さておき。デスクトップ上の音量を変更しても、スピーカから出てくる音量が変わらない。MM-SPU4WH は背面に物理的なボリュームがついていて、そこを回せば音量調整はできるけど…。PC側から調整できないのは仕様なのか、それとも何か設定がおかしいのか…。

以上、1 日分です。

過去ログ表示

Prev - 2020/09 - Next
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project