Etabli
← Retour aux leçons
Leçon · FND-02 · Premier programme embarqué · 4/4

Maîtriser : structurer et déboguer son premier vrai programme

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

Un qui marche, c'est la moitié du travail. L'autre moitié : un programme qui se relit dans six mois, s'explique à un coéquipier, et avoue ses pannes au lieu de les cacher. Cette leçon t'équipe pour les jours où ça ne marche PAS : des noms qui parlent, d'état, l'affichage en lampe-torche — et la méthode des ingénieurs : hypothèse, test, conclusion.

📖 Comprendre

1. Des noms qui disent l'intention

Un « 7 » nu au milieu du code ne dit rien : , durée, compteur ? Une constante nommée en tête de fichier — BROCHE__VERTE — dit tout, et se relit dans six mois sans effort. Le bénéfice caché est encore plus grand : le jour où le câblage change, on corrige UNE ligne en haut du fichier, et chaque usage suit automatiquement. Un nombre nu recopié cinq fois, c'est cinq corrections… et quatre oublis possibles.

Même remède pour la boucle : découpe-la en courtes nommées par intention — « allumerVert », « passerAuRouge », « lireBouton ». Chaque fonction fait UNE chose, et son nom dit POURQUOI elle existe, pas comment. () devient alors une table des matières : trois lignes qui racontent l'histoire du , lisibles par n'importe qui — futur toi compris.

2. Une variable d'état pour le feu tricolore

Le feu tricolore vit trois situations : vert, orange, rouge. Plutôt qu'un sac de conditions emmêlées, on tient d'état qui note la situation en cours. À chaque tour, () pose deux questions : dans quel état suis-je, et est-ce l'heure d'en changer ? — le patron de l'horloge, encore lui, chaque état ayant sa durée. Au changement : éteindre l'ancien feu, allumer le nouveau, noter l'instant.

d'état est bien plus qu'une astuce de feu tricolore : c'est la première marche vers les comportements de robot. « Poursuivre », « éviter l' », « s'arrêter d'urgence » : des états, eux aussi, avec leurs règles de passage de l'un à l'autre. Apprendre à dessiner ces états et leurs , c'est apprendre à penser les robots — le feu tricolore n'est que le premier de la .

3. Le compilateur, un allié bougon

La vérifie ta grammaire avant la carte : point-virgule oublié, accolade orpheline, faute de frappe dans un nom. Le message paraît rude, mais il contient toujours l'essentiel — le fichier, , le reproche. Et retiens le piège classique : le compilateur pointe souvent la ligne d'APRÈS l'oubli, car c'est là qu'il a trébuché. La faute, elle, habite juste au-dessus.

Autre phénomène à connaître : l'avalanche. Une seule vraie erreur peut déclencher vingt messages — le , déboussolé par la première, se met à mal comprendre tout le reste. La parade est un rituel : corriger la PREMIÈRE erreur de la liste, recompiler, recompter. Le plus souvent, la moitié de la liste disparaît d'elle-même. Ne corrige jamais les messages du bas en premier.

4. L'affichage série : la lampe-torche

Sans écran, un embarqué est muet — l'affichage lui rend la parole. Par le câble, il envoie des messages que l'ordinateur affiche au fil de l'eau : « état : vert », « écart : 412 », « je passe ici ». C'est une lampe-torche braquée à l'intérieur du programme EN MARCHE : on n'imagine plus ce qu'il fait, on le lit, noir sur blanc, milliseconde par milliseconde.

La lampe-torche ne vaut que tenue par une méthode : hypothèse → test → conclusion. Une hypothèse PRÉCISE (« l'état ne passe jamais à orange »), UN test qui la tranche (afficher l'état à chaque changement), une conclusion honnête — puis l'hypothèse suivante. Et la règle d'or du débogage : ne jamais changer deux choses à la fois, sinon impossible de savoir laquelle a produit l'effet observé.

🧮 Exemple guidé : l'enquête du feu toujours vert

Ton feu tricolore compile, démarre… et reste vert pour toujours. Mène l'enquête à la lampe-torche série, hypothèse par hypothèse, jusqu'au coupable.

  1. 1.Hypothèse 1 : loop() est bloquée quelque part. Test : un message série « tour de boucle » à chaque passage. Verdict : les messages défilent à toute vitesse — la boucle tourne. Hypothèse écartée.
  2. 2.Hypothèse 2 : l'heure du changement n'arrive jamais. Test : afficher l'écart entre l'instant présent et le dernier changement. Verdict : l'écart grandit… puis retombe à zéro SANS changement de couleur. Étrange — et très instructif.
  3. 3.Hypothèse 3 : l'instant est noté au mauvais endroit. Test : relire la fonction de changement. On découvre que « noter l'instant présent » s'exécute à CHAQUE tour, au lieu de seulement lors du basculement : l'écart est remis à zéro en permanence, l'heure ne sonne jamais.
  4. 4.Réparation : la ligne est déplacée à l'intérieur du « si l'écart dépasse la durée du vert ». Recompilation, téléversement : le feu passe à l'orange après sa durée, puis au rouge. Conclusion notée dans le carnet, enquête close.

Trois hypothèses, trois tests d'une ligne chacun, un coupable démasqué — sans jamais convoquer le hasard. C'est exactement ce que produit la méthode : chaque test élimine ou confirme, et l'enquête avance en ligne droite.

🛠 Pratiquer sur l'établi

  1. 01Extraire les en constantes nommées en tête de fichier

    Chasse les nombres nus de ton : chaque devient une constante nommée en tête de fichier — BROCHE__VERTE plutôt qu'un « 7 » anonyme — et chaque durée aussi : DUREE_VERT, DUREE_ORANGE. Relis ensuite ton code à voix haute : s'il se lit comme une phrase, le renommage est réussi.

    📖 Termes de cette étape

Objectifs

  • +Organiser en sections claires
  • +Nommer constantes et
  • +Corriger les erreurs de
🧪 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. Le compilateur signale une erreur ligne 12. Où chercher d'abord ?

2. À quoi sert la variable d'état du feu tricolore ?

3. Ta LED reste éteinte sans raison. Quel est le meilleur PREMIER geste ?

🧠 Ce qu'il faut retenir

  • 1.Une nommée (_ROUGE) se relit dans six mois ; un « 7 » nu, jamais.
  • 2.Le pointe APRÈS l'oubli : chercher juste au-dessus.
  • 3.Un propre se débogue deux fois plus vite qu'un fouillis qui marche.