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

Premier programme embarqué

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

Il existe un rite de passage chez les roboticiens : faire clignoter sa première . Quatre lignes, en apparence dérisoires — mais si elles clignotent, c'est que TOUTE la chaîne fonctionne : l'éditeur, la , le câble, la , la carte. Cette leçon te fait franchir le rite pour de vrai, du squelette vide jusqu'au battement de cœur.

📖 Comprendre

1. setup() : la liste de contrôle

Une GPIO sait tout faire : écouter un ou commander une . Mais au démarrage, elle ne sait pas encore ce qu'on attend d'elle. Le premier travail de () est de le lui dire : « la broche de la LED est une sortie ». C'est une configuration, pas une action — on la pose une fois, elle vaut pour toute la vie du , comme le réglage d'un instrument avant le concert.

Prends ce réflexe de tri dès le premier jour : tout ce qui PRÉPARE va dans () — déclarer les , ouvrir la , poser les valeurs de départ. Tout ce qui AGIT ou DÉCIDE va dans loop(). Un dont la préparation traîne dans la boucle refait mille fois un travail d'une fois : il marche souvent… mais il pense mal, et il finit par le faire payer.

2. État haut, état bas : la LED obéit à la broche

Allumer une , c'est mettre sa à l'état haut : la broche impose alors la d', le circule à travers la et la LED — lumière. La mettre à l'état bas la ramène à zéro volt : plus de courant, extinction. Deux ordres, deux états, rien d'autre : c'est le et le niveau bas du monde , appliqués à ta première sortie.

Détail capital pour lire le blink : une CONSERVE le dernier état écrit. Pendant « attendre 500 ms » — le fameux (500) — le s'immobilise, mais la broche, elle, ne change pas : la reste allumée toute l'attente. Le clignotement ne vient donc pas d'un ordre « clignote », qui n'existe pas : il naît de l'alternance écrite noir sur blanc — haut, attendre, bas, attendre.

+220 Ω≈ 2 V à ses bornesanode vers le + : ça brille — la résistance tient le courant

3. Le blink : quatre lignes, un battement

Dans (), le blink tient en quatre lignes : · attendre 500 ms · état bas · attendre 500 ms. Le tour complet dure 1 000 ms : un éclat par seconde. À l', la dessine un créneau parfait — un plateau haut d'une demi-seconde, un plateau bas d'une demi-seconde — le tout premier que TON code impose au monde réel.

Le blink est le « bonjour » de l'embarqué, et surtout son thermomètre : s'il clignote, c'est que toute la chaîne fonctionne — éditeur, , câble, , carte. C'est le premier réflexe des professionnels devant une carte suspecte : un blink. S'il bat, le matériel est hors de cause et le problème est dans le ; s'il ne bat pas, inutile de chercher plus loin dans le code.

4. Téléverser : le moment de vérité

Au clic sur « », tout s'enchaîne : la vérifie et traduit, les instructions descendent le câble — sur beaucoup de cartes, de petites lumières papillotent pendant le transfert — puis la carte redémarre et exécute TON code : () une fois, loop() sans fin. Quand la de la carte se met à battre, savoure : c'est la première fois qu'un objet physique obéit à un que tu as écrit.

Si rien ne clignote, garde la tête froide et vérifie dans l'ordre : le câble — certains ne transportent que la charge, pas les données — puis la carte sélectionnée dans le menu de l'éditeur. Ces deux-là expliquent l'écrasante majorité des téléversements muets. ne vient qu'en troisième : c'est toute la beauté du blink, il est trop court pour cacher longtemps une erreur.

🧮 Exemple guidé : du tic-tac au battement de cœur

Ton blink attend 500 ms allumé, 500 ms éteint. Quelle est sa période ? Que devient le rythme avec des attentes de 100 ms ? Et comment obtenir un battement de cœur — deux éclats brefs, puis une longue pause ?

  1. 1.Rythme d'origine : 500 + 500 = 1 000 ms de période, soit un éclat par seconde — le tic-tac tranquille d'une horloge.
  2. 2.Attentes de 100 ms : période 100 + 100 = 200 ms, donc 5 éclats par seconde — un papillotement nerveux, presque une alarme. Deux nombres changés, un caractère tout neuf.
  3. 3.Battement de cœur : haut 80 ms · bas 120 ms · haut 80 ms · bas 720 ms. Total : 80 + 120 + 80 + 720 = 1 000 ms — même période qu'au départ !
  4. 4.Même durée de cycle, dessin différent : toum-toum… silence. Le caractère d'un clignotant tient à la FORME du motif, pas seulement à sa longueur.

Quatre attentes suffisent à écrire un rythme, et la période se lit en les additionnant. Retiens surtout la leçon cachée : à période égale, c'est le dessin du créneau qui donne son caractère au signal.

🛠 Pratiquer sur l'établi

  1. 01Lire le squelette : () une fois, loop() pour toujours

    Pose d'abord l'échafaudage : () et loop(), vides. Téléverse-les tels quels — oui, un qui ne fait rien ! La carte l'accepte sans broncher, et tu viens de valider toute la chaîne avant d'écrire ta première vraie ligne. La scène te rappelle ce que loop attend de devenir : la boucle percevoir-décider-agir de ton robot.

    sur l'établi
    PERCEVOIRcapteursDÉCIDERcerveauAGIRactionneursles capteurs regardent le monde…

    📖 Termes de cette étape

Objectifs

  • +Comprendre () et loop()
  • + un
  • +Faire clignoter sa première
🧪 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. Dans le blink, que fait exactement delay(500) ?

2. Pour allumer la LED, le programme doit…

3. La LED doit battre 2 fois par seconde, allumée la moitié du temps. Quelles attentes écrire ?

🧠 Ce qu'il faut retenir

  • 1.() s'exécute une seule fois au démarrage ; loop() tourne ensuite sans fin.
  • 2. remplace tout le : la carte redémarre avec le nouveau code.
  • 3.Le blink est le « bonjour » de l'embarqué : s'il clignote, toute la chaîne fonctionne.