1707982743
2024-02-13 11:35:04
前回の記事でもご紹介しましたが、 私たちのデータライダープロジェクト、リアルタイムで車のデータ(速度、位置、平均消費量、コース出口など)を収集することを目的としたあらゆる種類のセンサーで強化された電気自動車サーキット。 目的は? 革新的なデジタル ゲーム体験を創造しましょう! 今日は、このデモンストレーターの最初の段階の実行を可能にしたプロトタイプとツールを紹介します。 次に、私たちが遭遇したリアルタイムの問題とプロジェクトの残りの部分について説明します。
デモンストレーターの目的
このプロジェクトの実現を通じて、データチェーン全体が活用され、分析されます。 結果はダッシュボードに表示されます(賭け金は ダッシュボードのデザイン)、一連の IT ツールとフレームワークを通じて。

これは、社内のノウハウを顧客や見込み顧客に示す素晴らしいショーケースです。 また、誰もがアクセスできる教育ツールでもあり、データの問題と処理を簡単かつ明確に理解できます。
これを達成するための最初のステップは、 データ復旧のためのIoTプロトタイプの作成。
理解を容易にするために遊び心のある世界観で作成されたプロジェクトの実現を通じて、データ チェーン全体が活用され分析されます。
プロトタイプの作成
プロトタイプの作成には、アンペア数、電圧、位置データの収集を電子デバイスで取得し、コンピューターに送信できるようにするための研究開発段階が必要でした。
機能の原則:

センサーの状態は Arduino マイクロコントローラー カードを使用して読み取られ、すべてのデータは USB リンクを介してコンピューターに送信されます。
位置センサーは回路全体に分散されています。

位置センサーは磁気センサー (と呼ばれます) です。 エフェット・ホール) 磁石の通過を検出します。 それは全か無かの検出です。 各車両には磁石が装備されています。
アンペア数および電圧センサーは回路トレースに接続され、電圧とアンペア数を測定します。

電流センサーは、ホール効果によって電流を測定する特殊な回路です (位置センサーと同じ原理ですが、用途が異なります)。

各トラックには、回路の全長にわたって分散された 8 つの位置センサー、アンペア数センサー、および電圧センサーが装備されています。
電子システムの中心はマイクロコントローラー カードです。 ここでは、Arduino というブランドを使用します。

マイクロコントローラーは、マイクロプロセッサー、少量のさまざまなタイプのメモリー、および通信周辺機器 (入力および出力) を含むプログラム可能な集積回路です。
エネルギー消費、コスト、電力の点で組み込みシステムに適しています。 ナノコンピュータの一種です。
このシステムはオープンソースのIDE(統合開発環境)を使用し、Cに近いコンピュータ言語でプログラムされています。
なぜC言語を選んだのですか? それは単純に、これが低レベル言語であり、メモリと処理時間の観点からすべてのシステム リソースを最適化して管理できるからです (言語とは対照的に)。 Python言語 たとえば、リソースと処理時間の点でより要求が厳しくなります)。
こちらはArduinoプログラミングIDEの画面です。

プログラムを有効にするには、カードのメモリにダウンロードする必要があります。
その後、カードに電源が投入されるか、リセットが実行されるとすぐに、メイン プログラムがループで実行されます。
電子機器の取り付け
デモンストレーターを簡単に持ち運べるように、電子デバイス全体が折りたたみ可能なテーブルに統合されています。

回路、センサー、その他のデバイスの設置には、3D プリンティングを使用して作成された特定の部品の設計が必要でした (これについては別の記事で取り上げます)。
これにより、データ収集のための信頼性が高く堅牢なプロトタイプを作成することが可能になりました。
3D プリント設計では、オープンソース ソフトウェアも使用されたことに注意してください。
- モデリングソフト:Blender
- スライスソフト:Cura 5
リアルタイム データ フローの問題
これがコンピュータにデータが流れる仕組みです。

電子信号は Arduino コード (無限コード ループ) によって取得され、USB ポートに送信されます。 コンピュータがリカバリを処理します。 スクリプトPython。
実際の状況でのさまざまなテスト中に、データが失われているように見えました。
実際、データ取得中に、特定の位置検出がデータ ファイルに存在しませんでした。 単純化した図で確認すべき内容は次のとおりです。

センサーごとに実質的に同じ数の検出、または少なくとも車両の速度に比例する検出数が観察されるはずです。
たとえば、図では、センサー 254 については、車両が前を通過したときに 5 回測定が行われ、読み取られていることがわかります。
簡略化した図で確認したことは次のとおりです。

実際の状況で動作を観察すると、位置センサーからのデータが不足していることがわかります。
こちらは受信Pythonプログラムから生成された回路上の実車両運動データファイルの解析です。
アンペア数測定を行わない 12 回路ターンのファイルの分析

1は 観察によると、さまざまなセンサーの測定値は均一ではありません。 一部のセンサーは、他のセンサーよりもはるかに多くの出来事を捕捉します。 動きの速度は重要な役割を果たしますが、それだけで 1 つから 2 つまでの違いを説明できるわけではありません。
値 255 は検出なしに対応するため、検出数が多くなります。
アンペア数測定による 12 回路ターンのファイルの分析

アンペア数測定を含むこのファイルでは、位置センサーの測定と一般的な測定の発生が非常に大幅に減少していることがわかります。
テスト段階で特に注目されたのは、アンペア数の計算には処理時間 (約 40 ミリ秒) が非常にかかり、特定の位置センサーからの測定値の回復が妨げられるということでした。
デモンストレーターの第 1 段階の最終段階では、リアルタイム性と信頼性の高い完全な方法でのデータの回復の問題が浮き彫りになりました。
現在、システムの応答時間に影響を与え、信頼性を妨げる可能性のあるすべてのパラメータに関するテスト プロトコルの実装によるデータ調査フェーズが進行中です。
研究対象となるパラメータには次のようなものがあります。
- ボー (電子カードとコンピュータ間の通信速度)
ボーレートが速いほど、エラーのリスクが高くなります。 - Arduino コードを最適化してダウンストリームの処理速度を向上させる
- 上流の処理速度を高めるための Python コードの最適化。RUST などの新しい低レベル言語の使用を参照してください。
Data Rider: 最適化からプロジェクトの次の段階まで
現在、最適化テストが進行中であり、いくつかの解決策が検討されています(別のArduinoでのアンペア数の分散化、速度を上げるためのPythonの代わりにRustの使用、電力の時間関数における電力モデルの使用など)。
同時に、すでにフェーズ 2 を開始しています。このステップにより、 Kafka経由のデータ、その後、それらを治療します スパーク、それらをデータベースに保存し、最後に Grafana で表示します)。 さらに、フェーズ 3 では、車両の操縦が行われます。 人工知能 も進行中です。
続きます😉
👉 フォローして、すべてのニュースをリアルタイムでご覧ください リンクトイン 👈
#センサーからダッシュボードまでのリアルタイムデータ