rapport - La licence pro VEGA

publicité
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
Téléchargement