Intel EdisonをBluetoothスピーカにする第3弾です。前回までにEdisonにUSBオーディオアダプを認識させ、サウンドサーバ「pulse audio server」がEdisonに入っていることを調べました。今回は実際にEdison上でBluetotthを動作させたいと思います。
それではEdisonの電源を入れ、シリアルコンソールを開きます。Bluetooshを動かすための参考資料を開き、「3.1 Enable and disable Bluetooth* on Intel® Edison」を見ます。
現在のBluetoothの状態を確認するために「rfkill list」コマンドを入力します。
2: bcm43xx Bluetooth: bluetooth の項目において
Soft blocked: yes となっており、bluetoothが有効になっていません。rfkill unblock bluetoothとコマンドを入力し、有効にします。
Soft blocked: no となり、新たな項目として
3: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
が表示されました。
次は2つのコマンドを入力します。
agent KeyboardDisplay
default-agent
これにより、スマホからペアリングしたときにシリアルコンソールでペアリングの許可の入力ができます。
次は他のBluetooth機器からEdisonを検出できるようにします。
bluetoothctl と入力し、[bluetooth]# が出力されるので、show と入力します。
他の機器からEdisonを検索できるようにするためには、
Discoverable: no
をyesにします。そのためにコマンド discoverable on と入力します。
確認のために、showと入力します。Discoverable: yes となっています。
次にペアリング時の認証設定をします。
agent NoInputOutput
default-agent
と入力します。
この状態でAndroidスマホから検出してみます。
Bluetoothの設定画面を開きます。
「デバイスの検索」をクリックします。
「edison」が表示されたら、クリックしてみます。
ペアリングを開始しました。この時、Edisoのシリアルコンソールは
となり、ペアリングを求めているので、「yes」と入力します。
ちょっと見にくいですが、最後の行に「Authorize service」としてyes/noを求めているので「yes」と入力します。
確認のために「devices」と入力します。
スマホのアドレスが登録されています。一方、スマホ側の画面は
「edison」が「接続済み」となっています。
これでedisonとスマホでペアリングできました。
ここでスマホからedison側で音楽を再生すればペアリングされたedison側に送られ、そのスピーカから音が出れば良いのですが、そうは問屋が卸しません。
この続きは次回に!
おまけ
上記の状態でquitを入力してbluetoothctlを終了すると、スマホからペアリングしても接続できません。quitする前にtrustコマンドでペアリング相手を登録しておけばOKです。
BluetoothとUSBサウンドアダプタを関連付ける編へ⇒