Carrefour N 3 Carrefour N 2 Carrefour N 1. détection captage. communication



Documents pareils
ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

La programmation des PIC en C. Les fonctions, les interruptions.

PIC EVAL Dev Board PIC18F97J60

ROTOLINE NOTICE DE POSE

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire

Notice d installation de la Centrale VIGIK DGM1

STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi module

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

1 Introduction C+ + Algorithm e. languag. Algorigramm. machine binaire. 1-1 Chaîne de développement. Séance n 4

AMICUS 18 (2ème partie) 4) Présentation du logiciel Amicus IDE

Centrale d alarme DA996

CONTROLE D ACCES A TRANSPONDEUR LECTEUR DE BADGE SANS CONTACT ST

RENOVER LES FEUX TRICOLORES

LES TOUT PREMIERS PAS

UGVL : HOMOLOGATION PS ZAC du bois Chaland 6 rue des Pyrénées LISES EVRY Cedex FRANCE Tel Fax

FRANCAIS DGM1. Centrale Vigik 1 porte. N d homologation : - PS MS Gamme: Vigik MANUEL D INSTALLATION.

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Réalisation d un réseau de capteurs de température sans fil basé sur le protocole ZigBee

Document de formation pour une solution complète d automatisation Totally Integrated Automation (T I A) MODULE A5 Programmation de la CPU 314C-2DP

Informatique Générale

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

NOTICE D INSTALLATION CENTRALE 260

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

MICROCONTROLEURS PIC PROGRAMMATION EN C. V. Chollet - cours-pic-13b - 09/12/2012 Page 1 sur 44

COMMANDER A DISTANCE LE ROBOT-PONG ETUDE DE LA TELECOMMANDE (2 nde PARTIE)

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Contraintes, particularités. 1. Généralités Gestion de la mémoire a. Type des variables et constantes... 2

AUTOPORTE III Notice de pose

SYSTEMES ELECTRONIQUES NUMERIQUES

Assembleur. Faculté I&C, André Maurer, Claude Petitpierre

Architecture des ordinateurs

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

TP : Gestion d une image au format PGM

CAA/SE N O T I C E D E M O N T A G E E T D U T I L I S A T I O N KIT DE MONTAGE. Clavier lumineux codes DIGICODE

La conversion de données : Convertisseur Analogique Numérique (CAN) Convertisseur Numérique Analogique (CNA)

CA 3000 CA 3000 PROGRAMMATION PAR MINITEL

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Flowcode - Mode d'emploi

Vehicle Security System VSS3 - Alarm system remote

Bien commencer avec un LaunchPad MSP430G et un Breadboard

Les chaînes de caractères

LE SYSTÈME D'ALARME DE GSM

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION

Chap III : Les tableaux

Fabriquer son TBI avec une manette de jeu WII

VIII- Circuits séquentiels. Mémoires

LASER MOVEMENT LM 21 CONTROLEUR LASER GUIDE D UTILISATION LASER MOVEMENT 1

Et si le futur était déja là?

Petit guide pratique de dépannage du système d alerte centralisée (modèles de 1980 à 1988)

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Carte ARDUINO UNO Microcontrôleur ATMega328

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

Séverine Marien Maxime Ringard. 2 ème année GEII. Régulateur de charge pour station de recharge photovoltaïque

Votre poste e.950 PRESENTATION MISE EN SERVICE

Votre poste e.50 PRESENTATION

TER Licence 3 Electronique des Télécoms Transmission GSM

Notice de paramétrage Version 1.1

SYSTEMES ELECTRONIQUES NUMERIQUES

COMMUNICATION PC/MINITEL

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Electronique Automatisme Informatique Electricité

Guide d installation & de démarrage Gamme Aqua PC Version AquaPro

Systèmes pour la surveillance et la commande lors de l entreposage et du transvasement de liquides. BA

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

I GENERALITES SUR LES MESURES

NOTICE GPSTA1 I. DESCRIPTION II. ACCESSOIRES. J. R International - Eclats Antivols. 2014

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

ALIMENTATION PORTABLE 9000 AVEC DEMARRAGE DE SECOURS POUR VOITURE

PROJET 1 : BASE DE DONNÉES REPARTIES

Caractéristiques techniques du module électronique Témoin lumineux rouge

Programmation C. Apprendre à développer des programmes simples dans le langage C

