Système de télémétrie pour modèle réduit

Slides:



Advertisements
Présentations similaires
Télémétrie pour voiture Eco Marathon SHELL
Advertisements

Microcontrôleurs PIC. 1ère séance Présentation du PIC16F876 Outils de programmation du PIC Le langage C Exemples d’applications simples 2ème séance Présentation.
Plan de l’exposé Introduction
TP de Physique n°3 : Ecoulement des liquides : débit et vitesse
Chapitre 4 la représentation des nombres. Chapitre 4 : La représentation des nombres 1 - Introduction 1.1 – Notion de mot 2 - La représentation des entiers.
Fonctionnement interne d'un routeur (kurose p ) Eugen Dedu IUT Belfort-Montbéliard, R&T1, France avril 2009.
Conception, simulation et réalisation d’un thermomètre numérique
Module actionneur pour électrovannes, 6 sorties VAA/A
Fiches de cours curriculum SIMATIC S7-1500
Chapitre I - Le circuit électrique
Activité Mini Projet Porte cartes
Acquisition Rapide Multivoies
Module de gestion des tournées de livraison
Centrale de Communication
Acquisition Rapide Multivoies
Construire des requêtes
DOC MYCK : Programmation
ADK – Section Plongée Théorie N2
Modifications des blocs fonctionnels du Servo 9300 V2.0
Caméra wifi C’est une caméra audio, infrarouge, elle est orientable. Il y a une antenne relié à la caméra (elle permet de capter les ondes). Mais on peut.
Choix de la méthode de calcul
Acquisition Rapide Multivoies
S.P.I BUS série synchrone à grande vitesse Cliquez ici pour avancer
Fonctionnement des radars
Fonctions et composants élémentaires de l ’électronique
Langages pour le Temps Réel
Préparer par : Intissare et kaoutare
L’électronique et la programmation
Evaluation de l'UE TICE 1 TRANSMISSION DES DONNEES INFORMATIQUES SABATIER Fabienne 1ère année de sciences du langage/sciences de l’éducation.
3ème Livre 1 Rappel.
Chapitre 12 Surveillance des ressources et des performances
Cyber-Sphinx Séance 2.
GRADATEUR PRINCIPE Les gradateurs sont des convertisseurs statiques qui assurent une modulation d’énergie alternatif FIXE Alternatif Variable A l’aide.
Cyber-Sphinx Séance 2.
Protocoles réseau.
LE FILTRAGE ANALOGIQUE. Définition : La fonction filtrage sert à assurer la suppression des signaux de fréquence non désirée. Il existe deux types de.
Comment identifier les énergies et les informations dans un système ?
Programmer des systèmes automatisés. Chaine d’information.
Projet Télémetrie Moto
Surintensité I > I nominal Surcharges Circuit sans défaut apparent Court-circuit avec défaut d’isolation.
Evaluation de l'UE TICE 1 TRANSMISSION DES DONNEES INFORMATIQUES SABATIER Fabienne 1ère année de sciences du langage/sciences de l’éducation.
Surintensité I > I nominal Surcharges Circuit sans défaut apparent Court-circuit avec défaut d’isolation.
Commande embarquée de moteurs
Liaison série.  Dans une liaison série, les données sont envoyées successivement, bit par bit. Il suffit de deux fils (un fil de signal et un fil de.
Présenté par : M. TEMZINE Omar M. Zellat Salah eddine. Promotion 2016/2017 République Algérienne Démocratique et Populaire Ministre de l’enseignement supérieur.
FONCTION COMMUNIQUER Michel SEGURA Stéphane LIBUTTI.
Communications séries synchrones
Les GPS Garmin adaptés au vol libre
Communications séries synchrones
S.P.I BUS série synchrone à grande vitesse Cliquez ici pour avancer
OPTIPOINT Mode d’emploi
Thème: Avancées scientifiques et réalisations techniques
Prise de performance sur 40m haies (P1) Prise de performance sur 40m rivières (P2) Performance cible du cycle sur les haies = moyenne P1+P2 Comparer.
1 PROJET D’INFORMATIQUE les composants de l'ordinateur Gammoudi Rayéne 7 B 2.
1. Caractéristiques d’antennes Antennes et Rayonnement.
Comme son nom l’indique, ce réseau a 3 phases. Nous connaissons le réseau monophasé ( 1 phase + 1 neutre). Le triphasé a été crée afin d ’alimenter des.
Sylvie DELAËT 2002 Architecture des machines Bienvenus en Amphi d’Architecture des Machines.
logiciel de communication de protocole GIEGLAN
Formation CCNA 16 - Routage Classless VLSM/CIDR. Sommaire 1)Introduction au routage classless 2)CIDR* 3)VLSM** 4)Configuration * Classless Inter-Domain.
Rappels sur le grafcet Normes NF EN CEI /01/2019
Niveau 2 : Tables de plongée
Position, dispersion, forme
Sommaire : Labview NXG: nouvel interface labview.
DMX 512 Eclairage de scène. Plan du cours I.Le DMX, qu'est-ce que c'est ? 1.Avant le DMX II.La norme DMX III.Fonctionnement du DMX 1.DMX ? 2.DMX, liaison.
CHAPITRE IV : AMPLIFICATEUR DIFFERENTIEL Electronique Analogique A. Aouaj.
1 Détection d’obstacle Génie Mécatronique Groupe sur Face book: Futur Ingénieur  IKANBANE YOUSSEF Réaliser par :
Système de Numération : Décimal, Binaire, Octal et Hexadécimal
LES TRANSMISSIONS DE DONNEES : Les types de liaisons en PARALLELE ou en SERIE
Réaliser par: Ounis Nassim Salah Ilhem Khammouma Hanen Encadré par: Mr. Bel Haj Habib Mr. Ben romdhane Mahmoud.
Transcription de la présentation:

Système de télémétrie pour modèle réduit Projet Tuteuré Système de télémétrie pour modèle réduit BIAU Christophe DEGAËTANO William 2005-2006

Plan: I – But du projet: II – Déroulement du projet: III – Planning et budget: IV – Fonctionnement du système: V – Fonctionnement des capteurs: VI - Réalisation de la carte: VII – La programmation du PIC: VIII – Conclusion.

I – But du projet : Améliorer les performances de la voiture. Étudier son comportement selon les conditions. Affiner les réglages. Ne pas détériorer le matériel.

II – Déroulement du projet: Le projet a été découper en huit parties Préparation projet : Limite fixée, capteurs choisis etc…, LabView (1ère partie) Traitements des données, Tests Capteurs : Vitesse et Température, Programme P.I.C (en fonction des capteurs), Réalisation et tests Carte Capteur / PIC, Montage carte capteur / PIC sur voiture RC, Optionnel: Système radio + Adaptation LabView, Optionnel : Rajout de capteurs.

III.1 – Planning:

III.2 – Budget:

IV – Fonctionnement du système: Plan: IV.1 – Fonctionnement du système global: IV.1 – Fonctionnement du système embarqué: IV.2 – Fonctionnement du système traitement:

IV.1 – Fonctionnement du système global: Données à envoyer Modèle Réduit

IV.2 – Fonctionnement du système embarqué: Transmissions Acquisition des données Capteurs

IV.3 – Fonctionnement du système traitement: Récepteur Ordinateur: Traitement des données sous LabView Adaptation des signaux

V – Fonctionnement des capteurs: Plan: V.1 – Compte tour par minute: V.2 – Capteur d’essence: V.3 – Capteurs de température: V.4 – Capteur de tension:

V.1 – Compte tour par minute: 1er cas: 2eme cas: Sortie opto-coupleur:

V.2 – Capteur d’essence: Création du capteur: Fonctionnement: 1- Coupage des deux tubes 2- Soudage des fils 3- Insertion du tube 4- Capteur Réservoir essence Capteur Équivalent à un condensateur variable Conversion: Niveau  Fréquence

