Etabli
← Retour aux leçons
Leçon · FND-14 · Machines à états · 4/4

Maîtriser : des comportements robustes et prioritaires

4 étapes·25 min·0/4 fait·quiz à réussir
voix

Un robot de démonstration marche quand tout va bien ; un robot fiable prévoit les jours où tout va mal. Cette dernière leçon des fondamentaux blinde ta machine : l'urgence testée AVANT l'aiguillage — le coupe tout, quel que soit l'état —, l'état inconnu interdit de séjour, la table des cochée case par case, et deux machines qui tournent côte à côte sans se marcher dessus.

📖 Comprendre

1. L'urgence passe avant l'aiguillage

La routine vit dans les branches ; l'urgence vit AVANT. En tête de boucle, avant l'aiguillage, on teste le du pare-chocs : écrasé, c'est URGENCE et coupés — que le robot patrouille, évite ou recharge. On pourrait dessiner une flèche vers URGENCE depuis chaque état… mais le sixième état ajouté un jour de fatigue oublierait la sienne. Placé avant l'aiguillage, le test couvre tous les états, présents et futurs, par construction.

La sortie d'URGENCE, elle, est VOLONTAIRE : un de réarmement, pressé par quelqu'un qui a vu et compris l'accident — jamais un retour automatique au bout de quelques secondes. Un robot qui repart tout seul après une collision retourne la chercher. C'est le pendant logiciel du câblé en : la sécurité doit être difficile à quitter, pas difficile à atteindre.

PERCEVOIRcapteursDÉCIDERcerveauAGIRactionneursles capteurs regardent le monde…

2. L'état inconnu est interdit de séjour

La boîte d'état peut mentir un jour de malchance : un état supprimé vers lequel une vieille flèche pointe encore, un état ajouté sans son cas, jamais initialisée. Face à une valeur sans branche, l'aiguillage ne fait RIEN — et c'est le pire des comportements : les gardent leurs derniers ordres, et le robot continue sur sa lancée, sans plus aucune règle pour le surveiller.

La parade tient en deux gestes, logés dans le cas par défaut de l'aiguillage : CRIER — une ligne de journal « état inconnu », avec la valeur fautive — puis REVENIR AU SÛR — l'état refuge de la machine, le plus inoffensif : à l'arrêt, en attente d'ordres clairs. Jamais « ne rien faire » : le défaut silencieux transforme un petit bug de plomberie en robot fou. L'état inconnu est interdit ; le retour au sûr est la règle.

3. La table des transitions : cocher, pas espérer

La table des croise tout : une ligne par état, une colonne par événement — , contact, horloge, , . Chaque case écrit sa réponse : l'état d'arrivée, ou « on reste » EN TOUTES LETTRES. La nuance est capitale : une case vide ne dit pas si l'immobilité est une décision ou un oubli ; « on reste » écrit est une décision assumée. Les cases jamais remplies sont des bugs en germe — c'est là qu'ils éclosent.

Remplie, la table devient un plan de test : chaque case se provoque une à une sur l'établi — main devant le , doigt sur le , robot soulevé, horloge qu'on laisse sonner — et se coche quand le journal imprime la attendue. Quatre états et cinq événements font vingt cases : une demi-heure d'essais, et le comportement n'est plus espéré, il est DÉMONTRÉ. Une case impossible à provoquer est déjà une information : peut-être une flèche morte à retirer du diagramme.

4. Plusieurs petites machines côte à côte

Un robot fait souvent plusieurs choses « en même temps » : rouler, et faire vivre sa d'annonce — fixe en patrouille, battement lent en alerte, battement rapide en urgence. La machine unique qui combinerait tout explose : trois états fois trois états de LED, neuf états combinés, douze au premier ajout. La bonne architecture : PLUSIEURS petites machines — une par préoccupation — chacune sa boîte, son aiguillage, ses flèches, exécutées l'une après l'autre dans la même boucle.

La cohabitation a une règle d'or : LIRE, jamais ÉCRIRE. La machine lit l'état des pour choisir son rythme ; elle n'écrit jamais dans la boîte des moteurs, et réciproquement. Chaque boîte n'a qu'un propriétaire — sa propre fonction changerEtat. Deux machines qui s'écrivent dessus recréent exactement le chaos des contradictoires ; deux machines qui se lisent composent, proprement, des comportements riches.

🧮 Exemple guidé : la ronde du robot gardien, avec incident

Le gardien a quatre états : PATROUILLE, ALERTE, RETOUR, URGENCE. Mouvement détecté : ALERTE ; 10 s de calme : RETOUR vers le poste ; poste atteint : PATROUILLE ; fin de course avant : URGENCE, prioritaire. Un tour de boucle dure 2 ms. Déroule la ronde de t = 38,2 s à t = 61 s.

  1. 1.t = 38,2 s : en PATROUILLE, le capteur voit bouger — « 38200 : PATROUILLE, puis ALERTE » : arrêt, projecteur allumé, instant d'entrée noté.
  2. 2.t = 41,7 s : nouveau mouvement — la table dit « on reste » en ALERTE, mais le compteur de calme repart de zéro. Aucune ligne au journal : pas de transition, et c'est normal.
  3. 3.t = 51,7 s : 10 s pleines sans mouvement — flèche d'horloge : « 51700 : ALERTE, puis RETOUR ». Cap sur le poste ; le projecteur s'éteint — geste de sortie d'ALERTE.
  4. 4.t = 60,994 s : en RETOUR, le fin de course avant s'écrase sur un carton tombé. Le test d'AVANT l'aiguillage le voit au tour même : à t = 60,996 s, moteurs coupés — « 60996 : RETOUR, puis URGENCE ». Réaction : 2 ms, quel que soit l'état.
  5. 5.La suite n'appartient qu'au bouton de réarmement : URGENCE ne rend la main à PATROUILLE que sous un doigt humain. Toute la ronde tient dans quatre lignes de journal — et chaque ligne correspond à une case cochée de la table.

Priorité, filet, table : les trois blindages ont joué leur rôle dans la même ronde — l'urgence a battu la routine en deux millisecondes, le « on reste » d'ALERTE était une décision écrite, et le journal permet de tout rejouer, case par case.

🛠 Pratiquer sur l'établi

  1. 01Ajouter URGENCE : accessible depuis tous les états

    Ajoute URGENCE et son test en tête de boucle, AVANT l'aiguillage : écrasé, coupés, changerEtat(URGENCE) — et une sortie uniquement par le de réarmement. Puis vérifie la promesse depuis CHAQUE état : en patrouille, en alerte, en retour, appuie sur le fin de course et regarde le journal — la coupure doit tomber au tour même, à chaque fois. La scène stop-recul te montre l'ordre des priorités : l'arrêt d'abord, la suite après.

    sur l'établi
    2530avance…

Objectifs

  • +Ajouter un état d'urgence prioritaire
  • +Tester chaque une à une
  • +Composer plusieurs machines
🧪 S'entraîner dans le bac à sable

Quiz de validation

À réussir pour valider la leçon

Réponds de mémoire, sans remonter la page : c'est l'effort de rappel qui grave le cours. Les trois bonnes réponses valident la leçon.

1. Où se place le test du fin de course d'urgence ?

2. Que doit faire le cas par défaut de l'aiguillage ?

3. La LED d'annonce et les moteurs : comment organiser les deux ?

🧠 Ce qu'il faut retenir

  • 1.L'urgence se vérifie AVANT le switch : elle court-circuite tous les états.
  • 2.Une table de se teste case par case : le robot devient démontrable.
  • 3.Plusieurs petites machines valent mieux qu'une grosse : une par préoccupation.