8
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Raspberry PiにUSBスピーカーを接続する

Last updated at Posted at 2017-11-11

RaspberryPi 3 Model B にて、USBスピーカーを使えるようにする。
USBスピーカーにある音量ボタンも使えるようにする。

使用する機材

  • RaspberryPi 3 Model B
  • USBスピーカー ELECOM MS-P05UBK
    本体にボリュームボタン、MUTEボタンが付いている。

準備

  • Raspbianをインストール
  • SSH設定
    作業用

作業

  • 音声出力先をUSBスピーカーにする
  • alsa-base.confを作成
bash: /etc/modprobe.d/alsa-base.conf
options snd slots=snd_usb_audio,snd_bcm2835
options snd_usb_audio index=0
options snd_bcm2835 index=1
  • 音声出力先優先度確認
cat /proc/asound/modules
 0 snd_usb_audio
 1 snd_bcm2835
  • 再生テスト
    以下でスピーカーから音が出ればOK
aplay -D plughw:0,0 /usr/share/sounds/alsa/Front_Center.wav
(補足)

-D plughw:0,0 の指定について
aplay -l にて、接続デバイスを確認
カード0、デバイス0が、対象のデバイス(USBスピーカー)なので、0,0を指定する

aplay -l
**** ハードウェアデバイス PLAYBACK のリスト ****
カード 0: Set [C-Media USB Headphone Set], デバイス 0: USB Audio [USB Audio]
  サブデバイス: 1/1
  サブデバイス #0: subdevice #0
カード 1: ALSA [bcm2835 ALSA], デバイス 0: bcm2835 ALSA [bcm2835 ALSA]
  サブデバイス: 8/8
  サブデバイス #0: subdevice #0
  サブデバイス #1: subdevice #1
  サブデバイス #2: subdevice #2
  サブデバイス #3: subdevice #3
  サブデバイス #4: subdevice #4
  サブデバイス #5: subdevice #5
  サブデバイス #6: subdevice #6
  サブデバイス #7: subdevice #7
カード 1: ALSA [bcm2835 ALSA], デバイス 1: bcm2835 ALSA [bcm2835 IEC958/HDMI]
  サブデバイス: 1/1
  サブデバイス #0: subdevice #0
  • ボリュームを設定する
    amixerにて、コマンドラインから設定可能
    ボリュームを上げる
amixer set PCM 1%+ unmute
  • ボリュームを下げる
amixer set PCM 1%- unmute
  • ミュート(Toggle)
amixer set PCM toggle
  • ボリューム設定をキーマッピングに設定
    以下、lxde-pi-rc.xml抜粋
xml: /home/pi/.config/openbox/lxde-pi-rc.xml
    <keyboard>

    <!-- Keybindings for audio volume media keys -->
      <keybind key="XF86AudioRaiseVolume">
        <action name="Execute">
          <command>amixer set PCM 1%+ unmute</command>
        </action>
      </keybind>
      <keybind key="XF86AudioLowerVolume">
        <action name="Execute">
          <command>amixer set PCM 1%- unmute</command>
        </action>
      </keybind>
      <keybind key="XF86AudioMute">
        <action name="Execute">
          <command>amixer set PCM toggle</command>
        </action>
      </keybind>
    </keyboard>

上記は、デスクトップユーザー向けのキーマッピング設定である為、
デスクトップユーザーでログインしないと使えない
そこで、デスクトップユーザーとしてログインしておくことで、キーを有効となるようにする。

電源ONでデスクトップユーザーとしてログインしておくようにraspi-configにて設定

sudo raspi-config
3 Boot Options         Configure options for start-up
 B1 Desktop / CLI                             Choose whether to boot into a desktop environ
  B4 Desktop Autologin Desktop GUI, automatically logged in as 'pi' user ** <- こちらを選択 **

改善したい点

デスクトップユーザーでログインした状態にすることで、ボリュームボタンが有効になるようにしている。
ログインした状態にせずにボリュームボタンを有効にしたい。

8
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?