1748973758
2025-06-03 06:30:00
データチャネルの「データ収集」の部分はプロジェクトの比較的単純な部分であると自分に言ったことがありますか?この一連の記事では、私たちの見解では、それが見かけよりも重要で複雑な部分である理由を説明します。これを行うために、私たちは私たちが実行したプロジェクトに頼って、名前が付けられました Datarider。このプロジェクトにより、必要なデータの品質と数量、およびコレクションの観点から、次にデータチェーンの観点から最適なパフォーマンスを発揮するために必要なコードの編成に疑問を呈するようになりました。遭遇したすべての課題についての経験の復帰に行きましょう!
Datariderはaです 小型電気自動車のレースを中心に投影します。プレーヤーとプレイヤーに2つのゲームモードが提供されます。できるだけ早く(最初のゲームモード)に勝つか、最高のecoconduiteを持っていることで勝ちます。つまり、最低の電力消費(2番目のゲームモード)です。
このようなゲームを提供し、参加者にランキングを伝えることができるようにするには、レースからデータを収集する必要があります。
この最初の記事では、データ収集の最初の実装と、遭遇した最初の課題を提示します。レース中の車の場所に関する重要な情報を不足させないように、データの生産頻度を増やす方法を見つける必要性を見つけます。
このプロジェクトについても話しているすべての記事を見つけてください。
1.収集するデータをリストして定義します
最初のデータ収集を実現するために、最初にカーレースを分析するために必要な量を定義しました。
同時に収集する必要がありました。
- 車の位置データ、回路を醸造する位置センサーによって返され、
- からのデータ 張力 との強度 各車について、各車の電力消費を確立します。
注ぐ 与えられた車、したがって、生データには次の外観があります。
![[Data Rider] 特定の車の総データ](https://i0.wp.com/blog.businessdecision.com/wp-content/uploads/2025/05/1-data-rider-REX-donnees-brutes-1024x528.jpg?resize=1024%2C528&ssl=1)
![[Data Rider] 特定の車の総データ](https://i0.wp.com/blog.businessdecision.com/wp-content/uploads/2025/05/1-data-rider-REX-donnees-brutes-1024x528.jpg?resize=1024%2C528&ssl=1)
からのデータを含む完全なデータライン 2台の車 回路のその後、次のように表示されます。
![[Data Rider] 2台の車からのデータ](https://i0.wp.com/blog.businessdecision.com/wp-content/uploads/2025/05/2-data-rider-REX-donnees-2-voitures-1024x226.jpg?resize=1024%2C226&ssl=1)
![[Data Rider] 2台の車からのデータ](https://i0.wp.com/blog.businessdecision.com/wp-content/uploads/2025/05/2-data-rider-REX-donnees-2-voitures-1024x226.jpg?resize=1024%2C226&ssl=1)
2。センサーとArduinoコードからのコレクションの確立
このコレクションは、電子機器で従来の方法で使用される物理センサーから行われます。これらのセンサーは、Arduino Megaカードに配線されます。
以下は、使用するさまざまなセンサーです。
![[Data Rider] ロケーションセンサー](https://i0.wp.com/blog.businessdecision.com/wp-content/uploads/2025/05/3-data-rider-REX-capteurs-localisation.jpg?resize=219%2C249&ssl=1)
![[Data Rider] ロケーションセンサー](https://i0.wp.com/blog.businessdecision.com/wp-content/uploads/2025/05/3-data-rider-REX-capteurs-localisation.jpg?resize=219%2C249&ssl=1)
- ロケーションセンサー
場所の場合、ホールエフェクトセンサーは、車の後輪に接着された磁石の通過を検出します。
Arduino Pinの構成後、Arduinoスクリプト、ArduinoカードのPina(Car 1)とPinc(Car 2)のおかげで、位置データを取得するために直接読みます。
![[Data Rider] 張力センサー](https://i0.wp.com/blog.businessdecision.com/wp-content/uploads/2025/05/4-data-rider-REX-capteurs-tension.jpg?resize=246%2C216&ssl=1)
- 電圧センサー
2つのセンサー(ちなみにセンサー)は、アナログの方法で分割橋を作り、回路の少ないポールと車の2つのレールの1つの間の張力を参照します。読み取りは、ネイティブAnalogread()読み取り関数を介して、Arduinoで直接行われます。
![[Data Rider] 強度センサー](https://i0.wp.com/blog.businessdecision.com/wp-content/uploads/2025/05/5-data-rider-REX-capteurs-intensite.jpg?resize=347%2C189&ssl=1)
- 強度センサー
これらは「ACS712」センサーです。彼らは、同じ名前の「ACS712」のArduinoの書店で動作します。これは、強度の読み取り機能を提供します。書店の関数の1つは、強度を読み取るために使用されます:ma_dc()。この関数の引数は、平均強度値を返す前にどれだけのポイントが取られるかを示しています。信号が非常に粗いため、媒体は正しい強度の読み取りに必要です。
Arduino読み取りループを以下に示します(値に示す例)。 USBケーブルにメッセージが送信され、各反復:
![[Data Rider] Arduinoリーディングループ](https://i0.wp.com/blog.businessdecision.com/wp-content/uploads/2025/05/6-data-rider-REX-boucle-arduino-1024x343.jpg?resize=1024%2C343&ssl=1)
この例に送信されたメッセージは次のとおりです。 «254; 14.77; 233.4; 255; 6.77; 185.56»。
私たちのデータ収集は準備ができています!スクリプトを起動し、最初のテストを実行します。
3。この最初の収集フェーズの分析
コレクションは機能的で、目的のデータラインを取得します。良いニュース、一見!次に、いくつかの自動車レースを実行し、注意してください…特定のロケーションセンサーの前での車の通過は、データ収集では考慮されていません。実際には、多くのロケーションセンサーの信号を見逃しています。彼らは時々非常にうまく機能しているようで、時にはまったくそうではありません…
どうしたの?
センサー、トランスミッションワイヤ、排出、受信の適切な機能を検証した後、追加の反射を開始し、次の仮説に至ります。
車が位置センサーの前であまりにも速く通過するように見えることがあり、信号が確実に系統的に回収されないように見えます。特に車が速すぎない場合は回収されることがありますが、センサーの前で車が速すぎるときは、車が速すぎない場合はそうではありません。
センサーを変更せずにこの問題を解決するには(問題はセンサーから来ていないからです)?
ここでは、データコレクションチェーンに関する追加の詳細を提供します。
4.データチェーンの詳細
完全なデータキャプチャチェーンは、次のように表示されます。
![[Data Rider] データキャプチャチェーン](https://i0.wp.com/blog.businessdecision.com/wp-content/uploads/2025/05/7-data-rider-REX-chaine-captation-donnees-1024x354.jpg?resize=1024%2C354&ssl=1)
データがキャプチャされ、Arduinoに送信されます。後者は、センサーの状態を読み取り、読み取り可能な形式にデータを配置し、コンピューターに接続されたUSBケーブルに皮ひもとして送信するためのループ(ループ中)を常に生成します。コンピューターのコンピュータースクリプトは、ケーブルが到着するUSBポートを読み取ります。 Pythonスクリプトはループでもあります。線を読み取った後、後者は有効な場合(無効な英数字データまたは無効なデータ番号が到着するために到着して拒否される場合がある場合があります)、タイムスタンプが追加され、最終的にラインがカフカフローに送信され、治療スイートとのリンクが発生します(一部)。
このチェーンには、分析に重要な情報があります。 タイムラインタイムタンプ。
5。収集されたデータの頻度の分析
TimeTampの情報のおかげで、データラインが6ミリ秒ごとに送信されることがわかります。
私たちの仮説は、この頻度が低すぎるということです: 車が6ミリ秒未満でロケーションセンサーの前を通過した場合、データは純粋に「表示」されていません。。これは、車が平均して1秒あたり約2.5メートルで、ホールエフェクトセンサー(ロケーションセンサー)が幅数ミリメートルであるため、数ミリ秒のセンサーの前に通過する時間が残るためです。
何よりも、データラインを送信する頻度を決定する要素は何ですか?これは、与えられた行のプロデューサーであるArduinoコードです。確かに、Arduinoコードが6ミリ秒をかけている場合:
- 張力センサーを読んで、
- 強度センサーを読んで、
- ロケーションセンサーを読んでください、
- データを並べてフォーマットして組み立て、
- USBケーブルにラインを送信し、
- これらの手順の先頭に戻ります
したがって、ロケーションセンサーの読み取りの2つの瞬間の間に6ミリ秒、または2つのデータラインの送信(またはループの任意の段階とこの同じ段階の次の反復)の間に6ミリ秒です。
下の図では、黒の各ポイントは、「ロケーションセンサーのデータを読み取る」関数がArduinoスクリプトで呼び出される瞬間を表します。 Δt 対応する Arduinoループの反復時に、2つの読み取り操作の間。
![[Data Rider] Arduinoループの反復](https://i0.wp.com/blog.businessdecision.com/wp-content/uploads/2025/05/8-data-rider-REX-iteration-boucle-arduino-1024x353.jpg?resize=1024%2C353&ssl=1)
この図により、特定の位置データを見逃す理由を理解することができます。車がマイルストーンの前で速すぎる場合(例: “253”マイルストーンのマイルストーン)、取得が低すぎる頻度は、車がセンサーの前を通過したときにサンプリングしないリスクをもたらします。対応するマイルストーン(ここでは「253」)は「見られない」ものではありません。
したがって、データ収集の頻度を増やすか、それ以外の定式化されて、2つのデータ測定値を分離する時間を短縮しようとします。 2つの数量は、次の式で接続されています。
![[Data Rider] データ収集頻度](https://i0.wp.com/blog.businessdecision.com/wp-content/uploads/2025/05/9-data-rider-REX-frequence-acquisition-donnees.jpg?resize=659%2C288&ssl=1)
6。強度捕獲の撤回
テスト中に、強度の読み取り機能があることがわかります。 ma_dc()、いくつかのポイントで平均するという事実のために、Arduinoループをかなり遅くします。
これは、関数の場合はそうではありません AnalogRead() (電圧データのキャプチャ)および ピナ /ピンク (位置データのキャプチャ)、はるかに高速です。
したがって、強度の読み取り値を取り除き、オームの法則(i = u/r、車の抵抗)のおかげで理論的に強度を見つけることにします。
車の抵抗の恒常性に不確実性があるため、測定するよりも理論的な方法で強度を見つけることはそれほど正確ではありません。実際、誘導性と容量性の効果により、オームの法則はここに近似しています。それにもかかわらず、前進するために、私たちは少なくとも最初は、この近似を達成するためにパーティーを取ります。
そのため、ここでは、車の位置とターミナルの緊張のみを含む新しいデータ収集形式をテストする準備ができています。
![[Data Rider] Arduinoループ](https://i0.wp.com/blog.businessdecision.com/wp-content/uploads/2025/05/10-data-rider-REX-boucle-de-arduino.jpg?resize=945%2C655&ssl=1)
7。データ収集の新しい形式
リマインダーとして、古い行形式は次のとおりでした。
![[Data Rider] データ収集ラインの古い形式](https://i0.wp.com/blog.businessdecision.com/wp-content/uploads/2025/05/11-data-rider-REX-ancien-format-lignes-1024x224.jpg?resize=1024%2C224&ssl=1)
強度のない新しい形式は、以下の次のものです。
![[Data Rider] データ収集ラインの新しい形式](https://i0.wp.com/blog.businessdecision.com/wp-content/uploads/2025/05/12-data-rider-REX-nouveau-format-lignes.jpg?resize=771%2C266&ssl=1)
繰り返しますが、2行の取得の間の平均期間を調べます。約2ミリ秒です! 2つの指定された線の間のレイテンシに関して3レート係数を獲得し、車の位置信号でのマイルストーンがはるかに少なくなります。まだ完璧ではありませんが、一般的に車の位置を識別するのに十分なデータをキャプチャし、後でこのコードの改善に戻ることにします。 (この記事では、暗号化されたパフォーマンスデータを提供します)。
プロジェクトを継続し、それを前進させるために、ETL(抽出、変換、負荷)でのデータの処理:新しい部分に焦点を当てます。なぜこの一連の記事の次のステップがETL部分について話すことなのですか?結局のところ、この経験のリターンは、ETLではなくデータ収集の境界に関係していませんか?現実には、ETLで実行される運用の開発により、私たちはデータを収集する方法を変更する方法を変更することを推進しました。
データ収集の次のステップIoT:ETLで実行される運用の研究と収集の選択への影響。従うために…
>>私たちをフォローして、すべてのニュースをリアルタイムで見つける LinkedIn
#Data #Rider #Rex #IoTデータ収集 #ステップ1コレクションを開始する