マシンのテレメトリーシステムについて

こんにちは小泉と申します。

今回は要望の多かった、マシンに搭載してますテレメトリーシステムとダッシュボードについて技術公開させていただきます。

 

目次

  1. 使用機材
  2. 概要図
  3. マシンからの入力信号
  4. ディスプレイの表示
  5. 無線での通信について
  6. 未実装部分、反省等
  7. ソースコード

使用機材

基本的に秋月やマルツで揃う物で作る方針で進めました。

NEXTIONを採用した理由として、多少凝ったレイアウトを実装したい場合でも、後述するGUIツールを用いて比較的簡単に作れる点があります。予めデータの表示形式や変数名を指定しておき、マイコンからシリアル通信にて各変数の値を送る事で液晶に情報を出すことが可能です。適時最適な大きさのものを選定して下さい(実装やプログラムは変わりません)。

ダイポールアンテナは取り付け箇所によってアンテナ位置をSMA-J ⇄ SMA-Pケーブルで延長して下さい。

 

概要図

マシンからの入力信号

すべての信号はCANで一方方向へ送られるように設計しました。

実装するうえで重要だった点は、バッファーをESP32側に用意してディスプレイに送信することでした。

またダッシュボードシステムにはトグルスイッチが有り、デバッグモードと走行モードを切り替えられるようにしています。

ディスプレイの表示

ESP32側からは、表示ID.val=データ  の形式でディスプレイに送信します。Serial.print関数を用いると簡便です。

気を付けるポイントとして、ページを切り替える指令(page=の関数)は送るとディスプレイ側でレンダリングに時間がかかってしまう点です。必ずページ切り替え指令が発生したときのみに送るようにして下さい

ディスプレイのプログラムはすべて Nextion Editor を使用して作成しました。GUIメインで大幅に開発時間を減らすことが出来ました。

UIの開発はgoogleの図形描写を使用してNextion Editorで描画するように作成しました。

タッチディスプレイとして機能を色々実装できますが、今回はドライバーのことを考えて液晶は表示のみとしています。

baudrateは115200に設定しています。

あとでも記述しますがNextionのロジックレベルは5Vですので必要に応じて3.3Vへレベルシフトして下さい。

またNextionは表示に250mA必要としますのでご注意下さい

 

こちらが走行モードです。

走行中でもドライバーが見やすいよう優先順位を付けて大きさを工夫しました。

こちらがデバッグモードです。

テレメトリー側では常にこちらを表示させるようにしました。基本的に始動時と終了時はこちらを表示させます。

無線での通信について

TWELITEでは一度USB書き込みモジュールを使用してPCと接続して シリアル通信アプリ に変更します。

設定方法は wiki を参考にしてください。

通信モードを「透過モード」に設定し、マシン側のTWELITEへ入るUART信号と全く同じ信号をテレメトリー側のTWELITEから出力する方式です。

受信範囲についてですがエンデュランス時にP2横のサインボードテントから受信しておりましたが、ASEの長辺の半分ぐらいまで受信できました(2個目のスラロームからメインストレート後のスラロームあたりまで)。

Nextionは5VでTWELITEは3.3Vですので必要に応じて3.3Vへレベルシフトして下さい。TWELITE→Nextionのみの方向でしたら問題有りません

未実装部分、反省

時間的なリソースで実装できていませんが理想的にはパケットをNextionのserial.print原文ではなくデータとして送信して受信側でマイコンを挟んでNextionに送る構成のほうが安定するかと思います。また双方通信を実装してクルーがマシンの最大出力を制限する機能など実装できたかもしれません。

反省点として、アンテナの位置と形状をよりこだわったほうが遠距離まで通信できたかもしれません。

最後に小泉個人としての意見

こちらのテレメトリーシステムかなりシンプルな構成をしておりまして実装も簡単でして多くのチームで真似して頂いて下さい。また将来的な勝手な構想ですが、テレメトリーシステムが普及してEVならではの電費や制御を見える化して実況席で現在状況を実況したり、一般観客が見えるようにして学生フォーミュラの盛り上げに貢献できる未来を期待しています。

ソースコード

マシンのデータ利用規約

  1. データに関しては、チームおよびメンバーの都合で公開範囲の変更を実施することがございます。
  2. 本データそのもの、及び参考にして得られた設計データをもとにした製品について、いかなる責任も東京大学やUTFFおよびUTFF関係者は負いません。自己責任の精神でお願いいたします。
  3. 本データの一部の再配布と利用を禁じます。学生フォーミュラのための使用であれば利用に関する制限は基本的に設けませんが、著作権は放棄しておりません。以下のような条件でのご使用はお断りさせていただきます。
      1. 公序良俗に反する目的での利用
      2. 反社会的勢力や違法行為に関わる利用
      3. 公開したデータやそれをもとにしたデータ・製品を商品として再配布、販売等の営利活動
      4. その他チームが不適切と判断した場合
  4.  下記のリンクにアクセスすることで上記の利用規約に同意したとみなします