LOGIcIEL WZP. QUICKSTART-logiciel-WZP-6004V1.2

TP N 7 «ALARME INTRUSION» TP découverte «Alarme intrusion filaire LEGRAND»

Consigne : je remplis le tableau en tenant compte des informations de la ligne supérieure et de la colonne de gauche (droite pour les gauchers)

Tableaux d alarme sonores

Algorithmique avec Algobox

REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE UNIVERSITE M HAMED BOGARA DE BOUMERDES

TP1. Outils Java Eléments de correction

> Mettre une croix dans les cases correspondantes Répondre aux deux consignes


Configuration de TCPIPconfig.h

Module de mesure de courant pour relais statiques serie HD Module de mesure de courant HD D0340I

Une liste des distributeurs Paxton se trouve sur le site Internet -

ET 24 : Modèle de comportement d un système Introduction à Labview et initiation à la réalisation d un Instrument Virtuel (VI).

KL5121. Pour activer des sorties en fonction de la position d'un codeur

Caractéristiques techniques INVERTER 9 SF INVERTER 9 HP INVERTER 12 SF INVERTER 12 HP

MELODIA 2605 NOTICE D UTILISATION ET D EXPLOITATION

électronique du tarif bleu

COMMANDER la puissance par MODULATION COMMUNIQUER

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

opti-vm Serveur Vocal et Standard Automatique Siemens HiPath 11xx et Hipath 12xx Installation et Guide Utilisateur Version 1.0

Conventions d écriture et outils de mise au point

Alarme Maison RTC Réf :

Cahier des charges. driver WIFI pour chipset Ralink RT2571W. sur hardware ARM7

Tableaux d alarme incendie de type 4-230V~ - 1 boucle / 2 boucles /62

Introduction au langage C

Organigramme / Algorigramme Dossier élève 1 SI

Transcription:

Voie 1 R1 O1 V1 Voie 2 R2 O2 V2 Gestion microprogrammée Manip micro N 2 d'un carrefour I) Présentation : Actuellement, la densité de la circulation dans toutes les grandes villes nécessite de plus en plus une gestion informatisée des carrefours. Ainsi de nombreux carrefours comportent des dispositifs de détection (radars ou détection au sol par boucle d'induction). La commande des feux tricolores est alors réalisée par un système micro programmé propre à chaque carrefour, et la durée des feux s'ajuste automatiquement afin de réduire les temps d'attente en fonction de la présence ou de véhicules. Chaque système micro est en communication avec un système de gestion permettant la visualisation des flux instantanés, et la transmission de nouvelles consignes aux carrefours afin d'améliorer la circulation en cas de forte densité. Ces systèmes permettent à l'heure actuelle, l'étude de nouvelles méthodes de gestion des feux, et l'élaboration de programmes dont la séquence varie en fonction des heures de la journée (Ex : heures de pointe), mais aussi en fonction de critères imprévisibles (Ex : accidents). Ces programmes font de plus en plus appel à des techniques proches de l'intelligence artificielle (Ex : Logique floue, méthode de contrôle très utilisée dans les grands ascenseurs). Gestion microprogrammée de la circulation Sytème de gestion microprogrammé - Centralisation des données - Visualisation des flux - Elaboration des nouvelles consignes communication Carrefour N 3 Carrefour N 2 Carrefour N 1 détection captage Carrefour N n Carrefour N (n-1) Traitement microprogrammé communication Commande des feux tricolores On se propose d'étudier la fonction traitement microprogrammé et commande des feux tricolores de ces dispositifs, en utilisant la famille de microcontrôleur PIC de MICROCHIP. Le développement se fera à l'aide de l'environnement intégré MikroC. Les essais seront réalisés sur une carte de développement "PIC MILLENNIUM BOARD". Cette carte permet de représenter les feux tricolores sur une intersection à 2 voies à l'aide de 6 LEDs D1 à D6. (D1 = vert, D2 = orange, D3 = rouge voie 1, D4 à D6 correspondent respectivement au vert, orange, rouge de la voie 2. CARREFO7_1.doc Page N 1 sur 7

