【STA】モニターをM5Stackへ変更<Core2発注>

STA(Ski Turn Analyzer)開発はプレゼンは完了しましたが、これからが本格的な技術開発となります。
今までは、チャンピオンデータを出すだけの初回のプロトです。これから実用性のある計測システムとして
開発を本格的にやっていかないと、誰もが簡単に使えるシステムになりません。

●スキー場での測定課題
課題1:テレマーク姿勢でLengthが300cmと突然飛ぶことがある。
=>アンテナに上体が被ると電波の障害がでるのか?
=>アンテナ位置を上体が被らない位置に移動する。

課題2:滑り終わった直後にその1本の計測データが無事測定できたか確認できない
=>Acc2dとLengthを見て、判断しているので、モニター中にhAccとlengthをプロットして
異常値がでているかどうかを確認できるようにする。

課題3:SDにログしたファイルを選択する手段がボタン3個で作るのが大変面倒なので、タッチパネル付きのCore2にすることにしました。CPUは性能はBASICと同じですが、ボタンが静電になって、壊れにくいので耐久性が上がっていると思います。がんがん使うにはBASICでは不安があります。一時期在庫切れだったのですが、今なら在庫があるので今のうちにゲットしたほうがいいと思いスイッチサイエンスさんに発注いれました。

■M5StickCでは、LCDが小さすぎてデータを確認できないスマホにBTでデータを流す方法も検討したが、ESP-NOWとBTを同居させるのが無理なのでもう一個BTモジュール必要なのでかさばるし、スマホを取り出して操作する手間が発生するので、スマホでなくM5Stackでモニターしてロググラフも表示できる仕様にすることにモニターシステムを変更しました。

●モニター周期でリアルタイムプロット
全データを125msecでプロットするとなると無線速度とM5StackのLCD処理能力が無理。
目的:LengthとAcc2dが基準値より飛んでいるかどうかを全測定時間で見られるようにする
方法:500msec周期でLengthとAcc2dをプロットして、Lcd幅320ドット=160secを繰り返してプロットして重ね書きしてエンベロープグラフにして、異常値とばらつきの範囲を表示する
下のグラフで、
■Acc2d:
青いラインがAcc2dのゼロラインと30mmラインで挟まれた領域
右データが白プロット、左データが黄色プロット

緑のラインがLengthの92cmラインと122cmラインに挟まれた領域
右データが赤、左データピンク
    

 

●プログラム
 このプロットは非常に簡単にできます。GISTにアップしておきます。
 https://gist.github.com/dj1711572002/9836dbf3026efda0d6d4430b8284eded
プロット部分は簡単です。

//——–Length Plot———————-
int Lbaseline=190;
M5.Lcd.drawLine(0,Lbaseline,320,Lbaseline,GREEN);
M5.Lcd.drawLine(0,Lbaseline-20,320,Lbaseline-20,GREEN);
//Length
int px=int(n/8)%320;
int Lpy0=Lbaseline-int((Length[0])-92);
int Lpy1=Lbaseline-int((Length[1])-92);
M5.Lcd.drawPixel(px,Lpy0,RED);
M5.Lcd.drawPixel(px,Lpy1,MAGENTA);
M5.Lcd.setCursor(160,Lbaseline-10);
M5.Lcd.setTextSize(1);
M5.Lcd.setTextColor(GREEN);
M5.Lcd.print(“Length 92cm”);//———-hAcc———————————–
int Abaseline=150;
M5.Lcd.drawLine(0,Abaseline,320,Abaseline,BLUE);
M5.Lcd.drawLine(0,Abaseline-30,320,Abaseline-30,BLUE);
int Apy0=Abaseline-int((Acc2d[0]));
int Apy1=Abaseline-int((Acc2d[1]));
M5.Lcd.drawPixel(px,Apy0,WHITE);
M5.Lcd.drawPixel(px,Apy1,YELLOW);
M5.Lcd.setTextColor(BLUE);
M5.Lcd.setCursor(160,Abaseline-10);
M5.Lcd.setTextSize(1);
M5.Lcd.print(“Acc2d”);//——————————————-

●RTK 2Chのデバッグ環境整備
アンテナを2セットを家の外にだして、受信するのも大がかりなので、今回から、Base,Rober2本のアンテナから
2分配して、2個のRTKBOXに電波をいれてみるこころみをしました。
やはり電波が弱くなるので、収束時間が20分くらいかかるし精度も悪化しますがデバッグ用なら使えます。

●以後
 実際にスキーしながら使ってみて使えるか確認してみます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です