TP1Bis : Algorithme feux de signalisation circulation alternée


Réalisation d'une simulation de feux de signalisation pour une circulation alternée
Mise en situation
Le travail de ce TP se déroule en binome.
Temps alloué : 3h
La programmation se fait sur PC sous Windows. Utilisation de Flowcode 6
|
Pré requis
Cours algorithmie et Flowcode
|
Travail demandé
Réalier un logiciel de simulation de feux de signalisation.
|
Objectif
- 2.3.6 Comportement informationnel des systèmes
- 3.1.4 Traitement de l’information
|
Critères d’évaluation
- Soin apporté au compte rendu
- Réalisation logiciel
- Réalisation effective
|
Mise en situation
Pour effectuer des travaux sur la voirie, une entreprise de BTP doit disposer d’un système permettant le signalement des travaux et de pouvoir alterner la circulation ou la fermée. Le système dispose de deux feux tricolores, de chenillards clignotants et d’un affichage d’information programmable. On se propose d’étudier le programme gérant ce système.
Pour ces exercices nous allons utiliser le microcontrôleur 18F4550. A la fin de chaque exercice, appeler le professeur pour valider l’exécution. A la fin du TP, éditer tous les algorithmes que vous avez fait (un tirage par groupe)

Réalisation finale
Exercice 1
Nous allons d’abord réaliser le cas du clignotement d’une seule lampe. Pour cela, réaliser l’algorithme suivant :

Vous aurez besoin d’une variable Led qui est un booléen. On connectera la led de sortie sur le bit 0 du port A du PIC. La led clignotera à l’infini toutes les 500ms.
Exercice 2
Souvent, pour éclaircir un algorithme ou lorsqu’une suite d’instructions est répétitive, on utilise des macros (souvent appelées fonctions).
Créer une macro clignote qui prend en paramètre le temps de clignotement et qui fait clignoter une led sur le bit 0 du port A. Dans le main, exécuter cette macro.
Remarque : le résultat est le même que l’exercice 1.
Exercice 3
Ecrire une macro feuxTricolore1 qui permet de passer soit du vert au rouge, soit du rouge au vert en un temps t. Vous utiliserez deux paramètres :
- Vert (booléen) : passage rouge/vert ou vert/rouge
- Temps (int) : temps de maintient du feu orange en ms
La led rouge est sur le portA bit1, led orange sur le portA bit 2 et la led verte sur le port A bit 3.
Tester dans le main, dans une boucle infinie faisant passer dans les deux sens toutes les deux secondes.
Exercice 4
On veut maintenant ne faire passer les voitures que sur une voie. Il nous faut donc gérer deux feux tricolores. Quand un feu est vert, l’autre est rouge et réciproquement. Il faut aussi tenir compte du temps de passage des voitures avant de mettre un des feux à vert, il y aura un temps pour libérer la voie où les deux feux sont au rouge.
Créer une troisième macro feuxTricolore2 qui gère le deuxième feu. On utilisera le port E avec les bits 1,2,3. Puis dans le main, tester le passage des deux feux tricolores. Faîtes d’abord un algorithme simple sur papier indiquant tous les passages.
Exercice 5
L’entreprise a à sa disposition un panneau lumineux où il est possible d’inscrire divers message. Lors de travaux, on veut pouvoir fermer une voie, s’il y a un accident, on veut pouvoir fermer les deux voies.
Rajouter une autre macro message qui permet suivant la position du switch d’écrire « Circulation alternée » ou « Route fermée » sur l’écran LCD. Connecter le switch sur A4 et le LCDDsiplay sur le port C.
Exercice 6
Dans l’exercice 1, nous n’avions fait clignoter qu’une seule led. Maintenant, nous allons créer une macro chenillard pour faire un chenillard sur 8 leds sur le port D (LedArray).
Créer la macro et tester là dans le main. Comme nous ne connaissons pas le multi-tâche, nous ferons boucler le chenillard sur une boucle infinie dans la macro : dès que l’on appellera la macro, la gestion des feux et de l’écran sera arrêtée.
Exercice 7
Pour les plus rapides, mettre un pavé numérique qui permettra de saisir le temps en ms de passage dans un sens. Utiliser le port B pour le connecter.