Sur chaque carrefour un boîtier de commande comporte un interrupteur à trois positions accessible seulement par des personnes habilitées (Personnel de maintenance et policiers), permettant d'imposer soit un fonctionnement automatique sur une séquence de nuit (Clignotement des feux oranges), soit un fonctionnement manuel en pas à pas, soit le fonctionnement automatique sur séquence de jour (Passage périodique du vert au orange puis rouge etc.). Nous utiliserons en temps voulu des interrupteurs de la carte MILLENNIUM pour obtenir ces modes de fonctionnement. Le dessin du carrefour est représenté ci contre. Les feux sont matérialisés par des diodes électroluminescentes de couleurs rouges, jaunes et vertes, (le orange n'étant pas disponible). II) Analyse structurelle : (Préparation à la maison avant de venir en manip : questions 1 à 5) Remarque : Les comptes rendus de TP devront commencer par la préparation rédigée avant le travail en classe. 1) En étudiant le schéma structurel de la carte MILLENNIUM fourni, repérez et tracez proprement en bleu la masse (GND ou VSS), et en rouge le +5V. (Rem : IC1 = 7805 est le régulateur +5V d alimentation). 2) A l aide des renseignements «page 1», repérez les LEDs D1 à D6 sur le schéma en indiquant leur couleur. Quel état logique faut-il présenter sur le connecteur J9 pour allumer une LED 3) La carte MILLENNIUM dispose de boutons poussoirs repérés SW1 à SW4 sur le schéma structurel, et d'interrupteurs à 2 positions repérés par SW7 à SW10. Par analyse du schéma, indiquez l'état logique présent sur le connecteur J1 (broche 4 du schéma) si SW1 est au repos, ou si SW1 est enfoncé. 4) Analysez l'en-tête du programme fourni "Carrefo7.c", et retrouvez les connections matérielles à effectuer entre le microcontrôleur PIC 16F877 et la carte MILLENNIUM. Complétez le début de la feuille réponse N 1. Remarque : On utilisera les abréviations suivantes V1, O1, R1 et V2, O2, R2 pour identifier les signaux de commandes des lampes du carrefour, et correspondront respectivement au vert, orange et rouge des voies 1 et 2. A l'aide de la carte MILLENIUM, on appelle N ainsi que J, 2 interrupteurs à 2 positions permettant d'imposer le fonctionnement dans les modes Nuit, ou Jour. La validation des deux modes correspondra au mode manuel. Ce dernier mode autorisera un fonctionnement du carrefour en mode pas à pas à l'aide du bouton poussoir BP. Précisez pour le bouton poussoir et l'interrupteur, quels sont les états logiques sur les broches correspondantes du micro pour chaque position (réponse sur la feuille rep N 1). Rem : Sur le schéma structurel les boutons poussoirs et interrupteurs sont représentés au repos (Inactifs). 5) Indiquez sur la feuille réponse N 1, quel doit être le contenu du registre TRISC de direction du port C, à l'initialisation, sachant qu'on veut pouvoir lire les états des interrupteurs J et N (Jour et Nuit), et commander les 6 LEDs. Exemple: Si TRISC5 = 1 alors le bit 5 du port C sera en entrée. Rem: pour les PICs 1 => Input, 0 => Ouput. Inversement, si TRISC5 = 0, alors RC5 du port sera en sortie. Voie 1 Dessin du carrefour R1 O1 V1 Voie 2 R2 O2 V2 CARREFO7_1.doc Page N 2 sur 7

