n_shinichi’s blog

日々の備忘録、 趣味のあれこれなど紹介 (メニュー、リンクがうまくできてません、★記事一覧★で見てください...)

MENU

Dabble  BLEアプリ、試してみた。 それなりに行けそう♪

旧Blynkがもう新規には使えないってことで代わりになるもの探してて

RoboTakao さんが Dabbleなるものを紹介されてるのを見つけた。

blog.robotakao.jp

自分が作ってるロボにもBlynkの代わりにできそうか

まずはどんなものか試してみた。

 

 

 

使ってみた感じ、それなりに使えそう。

Blynkみたいに自由なデザインはできなさそう。

あるいくつかの形が決まったインターフェースが用意されてる。

Blynkみたいに送信データの範囲を指定とかデータ送るタイミングとかは

指定できないのかな。。。

 

ジョイスティック入力というのをつかってみた。

デザインはこれ。



画面左のジョイスティックを操作した時の送られてくるデータ

www.youtube.com

データの範囲は 

X:-7.0 ~ +6.0

Y:-6.0 ~ +7.0

R:±6

角度は 0~360度 分解能は5度? って感じ。

 

便利だなって思ったのは接続までの設定とかがすごく簡単。

というか設定がほとんどない。

サーバー介してとかじゃないので パスワード設定とか

auth[]コード とかない。 イヤホンなんかと同じ感じ。。。

アプリ起動したら、インターフェース画面選んで、コンセントマーク押すだけ。

でもってインターフェース画面を違うのに変えても接続されたまま

データは通信されてるとことか。

 

後は、通信処理でどのくらい時間が掛かってるのか。。。

 そこが気になるところ、BlynkでもIMU信号通信は遅くて

 ロボが倒れてしまうので使えなかった。

 

プログラムでもBLEのためのおまじないが少ない。

動画のスケッチはこんだけ。

#define VER_PRT   M5.Lcd.printf("BLE_test\n")
#include "M5StickCPlus.h"
#include <DabbleESP32.h>
unsigned long ms100;

void setup() {
  M5.begin();
  Dabble.begin("M5stick");
  M5.Axp.ScreenBreath(8);
  M5.Lcd.setTextFont(4);
  M5.Lcd.fillScreen(BLACK);
  M5.Lcd.setTextSize(1);
  M5.Lcd.setRotation(2);

  ms100 = millis();
}

void loop() {
    Dabble.processInput(); 

    int Angle  = GamePad.getAngle();
    int Radius = GamePad.getRadius();
 float Xaxis  = GamePad.getXaxisData();
    float Yaxis  = GamePad.getYaxisData();

    if (millis() >  ms100){ // 100ms毎
        M5.Lcd.setCursor(0, 0);
        VER_PRT;
        M5.Lcd.printf(" Angle\n%6d     \n" ,Angle);   
        M5.Lcd.printf(" Radius\n%6d     \n",Radius); 
        M5.Lcd.printf(" Xaxis \n%6.1f    \n",Xaxis);  
        M5.Lcd.printf(" Yaxis \n%6.1f     "  ,Yaxis);    
    ms100+=100; 
    }

}