旧Blynkがもう新規には使えないってことで代わりになるもの探してて
RoboTakao さんが Dabbleなるものを紹介されてるのを見つけた。
自分が作ってるロボにもBlynkの代わりにできそうか
まずはどんなものか試してみた。
使ってみた感じ、それなりに使えそう。
Blynkみたいに自由なデザインはできなさそう。
あるいくつかの形が決まったインターフェースが用意されてる。
Blynkみたいに送信データの範囲を指定とかデータ送るタイミングとかは
指定できないのかな。。。
ジョイスティック入力というのをつかってみた。
デザインはこれ。
画面左のジョイスティックを操作した時の送られてくるデータ
データの範囲は
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;
}
}