III) Analyse et synthèse d'un programme et d'un ordinogramme : Rem : Pour faciliter la lisibilité et les évolutions des programmes écrits en assembleur ou en C nous utiliserons des étiquettes à la place des noms des ports. Ex: BoutonJour, BoutonNuit, BoutonPoussoir ou BP, et pas RC0 à RC7 ou PORTC.F0 à PORTC.F7... Attention : Un nom de constante ou de variable ne doit pas comporter d'espace. Ecrire : BoutonJour ou Bouton_Jour, mais pas Bouton Jour. 1) Complétez l'organigramme et le programme en langage C (CARREFO7.C), permettant la gestion du carrefour selon une séquence programmée dans une table de donnée appelée SeqJour correspondant à la séquence de jour (Voir ci dessous). Rem : Dans ce programme, le bouton Jour permet le démarrage de la séquence (les interrupteurs pourront donc être dans une position quelconque), on devra néanmoins éviter toute détérioration liée à un court-circuit d'une sortie avec une alimentation (Il est préférable de mettre en entrée, une broche de port utilisée). IMPORTANT : La séquence sera organisée de la façon suivante: Un tableau de données indiquera toute la séquence composée d étapes. Chaque étape sera définie par deux octets successifs. Le premier octet indiquera l'état des différentes lampes. Le deuxième indiquera la durée de l'étape (en seconde). Le programme comportera donc une temporisation de référence (durée = 1s). On devra ajuster le ou les nombres (valeur d'initialisation du ou des compteurs) pour obtenir une temporisation de 1s après un essai chronométré. Rem : Le temps de la tempo dépend du quartz, mais aussi des performances du compilateur C et des paramètres d'optimisation éventuels. La fin de la séquence sera signalée par un octet nul (le programme reprendra alors la séquence dès la première étape). 2) Indiquez sur la feuille réponse N 1, la valeur à placer sur le port C afin de permettre la circulation sur la voie 1. Commentez les séquences suivantes sur la feuille réponse N 1, en indiquant pour chaque étape, l'état des feux pour les voies 1 et 2 et la durée. (Rem : les valeurs sont en hexadécimal). SEQ1 : 24 02 0C 20 14 03 24 02 21 20 22 03 00 SEQ2 : 12 01 40 01 00 Expliquez le rôle des valeurs $24 dans la séquence 1, pour les automobilistes. Expliquez le rôle de la valeur $40 dans la séquence 2. N'y a t'il pas de problème avec l interrupteur (Proposez deux autres valeurs, à la place de $40 qui assurent la même séquence). 3) Lors de la compilation, le compilateur C signale des erreurs : Sur les variables : valeur, temps et. Sachant qu une variable peut être locale (au programme principal ou à un sous programme) si elle est déclarée dans le programme ou les sous programmes, ou qu elle peut être globale (c'est-à-dire accessible et commune à tout les programmes ou sous programmes), si elle est définie avant les sous programmes et programme principal, indiquez les différentes possibilités pour supprimer les erreurs de compilation. CARREFO7_1.doc Page N 3 sur 7

4) Lors de l exécution les LEDs clignotent trop vite (si l interrupteur Jour est sur la position active). Vérifiez et expliquez la position de l interrupteur par rapport au choix dans le programme. Augmentez la durée de la tempo en changeant le type de variable pour j (Mettre unsigned int), et prendre 20000 comme valeur maximale pour j. 5) La séquence ne se déroule pas correctement : Vérifiez les valeurs de la séquence et le déroulement du programme afin de trouver une erreur sur la gestion de l. IV) Synthèse d'un programme avec gestion (Jour / Nuit): Carrefo7_2.c 1) Pour permettre le déroulement des 2 séquences (jour ou nuit), on veut modifier le programme conformément à l'algorithme suivant. a) Lecture des interrupteurs J et N. b) S ils sont configurés sur la position : "Nuit", alors positionnement sur la séquence de nuit, si positionnement sur la séquence de jour. Rem : On utilisera une variable appelée «Mode». On adoptera les valeurs suivantes : Mode = 1 pour le Jour, Mode = 2 pour la nuit et Mode = 3 pour le fonctionnement manuel. c) Déroulement de la séquence complète (un seul sous programme : déroulement séquence (DeroulSeq) devra permettre l'exécution des deux séquences). d) Retour au : a). Le bouton poussoir ne sera pas utilisé au début (Voir chapitre V). La position manuelle devra être identique à la position jour. Rem : Il faut attendre la fin d une séquence pour passer à l'autre. (Problème de sécurité routière). Interdiction de pouvoir passer à tout moment de l'une à l'autre. Commentez le passage de la séquence SEQ1 à la séquence SEQ2 et réciproquement. La sécurité est elle assurée V) Ecriture d'un programme avec gestion Jour / Nuit et Manuel (Pas à pas) : Carrefo7_3.c REM : la position manuelle donne la séquence de jour uniquement, mais le passage d'une étape à la suivante se fait par appui sur le bouton poussoir BP (Bouton poussoir = SW1 sur RB0) (attention la tempo relative à chaque étape sera exécutée : pour éviter que l'on puisse provoquer des changements rapides (sécurité)). 1) On demande alors de modifier le programme pour tenir compte de la position manuelle, et du bouton poussoir en vous aidant de l'organigramme fourni page 7. 2) Constatez éventuellement des défauts de fonctionnement lors du passage d un mode à l autre et proposez des solutions. Remarque : Le compte rendu devra comporter les listings commentés (avec en tête complétée) pour les programmes Carrefo7_2 et Carrefo7_3. La note tiendra compte à la fois du soin, de la clarté et de la pertinence des réponses et de vos commentaires (description des problèmes rencontrés et solutions apportées). CARREFO7_1.doc Page N 4 sur 7