V.3 – Capteurs de température Température Ambiante: Température Moteur: Parler: les capteurs ne sont pas adapté car …………… Capteur Caractéristique du capteur

V.4 – Capteur de tension:

VI.1 - Réalisation de la carte embarquée: Très petit

VI.2 - Réalisation de la carte récepteur:

VI.3 - Réalisation du boîtier:

VII – La programmation du PIC: Plan: VII.1 – Le capteur Vitesse Moteur: VII.2 – Les capteurs de température et tension batterie: VII.3 – Le capteur Vitesse Véhicule: VII.4 – Le capteur Essence: VII.5 – La temporisation: VII.6 – La transmission des données:

VII – La programmation du PIC: Les différents moyens utilisés pour la programmation du PIC : - Utilisation d'un quartz de 4MHz - Utilisation du Timer 0 - Utilisation du Timer 1 en mode Capture - Utilisation du Timer 2 (Temporisation) - Utilisation du module USART

VII.1 – Le capteur Vitesse Moteur: On utilisera le Timer 1 en mode Capture, le capteur sera câblé sur l'entrée RC2 du PIC Ici q sera égale à 100us Compteur 16 bits (2 registres de 8 bits) Qmax est égale à FFFF(16) soit 65535(10) Lorsque le Timer 1 déborde → TMR1IF=1 COPIE

VII.1 – Le capteur Vitesse Moteur: Formule pour la valeur de la Vitesse Moteur : TRMIN_Value = (CCP2_Debord_2 – CCP2_Debord_1) * 65536 + (CCP2_Value_2H – CCP2_Value_1H) * 256 + (CCP2_Value_2L – CCP2_Value_1L) * 1 TRMIN_Value=((4000000/4)*(1/TRMIN_Value))*60; Exemple : RC2 +5V t TMR1 Qmax 50329 TRMIN_Value = 65536 + 50329 * 256 + 22508 * 1 = 12972268 TRMIN_Value = ((4000000/4)*(1/12972268))*60 TRMIN_Value = 4 tr/min 22508 q t Valeur de CCPR2H mit dans CCP2_Value_1H Valeur de CCPR2L mit dans CCP2_Value_1L Valeur de CCPR2H mit dans CCP2_Value_2H Valeur de CCPR2L mit dans CCP2_Value_2L

VII.1 – Le capteur Vitesse Moteur: Partie Initialisation : TMR1CS=0; //Sélection du Quartz interne (4MHz) CCP1M2=1; //Choix du front descendant sur le Capture 1 CCP1IE=1; //Autorisation de l'IT par le mode Capture 1 CCP2M2=1; //Choix du front descendant sur le Capture 2 CCP2IE=1; //Autorisation de l'IT par le mode Capture 2 TMR1IE=1; //Autorisation de l'IT du Timer1 (quand celui ci déborde) PEIE=1; //Autorisation générale des IT T1OSCEN=1; //Contrôle par les oscillations TMR1ON=1; //Mise en route du Timer1 Partie principale : #define QUARTZ 4e6 if(Capture_Enabled_TRMIN) //Si autorisation du traitement { TRMIN_Value=(CCP2_Debord_2-CCP2_Debord_1)*65536 +(CCP2_Value_2H-CCP2_Value_1H)*256 +(CCP2_Value_2L-CCP2_Value_1L)*1; TRMIN_Value=((QUARTZ/4)*(1/TRMIN_Value))*60; Capture_Enabled_TRMIN=0; //Désactivation du traitement dans le programme principale }

