Porte de garage

Description

Article originellement publié sur « Exos du lundi » le 5 décembre 2016 par Gyncoca. Voir l'énoncé original.

Aujourd'hui, on automatise la porte du garage de votre Ferrari !

Pour cela, on va gérer notre portail avec une télécommande sur lequel il n’y a qu'un bouton.

La télécommande fonctionne de la façon suivante :

Si la porte est OUVERTE ou FERMÉE, cliquer sur le bouton va faire que la porte va s'ouvrir (ou se fermer) jusqu'à la fin du cycle ou le reclique sur un bouton. Pour schématiser : Porte : Fermé -> Bouton appuyé -> Porte : En cours d’ouverture -> Cycle complet -> Porte : Ouverte.

Si la porte est en cours de fermeture ou d'ouverture, appuyer sur le bouton va stopper la porte. Ensuite réappuyer sur le bouton va faire repartir la porte dans l’autre sens. Pour schématiser : Porte : Fermé -> Bouton appuyé -> Porte : En cours d’ouverture -> Bouton appuyé -> Porte : Stop en ouverture -> Bouton appuyé -> Porte : En cours de fermeture.

Dans notre exercice, on commencera toujours avec une porte fermée.

Entrées et sorties

Les entrées sont une série de commande :

Clique_bouton
Cycle_complet
Clique_bouton
Clique_bouton
Clique_bouton
Clique_bouton
Clique_bouton
Cycle_complet

Les sorties doivent être l'état de la porte après chaque entrée.

Par exemple :

Porte : Fermé
> Clique_bouton
Porte : En cours d’ouverture
> Cycle_complet
Porte : Ouverte
>Clique_bouton
Porte : En cours de fermeture
>Clique_bouton
Porte : Stop en fermeture
>Clique_bouton
Porte : En cours d’ouverture
>Clique_bouton
Porte : Stop en ouverture
>Clique_bouton
Porte : En cours de fermeture
> Cycle_complet
Porte : Fermé

Conseil

Pour cet exercice, il est conseillé d’utiliser une machine à état, pour comprendre le principe je vous dirige vers Wikipédia : Automate fini.

Bonus

En bonus, pour éviter de rayer la Ferrari ou d’écraser le chat, on va ajouter un rayon infrarouge sur la porte. Si quelque chose passe devant la porte alors elle sera bloquée.

Pour cela, on ajoute les règles suivantes sur notre système :

  1. Si la porte est en cours de fermeture et qu’un objet coupe le rayon alors la porte va s’ouvrir complétement. Elle restera ensuite bloqué tant que l’entrée INFRAROUGE_OK ne sera pas appelée.
  2. Pour tous les autres cas, la porte se bloquera dans sa position tant que INFRAROUGE_OK ne sera pas reçu. Ensuite la porte repartira à son état d’avant le blocage.

Entrée bonus

Clique_bouton
Cycle_complet
Clique_bouton
Infrarouge_rompu
Clique_bouton
Cycle_complet
Clique_bouton
Infrarouge_ok
Clique_bouton
Cycle_complet

Sortie bonus

Porte : Fermé
>Clique_bouton
Porte : En cours d’ouverture
>Cycle_complet
Porte : Ouverte
>Clique_bouton
Porte : En cours de fermeture
>Infrarouge_rompu
Porte : Ouverture d’urgence
>Clique_bouton
Porte : Ouverture d’urgence
>Cycle_complet
Porte : Ouverte et bloqué
>Clique_bouton
Porte : Ouverte et bloqué
>Infrarouge_ok
Porte : Ouverte
>Clique_bouton
Porte : Fermeture
>Cycle_complet
Porte : Fermé

Bonne chance à tous !

Travaux réalisés

Commentaires