Batteries Monitoring

logo

écrivez-moi 

Le cahier des charges

Mon ami Phil a une voiture électrique (Citroën Saxo) équipée de coffres eux-mêmes remplis de batteries NiCd

Il y a en tout 3 coffres dont les 20 éléments montés en série assurent l'alimentation de la voiture sous une tension variant entre 20*6V et 20*8,5V soit entre 120 et 170V au total.

Les batteries commencent à être un peu vieilles et Phil souhaite les contrôler par un système de monitoring temps réel permettant de :

  • surveiller l'intensité fournie par les batteries
  • surveiller la température de chaque coffre (3 coffres au total)
  • surveiller la tension de chaque batterie
  • alerter en cas de tension trop basse sur une batterie

Le tout devant être le plus discret possible dans l'habitacle ce qui implicitement veut dire "liaison sans fil" entre l'électronique cachée dans les coffres et un appareil de type "PDA" dédié à l'affichage.

Saxo

 

La réalisation

Le concept est, dans son principe, très simple :

  • Trois cartes "esclaves" (1, 2 et 3) surveillent les tensions et mesurent la température de chaque coffre
  • Les cartes "esclaves" communiquent chacune sur un bus I2C avec une carte "maître" (4). Cette carte sert aussi à mesurer l'intensité totale consommée.
  • La carte maître communique via un port série avec un module bluetooth (5)
  • Le module Bluetooth est raccordé "sans fil" à un PDA (6) qui s'occupe des affichages

Schéma de la carte esclave (cliquez sur le schéma pour zoomer)

La carte "esclave" est conçue autour d'un convertisseur analogique numérique MAX11616 de chez Maxim. Ce composant possède 12 convertisseurs ADC sur 12 bits. Il communique les valeurs lues via un bus I2C.

Les 12 entrées sont utilisées pour accquérir 11 tensions d'une chaîne de batteries en série (V1 à V11) et acquérir la température du coffre grace à un capteur de température MCP9700 de chez Microchip.

Les ponts diviseurs sont calculés pour des batteries pouvant monter à 8,5V en charge. Le convertisseur saturant son entrée à 4,096V, les résistances de chaque pont sont adaptées au mieux pour obtenir la tension de 4V pour chaque batterie de la série.

On notera que la "masse" GND du schéma n'est pas la masse de la voiture mais la borne négative de la première batterie du coffre à mesurer. La borne positive de cette batterie allant sur la borne V1 du schéma. Ainsi de suite jusqu'à V11 qui correspond à la onzième batterie en série dans le coffre (soit une tension de 93,5V pour des batteries de 8,5V). La carte esclave doit être alimentée par les bornes négative et positive de cette première batterie. Il s'agit donc d'une masse "flottante" qui ne doit en aucun cas être raccordée à la masse de la voiture.

Les informations sont envoyées sur le bus I2C de la carte maître, lequel est référencé par rapport à la masse (GND1) de la voiture... Pour éviter des court circuits facheux, le bus I2C de la carte esclave est opto isolé grace à un coupleur de bus ISO1549 de chez Texas Instrument.

Schéma de la carte maître (cliquez sur le schéma pour zoomer)

La carte "maître" est conçue autour d'un PIC24FJ256GB106 de chez Microchip.

  • Ce composant possède 3 bus I2C qui sont raccordés fil à fil aux cartes esclaves.
  • Deux régulateurs permettent d'abaisser les tensions à 5V puis à 3,3V pour alimenter le PIC.
  • Un port série du PIC est utilisé pour se connecter au modules Bluetooth JY-MCU
  • Un port USB permet également de raccorder la carte à un PC pour changer le firmware ou débugger
  • la mesure d'intensité peut se faire avec un capteur à effet hall de type UGN3503 de chez Allegro

 

Les cartes esclave et maître sont réalisées sur des circuits imprimés simple face.

Vous trouverez ici les fichiers eagle et la liste des composants.

