Etabli
← Retour aux leçons
Leçon · AVN-09 · Sans fil : Bluetooth et Wi-Fi · 3/4

Approfondir : un protocole qui survit aux coupures

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

Une lettre par ordre suffisait au beau temps radio. Mais l'onde, elle, tord un bit de temps en temps, invente un octet, se tait sans prévenir — et ton robot n'a aucun moyen de s'en douter. Cette leçon blinde la liaison : des de quatre qui s'annoncent et se prouvent, une qui démasque les , un battement de cœur qui rend le silence audible — et une complète, , vitesse et , publiée au réseau.

📖 Comprendre

1. La trame : quatre octets qui se tiennent

La remplace la lettre isolée par un message qui se prouve : quatre , toujours dans le même ordre. Un octet de début reconnaissable — le chevron « < » — qui annonce « message » et permet au de se après une coupure ; une commande (« V » pour la vitesse) ; une valeur de 0 à 255, qui donne enfin la nuance aux ordres ; et une qui scelle le tout.

La somme se calcule d'une addition : (commande + valeur) modulo 256, jointe à la par l'émetteur. Coût total du blindage : 4 , ≈ 4 ms à 9 600 — la robustesse est presque gratuite. Le , lui, devient une petite : attendre le chevron, lire la commande, la valeur, la somme — et tant que le chevron n'est pas passé, tout octet est ignoré.

la puceFLASHle programmeRAMles variablesEEPROMles réglagesla flash : le livre imprimé — le programme y survit sans courant

2. La somme de contrôle : le sceau qui ne ment pas

Le refait le calcul de l'émetteur — (commande + valeur) modulo 256 — et compare au sceau reçu. Égalité : la est saine, l'ordre s'applique. Différence : au moins a été tordu en vol, et la trame ENTIÈRE part à la poubelle — on ne corrige pas, on ne devine pas, car rien ne dit quel octet a menti.

Jeter coûte peu : la suivante arrive dans 100 ms avec une valeur fraîche. Appliquer un ordre corrompu, lui, peut lancer le robot à pleine vitesse sur un chiffre que personne n'a envoyé. Le sceau laisse passer environ une corruption sur 256 — aucun contrôle n'est parfait — mais il transforme un danger permanent en accident rarissime, que la leçon suivante apprendra de surcroît à borner.

3. Le battement de cœur : rendre le silence audible

Le silence est ambigu par nature : « rien à dire » et « liaison morte » se ressemblent trait pour trait. Le battement de cœur lève l'ambiguïté par un rendez-vous : un — une « je suis là » — part toutes les 500 ms, même sans nouvelles à transmettre. Dès lors, l'absence a un sens : un battement manqué est un accroc ; deux battements manqués, la coupure déclarée — en une seconde environ.

La version symétrique ajoute l' : à chaque du téléphone, le robot répond pong. Chacun surveille l'heure du dernier signe de vie de l'autre avec — deux lignes par camp — et est vue des deux côtés : le robot saura s'arrêter, le pilote saura qu'il crie dans le vide.

delay(500)0 ms…il compte, il ne fait RIEN d'autrependant delay : le monde continue, le processeur non

4. La télémétrie complète : batterie, vitesse et cap

La adulte publie trois grandeurs : la de (l'état vital), la vitesse des (la dynamique), le estimé par l' (la direction). Contrairement à la télécommande, elle parle texte : une ligne par mesure, des champs séparés, l'heure en tête — son public est fait d'humains, d'écrans et de fichiers de journal, pas de .

La charge reste dérisoire : une ligne d'une vingtaine d', dix fois par seconde, soit environ deux cents octets par seconde — une poussière pour le . En échange, le robot devient lisible : la qui plie sous les accélérations, la vitesse qui décroche de la , le qui lentement — chaque courbe est un diagnostic qui n'attend plus le retour à l'établi.

🧮 Exemple guidé : la somme qui démasque le parasite

Le téléphone envoie « vitesse 72 » — une allure douce. En vol, un parasite retourne le bit de poids fort de la valeur : 72 devient 200, presque la pleine vitesse. Déroule la trame côté émetteur puis côté récepteur, et montre qui sauve le robot.

  1. 1.L'émetteur scelle : commande « V » = code 86, valeur = 72 ; somme = (86 + 72) modulo 256 = 158. La trame part : chevron, 86, 72, 158.
  2. 2.Le parasite frappe : dans l'octet de valeur, le bit de poids fort bascule — 72 devient 72 + 128 = 200. La trame reçue : chevron, 86, 200, 158.
  3. 3.Le récepteur vérifie : (86 + 200) modulo 256 = 30. Annoncé : 158. Les deux sceaux diffèrent → trame entière à la poubelle, moteurs inchangés.
  4. 4.Cent millisecondes plus tard, la trame suivante arrive intacte : somme juste, vitesse 72 appliquée. Bilan de l'incident : un ordre manqué, zéro embardée.

Sans le sceau, le robot bondissait à 200 sur un ordre que personne n'a donné ; avec lui, l'incident se résume à 100 ms d'attente. Une addition et un modulo : c'est le prix de la différence entre « la radio a eu un accroc » et « le robot a eu un accident ».

🛠 Pratiquer sur l'établi

  1. 01Définir la : début, commande, valeur,

    Écris l'émetteur et le de ta : chevron de début, commande, valeur, somme — et côté réception, la petite qui attend le chevron avant de croire quoi que ce soit. Regarde la scène de l' pendant l'envoi : tes quatre défilent en quatre millisecondes, toujours dans le même ordre — le message a désormais un bord, un corps et un sceau.

    sur l'établi
    464 µsproche = créneau court · loin = créneau long

    📖 Termes de cette étape

Objectifs

  • +Concevoir des vérifiables
  • +Détecter la liaison perdue
  • +Publier la du robot
🧪 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. À quoi sert l'octet de début de trame ?

2. La somme de contrôle reçue ne colle pas au calcul. Que fait le protocole robuste ?

3. Pourquoi envoyer un ping toutes les 500 ms, même sans rien à dire ?

🧠 Ce qu'il faut retenir

  • 1.Une se vérifie : début reconnaissable, longueur connue, .
  • 2.Le silence du annonce la coupure avant qu'elle fasse mal.
  • 3.On ignore ce qu'on ne comprend pas : un robuste ne devine jamais.