BlynkでLOBDASとBLE接続してAK4499をコントロール

iPhoneにBlynkを入れてLOBDAS(LOgic Board for Digital Audio System)のESP32と無線接続してAK4499をコントロールする。WiFiでも可能だが今回はBLEを使った。

スマホ側のBlynkの設定

  1. アカウントの登録をする。
  2. プロジェクトの作成
    • プロジェクト名を入力
    • デバイスの選択。選択するデバイスはESP32 DEV Board
    • THEMAの選択。DARKにした。
    • Connection TypeをBLEにして「Create」をタッチ
    • 「OK」をタッチすると設定したメールアドレスにAuth Tokenが送られて来る
  3. コントローラの設置
    • 画面をタッチすると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)をタッチして適当な場所に配置する
  4. 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がスマホからの操作で変更されているのが確認できると思います。

スポンサーリンク
スポンサーリンク
スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
スポンサーリンク