Le module bluetooth est bon marché (<10$) il se trouve très facilement sur internet en cherchant "JY-MCU bluetooth" sur ebay par exemple.

Une fois tout réalisé, les raccordements des cartes entre elles sont assez simples car les connecteurs sont "droits".

Il suffit donc de "tirer" des bus entre les coffres et la carte maître et entre le module bluetooth et la carte maître.

Plus délicat est le raccordement des 20 batteries sur les entrées des cartes.. Juste un peu de soudure et beaucoup de patience...

warning Attention à bien vérifier ce que vous faites car les tensions sont élevées...

Respectez bien l'ordre des batteries dans la série, en mesurant entre la borne négative de la première batterie et les suivantes on doit trouver :

  • V1 = 8,5 V
  • V2 = 17 V
  • ...
  • V11 = 93,5 V

Si le coffre comporte moins de 11 batteries, ce n'est pas grave laissez les entrées correspondantes en l'air. Par contre il est important qu'il n'y ait pas de "trou" dans la chaîne. Par exemple, si vous avez 9 batteries, alors il faudra les raccorder entre V1 et V9. V10 et V11 seront laissées libres.

 

Le logiciel PC

Nous allons commencer par vérifier le bon fonctionnement de la carte maître et d'une carte exclave :

  • connectez uniquement une carte esclave sur le bus I2C1, alimentez cette carte avec une tension continue entre 6 et 12V.
  • Alimentez la carte maître avec une tension continue de 5V à 2V.
  • Téléchargez et installez le logiciel PC
  • Lancez le et connectez la carte maître au bus USB de votre PC.

Si tout se passe bien vous devez voir ceci :

  1. l'état de connection de la carte passe de "not Attached" à "Connected"
  2. le bouton "Bootload..." ouvre l'écran "Parameters"
  3. le pavé "Debug" affiche 0 erreurs sur l'I2C1 et deux erreurs sur les cartes esclaves non connectées
  4. Si vous appuyez sur le switch "reset" de la carte maître et que vous appuyez sur le bouton "Bootload", la carte se déconnecte et vous pouvez changer le firmware
  5. Les valeurs brutes des capteurs sont figées aux valeurs indiquées

Ce logiciel est donc assez basique et ne sert pas en fonctionnement normal. Hormis la vérification de bonne santé des cartes vous pouvez vous en servir pour déclencher le changement de firmware.

Le firmware doit être chargé avec un logiciel spécifique de bootload

Le fichier .hex de firmware se trouve dans ce dossier

 

PC

 

Le logiciel PDA

Il est temps d'installer l'application sur votre PDA. Il vous faudra donc un appereil sous WinCE 2003 (au moins). Téléchargez le ficher .CAB d'installation sur votre PDA et installez le.

Vous devriez désormais voir une application dans votre PDA avec une icone de "clé à molette rouge"

Lancez là avec les cartes dans la même configuration que précédemment (une seule carte esclave sur I2C1)

L'application doit se lancer avec un message d'avertissement indiquant l'absence de paramètres de configuration permettant de restaurer les préférences dont le port sur lequel est connecté le module Bluetooth.

D'ailleurs pour que ce module fonctionne il vous faudra l'appairer avec le Bluetooth du PDA avec la clé "1234". Vous le repèrerez dans le Bluetooth manager avec le doux nom de "Linvor : Dev B" (attention ça peut changer selon les modules...)

Acquittez ce message, vous devriez alors obtenr l'écran de droite
PC

Il va maintenant falloir connecter le PDA au module Bluetooth pour celà :

  • cliquez sur le menu Bluetooth
  • choisissez "Open"
  • Dans la liste qui s'affiche
    1. sélectionnez le port correspondant au Bluetooth. Sur mon IPAQ2210 il s'agit du COM8.
    2. validez par la coche en haut à droite de la fenêtre

