- 最終更新日
- 記事公開日
ラズパイZEROのスピーカー接続でハマったこと(USBハブを認識しない・電源が落ちて再起動になる)
今回、ラズパイZEROから音を出すまでに色々とハマったことがあったので、記録に残しておきます。
- スピーカーをラズパイ本体に差し込むと、電源が落ちる
- USBポートがデバイスを認識しない(USBハブ・マウス・キーボード等)
- SSHを有線で繋いだまま、USBデバイスも繋ぎたい
こんなときは、ぜひ参考にしてみてください。
給電用USBポートにUSBデバイスを差し込んでも認識しません
ラズパイZEROには、2つのマイクロUSBポートが搭載されていますが、それぞれ役割があります。
- USBポート1:給電専用ポート
- USBポート2:データ送受信用ポート
USBポート1(給電専用)は、ラズパイを動かすための電気を送るポートなので、スピーカーやUSBハブなど、USBデバイスを挿しても認識されません。
ラズパイでUSBデバイスを使う場合は、USBポート2(データ送受信用)にケーブルを挿す必要があります。
もし、このポートにUSBスピーカーを挿してしまうと、ラズパイ本体の電源が落ちて、再起動が掛かってしまいます(経験談)
「マウスやキーボードが認識しない」という場合も、間違えてこの給電専用ポートと接続している可能性が高いです。
ところが、次は「でも、USBポート2はSSH通信でパソコンと繋いでるから、空いてないよ」という問題にぶつかるはずです。
『USBハブ』があれば、SSH(有線)しながらでもUSBデバイスの接続が可能
SSH通信を行っている場合、ラズパイとパソコンを繋ぐケーブルでUSBポート2は塞がっています。
そこで、使用するのが『USBハブ』です。
本来、ラズパイ本体にそのままUSBハブを繋ぐだけでは使えないのですが、SSHをおこなう為、事前に『OTG』の設定を行っているはずです。
このOGT機能により、ラズパイはUSBハブを認識することができます。
※OGTとは ・・・ 本来、USBデバイスを制御するにはパソコンが必要だが、OGT機能を搭載する機器であれば、パソコンを中継しなくても、そのままUSBデバイスを制御することができる。
よって、ラズパイを親にして、USBハブに『パソコン』『スピーカー』『マウス』『キーボード』などの周辺機器を繋いでしまえば、ラズパイは全てのデバイスを制御することができます。
USBハブを使うには、他にも色々と揃える必要があります
とはいえ、実際にラズパイとUSBハブ・USBデバイスを接続するには、色々な変換ケーブルが必要になります。
ラズパイZEROとスピーカーを接続するための配線図
ラズパイZEROとスピーカーを接続するために必要なもの
- マイクロUSB(オス) ⇔ USB Type-A(メス)変換コネクタ
- セルフパワー型USBハブ
- USBケーブルだけで接続できるスピーカー
- USB Type-Aケーブル(オス - オス)
- USB Type-A 延長ケーブル
- マイクロUSB(オス) ⇔ USB Type-A(オス)変換ケーブル
- USB Type-A 延長ケーブル
- USB充電器(ACアダプタ)
①マイクロUSB(オス) ⇔ USB Type-A(メス)変換コネクタ
ラズパイ本体のマイクロUSBを普通のUSB端子(USB Type-A)に変換するためのコネクタです。
USB-A側はUSBハブの大元となるケーブルに接続します。
ELECOM OTGケーブル microB-Aメス-USB2.0 ブラック 0.1m TB-MAEMCBN010BK
②セルフパワー型USBハブ
USBハブにたくさんの周辺機器を繋げば、それだけたくさんの電流が必要になります。
ところが、ラズパイが管理できる電流量はそれほど大きくありません。
その許容量を超えてしまうと、ラズパイの電源が落ちたり、動作が不安定になってしまいます。
そこで、USBハブは『セルフパワー型』を選ぶ必要があります。
セルフパワー型USBは、普通のUSBハブに電源を供給するためのケーブルが別に付いています。
USBハブに接続された周辺機器には、このケーブルからの電気が送られるため、ラズパイに掛かる電流の負担が減り、安全な運用が可能になります。
BUFFALO USB3.0 セルフパワー 4ポートハブ ブラック スタンダードモデル BSH4A125U3BK 【Nintendo Switch/Windows/Mac対応】
③USBケーブルだけで接続できるスピーカー
パソコン用スピーカーの多くは、USBケーブルの他にステレオミニジャックが付いています。
ラズパイZEROには、このステレオミニジャックを繋ぐための端子がありません。
USB⇔オーディオ変換アダプタやHDMI⇔VGA変換アダプタなどを使う方法もありますが、USB一本だけで接続できるスピーカーを選ぶのが一番スマートです。
サンワサプライ コンパクトPCスピーカー USB接続 ブラック MM-SPU8BK
④USB Type-Aケーブル(オス - オス)
SSHを行うため、パソコンとラズパイを繋ぐケーブルです。
両方同じ形の端子が必要な用途はまずない為、普通の家電量販店には置いてないかもしれません。
私は持っていたY字型のケーブルがあったため、それを代用しました。
USB 3.0 ケーブル タイプA-タイプA オス-オス 金属コネクタ搭載 データライン ノートクーラー用 0.6m
⑥マイクロUSB(オス) ⇔ USB Type-A(オス)変換ケーブル
USBハブを使用する際、ラズパイ本体には電気が供給されません。
そこで、ラズパイ本体のUSBポート2(給電専用ポート)に電気を供給するために使用します。
ラズパイ本体のマイクロUSBを普通のUSB端子(USB Type-A)に変換します。
私は、Ankerのモバイルバッテリーに付属していたケーブルがピッタリだったので、それを使いました。
Amazonベーシック USBケーブル 0.9m (2.0タイプAオス – マイクロBケーブル) ブラック
⑧USB充電器(ACアダプタ)
ラズパイに給電するためのACアダプタです。
コンセント → ACアダプタ → USB変換ケーブル → ラズパイ
私は、ダイソーに売ってあった2Aタイプのものを使用しています。
USB充電器 Ailkin ACアダプター usb アダプタ USBポート×2 (2.1A出力) スマホ充電器 電源アダプタ
サンプル音の再生と設定方法
「lsusb」コマンドを入力し、ラズパイが認識しているUSB機器を確認してください。
pi@raspberrypi:~ $ lsusb
以下のようにスピーカーが認識されていれば正常です。
Bus 001 Device 003: ID 0d8c:0103 C-Media Electronics, Inc. CM102-A+/102S+ Audio Controller
Bus 001 Device 002: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
しかし、まだサウンド関係の設定がスピーカーに向いていない可能性があります。
試しに、サンプル音を再生する以下のコマンドを入力してみてください。
aplay /usr/share/sounds/alsa/Noise.wav
おそらく、以下のエラーが表示されるはずです。
ALSA lib confmisc.c:767:(parse_card) cannot find card '0'
ALSA lib conf.c:4568:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory
ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings
ALSA lib conf.c:4568:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib confmisc.c:1246:(snd_func_refer) error evaluating name
ALSA lib conf.c:4568:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:5047:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2565:(snd_pcm_open_noupdate) Unknown PCM default
aplay: main:828: audio open error: No such file or directory
「cannot find card ‘0’」ってことで、おそらく「音を鳴らすためのサウンドカードが見つからないよ」という意味だと思います。
スピーカーの位置を教えてあげましょう。
まずは、下記のコマンドを入力して、スピーカーの位置を確認します。
cat /proc/asound/cards
「1」という位置が確認できました。
1 [MicroII ]: USB-Audio - Audio Advantage MicroII
C-Media INC. Audio Advantage MicroII at usb-20980000.usb-1.1, full speed
次に、下記のコマンドを入力して、サウンド関係の設定ファイル「.asoundrc」を開いてください。
sudo nano /usr/share/alsa/alsa.conf
「defaults.ctl.card」と「defaults.pcm.card」のところを「0 → 1」に変更して保存します。
defaults.ctl.card 1
defaults.pcm.card 1
defaults.ctl.card : サウンド設定の構成と音量の調整
defaults.pcm.card :音声の再生で使われるカード・デバイス
もう一度、サンプル音の再生を試してみましょう。
sudo aplay /usr/share/sounds/alsa/Noise.wav
※「ザー」という数秒のノイズ音です。
もし、ダメなとき「sudo reboot」コマンドで再起動もしてみて下さい。