Bernard Clément Boussouf Jaoued Rapport Projet Tutoré Mise en place d’un réseau CAN pour la caractérisation énergétique d’un scooter électrique Enseignants responsables : E. Gavignet F. Gustin L.Comtet 1 Sommaire I. Introduction ...................................................................................... 4 1) Objectifs : ...................................................................................... 4 2) Contexte :....................................................................................... 6 II. Développement : .............................................................................. 6 1) Recherche de composants : ........................................................... 6 2) Réalisation des cartes : .................................................................. 7 3) Explication liaison CAN : ............................................................. 8 4) Vérification du fonctionnement : .................................................. 8 5) Améliorations du projet :............................................................... 9 6) Typons : ....................................................................................... 10 7) Programmes et algorigrammes : .................................................. 14 8) Problèmes rencontrés : ................................................................ 18 III. Conclusion...................................................................................... 18 2 Remerciements Nous tenons à remercier : Mr Gavignet et Mr Gustin pour leurs temps précieux qu’ils nous ont accordés en explications ainsi qu’à l’aide reçu tout au long de ce projet. Vincent pour sa disponibilité et son aide à la réalisation du projet. Mr Comtet pour son soutien et ses conseils. 3 I. Introduction 1) Objectifs : Le scooter Kosmob, commercialisé par la société Newtéon, est possédé au Lycée Viette. Dans le cadre de la formation niveau bac STI2D, les enseignants souhaitent que le véhicule soit modifié et didactisé afin de mesurer les grandeurs caractéristiques de la chaîne d’énergie et de transmettre ces informations sur un écran LCD via un réseau CAN. Photos du scooter Caractéristiques constructeur MOTORISATION Puissance Type de moteur 500W Brushless BATTERIES Type Infos complémentaires Amovible Plomb ou lithium 48V ; 14Ah Non PERFORMANCES Vitesse maximale Autonomie 40km/h 40km 4 Descriptif du projet : L’interface homme-machine du scooter Kosmob s’avère des plus simplistes, seules les informations vitesse et état de charges batterie sont fournies via des compteurs à aiguille. Dans le cadre d’une utilisation pédagogique, les élèves préparant le baccalauréat STI2D spécialité Energie et Environnement doivent travailler sur la chaîne d’énergie du scooter Kosmob. Les informations suivantes sont nécessaires à la caractérisation de cette chaîne ; - Courant fourni par la batterie Tension aux bornes de la batterie Courant absorbé par le moteur Tension d’alimentation du moteur Vitesse du scooter Couple moteur Etat de charge batterie Puissance électrique absorbée Puissance mécanique de sortie Température moteur Température batterie Tension entrée chargeur Courant entrée chargeur Puissance entrée chargeur Ces informations devront être accessibles : Sur un écran LCD présent sur le scooter via un réseau CAN à créer. 5 2) Contexte : Synoptique du projet : Dans le cadre de ce projet, suivant le cahier des charges, nous devons réaliser un affichage LCD sur le scooter, qui sera implanté à coté du compteur électrique. Pour réaliser cet affichage, nous devions tout d’abord faire des tests sur table. Ceux-ci étant effectués à l’aide de trois cartes : une carte pour le capteur tension et pour le capteur courant, une carte réception pour l’affichage LCD ainsi qu’une dernière carte d’émission et de traitement d’information des capteurs. Les cartes d’émission et de réception seront reliées via une liaison CAN. Cette liaison permettra de visualiser sur l’afficheur les différents paramètres relevés : la tension, la température ainsi que le courant. II. Développement : 1) Recherche de composants : 6 Pour aboutir à ce projet, et répondre au cahier des charges, nous devions rechercher des composants qui répondent au cahier des charges. C'est-à-dire un capteur de courant et de tension qui permettra de connaitre l’intensité ainsi que la tension de la batterie et un capteur de température. Ces derniers ont d’abord été choisit en fonction de la tension de la batterie qui est de 48V. Donc les composants que nous avons utilisés pour ce projet sont : Un capteur de courant: HAIS 100P Un capteur de température: MCP 9700 Un capteur de tension: pont diviseur Un microcontrôleur : PIC18F4580 Un convertisseur 48V/12V: SIM5-2405S Un convertisseur 12V/5V: 7805 2) Réalisation des cartes : Dans un premier temps, nous avons décidés de faire des cartes tests qui nous permettaient de tester nos différentes fonctions de nos cartes avant de faire les validations et de les installer sur le scooter. Ces tests nous ont permit de vérifier sur table le fonctionnement de nos cartes via le LCD qui sera implanté sur la carte de réception. Carte support: La carte support a été confectionnée dans un premier temps dans le but de recueillir l’information du courant et de la tension batterie afin de les transmettre à la carte d’émission. Cette carte sera directement reliée à la batterie, soit une tension de 48V. Elle disposera de 3 condensateurs permettant simplement d’avoir un bon fonctionnement du capteur courant. Un pont diviseur de tension a été implanté sur cette carte pour permettre la division par 10 de la tension reçue de 48V. Ce choix de facteur de division a été fait de manière à ne pas endommager le microcontrôleur qui ne peut pas supporter de tension supérieur à 5V. U = (Ubat*R2) / R1+R2 = (48*100000) / 10000+100000 = 4,8V Le support de nappe HE10 permet de faire la liaison de cette carte à la carte d’émission. 7 Carte émission : Lors des phases de tests et de conceptions, cette carte disposait d’un convertisseur DC/DC 12V/5V pour l’alimentation du PIC16F4580, le MCP 2551 ainsi que le capteur de température. Cette carte permet, grâce au microcontrôleur, de recueillir les informations des capteurs, les stocker, et les transmettre par la liaison CAN. Pour permettre cette transmission de valeurs, il nous a fallut réaliser un programme propre à cette carte. Ce programme permet de créer la liaison CAN et de gérer l’émission des trames. La programmation de notre projet est faite à l’aide d’un PICKIT qui nous permettait de faire la connexion du PC (logiciel MP LAB) à nos diverses cartes. Carte de réception : Cette carte traite les informations arrivant par le bus CAN depuis la carte d’émission. Son objectif est de lire les données qui arrivent et de les afficher sur un écran LCD. En premier lieu cette carte était alimenter en 12V et régulait cette tension à l’aide d’un 7805. L’objectif de ce microcontrôleur est de décoder les trames CAN, et de les envoyer au LCD pour avoir un affichage en temps réel de toutes ces informations. 3) Explication liaison CAN : La liaison CAN est faite entre la carte d’émission et la carte de réception. A l’aide d’un microcontrôleur 18F4580 et d’un MCP2551 implantés sur les deux cartes, une programmation a été réalisée à l’aide du logiciel MP LAB. Le pickit permet de faire la liaison entre le logiciel et les cartes. Cette liaison envoie la trame CAN pour permettre la visualisation des informations sur l’afficheur, à l’aide de la programmation réalisée. Lors de la création de la liaison CAN nous avons choisi de prendre comme identifiant ou ID, 123. La vitesse de transmission choisie est de 125Kbits/sec avec une longueur de trame de 8 octets. Identifiant Réception Température Courant Tension 4) Vérification du fonctionnement : Pour tester le bon fonctionnement de notre première partie de projet, nous avons réalisé le branchement des trois cartes sur table. Afin d’étudier l’affichage des valeurs de courant, de tension et de température nous avons du simuler la tension de la batterie du scooter à l’aide d’une alimentation externe. Cela nous a permit de tester à la fois l’ensemble de nos capteurs une fois brancher, notre liaison CAN ainsi que l’afficheur LCD. 8 On a pu constater ensuite que notre LCD affichait bien les résultats, c'est-à-dire la tension, le courant, et la température. Ces valeurs étant lisible et changeante en temps réel, nous avons pu dire que notre liaison CAN marchait correctement. 5) Améliorations du projet : Après avoir validé le bon fonctionnement de nos cartes sur table, nous avons décidé d’installer les cartes dans le scooter. La seconde partie de notre projet consistait à l’implantation de l’ensemble de nos cartes dans le scooter. En concertation avec les professeurs principaux de ce projet, nous avons décidé que nous devions refaire les cartes pour que celles-ci soient plus petites. Nous nous sommes rendu compte que la carte support pouvait être entièrement insérée sur la carte d’émission. Au final la carte d’émission possède en plus un convertisseur 48V/12V ainsi qu’un capteur de tension sous forme de pont diviseur. De plus cette carte gère aussi l’alimentation de la carte de réception. Nous transmettons dorénavant une tension de 12V ainsi qu’une masse. Enfin la dernière amélioration portée à notre projet est l’affichage permanent de la vitesse en temps réel. Récapitulatif : - Réduire la taille des cartes Ajout d’un convertisseur 48V-12V sur la carte d’émission Additionner carte capteur support avec carte d’émission Ajout de la valeur de vitesse sur le LCD. 9 6) Typons : Carte émission : Description des parties : Partie 1 : Convertisseur DC/DC ; 48V/12V Cette partie permet de convertir le 48V de la batterie en 12V. Le fusible permet de protéger le circuit contre une surtension et la diode protège des tensions inverses. Partie 2 : Convertisseur DC/DC ; 12V/5V Ici, on transforme le 12V en 5V afin que l’on puisse alimenter le microcontrôleur, la transmission CAN, les capteurs de courant et de tension. Partie 3 : Capteur température Le MCP9700 prend l’information de la température et l’envoie au PIC18F4580. Il est déporté de la carte et se trouve proche des batteries. C’est un capteur analogique, alimenté en 5V, fonctionnant de -40°C à 125°C. 10 Il mesure des températures allant de 0°C à 70°C avec une précision de +/- 2°C. Il varie de 10mV/°C avec un offset de 0.5°C. Partie 4 : Pont diviseur de tension et capteur courant : Le capteur de courant, LEM HAIS 100P, transfère lui aussi l’information du courant au PIC18F4580. Il est aussi déporté de la carte et se trouve autours du câble des batteries. C’est un capteur analogique, alimenté en 5V, fonctionnant de -40°C à 85°C. Il dispose d’un offset de 2.5V et varie d’après cette équation : V= Vref+ (0.625(Ip/Ipn)) Avec : Vref= 2.5+/-0.025 Ip= courant mesuré Ipn= 100 Partie 5 : Microcontrôleur PIC18F4580 et liaison CAN: Ce microcontrôleur reçoit toutes les informations transférées par les capteurs, les enregistrent, et les transmet au travers la liaison CAN. Il est alimenté en +5V et ne supporte pas de tensions supérieurs à +5V. Les broches RA0, RA1 et RA2 sont attribuées aux relevés des 3 capteurs, ce sont des entrées analogiques. Les broches RB6, RB7 sont attribuées au PIC KIT pour la programmation du microcontrôleur. Les broches RB2, RB3 sont attribuées au transfert de données entre le PIC18F4580 et le MCP2551. Le MCP2551 effectue la connexion entre les deux cartes en envoyant les informations au MCP2551 se trouvant sur la deuxième carte. Le module est alimenté en +5V. 11 Carte réception : Description des parties : Partie 1 : LCD Le LCD permet la visualisation des informations. Nous utiliserons un module standard de 2 lignes de 16 caractères. Pour le pilotage, celui-ci requiert 4 bits pour les données et 3 bits de commande. On a décidé d’installer le LCD en dehors de la carte, car il manquait de place dans le guidon du scooter. RV2 sert pour le réglage du rétro-éclairage LCD. RV1 sert pour régler le contraste du LCD. Partie 2 : Microcontrôleur et liaison CAN : Même fonctionnement que la carte d’émission. 12 Typon carte émission : Typon carte réception : 13 7) Programmes et algorigrammes : Emission Algorigramme Début INIT CAN Activation de tous les ports analogiques Lecture de la température Lecture du courant Lecture de la tension Stockage des valeurs relevées dans des buffers Transmission par CAN FIN 14 Regroupé Programme #include <18f4580.h> #device ADC=10 #fuses HS,NOWDT,NOPROTECT,NOLVP #use delay(clock=20000000) #include <can_125k.c> float temp,tension,courant; unsigned int buffer[8]={0},resultat_courant,resultat_temp,resultat_tension; int32 rx_id; int rx_len; Création d’un tableau « buffer » struct rx_stat rxstat; 8 cases initialisé à 0. void main() { setup_adc(ADC_CLOCK_DIV_64); setup_adc_ports(ALL_ANALOG); can_init(); while(true) { set_adc_channel(0); delay_us(20); resultat_temp=read_adc(); Relevé de la température sur le port AN0 correspondant à la broche n°2 set_adc_channel(1); delay_us(20); resultat_courant=read_adc(); Relevé du courant sur le port AN1 correspondant à la broche n°3 set_adc_channel(2); delay_us(20); resultat_tension=read_adc()/4; Relevé de la tension sur le port AN2 correspondant à la broche n°4 temp=resultat_temp; courant=resultat_courant; tension=resultat_tension; buffer[0]=temp; buffer[1]=courant; buffer[2]=tension; Insertion des valeurs relevées dans différentes cases du tableau « buffer » can_putd(0x123,buffer,8,0,FALSE,FALSE); delay_ms(1000); } } 15 Création de l’ID de la trame (123) ainsi que l’indication de la variable transmise et son nombre de case. Réception Algorigramme Début CAN INIT LCD INIT Trame 123 Stockage des relevés dans des variables Calibrage des relevés Affichage des relevés sur le LCD FIN 16 Programme : #include <18f4580.h> #fuses HS,NOWDT,NOPROTECT,NOLVP #use delay(clock=20000000) #include <can_125k.c> #include <lcd.c> float temp,tension,courant; unsigned int buffer[8]={0}; int32 rx_id; int rx_len; struct rx_stat rxstat; void main() { lcd_init(); can_init(); while (TRUE) { if (can_kbhit()) { if (can_getd(rx_id,&buffer[0], rx_len, rxstat)) { if (rx_id==0x123) { temp=buffer[0]; courant=buffer[1]; tension=buffer[2]; temp=temp/6.21; courant=courant*0.82;//0.993 tension=tension/4.65; lcd_putc("\f"); // effacement de l’écran lcd_gotoxy(1,1); printf(lcd_putc,"T=%f",temp); lcd_gotoxy(9,1); printf(lcd_putc,"I=%f",courant); lcd_gotoxy(1,2); printf(lcd_putc,"U=%f",tension); delay_ms(150); } } } } } 17 Condition de réception de la trame émise Les valeurs insérées précédemment dans les cases du tableau sont transférées dans des variables afin d’être exploitées. Etalonnage des relevés Affichage des différentes valeurs sur le LCD à des emplacements prédéfinis. 8) Problèmes rencontrés : Le principal problème rencontré est l’implantation des cartes dans le scooter. Il nous a fallut réduire de moitié la carte de réception et avoir un LCD déporté relié par une nappe ainsi que la fusion de la carte support avec la carte d’émission. Cela a occasionné de nombreux problèmes de connectiques ainsi qu’une nouvelle réalisation des deux cartes principales. Ensuite il fallait que nous trouvions des endroits adaptés dans le scooter afin que les cartes soient à la fois protégées mais aussi facilement accessibles. Nous avons eu beaucoup de problèmes au niveau de la programmation en ce qui concerne le bon calibrage des informations ainsi que l’acheminement des données jusqu’au LCD. III. Conclusion On peut voir sur ces photos que les cartes d’émission et de réception ont bien été implantées sur le scooter. On voit aussi que le LCD est placé sur le guidon et que les données de la tension, de l’intensité et de la chaleur sont bien retransmises et varient en temps réel. La réalisation et la mise en place du bus CAN est un succès. Les perspectives du projet sont: - la réalisation d’une interface LABVIEW - le relevé de la vitesse, le clignotant, la commande de clignotant et le contact Une carte de support a été confectionnée afin de transmettre ces 4 données. 18 Annexes : 19