こんにちは。前回に続いて連投のイシイです。
今回は、Edison Breakout Boardを使ったオーディオ再生についてです。アートハッカソンのときに作った「走り回る口」で音声を喋らせて、実際にハマったところも含めながらのエントリーにしてみました。

材料

今回の取り組みには、下記の機材を使用しました。

・Intel Edison Breakout Board
・MicroUSB変換ケーブル
・USBオーディオ変換ケーブル
・コネクタ付コード2P
・2.1mm標準DCジャック
・ACアダプター 12V
・スピーカー
・アンプ内蔵ミニステレオスピーカー

Edisonのセットアップ

ジャンパーピンの確認

Intel® Edison Breakout Boardのハードウェアガイドから抜粋

Hardware Guide

ハードウェアの準備

J21ピン(7〜15V)からEdisonに電源供給します。Breakout BoardそのままだとACアダプタは直接つなげないので、J21ピンにはコネクタ付コード2Pを差し込み、ケーブルをバラした2.1mm標準DCジャックにつないで、DCジャックにACアダプターを差し込みます。

電源供給

J16ピンはMicroUSBなので、MicroUSB変換ケーブル、USBオーディオ変換ケーブル、スピーカーの順につなぎあわせて行きます。ひとまずはこれでハードウェア側の準備ができました。

オーディオ設定

今度はEdison側のセットアップを行います。

# lsusb
Bus 001 Device 002: ID 0d8c:013c C-Media Electronics, Inc. CM108 Audio Controller

lsusbコマンドで見てみると、どうやらこれが差し込んでいるUSBオーディオのようです。
dmesgコマンドを使っても確認できます。

# dmesg | grep USB
[    6.208231] input: C-Media Electronics Inc.       USB PnP Sound Device as /devices/pci0000:00/0000:00:11.0/dwc3-host.2/usb1/1-1/1-1:1.3/input/input2
[    6.208984] hid-generic 0003:0D8C:013C.0001: input,hidraw0: USB HID v1.00 Device [C-Media Electronics Inc.       USB PnP Sound Device] on usb-dwc3-host.2-1/input3

これでUSBで認識してるっぽいことを確認できたので、

# alsamixer

でオーディオの設定を行います。alsamixerがなかったら、opkg install alsa-utils でインストールしておきます。ちなみに、J3ピンを使ったシリアル接続の画面で実行しても文字化けするので、SSH接続した画面で実行します。F6キーを押して対象のサウンドカードを選び、サウンドボリュームを上下キーで設定。今回は音量最大に設定しておきます。

alsamixer

サウンドカードの設定が完了したので、Escキーで設定画面を抜けます。

オーディオ再生

再生するにあたり、サウンドカードの指定の仕方を取得します。

# aplay -L

今回取得したリストの中では

iec958:CARD=Device,DEV=0
  USB PnP Sound Device, USB Audio
  IEC958 (S/PDIF) Digital Audio Output

これっぽいので、これを使って、音楽再生コマンドを投げてみます。

aplay voice.wav -D iec958:CARD=Device

これで再生ができました。

Playing WAVE 'voice.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo

オーディオ再生における問題

Breakout Boardが1.8Vの入出力なためか、このままだと音量が激しく小さいです。簡易な騒音測定アプリでデシベルを測ってみたところ、再生音声の質にもよりますが、今回の音声だと50dB行くか行かないかでした。50dBだと空調の音くらいなので、普通にしてたらほとんど気づかない音量です。。実際、展示会場で試してみましたが、これだと確実に聞こえないという問題にぶち当たりました。ということで、今度はアンプ内蔵のスピーカーで試してみます。今回は小型のアンプ内蔵ミニステレオスピーカーを使用してみました。

ミニステレオスピーカー

ハッカソンで使用した際に訳あってちょっと分解されていますが、気にしないでください。

内蔵アンプあり・なしでの再生音量比較

オーディオ再生した時の動画がこちらです。ゴーという音は空調の音で、アンプ無しのスピーカーだと空調の音に負けそうな勢いです。小型の内蔵アンプありのミニスピーカーを使用した場合、およそ80dBくらいまで行ってるので、これで十分聞こえる音量になりました。

今回は、「Edison本体付近から」「Breakout Boardを使って」音声再生させることを前提として試してみましたが、Bluetoothスピーカーと接続して再生させたり、Intel® Edison Kit for ArduinoGroveモジュールで実現してみたりと色々なやり方はあるので、シーンや制限・資産やコストなどによって組み方は様々ですが、アンプを内蔵してないスピーカーだとBreakout Board直結は厳しい、というTipsでした。