UDP接続の基礎実験で、1Mbps台の転送速度をだせる見込みがついたので、ここ3年間のESP-NOW,BlueToothでできなかった全データリアルタイム転送が実現できるので、システムの大幅断捨離化の検討を始めました。
●UDPの効果
1Mbps前後の実効転送速度がでるので、測定した全データをPCへダイレクトに無線送信できます。
今までは,115200bpsでBlueToothシリアルでしたので、とても全データ(300-500byte/120msec)を
転送するとデータ落ちが多数発生して諦めていたのですが、UDPだと可能になりました。
●断捨離
断捨離0:MovingBaseを廃止して、IMUでheading角だすので、シリアルが1ポート減る。
断捨離1:TeensyのSDログをやめて、ESP32単独でデータ収集とUDP転送をおこなう。
断捨離2:F9PのHPG1.32を古いバージョンHPG1.13に戻して、現状の8Hz駆動から
10Hz駆動にすることで、100msecと切の良い周期になるので、TimePulseと同期が1秒ごとに出来るので
プログラムの負荷が大幅に減少するのと、データタイミングの管理がしやすくなります。
断捨離3:ロガーとしてのインテリジェント機能は、全てマイコンでなくPCのプログラムで行うことで
ESP32に余計な仕事をさせない。例えば、SDログなど多機能にするとDIR表示、アップロード機能など多数のマイコンプログラムを埋め込まないといけなくなるが、SD無しなら、データが残らないから管理が無い。
●配線が簡単でシンプル
ESP32へは、F9Puart1とSerial1(RX33,TX32)とBNO085 RVCモードでSerial2(Rx16,Tx17)だけ接続するだけで簡単配線です。
●メリット皮算用(本当にメリットになるかは4月以降の試験結果で判る)
メリット1:システムがシンプルで小さくなる。
=>MovingBaseを廃止するとアンテナが1個になるしF9Pも1個になるので、システムサイズ半減します。
=>Teensyを廃止すると基板が2枚が1枚で済む。φ120の円の中に1枚基板でおさまるので、高さ10ミリ近く低くなる。
メリット2:マイコン側のプログラム開発負荷が軽減
=>CPUが1個で、しかも余計な仕事をさせないので、ESP32の小さなプログラム1本ですむ
メリット3:システムコストが安い、Teensy4.15千円に対して、ESP32e500円で壊れて惜しくない。
=>STAは、システムを酷使するので、デバイスは消耗品となるので安いにこしたことはない
●デメリット リスク
デメリット1:UDPのばらつきで、データ落ちが増えてしまうリスク
=>室内ベースでは、使える判断なので、フィールドで実使用する以外にない
デメリット2:センサ類を増設するのは無理。
=>あれこれやっていくとセンサを増やしたりしたくなるがESP32はシリアル1-3個なので増設は無理
●室内実験結果
①UDPの速度とデータ落ち
UDPは、誤送信補正機能がないので電波の伝送ばらつきに弱いので、距離をとって様子を見た。
方法:F9P RTKデータ172byteを100msec毎にリアルタイム転送してPCでばらつき時間とデータ落ちを測定
10分間6千データ
結果1:隣室5m離れた通信の場合は、データ落ちが0.15%発生してしまう
結果2:机上30cm距離で通信した場合、データ落ち0.016%と10倍良い。
結果3:5mと30cmともに、データ転送周期100msecに対してのばらつきは、5mで0.13sec、30cmで
0.087secと0.1sec近くばらついている。UDPは本質的に送信のばらつきがあるので、短い送信周期は危険だと思われる。
③ESP32でのUDP転送速度
今回は、172バイトなので、前回の512バイトの1.4Mbpsより0.966Mbpsと遅くなった。
●実験で使ったプログラム
ESP32は、非常にシンプルです。
ESP32:https://gist.github.com/dj1711572002/51d3ff4eadec2463f4011dc285949fe0
C#:https://gist.github.com/dj1711572002/44f65dbe2ba498a281464997ccded312
このC#プログラムはコンソールアプリで作ってあります。何故なら速いデータ受信を表示するためにコンソール窓
にしたからです。PCのIPアドレスをいれて、ポートをESP32の指定と同じくします。データはバイナリデータで
HEX文字で表示されます。終了は何かキーを押すと停止するので、画面をコピーしてからプログラムを停止させます。
UDPプログラムの基本は下記記事です。他の無線方式よりプログラムが簡単です。
【M5】WiFi UDPを初めていじってみた<めっちゃ速い>
【正月実験】SPI->UDP無線送信速度実験<SPI+UDPで1.4Mbpsまで落ちた>
●以後
IMUデータも合体させて、UDPの双方向通信も試してみる
防水ケースが小さくできるので、ケースの設計変更もいれていく。