Si tout va bien, donc si le bon port a été sélectionné, la connexion va s'établir et la LED rouge de la carte bluetooth, qui clignotait jusqu'alors, va s'allumer en continu.

Vous avez réussi à vous connecter au Bluetooth : Bravo

 

La prochaine fois ça sera beaucoup plus simple car tous vos paramètres de connexion sont sauvegardés, vous n'aurez plus qu'à lancer l'application !

 

Vous avez désormais accès à un écran qui devrait afficher des informations plus interessantes :

  • Deux convertisseurs sont absents (ou en erreur). Ils sont vus en rouge. Par contre le convertisseur ADC1 ets correctement reconnu, son nom reste en noir.
  • Il affiche les valeurs moyennes des batteries qui le compose. Comme cette valeur est "faible" (ici 0V), la zone correspondante est peinte en rouge.
  • La tension totale du pack est à 0V (aucune batterie n'est connectée...)
  • La température du pack est de 11,8 °C. Touchez le capteur sur la carte esclave et vous verrez cette température monter.
  • La tension totale de tous les packs est de 192V ce qui est faux car les packs 2 et 3 sont en erreur
  • L'intensité totale est de 0A (le capteur n'est pas cablé...)

Répétez ces étapes avec les autres cartes esclaves, puis, si tout va bien et que toutes les cartes sont reconnues, vous pouvez installer les cartes dans la voiture et connecter les batteries sur les entrées des convertisseurs de tension.

Nous allons maintenant configurer le nombre de batteries à surveiller pour chaque coffre.

Pour ce faire vous devrez cliquer sur chaque bouton de la ligne "V moy".

Ces boutons ouvrent les écrans de survellance détaillée de chaque coffre.

Cliquez par exemple sur le bouton correspondant à l'ADC1 puis ouvrez le menu Calbration/Start

Apparaissent alors les paramètres de calibration et les cases à cocher permettant de désélectionner les batteries qui ne sont pas connectées.

Sur l'exemple j'ai désélectionné les batteries 7 à 11 car ce coffre n'a que 6 batteries.

Vous pouvez alors soit :

  • sortir du menu de calibration :
  • sortir de l'écran de surveillance du coffre n°1 et refaire la même chose pour les autres coffres

Dans les deux cas les paramètres seront sauvegardés.

Quand vous aurez configuré vos coffres et connecté les batteries voici à peu près à quoi pourrait ressembler l'affichage.

Les tensions moyennes sont affichées, elles sont vertes quand tout va bien, jaunes quand une batterie est en limite de tension et rouges quand au moins une batterie est en sous charge.

Vous pouvez regarder le coffre en question en cliquant dessus. Vous serez aussi amenés à calibrer les convertisseurs.

Par exemple cliquez sur l'ADC3 qui est "jaune" vous voyez que c'est la batterie 2 qui est en légère sous charge.

Passez alors en mode calibration et si par exemple la batterie n°2 qui affiche 5,7 V est mesurée à 5,99 V il suffit de changer la valeur dans la colonne.

Comme vous le verrez toutes les autres valeurs de la série "au dessus" de cette batterie seront modifiées elles aussi ... Il faudra les recalibrer également. Il est donc indispensable de commencer la calibration par le première batterie de la série.

Menu Settings

Ce menu vous permet d'accèder à l'écran de paramétrisation du logiciel

  • LowBat1 = seuil de surveillance en dessous duquel la batterie sera affichée en jaune
  • LowBat2 = seuil de surveillance en dessous duquel la batterie sera affichée en rouge
  • sampling = periode d'échantillonage des capteurs. Exprimé en secondes
  • logging period = multiple de la période d'échantillonnage des capteurs pour sauver les valeurs dasn un fichier
    • sur l'exemple les valeurs seront stockées toutes les 30*1 = 30s
    • si logging period = 0 l'écriture dasn le fichier est désactivée
    • dès que loggin period sera supérieur à 0 une fenêtre de sélection du fichier sera ouverte