Livres blancs Webinars

Dans un précédent article, nous vous présentions notre projet Data Rider, le circuit de voiture électrique amélioré de capteurs en tout genre visant à collecter les données des voitures en temps réel (vitesse, position, consommation moyenne, sortie de piste, etc.). L’objectif ? Créer une expérience de jeux digitale innovante ! Aujourd’hui, je vais vous présenter le prototype et les outils qui nous ont permis de réaliser la première étape de ce démonstrateur. Ensuite, je vous expliquerai les problématiques de temps réel que l’on a rencontrées et la suite du projet…

J-14 icône webinar

Matinale Data & IA

05 Déc 2024 |08h30 – 14h00 Paris
S'inscrire

Les objectifs du démonstrateur

A travers la réalisation de ce projet, c’est toute la chaîne de la donnée qui est exploitée et analysée. Les résultats sont affichés dans des Dashboards (misez sur le Dashboard Design), au travers d’un ensemble d’outils IT et de Framework.

Circuit Data Rider

C’est une formidable vitrine de notre savoir-faire en interne, auprès de nos clients et prospects. C’est aussi un outil pédagogique accessible à tous, qui permet de rendre la compréhension des enjeux et du traitement de la donnée simple et claire.

Pour y parvenir, la première étape a été la réalisation du prototype IoT de récupération de la donnée.

A travers la réalisation d’un projet créé dans un univers ludique pour en faciliter la compréhension, c’est toute la chaîne de la donnée qui est exploitée et analysée.

La réalisation du prototype

La réalisation du prototype a nécessité une phase de recherche et développement pour s’assurer que la collecte des données d’ampérage, de voltage et de positions était récupérable dans un dispositif électronique, puis transmissible à un ordinateur.

Le principe de fonctionnement :

Data Rider : flux des acquisitions de données

L’état des capteurs est lu grâce à une carte à microcontrôleur Arduino et l’ensemble des données est envoyé à un ordinateur via une liaison USB.

Les capteurs de positions sont répartis tout au long du circuit.

Data Rider : capteurs de position

Les capteurs de position sont des capteurs magnétiques (dit à effet Hall) qui détectent le passage d’un aimant. C’est une détection en tout ou rien. Chaque véhicule est équipé d’un aimant.

Les capteurs d’ampérage et de voltage sont connectés aux pistes du circuit pour mesurer la tension et l’ampérage.

Data Rider : boitiers

Le capteur d’intensité est un circuit spécialisé qui mesure le courant par effet hall (même principe que le capteur de position, mais l’utilisation est différente).

Data Rider : piste est équipée de 8 capteurs

Chaque piste est équipée de 8 capteurs de position répartis sur l’ensemble de la longueur du circuit, d’un capteur d’ampérage et d’un capteur de voltage.

Le cœur du système électronique est une carte à microcontrôleur. Ici, la marque utilisée est Arduino.

Data Rider : système électronique

Un microcontrôleur est un circuit intégré programmable contenant un microprocesseur, différents types de mémoires en faibles quantités et des périphériques de communication (entrées sorties).

Il est adapté pour les systèmes embarqués, en termes de consommation énergétique, coût et puissance. C’est une sorte de nano ordinateur.

Ce système se programme grâce à un IDE (Integrated Development Environment) open source, dans un langage informatique proche du C.

Pourquoi avoir opté pour le langage C ? Tout simplement parce que c’est un langage de bas niveau qui permet de gérer l’ensemble des ressources système de façon optimisée en mémoire et temps de traitement (à l’opposé d’un langage Python par exemple qui lui sera plus gourmand en ressources et temps de traitement).

Voici un screen de l’IDE de programmation Arduino.

Data Rider : screen de l'IDE de programmation Arduino

Le programme doit être téléchargé dans la mémoire de la carte pour être actif.

Ensuite, dès que la carte est alimentée ou qu’un reset est effectué, le programme principal s’exécute en boucle.

Le montage du dispositif électronique

L’ensemble du dispositif électronique a été intégré à une table pliable afin de rendre le démonstrateur facilement transportable.

Data Rider : Le montage du dispositif électronique

L’installation du circuit, des capteurs et autres dispositifs a nécessité la conception de pièces spécifiques faites grâce à l’impression 3D (cela fera l’objet d’un article dédié ).

Ceci a permis d’avoir un prototype fiable et robuste pour l’acquisition des données.

A noter que dans la conception en impression 3d, des logiciels open source ont aussi été utilisés :

  • Le logiciel de modélisation : Blender
  • Le logiciel de slicing : Cura 5

Article

Apache Kafka expliqué à mes grands-parents

