Spresenseで電子工作の幅を広げよう

Spresenseで電子工作の幅を広げよう!
第4回: ローム BLE Add-onボードを使って、スマホからハイレゾ音楽プレーヤーを操ろう!

こんにちは、ヨシケンです!
ソニーのSpresenseを使った電子工作の第4回、今回もロームから提供されているBLEとセンサのAdd-onボードを使っていきます。
Add-onボードにより、第2回でつくったハイレゾ音楽プレーヤーの機能を拡張します。先回では音楽を流せるだけでしたが、スマホから操作したり、裏返すと音楽を止めたりと、大幅に機能を拡充させますよ!

1

今回の記事で必要な物一覧

・SONY Spresenseメインボード
Spresense

・SONY Spresense拡張ボード
Extension

・ローム センサAdd-onボード
SPRESENSE-SENSOR-EVK-701

・ローム 照度・近接センサモジュール
2

・ローム Bluetooth LE Add-onボード
3

・小型リチウムポリマーバッテリー(400mAh)と電源ソケット
(※注意:取り扱いに十分気をつけて自己責任でお使いください)
battely

・イヤフォン又はヘッドフォン
・Micro USBケーブル
・Micro SDカード

 

今回の記事の流れ

1. ローム BLE Add-onボードを使ってスマホ連携
2. Bluetoothを使ってSpresenseとデータ送受信
3. センサAdd-onボードで動きを検知
4.外部からコントロールできる音楽プレイヤーにする
5. まとめ

1.ローム BLE Add-onボードを使ってスマホ連携

Spresenseの機能を簡単に拡張できるAdd-onボード、その中でもロームが提供するBluetooth Low Energy対応のBLE-EVK-701ボードがあります。これによりBLE経由で、スマホとSpresenseの間でデータの送受信ができるようになります。

4

さっそくBLEボードを使ってみましょう。ボードを写真のように、SpresenseメインボードのGPIO左端に収まるようしっかり差し込みます。写真では右側に前回使ったセンサボードも付いていますが、BLEとセンサボードでぴったりGPIOが埋まる形です。(センサボードも後ほど使っていきます。)

5

このBLEボードを使うに当たって、ロームのライブラリにMK71251-02.inoというサンプルファイルがあります。
MK71251-02をArduino IDEで開いて、Spresenseに書き込みます。
シリアルモニタを立ち上げると、接続を待機するメッセージが出てきます。

6

スマホ側でこれを受けるために、ロームのグループ会社であるラピスセミコンダクタから提供されている“LAPIS BLE_Tool”というアプリがあります。これをスマホで検索して、インストールします。
その後、スマホアプリを立ち上げて、BLEデバイスを探します。“LAPIS xxx”のような名前でデバイスが検知できたら、それに接続します。

7

シリアルモニタが“Connected succesfully”になったら、Spresenseとスマホが接続できています。

8

スマホのアプリの方でも、Device InformationやSerial Port Profileなどを見て、つながっているか確認してみてください。

9

2.Bluetoothを使ってSpresenseとデータ送受信

では、設定したBluetooth接続で、Spresenseとデータの送受信をしてみましょう。
このシリアル通信を使って、ある特定コードを送ったら、メッセージが出て、ステータスをコントロールできるようにします。
今まで使っていたBluetoothのライブラリMK71251-02に、以下のような記述を追加します。

これをSpresenseに流して、再度スマホとつなげます。
そこで、アプリ側のSerial Port Profileを開いて、そこから文字や数字を入れて、Sendボタンを押してみます。
Spresenseのシリアルモニタ側にRead xxとして反応が出てきたら、Spresenseでの受信ができています。

10

またスマホアプリから、”N”と送るとNextと返ってきて、”S”と送るとStopのように表示されたでしょうか。スマホでこのような赤字が出てきたら、Spresenseからの返信(送信)もOKです。
これで後ほど、音楽プレーヤーをコントロールするステータスを変更していきます。

11

3.センサAdd-onボードで動きを検知

