• Aucun résultat trouvé

Partie 1 : Automobile : Fonctions anti-distraction

N/A
N/A
Protected

Academic year: 2022

Partager "Partie 1 : Automobile : Fonctions anti-distraction"

Copied!
2
0
0

Texte intégral

(1)

1

AG43

Examen Final A2012 Durée 1h30

Aucun document autorisé

Partie 1 : Automobile : Fonctions anti-distraction

Vous avez certainement pu apprécier les alarmes oubli de phare sur votre voiture ou de clé de contact en place.

D'après la liste d'observations effectuées, écrivez l'algorithme d'une boucle réalisant les tests en continu.

 Si un siège détecte un passager et que la ceinture n'est pas bouclée, le voyant correspondant au siège s'allume.

 Si Le véhicule se déplace (Vitesse <> 0) et qu'une ceinture est détectée non bouclée alors qu'un passager occupe le siège, un signal sonore est activé.

 Si le conducteur ouvre sa portière et que les feux sont allumés et le moteur éteint, un signal sonore est activé

 Si le moteur est à l'arrêt, la portière conducteur ouverte, la clé de contact engagée, un signal sonore est activé.

 Si le véhicule se déplace, et qu'une portière est mal fermée, le clignotement du plafonnier est activé.

On dispose des détecteurs suivants :

 PORTE_AVG PORTE_AVD, PORTE_ARG, PORTE_ARD : portières, 1 si ouvertes.

 MOTEUR : 1 si moteur en fonctionnement ;

 CLE : 1 si la clé de contact est en place.

 SIEGE_AVD, SIEGE_AVG, SIEGE_ARD, SIEGE_ARG, 1 si le siège est occupé.

 CEINT_AVG, …_AVD, …_ARG, …_ARD détecteurs ceinture (1 si bouclée).

 FEUX : 1 si les feux de circulation sont allumés.

On dispose des périphériques d'avertissement suivants (0 si inactifs, 1 si on veut les activer) :

 VOYANT_CEINTURE_AVG, …_AVD, …_ARG, …_ARD

 BIP_CEINTURE (émet un signal sonore)

 BIP_CLE

 BIP_FEUX

Et des autres périphériques

 CLIGNOTEMENT_PLAFONNIER (On fait clignoter le plafonnier si on le met à 1)

 VITESSE (Variable réelle, vitesse en km/h)

On dispose également de la variable entière Tempo, qui est décrémentée automatiquement par interruption toutes les secondes.

a) Ecrire l'algorithme d'une boucle effectuant sans arrêt ces tests et actionnant les périphériques.

b) Ecrire une partie d'algorithme, en précisant les variables nécessaires, réalisant la détection de l'ouverture (changement d'état) de la porte avant gauche. Elle met à 1 la variable OUVERTURE_AVG.

(2)

2

Partie 2 : Système de feux de circulation

Les feux de circulation peuvent être gérés par un microcontrôleur, bien qu'un automate soit plus indiqué. La gestion des feux est avant tout une succession temporisée d'états. On propose d'écrire l'algorithme d'une boucle de gestion des feux d'un carrefour simple.

On considère un carrefour simple entre deux voies à sens de circulation unique.

Feu1

Feu1 Feu2

Feu2

La séquence d'allumage des feux est la suivante :

Durée (s) Feu1 Feu2

2 Rouge Rouge

40 Vert Rouge

3 Orange Rouge

2 Rouge Rouge

30 Rouge Vert

3 Rouge Orange

1) Base de temps

La gestion de feux étant surtout régie par le temps, on réalise une base de temps à partir d'une horloge cadencée à la seconde. Cette horloge déclenche toutes les secondes la procédure d'interruption appelée Timer(). Cette procédure gère trois types de compteurs, pour diverses fonctionnalités du logiciel de commande. Ces trois compteurs, tous de type variable globale sont :

 secondes : entier non signé, qui sera simplement incrémenté à chaque déclenchement de l'interruption,

 tempo : entier non signé, décrémenté à chaque déclenchement, si non nul,

 heure[] : heure sous la forme d'un tableau de trois octets, les secondes étant représentées par heure[2]. L'heure varie de 00h00mn00s à 23h59mn59s et repasse à 0.

a) Quels sont les arguments à fournir à la procédure d'interruption Timer() ?

b) Ecrire la procédure Timer() qui gère uniquement les variables secondes et tempo comme décrit précédemment.

c) Ecrire l'algorithme de gestion du tableau heure[] qui est destiné à être placé dans Timer().

2) Boucle de Gestion

Pour programmer la gestion des feux, on dispose des variables Feu1 et Feu2. Leur état peut être VERT, ORANGE ou ROUGE. A chaque feu est associée respectivement la variable Pieton1 et Pieton2. Lorsqu'un piéton appuie sur le bouton, cette variable passe à 1. Elle indique qu'il faut abréger la position VERT correspondante. Lorsque le feu correspondant passe au rouge, il faut également remettre la variable Pietonx à 0. Toutefois, un feu doit rester au vert au minimum 20s.

Cette variable n'a aucun effet sur un feu à l'orange et au rouge.

Ecrire la boucle de gestion des feux (boucle infinie) conforme au tableau ci-dessus, en tenant compte des appels piéton. Inutile de déclarer les variables.

Références

Documents relatifs

[r]

Non, la courbe n’est pas d’un seul tenant, la fonction ne semble pas continue sur IR.. Démontrer que E est continue sur tout intervalle de la forme [n ;n+1[ où n est

Ecrire l'algorithme d'une fonction qui convertit un nombre binaire, figurant dans un tableau de caractères sous forme ASCII, en un nombre entier qui sera retourné.

Bref, inférieur veut dire la valeur entière à gauche sur une

Voici un algorithme qui garantit qu’on n’aura jamais de &#34;très grands nombres&#34; mais qui ne garantit pas le minimum d’étapes : On commence par la fin (2013).. 2013 n’est

Au début de la partie, chacun mise la même somme au pot et ils conviennent que le premier des deux qui atteint le score S gagne la partie et récupère la totalité du pot de 102,40

Nous pouvons représenter graphiquement un cheminement de partie en partant du point (9, 7) et en se déplaçant vers la droite après un pile et vers le haut après un face.. Il est

L’application réciproque de f est par définition la fonction logarithme décimal, notée log ou log 10. Étudier la