altitude. - Conception d`un altimètre numérique

Download Report

Transcript altitude. - Conception d`un altimètre numérique

LABORATOIRE A2SI
INFORMATIQUE
ESIEE , PARIS
PROJET ALTIMETRE
Réalisateurs :
Nicolas Bacquias I3
Thomas Levesque I3
Arnaud Augias I3S
Jérémie Revenaz I3S
suiveur : Mr Grandpierre (A2SI)
ALTIMETRE VIDEO
•Idée originale d’Olivier Humez
•Altimètre de cerf volant ou nacelle
affiché sur une sortie vidéo standard
•Fonctions de base : altitude , température
MAQUETTE ET VIDEO
• Ci-dessus , vidéo
standard
•A gauche, la
maquette originale
ALTIMETRE LCD
•réadaptation de l’altimètre d’Olivier Humez
•informations lisibles sur LCD
•domaine de validité : 5 km
• précision de 2,5 %
• poids de 200 g
Principe du projet
• Un montage de référence réalisé avec un pic
16F84 bénéficiant d’un affichage vidéo.
• Migration vers un pic 16F877 avec
affichage sur un LCD.
– Intérêts :
• Module SPI intégré
• 5 ports de communication
Ecran principal / Affichage de
l’altitude
Altitude :
QNH : 1233 m
QFE : 1157 m
MENU
PS
P/T
▲
TX
▼
Affichage de la pression au sol
Pression au sol :
1026 hPa
▲
MENU
▼
←
Menu principal
MENU
► Liste Pressions
Enreg. Pression
Alarmes
Preferences
OK
←
▲
▼
Remarque : pour les menus, l’écran est représenté plus grand
pour pouvoir écrire toutes les options ; dans la réalité les options
défileront
Affichage de la pression et de la
température
Pression : 1018 hPa
Température : 12°C
▲
MENU
▼
←
Affichage du taux de
montée/descente
Taux de montée :
-3 m/s
▲
MENU
▼
←
Liste des pressions enregistrées
Liste Pressions
► PARIS ORLY
LONDRES HEATHROW
OK
←
▲
▼
Menu Pression
PARIS ORLY
► Utiliser
Modifier Nom
Modifier Pression
Supprimer
OK
←
▲
▼
Modifier Pression
PARIS ORLY
Pression :
1023 hPa
OK
←
▲
▼
Modifier Nom
ROISSY
Nouveau nom :
PARIS CDG
OK
←
→
▲
C
▼
Les flèches font défiler les lettres et chiffres, → valide la lettre, C
efface la dernière lettre, ← revient à l’écran d’accueil et OK valide
le nom.
Enregistrer Pression
ENREGISTRER
Nom :
NEW YORK LA GUARD
OK
←
→
▲
C
▼
Menu Alarmes
Alarmes
► Plancher
Plafond
Descente
Montee
OK
←
▲
▼
Conception du circuit
Basé sur l’altimètre vidéo d’Olivier Humez
http://perso.wanadoo.fr/ohumez/kapelectronics/altivid1.htm
Conception du circuit
PROBLEMES A EVITER POUR LA
CONCEPTION DE LA PLATE-FORME.
Pistes trop fines.
Vias trop nombreuses.
Pads de petites tailles.
Faire passer les pistes sous le pic et le
convertisseur.
Problèmes d ’agencement de composants.
Interfaçage du LCD
• 8 bits de données
• 3 bits de contrôle
RD0 RD7
PIC
8
DB0 DB7
RE0
RE1
RE2
RS
R/W
E
RB7
LED+
LCD
Communication entre le PIC et le
LCD
RS
R/W
E
DB7DB0
Données
Données
Données
Données
LCD : fonctions de base
•
•
•
•
•
•
•
LCD_Init : initialisation du module LCD
LCD_BusyCheck : attente de la fin du signal busy
LCD_SendCommand : envoi d’une commande
LCD_SendChar : envoi d’un caractère
LCD_SetLine : choix de la ligne
LCD_ClearDisplay : effacement de l’écran
LCD_FunctionSet : choix de l’interface, du nombre de
lignes et du type de caractères (5x8 ou 5x10)
LCD : fonctions avancées
• LCD_DisplayString : affichage d’une chaîne de
caractères
• LCD_DisplayBCD : affichage d’un nombre (5 chiffres)
• ReadStringFromFlash : récupération d’une chaîne de
caractères dans la mémoire flash
• LCD_SendCustomChar : envoi d’un caractère
personnalisé
Interface utilisateur
• Fonction ScanButtons : lit l’état des boutons en
supprimant les effets des faux contacts et des
appuis trop longs
Capture de la pression
PROTOCOLE DE COMMUNICATION
SPI
• Mise de donnée dans SSPBUFF
=> Lancement automatique de la communication
• Récupération d’une donnée en retour
(Pas forcément utile)
=> pour question/réponse : 2 requêtes
Capture de température
Protocole de communication
• 2 étapes :
– Routine de demande de conversion
• Envoi d'un signal de reset
• Skip numéro de série
• Demande de conversion
– Routine de lecture de la température
•
•
•
•
Envoie d'un signal de reset
Message : pas de numéro de série
Demande de lecture de la température
Lecture
VARIATION DE LA PRESSION EN FONCTION
DE L ’ALTITUDE.
Pression en hPa
1000
800
600
1
2
3
4
5
Altitude (en milliers
de mètres)
PRINCIPE DE CALCUL DE L ’ALTITUDE.
dp = - .g.dz
p = RT/M
p^(-1/γ).dp=-ρ0.g.p0.dz
z = 100.T0(1 - (p/p0)0,29)

