> Site STI de l’académie d’Orléans-Tours
site du ministere
site de l académie
Vous êtes ici : Accueil > Ressources pour STI2D > Projet Twizy > [STI2D] Prototype de datalogger pour Twizy
Par : Webmaster
Publié : 24 février 2013

[STI2D] Prototype de datalogger pour Twizy

Travaux de décodage pour notre projet TRAAM académique

En parallèle d’un développement plus aboutit et bientôt commercialisé par la société Exxotest, des équipes de l’académie travaillent au développement d’un prototype permettant d’obtenir un minimum de données de la Twizy afin d’alimenter notre projet TRAAM 2012-2013.

En effet, l’exploitation pédagogique de la Twizy nécessite de pouvoir récupérer des données réelles de fonctionnement. Il est donc indispensable de bénéficier d’un « datalogger » (enregistreur de données) capable d’enregistrer les données provenant du véhicule via la prise diagnostique OBD (On Board Diagnostic). Enfin, ces données doivent être corrélées avec une géolocalisation issue d’un GPS afin de pouvoir visualiser via Google Maps ou Google Earth l’évolution des paramètres sur un parcours donné. C’est maintenant chose faite, voyez plutôt...

Un peu de technique

Il existe différents formats de trame pour un bus CAN, mais celui nous concernant est le format standard avec des identifiants sur 11 bits :

PNG - 10.8 ko
Organisation d’une trame CAN standard

Ce qui nous intéresse ici :
- Identifier : numéro de la trame (de l’identifiant)
- DLC : indique le nombre d’octets de données contenues dans la trame (max 8)
- 0…8 bytes Data : les données transmises dans la trame

Ce qui se trame dans la Twizy

Dans le cas des véhicules à moteur à explosion certaines informations sont standardisées au niveau des identifiants ou des PID’s, mais pour notre Twizy, rien de connu….

Comment faire à ce niveau pour connaître les numéros de trames contenant des informations qui pourraient nous servir ? Et bien, il faut s’armer de patience et tenter d’identifier à quoi peut bien correspondre telle ou telle information…

Ainsi, nous avons pu identifier plus ou moins facilement certaines informations relatives à des températures, à la tension de batterie, à la vitesse, à l’état de charge, à la position de la pédale, à la distance parcourue totale, à la distance avant recharge et à la puissance embarquée. Mais, attention, sous toute réserve…

Un boitier OBD à base d’ELM327

Avant de se lancer dans le prototypage, encore fallait-il vérifier certaines informations. Pour ce faire il existe des boitiers peu coûteux dans le commerce. Un des moins chers repose sur le circuit ELM327 à base de PIC. Il en existe différentes versions : bluetooth, USB, RS232. Les premiers tests pour vérifier le dialogue ont été faits avec la version Bluetooth.

Le boitier intègre tout ce qu’il faut pour récupérer les trames circulant sur le bus CAN.

PNG - 13.9 ko
L’interfaçage entre le PC et la prise diagnostic

La connexion entre le boitier et le PC se fait via une liaison série classique (port COM virtuel pour l’USB et le BT). A présent, direction la documentation de ce circuit afin de récupérer les informations contenues dans une trame.

Les commandes de base (les commandes sont envoyées sous la forme AT) :
- ATZ : initialisation du boitier et envoie en retour de la version
- ATSP0 : choix du protocole automatique ; Le circuit choisira lui-même le protocole a utiliser (format standard/étendu, 100kbits/s ou 500kbits/s…)
- ATL0 : les réponses se font sans retour à la ligne, juste avec un retour chariot
- ATH1 : le circuit répond en ajoutant le header (identifiant trame)
- ATD1 : le circuit répond en ajoutant le DLC
- ATCRAXYZ : le circuit ne renverra que les données de la trame XYZ (filtre)
- ATMA : commande pour récupérer les données

Il s’agit ici des commandes utilisées plus tard, voir la documentation pour plus de détails et pour d’autres commandes.

Premiers résultats :

Voici un exemple de réponse du circuit à la commande ATCRA155 suivie de ATMA :

PNG - 26.3 ko
Détail d’une trame

On remarque que le circuit renvoie en permanence les données de la trame 155 tant qu’aucune autre requête n’est adressée. Pour le stopper, il suffit d’envoyer un caractère et de recommencer avec une autre trame.

Naissance d’un prototype de datalogger avec géolocalisation

Il s’agissait de faire au plus simple et au plus rapide pour les tests avec ce que l’on a sous la main…

PNG - 220.2 ko
Boitier ELM327 bricolé maison...
PNG - 222 ko
Le coeur de l’interface : carte Arduino Mega avec module SD, affichage LCD et module GPS

Quelques mesures brutes

Voici l’allure de données récupérées, après affichage dans un tableur du fichier au format CSV (séparateur ;) :

PNG - 32.4 ko
Les données brutes récupérées en CSV

Après identification de quelques paramètres et traitement, voici une représentation graphique de l’évolution de la vitesse de la Twizy en fonction de l’appui sur la pédale :

PNG - 15.6 ko
Évolution de la vitesse

Mise en forme pour Google Earth et Google Maps

Il est également possible de générer à partir de notre fichier CSV un fichier exploitable au format « kml » pour visualiser le trajet et les différents paramètres de la voiture dans Google Earth ou Google Maps.

Attention, il faut au préalable remplacer dans le fichier CSV tous les points virgule par des virgules, avec un simple éditeur de texte. Le logiciel « CSV2KML » permet ensuite de générer un fichier KML à partir du fichier CSV avec comme séparateur une virgule.

PNG - 35.2 ko

Il ne reste plus qu’à cliquer sur « CONVERT » pour générer votre fichier KML et l’ouvrir avec Google Earth :

PNG - 205 ko
Affichage du trajet réalisé dans Google Earth
PNG - 128 ko
Affichage du trajet réalisé dans Google Maps

A suivre...