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 :
- 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.
- 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 :
- 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…
- Boitier ELM327 bricolé maison...
- 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 ;) :
- 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 :
- É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.
Il ne reste plus qu’à cliquer sur « CONVERT » pour générer votre fichier KML et l’ouvrir avec Google Earth :
- Affichage du trajet réalisé dans Google Earth
A suivre...