p.v =cte
FORMULE DE CALCUL DE L ’ALTITUDE.
Altitude = a0+ p*a1+(p^2)* a2
a0 = 1013,84
a1 = -117,07
a2 = 4,368
CODE ALTITUDE
• Le code d’altitude se décompose en
trois parties :
1) Recalage en dixième de bars
2) Compensation de la dérive en
température
3) Approximation Polynomiale
RECALAGE EN DIXIEME DE
BARS
• Principe : on multiplie la valeur reçue du
capteur de pression par une constante
nommée ECHELLE_PRESSION
• Constantes Intervenant : Gain AD77 ,
Résolution 16-24 bits , coefficients
MPX2100 (visibles sur les datasheets
respectifs)
RECALAGE EN DIXIEME DE
BARS
RECALAGE EN DIXIEME DE
BARS
• Formule :
CoeffMPX.pleine échelle .recalage16bits
Résolution AD77 . Gain AD77
Ce qui fait 19531.
COMPENSATION DE LA
DERIVE EN TEMPERATURE
• Alimentation en 5 V => Besoin de compensation.
• La compensation est une rectification linéaire de la
pression en fonction de la température suivant la
formule :
•
 (TEMPERATURE+h80)xC1 (d40+h80)xC2
COMPENSATION DE LA
DERIVE EN TEMPERATURE
• C1 et C2 sont déterminés expérimentalement !
• La valeur A8h , dans le code ,correspond à la
température de 20°C ( 80h + 2* 20d), en effet le
LSB de la variable température WORK_TEMP est
le 1/2 degré et non le degré.
• La valeur d'200' au lieu de d'100' est due à ce
facteur 2 qui traîne , car l'unité de la variable
COMPENSATION est en degré et non en 1/2
degré
APPROXIMATION
POLYNOMIALE
• On veut coder le polynôme :
A( p)  a0  a1. p  a2 . p²
• a0 = 1013,84
• a1 =-117,07
• a2 = 4,368
APPROXIMATION
POLYNOMIALE
• On utilise la formule :
Altitude ( A3 Q / 2  A2)  Q / 2  A1
8
16
Q  11390 PRESSION
• On visualise sur QNH
APPROXIMATION
POLYNOMIALE
ALTITUDE PAR RAPPORT A
UNE PRESSION REFERENCE
• On utilise tout simplement la même formule
que précédemment !
• L’intérêt de cet algorithme est de permettre
à l’utilisateur de visualiser sa position par
rapport à un site donné .
• On visualise sur QFE
TAUX DE CHUTE
• Formule physique :
Taux = (A2-A1)/(t2-t1)
• On utilise Timer0 en mode timer pour
pouvoir évaluer le délai entre 2
approximations d ’altitude
INTEGRATION
• Structure modulaire du programme
• Déroulement du programme principal
• Gestion de l’espace mémoire
• Tests
STRUCTURE MODULAIRE DU
PROGRAMME
Calcul de
l’altitude
LCD
Pression
Programme
principal
Fonctions
diverses
Température
DEROULEMENT DU
PROGRAMME PRINCIPAL
• Initialisation
• Début boucle
–
–
–
–
–
Température disponible ?  acquisition
Pression disponible ?  acquisition
Calcul et affichage
Gestion de l’interface (boutons, etc…)
Retour au début de la boucle
GESTION DE L’ESPACE
MEMOIRE
• Problèmes :
– chevauchements de
variables
– trop de variables  on
dépasse de la 1ère
banque de registres
• Solution : utilisation
de la directive cblock
et de variables de
travail communes
TESTS
• Tests unitaires :
–
–
–
–
LEDs
Boutons et LCD
Température
Pression
• Ces tests ont permis de déceler certains
problèmes dans le circuit, le programme et
la configuration du PIC
CONCLUSION
Site web , comptes rendus de réunion …
Rigueur dans le travail en groupe
Conception de circuits PCB
Programmation de micro-controlleurs PIC
Gestion de plusieurs périphériques
Utilisation d’un afficheur LCD