VII.1 – Le capteur Vitesse Moteur: Partie interruption : interrupt void isr(void) { if(TMR1IF==1) //Si le Timer1 déborde TMR1IF=0; Compteur_TIMER1++; //Débordement du Timer 1, on compte les multiples de 65536 événements } if(CCP2IF==1) //Si l'IT du système Capture 1 CCP2IF=0; if(CCP2_OnFirstEvent==1) //Si c'est le premier événement CCP2_Debord_1=Compteur_TIMER1; //Copie de la valeur de debordement CCP2_Value_1H=CCPR1H; //Copie du registre CCPR1H et CCPR1L CCP2_Value_1L=CCPR1L; CCP2_OnFirstEvent=0; else //Sinon CCP2_Debord_2=Compteur_TIMER1; //Copie de la valeur de debordement CCP2_Value_2H=CCPR1H; //Copie du registre CCPR1H et CCPR1L CCP2_Value_2L=CCPR1L; CCP2_OnFirstEvent=1; Capture_Enabled_TRMIN=1; //Activation des traitement des données dans le programme principale

VII.2 – Les capteurs de température et tension batterie: L'acquisition des valeurs analogique des capteurs de température et de la tension de la batterie se fera avec le CAN du PIC. Ce CAN utilise le principe de l'approximation successive. Les capteurs seront câblés sur les broches RA0, RA1 et RA3 Approximation successive : exemple pratique Vous avez un livre de 15 pages, vous choisissez la page 13 Voici comment vous allez procéder pour trouver de quelle page il s’agit. - On coupe l’intervalle en 2, arrondi à l’unité supérieure, soit 8. - Le numéro de page est-il supérieur, inférieur ou égal à 8 ? - Le numéro est supérieur, donc dans l’intervalle 8-15 - On coupe cet intervalle en 2, soit 12 - Le numéro est-il supérieur, inférieur, ou égal à 8 ? - Le numéro est supérieur, donc dans l’intervalle 12-15 - On coupe l’intervalle en 2, soit 14 - Le numéro est-il supérieur, inférieur, ou égal à 14 ? - Le numéro est inférieur, donc dans l’intervalle 12-14 - Le numéro est donc 13, puisqu’il n’était égal ni à 14, ni à 12 Notre nombre maximum est de 1111(2), soit 15(10) la tension a l'entrée vaut 1101(2), soit 13(10) - On coupe l’intervalle en 2, soit 1000(2) ou 8(10) - La tension est-elle inférieure ? - Non, donc compris entre 1000(2) et 1111(2) - On coupe l’intervalle en 2, soit 1100(2) ou 12(10) - Non, donc compris entre 1100(2) et 1111(2) - On coupe l’intervalle en 2, soit 1110(2) ou 14(10) - Oui, donc compris entre 1100(2) et 1101(2) - On coupe l’intervalle en 2, soit 1101(2) ou 13(10) - Non, donc le numéro de page est 1101(2)

VII.2 – Les capteurs de température et tension batterie: Partie Initialisation : ADCON0=0x40; //TAD=Fosc/8, Canal 0 par défaut PCFG2=1; //Configuration pour 3 Canaux de conversion (AN0,AN1,AN3) ADIE=1; //Autorisation de l'IT ADON=1; //Mise en route du convertisseur Partie principale : #define QUARTZ 4e6 if(Active_Converter==1) //Si la conversion est possible { switch (Choix_Canal) //Choix du Canal case 0: DelayUs(4); //Attente pour que le CAN puisse repartir ADCON0=0x41; //Choix du canal 0 DelayUs(20); //Attente pour que le CAN s'initialise Canal=0; ADGO=1; //Mise en route de la conversion Active_Converter=0; //Désactivation de l'autorisation de la conversion break; //De même pour les autres canaux }

VII.2 – Les capteurs de température et tension batterie: Partie interruption : interrupt void isr(void) { if(ADIF==1) //Lorsque le convertisseur a terminé ADIF=0; switch (Canal) //Selon le canal choisis pour la conversion case 0: Temp_Moteur_Value=ADRESH; //Enregistrement de la valeur convertis ADON=0; //Mise en arrêt du convertisseur Choix_Canal=1; Active_Converter=1; //Activation de l'autorisation de la conversion break; case 1: Temp_Ambiant_Value=ADRESH; //Enregistrement de la valeur convertis Choix_Canal=2; case 2: Voltage_Value=ADRESH; //Enregistrement de la valeur convertis Choix_Canal=0; if(Voltage_Value<=2) //Si tension batterie = 2V RB3=1; //Allumer LED ORANGE }

VII.3 – Le capteur Vitesse Véhicule: Le Timer 0 sera utilisé pour l'acquisition de la Vitesse Véhicule. Lors d'un événement sur l'entrée RB0 (entrée du capteur Vitesse), le Timer préviendra le PIC que celui-ci a récupérer la valeur de la Vitesse Véhicule Compteur 8 bits Qmax est égale à 256(10) q est égale à 100us Débordement → TMR0IF=1 Fonctionnement presque identique au Timer 1

VII.3 – Le capteur Vitesse Véhicule: Lors d'un débordement, in incrémente un compteur Lors d'un événement sur RB0, on fait une copie de TMR0 et on le remet à zéro Exemple : RB0 +5V t TMR0 Qmax 230 28 t Copie de TMR0 dans TMR0_Value avec quatre débordements Copie de TMR0 dans TMR0_Value avec dix débordements

VII.3 – Le capteur Vitesse Véhicule: Partie Initialisation : INTE=1; //Activation de l'interruption par RB0 INTEDG=0; //Interruption par front descendant RBPU=0; //Activation de la résistance de rappel T0CS=0; //Choix du quartz 4MHz PSA=0; //prédiviseur mit sur Timer0 PS0=0; //Pour avoir un prédiviseur de 1 PS1=0; PS2=0; Partie principale : #define QUARTZ 4e6 if(Capture_Enabled_Vitesse) //Si autorisation du traitement { Vitesse_Value=TMR0_Value; //Formule pas encore appliquée Capture_Enabled_Vitesse=0; //Désactivation du traitement dans le programme principale }

VII.3 – Le capteur Vitesse Véhicule: Partie interruption : interrupt void isr(void) { if(TMR0IF==1) //Si débordement du Timer0 TMR0IF=0; Compteur_TIMER0++; //Debordement du Timer 0, on compte les multiples de 256 événements } if(INTF==1) //Si événement sur l'entrée RB0 INTF=0; TMR0_Value=(256*Compteur_TIMER0)+TMR0; TMR0=0; //Remise a zéro du registre pour le prochain calcul Compteur_TIMER0=0; //Remise a zéro du compteur de débordement pour la prochaine mesure Capture_Enabled_Vitesse=1; //Activation des traitement des données dans le programme principale

VII.4 – Le capteur Essence: Pour l'acquisition de donnée du capteur d'essence, on utilisera, comme pour le capteur de vitesse moteur, le Timer 1 en mode Capture. Le capteur utilisera le second système de Capture sur le Timer 1. Il sera câblé sur la broche RC1, et les registre TMR1H et TMR1L seront copiés vers les registre CCP1RH et CCP1RL.

VII.4 – Le capteur Essence: Partie Initialisation : TMR1CS=0; //Sélection du Quartz interne (4MHz) CCP1M2=1; //Choix du front descendant sur le Capture 1 CCP1IE=1; //Autorisation de l'IT par le mode Capture 1 CCP2M2=1; //Choix du front descendant sur le Capture 2 CCP2IE=1; //Autorisation de l'IT par le mode Capture 2 TMR1IE=1; //Autorisation de l'IT du Timer1 (quand celui ci déborde) PEIE=1; //Autorisation générale des IT T1OSCEN=1; //Contrôle par les oscillations TMR1ON=1; //Mise en route du Timer1 Partie principale : #define QUARTZ 4e6 if(Capture_Enabled_Essence) //Si autorisation du traitement { //Formule pour traitement du capteur essence non trouver Capture_Enabled_Essence=0; //Désactivation du traitement dans le programme principale }

VII.4 – Le capteur Essence: Partie interruption : interrupt void isr(void) { if(TMR1IF==1) //Si le Timer1 déborde TMR1IF=0; Compteur_TIMER1++; //Débordement du Timer 1, on compte les multiples de 65536 événements } if(CCP1IF==1) //Si l'IT du système Capture 2 CCP1IF=0; if(CCP1_OnFirstEvent==1) //Si c'est le premier événement CCP1_Debord_1=Compteur_TIMER1; //Copie de la valeur de debordement CCP1_Value_1H=CCPR2H; //Copie du registre CCPR2H et CCPR2L CCP1_Value_1L=CCPR2L; CCP1_OnFirstEvent=0; else //Sinon CCP1_Debord_2=Compteur_TIMER1; //Copie de la valeur de debordement CCP1_Value_2H=CCPR2H; //Copie du registre CCPR2H et CCPR2L CCP1_Value_2L=CCPR2L; CCP1_OnFirstEvent=1; Capture_Enabled_Essence=1; //Activation des traitement des données dans le programme principale

VII.5 – La temporisation: La temporisation se fera grâce au Timer 2 Il compte les cycles d'instructions, lorsque 1 seconde se sera écoulé, le Timer préviendra le PIC Compteur 8 bits Qmax est égale à 256(10) q est égale à 100us

VII.5 – La temporisation: Partie Initialisation : T2CON=0x4B; //Prédiviseur = 16 et Postdiviseur = 10 PR2=24; //Valeur de PR2 TMR2IE=1; //Activation de l'IT TMR2ON=1; //Mise en marche du Timer 2 Partie interruption : interrupt void isr(void) { if(TMR2IF==1) //Quand débordement du Timer2 TMR2IF=0; RealtimeClock_Value++; //Incrémente un compteur RealtimeClock_Capture=1; //Autorisation pour la vérification dans le programme principale }

VII.6 – La transmission des données: L'envoi des données se fera avec le module USART (Universal Synchronous Asynchronous Receveir Transmitter). Ce module permet d'envoyer des données ou encore d'en recevoir. Synchronous → synchrone → Envoie par rapport a un signal horloge Asynchronous → asynchrone → Envoie sans signal horloge Tb représente la durée d’un bit, celui -ci est directement lié au débit choisi pour la connexion Le module suit le protocole RS232

VII.6 – La transmission des données: Format de la trame envoyée : 1ère trame : 12 caractères → 240 bits 2ème trame : 10 caractères → 200 bits Total a transmettre : 200+240 = 440 bits Pour envoyer sur 1 sec il faut donc qu'il puisse envoyé 440 bits en moins de 1 seconde

VII.6 – La transmission des données: Partie Initialisation : SPBRG=51; //Vitesse = 1200Baud/sec BRGH=0; SPEN=1; //Activation de la liaison série SYNC=0; //Mode asynchrone TXEN=1; //Activation de la transmission PEIE=1; //Autorisation IT générale GIE=1; //Autorisation IT générale Partie principale : if(RealtimeClock_Capture) //Si la vérification est possible { if(RealtimeClock_Value>250) //Si il y a 1 seconde RealtimeClock_Value=0; RB1=!RB1; //Clignote la LED verte //Construction de la trame 1 sprintf(Trame_Tab,"#%2x%2x%2x%4x",Temp_Ambiant_Value_INT,Essence_Value,Temp_Moteur_Value_INT,Vitesse_Value); //Calcul de la checksum Checksum_Value=0; for(i=0;i<11;i++) Checksum_Value=(Checksum_Value+Trame_Tab[i]); } //Copie des valeurs dans la trame 1 sprintf(Trame_Tab+11,"%1c",Checksum_Value); //Envoie Trame 1 for(i=0;Trame_Tab[i]!='\0';i++) while(TRMT==0); TXREG=Trame_Tab[i];

VIII – Conclusion: Avantages : Projet: Expérience d’avoir aboutie un projet Gérer notre temps Projet: Améliorations Évolutions G appri a connaître mes default, mes limites é a gerer mon tps

Des questions ?