III.1) Programme de gestion du carrefour. (Fichier CARREFO7.C) /***************************************************** * Fichier CARREFO7.C Version 7.1 * Lycée Maurice GENEVOIX Prof : * Gestion du carrefour (PROGRAMME JOUR) * pour PIC16F877 avec MikroC. * * Définition de la partie opérative * PortC: Rc7 Rc6 Rc5 Rc4 Rc3 Rc2 Rc1 Rc0 * J N R2 O2 V2 R1 O1 V1 * Les lampes commandées par les signaux R2, O2, V2, R1, O1, V1 * sont actives à l'état (Voir schéma et compléter) * J et N correspondent aux signaux issus des 2 inters sur la * carte MILLENNIUM (Inter 1 et 2 = SW7 et SW8) * J N = indique position jour (J et N actifs à l'état ) * (Idem, voir schéma et completer) * Gestion à partir d'un tableau de constantes : valeur et temps * en ROM programme (Flash) du PIC16F877 ***********************************************************/ // Déclaration des types, constantes, tableaux et fonctions typedef unsigned char byte; // définition du type byte = octet #define BoutonJour PORTC.F7 // PortC bit 7 (F pour Field = champ) const byte SeqJour[]=0x24,2,0x0c,0x20, complétez cf page 3,0; void tempo(byte); /* Déclaration Sp tempo */ void Deroulseq(void); /* Déclaration Sp Deroul_seq */ // ************** Programme Principal ******************* void main(void) byte ; byte valeur, temps; Début Initialisations (Ports) Initialisation De l Bouton Jour Lire donnée (Valeur) Incrémente Lire donnée (Temps) TRISC = 0b1 PORTC = 0; ; // RC5 à RC0 en sortie, RC7,6 en entrée // Feux éteints while(1) = 0; if (BoutonJour == ) Deroulseq(); Lire donnée (Valeur) // ************* Déroulement de la séquence *************** void Deroulseq(void) valeur = SeqJour[]; // 1ere valeur de la séquence do ++; // temps = SeqJour[++]; // prend durée et incrémente PORTC = valeur; // Feux = valeur tempo(temps); // Tempo de durée = temps valeur = SeqJour[++]; // Prend valeur suivante while (valeur!=0x00); // répétition jusqu'à la fin des données // ************** Temporisation *************************** void tempo(unsigned char duree) byte i, j; for(i = 0 ; i < duree ; i++) for (j=0; j < 0x60 ; j++) continue; Valeur <>0 CARREFO7_1.doc Page N 5 sur 7

ORGANIGRAMMES DU PROGRAMME CARREFO3.C 1) programme principal début 2) Sous programme déroulement sequence déroulement séquence Initialization des Ports Activation par défaut du mode «Jour» Lire donnée (Valeur) et incrémenter commande feux La donnée (Valeur) sera lue dans la séquence Jour ou Nuit suivant le Mode. lecture boutons J et N lecture boutons J et N Détermination du mode manuel (Mode pas à pas) Déroulement séquence Lire donnée (Temps) et incrémenter temporisation T= Temps x 1s Appui BP Lire donnée (Valeur) et incrémenter (Mode pas à pas : Passage au pas suivant) fin des données fin déroulement séquence CARREFO7_1.doc Page N 6 sur 7

@ Feuille RÉPONSE N 1 : Nom: _ II.1) Analyse structurelle. 1.) Tableau N 1: Labels utilisés dans le sujet par rapport aux broches de Port du PIC : Etats logiques actifs : RB0 BP RC7 RC6 RC5 RC4 RC3 RC2 RC1 RC0 Etats logiques sur les broches du PIC. RC7 Position Jour Nuit Manuel RB0 BP Relâché Appuyé RC6 TRISC7 TRISC0 TRISC III.2) Analyse et synthèse logicielle. Valeur à envoyer au port C pour laisser passer la voie 1. RC7 RC6 RC5 RC4 RC3 RC2 RC1 RC0 Analyse de la séquence "SeqJour" Explication des valeurs 24h : N étape Valeur Voie 1 Voie 2 temps affichée 1 24h Rouge Rouge 2s 2 CARREFO7_1.doc Page N 7 sur 7