iPhoneにBlynkを入れてLOBDAS(LOgic Board for Digital Audio System)のESP32と無線接続してAK4499をコントロールする。WiFiでも可能だが今回はBLEを使った。
スマホ側のBlynkの設定
- アカウントの登録をする。
- プロジェクトの作成
- プロジェクト名を入力
- デバイスの選択。選択するデバイスはESP32 DEV Board
- THEMAの選択。DARKにした。
- Connection TypeをBLEにして「Create」をタッチ
- 「OK」をタッチすると設定したメールアドレスにAuth Tokenが送られて来る
- コントローラの設置
- 画面をタッチするとWidget Boxが開く
- アッテネータ用に使うVertical Sliderをタッチし画面の適当な場所に配置する。配置するにはWidgetを長押ししながら移動させる
- 配置したVertical SliderをタッチしてSlider Settings画面にする
- OUTPUTのPINをタッチしてVirtualのV0にし、数字を0〜255に変更する
- DECIMALSを#にする
- Sliderが変化している時の値も反映させたいので SEND VALUES ON RELEASE ONLYを OFFにする
- デバイス側(LOBDASのLCD表示)と表示が異なるので SHOW VALUEはOFFとして、画面右上のOKをタッチ
- Vertical Sliderが配置されている画面でVertical Slider以外の画面をタッチして再度Widget BoXを開く
- PCM再生時のDigital Filter 特性を選択するスイッチとしてStyled Button をタッチし画面の適当な場所に配置する
- 配置したStyled Buttonをタッチし設定画面にする
- TitleをDigital Filter Switchと入れる
- OUTPUTのPINをタッチしてVirtual のV1にする
- あとの設定は好みの問題なので適当に選択して右上のOKをタッチ
- 入力ソースを切り替えるスイッチとして同じStyled Buttonを配置する
- TitleをInput Select Switchとする
- OUTPUTのPINをタッチしてVirtualのV2にする
- その他は適当に選択して右上のOKをタッチ
- Widget Boxを開き、OTHERからBLE(beta)をタッチして適当な場所に配置する
- LCD Widget と表示切替ボタンの配置
- Widget Boxを開き、DISPLAYSからLCDをタッチして適当な場所に配置する。今回の例では一番上。
- SIPLEとADVANCEDのスイッチをADVANCEDにする
- INPUTのPINをタッチしてVirtualのV3にする
- ScreenとTextの色を適当に決めOKをタッチする
- Widget Boxを開き、表示切替用としてStyled Buttonをタッチして適当な場所に配置する。
- Styled Buttonをもう一つ設定する。
- INPUTのPINをタッチしてVirtualのV4にする
- MODEはSWITCHにする
- OFF LABELはMODE/FILTER、ON LABELはATT/INPUTと記入する
- 後は適当に選択してOKをタッチする
- もう一つのStyled Buttonも同様にするが、INPUTのPINはV5とする
- ON LABELはCONFIGURATIONと記入する。ただし、この機能はまだ実装していない
これでスマホ側の準備はできた。
Blynkライブラリーのインストール
Arduino IDEを起動して、「スケッチ」→「ライブラリをインクルード」→「ライブラリの管理」のライブラリマネージャウィンドウに[Blynk]で検索されたBlynkライブラリの最新版を選択してインストールする。
ソースの編集
Arudino IDEでLOBDAS.inoを開き Your Auth Token をBlynkで新たにプロジェクトを登録したときに送られてきた Auth Token に変更する。
#include <BLEDevice.h> #include <BLEUtils.h>
#include <BLEScan.h>
#include <BLEAdvertisedDevice.h> #include <Wire.h>
#include "SO2002A_I2C.h" #include <Preferences.h>
#include "ak449.h" #define SDA 21 #define SCL 22 /* Comment this out to disable prints and save space */ #define BLYNK_PRINT Serial #include <BlynkSimpleEsp32_BLE.h>
// You should get Auth Token in the Blynk App. // Go to the Project Settings (nut icon). char auth[] = "Your Auth Token";
LOBDASのESP32でコンパイルと書き込み
USBシリアルケーブルをLOBDASに接続してArduino IDEの書き込みボタンをクリック。
LOBDASと接続
スマホに配置したBLEアイコンをタッチして「Cnnect BLE Device」で[Blynk]を選択しててOKをタッチ。
これで、LOBDASと接続される。
サンプル動画
スマホからLOBDASに接続されたAK4499をコントロールする動画を撮ってみました。LOBDASにはCombo384互換基板とLVDS to I2Sレシーバー基板を実装しています。VolumioをインストールしたRaspberry PiとUSBで接続し、Botic7をインストールしたBeaglebone Black + BBBブリッジ + I2S to LVDSドライバー基板には5mのSTPケーブル(RJ45コネクタ)で接続しています。
スマホからデジタルフィルター特性の変更(音質の変化は分かりませんが)、アッテネータレベルの変更、スマホのLCD表示の切替そして入力ソース(USB⇄RJ45)の切替をしたときに2×20行のOLEDがスマホからの操作で変更されているのが確認できると思います。