Lire la suite

Les problématiques de flux de données en temps réel

Voici le principe de fonctionnement des flux de données jusqu’à l’ordinateur.

Data Rider : flux des codes utilisés pour l'acquisition de données

Les signaux électroniques sont captés par le code Arduino (boucle de code infinie), qui les envois sur un port USB. L’ordinateur se charge de la récupération grâce à un script Python.

Lors des différents essais en conditions réelles, il est apparu que nous perdions de la donnée.

En effet, durant l’acquisition des données, certaines détections de position étaient tout simplement absentes dans le fichier de données. Voici ce que l’on aurait dû observer en schéma simplifié :

Data Rider : occurence des détections des capteurs de position

Nous aurions dû observer un nombre de détections par capteur sensiblement identique, ou du moins proportionnel à la vitesse du véhicule.

On voit sur le schéma, par exemple, que pour le capteur 254, la mesure a été prise et lue 5 fois lors du passage du véhicule devant.

Voici ce qui a été observé en schéma simplifié :

Data Rider : occurence des détections des capteurs de position - Absence

L’observation du fonctionnement en conditions réelles, laisse voir des manques de données des capteurs de positions.

Voici l’analyse d’un fichier de données réelles de déplacement des véhicules sur le circuit générés à partir du programme python de réception.

Analyse d’un fichier de 12 tours de circuit sans mesure de l’ampérage

Data Rider : Analyse d'un fichier de 12 tours de circuit sans mesure de l'ampérage

Le 1er constat est que la mesure des différents capteurs n’est pas homogène. Certains capteurs captent beaucoup plus d’occurrences que d’autres. La vitesse de déplacement joue un rôle mais ne permet pas à elle seule d’expliquer des écarts du simple au double.

La valeur 255 correspond à une absence de détection, d’où le nombre élevé de détections.

Analyse d’un fichier de 12 tours de circuit avec mesure de l’ampérage

Data Rider : Analyse d’un fichier de 12 tours de circuit avec mesure de l’ampérage

Dans ce fichier avec mesure de l’ampérage, on constate une très forte diminution de l’occurrence des mesures des capteurs de position et des mesures en général.

Il a surtout durant été remarqué durant les phases de tests que le calcul de l’ampérage était fortement gourmand en temps de traitement (environ 40 ms seconde), ce qui empêchait la récupération des mesures de certains capteurs de position.

La finalisation de la 1ére étape du démonstrateur a mis en lumière les problématiques de temps réel et de la récupération de la donnée de manière fiable et entière.

Actuellement, une phase d’exploration de la donnée est en cours avec la mise en place d’un protocole de Tests sur l’ensemble des paramètres qui peuvent impacter le temps de réponse du système et empêcher sa fiabilisation.

Parmi les paramètres à étudier, se trouvent :

  • Le Baud (vitesse de transmission entre la carte électronique et l’ordinateur)
    Plus le baud est rapide et plus le risque d’erreur est grand.
  • L’optimisation du code Arduino pour gagner en vitesse de traitement aval
  • L’optimisation du code Python pour gagner en vitesse de traitement amont, voir l’utilisation d’un nouveau langage plus bas niveau, comme RUST.

Data Rider : de l’optimisation à la prochaine étape du projet

Des tests d’optimisation sont en cours actuellement, et plusieurs solutions sont à l’étude (décentralisation de l’ampérage sur un autre Arduino, utilisation de Rust à la place de python pour gagner en rapidité, utilisation d’un modèle de puissance en fonction du temps pour la puissance, etc.)

En parallèle, nous avons déjà commencé la phase 2. Cette étape doit permettre d’ingérer les données via Kafka, puis de les traiter avec Spark, de les stocker dans une base de données et, enfin de les afficher dans un Grafana). De plus, la phase 3, qui consiste à piloter un véhicule avec une intelligence artificielle est également en cours.

À suivre 😉

👉 Retrouvez toute notre actu en temps réel en nous suivant sur LinkedIn 👈

Consultant data Business & Decision

Au fil de mes 25 ans d’expériences professionnelle dans différents domaines de l’industrie, la data a toujours été l’élément commun de mon parcours. Aujourd’hui, après une reconversion récente, j’en ai fait l’élément central, sur lequel je peux valoriser mes savoir-faire et acquérir de nouvelles compétences…

En savoir plus >

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Votre adresse de messagerie est uniquement utilisée par Business & Decision, responsable de traitement, aux fins de traitement de votre demande et d’envoi de toute communication de Business & Decision en relation avec votre demande uniquement. En savoir plus sur la gestion de vos données et vos droits.