LoginSignup
9
9

More than 5 years have passed since last update.

Intel EdisonとBluetoothスピーカーで音を出す

Last updated at Posted at 2015-09-10

Intel Edison上の音声ファイルをBluetoothスピーカーを経由して再生してみます。
音声生成APIやセンサーなどと組み合わせることで、簡単な会話ロボットが作れそうです。

環境

wifiなどのセットアップ済みのIntel Edisonを用意します。
検証に使ったファームウェアは以下です。

uname  -a
Linux edison 3.10.17-poky-edison+ #1 SMP PREEMPT Wed Apr 29 03:54:01 CEST 2015 i686 GNU/Linux

Bluetoothスピーカーは、以下です。
京ハヤ Bluetooth対応ワイヤレススピーカー
http://www.amazon.co.jp/dp/B00GBXKQHW

TaoTronics Bluetoothは、音声の出だしが切れてしまいうまく動きませんでした。
http://www.amazon.co.jp/gp/product/B00U3IV7JM

Bluetoothの有効化

Edisonは初期状態ではBluetoothがロックされているので、解除します。

rfkill list
-----------
2: bcm43xx Bluetooth: bluetooth
    Soft blocked: yes
    Hard blocked: no
-----------

rfkill unblock bluetooth

rfkill list
----------
2: bcm43xx Bluetooth: bluetooth
    Soft blocked: no
    Hard blocked: no
----------

Edisonとスピーカーを接続

次に、bluetoothctlコマンドを使ってスピーカーとBluetoothで接続します。

bluetoothctl
 [NEW] Controller 98:4F:EE:XX:XX:XX edison [default]

[bluetooth]# scan on
=>デバイスのスキャンを有効にします。
 Discovery started
 [CHG] Controller 98:4F:EE:XX:XX:XX Discovering: yes
 [NEW] Device 00:23:01:XX:XX:XX JKSP-BT9020
=>目的のデバイスが見つかるはず。


[bluetooth]# pair 30:22:00:XX:XX:XX
=>スピーカとペアリングします。
 Attempting to pair with 30:22:00:XX:XX:XX
 [CHG] Device 30:22:00:XX:XX:XX Connected: yes
 [CHG] Device 30:22:00:XX:XX:XX UUIDs:
    0000xxxx-0000-xxx-8000-xxxxxxxxxxxx
    0000xxxx-0000-xxx-8000-xxxxxxxxxxxx
    0000xxxx-0000-xxx-8000-xxxxxxxxxxxx
    0000xxxx-0000-xxx-8000-xxxxxxxxxxxx
    0000xxxx-0000-xxx-8000-xxxxxxxxxxxx
 [CHG] Device 30:22:00:XX:XX:XX Paired: yes
 Pairing successful
 [CHG] Device 30:22:00:XX:XX:XX Connected: no

[bluetooth]# connect 30:22:00:XX:XX:XX
=>スピーカへ接続します。
 Attempting to connect to 30:22:00:XX:XX:XX
 [CHG] Device 30:22:00:XX:XX:XX Connected: yes
 Connection successful


[bluetooth]# scan off
=>デバイスのスキャンを無効にします。
 [CHG] Device 30:22:00:XX:XX:XX RSSI is nil
 Discovery stopped
 [CHG] Controller 98:4F:EE:XX:XX:XX Discovering: no

[bluetooth]# quit
=>bluetoothctlコマンドを終了します。

Edisonの音声出力先変更

次にEdisonのデフォルトの音声出力先をBluetoothスピーカーへ変更します。

pactl list sinks | grep Name:
    Name: alsa_output.platform-merr_dpcm_dummy.0.analog-stereo
    Name: alsa_output.0.analog-stereo
        Name: bluez_sink.00_23_01_xx_xx_xx
pactl set-default-sink bluez_sink.00_23_01_xx_xx_xx

音声ファイルの再生にはMPlayerを使うので必要なパッケージなどをインストールしていきます。一部エラーが出たりするが、詳細は調査中...とりあえず手順通りに進めれば動きます。

wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz   
tar xvf yasm-1.3.0.tar.gz  
cd yasm-1.3.0  
sed -i 's#) ytasm.*#)#' Makefile.in
./configure --prefix=/usr
make  
make install  

cd

curl http://nonnoise.github.io/Edison/_sources/Edison/base-feeds.conf -o /etc/opkg/base-feeds.conf
curl http://nonnoise.github.io/Edison/_sources/Edison/intel-iotdk.conf -o /etc/opkg/intel-iotdk.conf
curl http://nonnoise.github.io/Edison/_sources/Edison/mraa-upm.conf -o /etc/opkg/mraa-upm.conf

opkg update
opkg install libavahi-client-dev

opkg install pulseaudio
opkg install mpg123
opkg install libpulse
opkg install systemd-dev

opkg install --nodeps jack-dev

opkg install pulseaudio-dev

pkg-config --libs --cflags libpulse
 -D_REENTRANT -lpulse
 と出力されればOK

MPlayerをインストール

makeに1時間以上かかります...

wget ftp://ftp.mplayerhq.hu/MPlayer/releases/MPlayer-1.1.1.tar.xz  
tar xvf MPlayer-1.1.1.tar.xz  
cd MPlayer-1.1.1  
./configure  
make  

注)make installがどうしてもこけてしまいます...
 原因がわからなかったので一旦諦めて、そのまま使います。

root@edison:~/MPlayer-1.1.1# make install
make -C ffmpeg libpostproc/libpostproc.a
make -C ffmpeg libavfilter/libavfilter.a
make -C ffmpeg libavformat/libavformat.a
install -d /usr/local/bin /usr/local/etc/mplayer /usr/local/lib
make: install: Command not found
Makefile:910: recipe for target 'install-dirs' failed
make: *** [install-dirs] Error 127

MPlayerの設定

mkdir ~/.mplayer
echo "ao=pulse" > ~/.mplayer/config

これで音声ファイルをBluetoothスピーカー経由で再生できるようになります。

./mplayer test.wav
./mplayer test.mp3
9
9
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
9
9