Automata est un jeu en ligne pour apprendre à concevoir un système logique sous la forme d’un automate fini.
Le jeu propose de réaliser différentes missions consistant à automatiser le fonctionnement d’un système. Pour chaque mission, le joueur doit créer un automate qu’il saisit sous la forme d’une table de transitions et de sortie. Il est possible de visualiser cet automate sous la forme d’un graphe d’états.
Le joueur peut valider son automate en démarrant un scénario de test. Il reçoit alors une indication de la réussite ou de l’échec de la mission.
La section Robots propose cinq missions de difficulté croissante consistant à commander un robot similaire à celui que nous avons développé dans la section Modélisation par graphe d’états.
La section Open the Gate consiste à développer la commande d’une barrière automatique en trois étapes. Cette barrière doit répondre à trois exigences correspondant aux trois missions proposées :
À présent, nous vous proposons de réaliser un circuit dont le comportement respectera le graphe d’états de la mission Don’t crush the follower.
En choisissant un codage one-hot des états, écrivez les équations logiques de la fonction de transition et de la fonction de sortie. Si nécessaire, vous pouvez relire la méthode de synthèse que nous avons expliquée dans la page précédente.
On propose le scénario de fonctionnement suivant. Ajoutez les noms des signaux représentant l’état. En supposant que l’automate est dans son état initial au début du scénario, complétez les chronogrammes.
Sous Logisim, complétez le schéma ci-dessous. Les capteurs ont été remplacés par des boutons-poussoirs et les actionneurs par des LED.
À quoi devez-vous relier le bouton init
pour que l’automate revienne dans
son état initial à chaque appui ?
Logisim-evolution est déjà présent sur les postes de travail de certaines salles de TP à l’ESEO. Pour l’exécuter, démarrez votre PC sous Ubuntu, ouvrez un terminal et saisissez la commande suivante :
java -jar /opt/logisim-evolution-3.3.0-all.jar
Dans le menu Simulation :
Dans la barre d’outils, pressez le bouton « ».
Agissez sur les boutons-poussoirs et observez l’évolution de l’état et des sorties pour différents scénarios d’utilisation. Vérifiez que le comportement obtenu est conforme à votre graphe d’états.