センサAdd-onボードも使って更に機能を追加しましょう。
センサAdd-onボードには、過去の電子工作記事でも紹介した「センサ評価キット」に付属するセンサを使って照度、近接、カラー、磁気、温度、紫外線、脈波などさらに7種類以上のセンサ機能を追加することができます。今回は照度・近接一体型センサモジュールを付けてみます。

12

これはRPR-0521RSという光学式近接センサと赤外線LED、デジタル照度センサが一体化したセンサモジュールです。これ一つで明るさ、及び人や物体がどれくらい近くにあるかを測ることができます。これを使って、Spresenseの裏返し(センサ部分と物体の距離が近くなる)の判別をしようと思います。

ではセンサAdd-onボードのGPIOに、照度・近接度センサをセットします。このモジュールは元々5本のピンが出ているので、Add-onボードの5本のGPIOにそのまま刺さります。

13

このセンサもロームのライブラリを使うだけで測定ができます。サンプルファイルのPRR-0521RS.inoを起動します。

14

このスケッチを流すと、このように手を近づけたり、離したりすることで照度・近接度が変わるのが見られたでしょうか?

15

16

ではこの仕組みを使って、Spresenseが表(近接度がFar)なら音楽再生、裏(近接度Near)なら音楽ストップとなるようなステータス変更をします。
PRR-0521RSに以下の黄色の部分を追加して、別名保存します。

これで表面のままだとシリアルモニタに”Front and Play!”と出てきて、裏面にすると”Back and Stop!”と表示が変わったでしょうか?

17

4.外部からコントロールできる音楽プレイヤーにする

では、Bluetooth接続、近接センサの設定ができたところで、 第2回で作成したハイレゾ音楽プレーヤーをコントロールできるようにしてみましょう。Spresenseでのハイレゾ音楽の再生については、 第2回記事を見てセットアップしておいてくださいね。

外装には第2回同様、Spresenseの空箱を使っています。SpresenseのLED、USB、オーディオなどがつながるように穴を開けています。Spresenseのメインボード、拡張ボード、Add-onボード、センサ、バッテリーのそれぞれがすっぽり入るようになりました。

18

またSDカードには、直下にMUSICというフォルダをつくって、そこに複数のハイレゾ音源(.wavファイル)を保存しておいてください。ここでは引き続き、e-onkyoの無料ハイレゾ音源を使っています。

19

ではプログラムとして、第2回のハイレゾ再生のスケッチに、上でつくったBLE及び近接センサのロジックを入れます。少し長いですが、最終的なスケッチはこのようになっています。

ではこのスケッチをSpresenseに流し込んで、使ってみましょう!
まず電源を入れて、スマホアプリとBluetooth接続します。すると通常の上向きになっているの、一番初めの曲を再生し始めます。1曲終わるとSDカード内の次の曲に移ります。

20

センサ部分を指で覆うか、Spresenseを裏返してみてください。そうするとちゃんと音楽が止まったでしょうか?また表に戻すと最初から再生を始めます。

22  

またスマホからN(ext)やS(top)のメッセージを打ってみて、次の曲に飛ぶかどうか確かめてください。
 
23

これでなかなかちゃんとしたハイレゾ音楽プレーヤーになったのではないでしょうか!

5.まとめ

今回はBLEとセンサの二つのAdd-onボードを使って、Spresenseを操れるような機能を追加しました。

Bluetooth接続のところはとても簡単なので、アプリをつくればスマホともっと連動した音楽プレーヤーにできるでしょう。

センサAdd-onボードを活用すれば、様々な状態を検知することができます。
今回の使い方以外にも、加速度センサを使って、シェイクしたら音楽が切り替わる、上下すると音量を変更する、などもいいかもしれません。
アイディア、用途に合わせて機能を拡張してみてください!

(ヨシケン)

IRKitではじめるIoT
ヨシケン(吉田 顕一)

普通の会社に勤めるサラリーマンですが、モノ作りが好きな週末メイカーで、電子書籍MESHBOOKを出したり、ブログを書いたりしています!

http://blog.ktrips.net