SCIENCES DE L'INGENIEUR

Niveau : Première générale, enseignement de spécialité SI

 

D
É
C
O
N
N
E
C
T
É

Partie 1 : Décoder une trame

1. Problématique

Comment décoder un message transmis avec le protocole RS-232 à l'aide d'un oscilloscope

2. Matériel à votre disposition

Vous disposez :

  • d’un ordinateur,
  • d’une carte Arduino,
  • d’un oscilloscope.

3. Principe

Le microcontrôleur Arduino est connecté à l'ordinateur par l'intermédiaire du port USB qui vont communiquer entre eux en utilisant le protocole RS-232.

Ils doivent tous les deux avoir le même débit et la même configuration de trame pour se comprendre.

Si le microcontrôleur reçoit un mot ou un octet sur sa broche Rx de l’ordinateur, il envoie sur sa broche D2 le mot mystère stocké dans sa mémoire. Il envoie en plus un message sur sa broche Tx vers l’ordinateur, pour indiquer si le mot mystère a bien été décodé.

4. Diagramme des exigences :

5. Objectif :

Mettre en œuvre un protocole de mesure pour décoder le mot mystère envoyé par l'Arduino Uno.

Ressources disponibles :

6. Visualisation et décodage de la trame envoyée par l'ordinateur à l'Arduino :

  • Brancher la voie A de l’oscilloscope sur les broches Rx et GND de l'arduino.
  • Exécuter le programme Arduino
  • Dans le menu Outils – Port, Sélectionner le Port COM correspondant à l’Arduino que vous avez branché au PC.
  • Dans le menu Outils, cliquer sur Moniteur série et régler le paramètre suivant :
  • Inscrire le chiffre 1 dans le moniteur série du logiciel Arduino, puis envoyer l'octet
  • Vous devriez voir apparaître une brève impulsion

  • Utilisez les touches s/ms de l'oscilloscope pour agrandir le signal en renvoyant 1, autant de fois qu'il faut pour voir apparaître le signal sur l'écran complet de l'oscilloscope.
  • Régler l'oscilloscope en suivant le bon algorithme (Notice.pdf), afin que la courbe apparaisse chaque fois qu'on envoie l'octet 1.
  • En cliquant sur le chronogramme, reproduire l’allure de la trame et indiquez les emplacements des bits de start, de stop, ainsi que D0 à D7 puis trouver le code binaire puis décimal de l’octet envoyé (bit de parité : aucun).




  • Octet binaire envoyé par l'ordinateur :

    Octet hexadécimal envoyé par l'ordinateur :

    Caractère ASCII envoyé par l'ordinateur :

    5.1. Format de la trame

  • Relever la vitesse de transmission en bauds attendue, indiquée dans le moniteur série.
  • Relever l'erreur typique indiquée dans le diagramme des exigences pour la vitesse attendue, pour que le message soit correctement transmis.

  • Pour mesurer la vitesse de transmission, on mesure d'abord la durée du temps d'un bit ou du bit de start grâce à l'oscilloscope (voir notice page 2 : effectuer des mesures). La vitesse en bauds est l'inverse du temps mesuré : $bb"Vitesse" = 1/("durée")$
  • Calculer l'écart relatif entre la valeur attendue et la valeur mesurée en utilisant la relation suivante :
  • $bbepsilonr=(|"Valeur mesurée" - "valeur attendue"|)/("Valeur attendue")

    $diamond$ Débit attendu : $diamond$ Mesure de la durée d'un bit : $diamond$ Débit mesuré : $diamond$ Calcul de l'écart : $diamond$ Analyse de l'écart :

  • Pour déterminer le nombre de bits de stop, on envoie 2 octets depuis le moniteur série : exemple 11
  • Compléter le tableau ci-dessous

    Bit de parité : Sans
    Nombre de bit de données :
    Nombre de bit de stop :
    Vitesse de transmission en bauds :
    Contrôle du flux de donnée : Sans

    7. Lecture et décodage du mot mystère

    Connecter la voie A de l'oscilloscope sur les broches D2 et GND de l'arduino. Envoyer un message quelconque (1 par exemple) et capturez la trame

    Compléter la trame ci-dessous

    
    		

    Mot mystère :

    Mesurer le débit à l'aide de l'oscilloscope, puis régler ce débit dans le moniteur série à la bonne valeur.

    Saisir le mot mystère dans le moniteur série vers l'Arduino.

    Faire valider le fonctionnement.

    8. Prédire la durée d'une trame.

    D'après le programme ci-dessous et le diagramme des exigences, déterminer le format de la trame : nombre de bits nécessaires pour envoyer un octet.

    void setup() {
        Serial.begin(115200, SERIAL_8E2); // Configuration 8E2
    }
    
    void loop() {
      Serial.print("1"); // Envoi du caractère '1'
      delay(2000);
    }

    Relever le débit en bits/s attendu dans le programme et l'erreur typique aceptée du diagramme des exigences.

    Copier, puis coller le programme dans l'éditeur Arduino,

    Enregistrer le programme dans vos documents,

    Dans le menu croquis, téléverser le programme dans l'Arduino,

    Envoyez le caractère "1" depuis l'arduino vers le PC.

    Envoyez ensuite "2" et expliquer comment fonctionne le bit de parité.

    Calculer le temps nécessaire attendu pour envoyer votre nom et votre prénom depuis l'arduino : "Nom Prénom", en tenant compte du débit et du caractère "espace".

    Téléversez le programme suivant en remplaçant "Nom Prénom" par le votre.

    Mesurer ce temps grâce à l'oscilloscope en le branchant sur la broche Tx de l'Arduino. Calculer l'écart relatif entre la valeur attendue et la valeur mesurée.

    Vérifier qu'elle corresponde bien à l'erreur typique du diagramme des exigences.

    Valeur Mesurée : Ecart relatif :

    PARTIE 2

    Mesure de la hauteur du laboratoire avec un capteur à ultrasons.

    Objectif

    Mesurer la hauteur du laboratoire en deux étapes :

    • Hauteur table → plafond (groupe 1)
    • Hauteur sol → table (groupe 2)

    Puis faire la somme pour vérifier l'exactitude.

    Vous devrez être capable :

    • d'utiliser un capteur LV-MaxSonar-EZ1,
    • de lire la trame série sur un oscilloscope (sans microcontrôleur),
    • de décoder manuellement la trame ASCII envoyée par le capteur,
    • de déterminer la fréquence de transmission,
    • de calculer les écarts de mesure

    Matériel par groupe :

    • 1 capteur LV-MaxSonar-EZ1
    • 1 ESP8266
    • 1 oscilloscope numérique
    • 1 mètre pour vérification manuelle

    Diagramme des exigences

    Travail demandé :

    Partie A — Observation du signal

    Brancher le capteur sur le connecteur A0 de l'ESP8266, A0 et GND vers oscilloscope (voie A)

    Identifier les trames série envoyées à intervalle régulier (~100 µs).

    Mesurer le temps d’un bit dans la trame et en déduire le débit en bits/s (bauds) et vérifier si cette valeur est conforme au diagramme des exigences.

    Mesurer le temps qui sépare l'envoi de 2 mesures et en déduire la fréquence des mesures et vérifier si cette valeur est conforme au diagramme des exigences.

    Partie B — Décodage d’une trame

    1. Zoomer sur une trame complète (par exemple R123\r en ASCII).
    2. Le capteur envoie d'abord la lettre R, puis après une courte pause (Mark), il envoie 3 octets correspondant à la distance en cm et un 4ème octet permettant un retour à la ligne suivante (CR : retour chariot).

    3. Quel devrait être le niveau logique de Mark et du bit de start ? que remarquez-vous ?
    4. C’est typique du RS-232 TTL, qui utilise des niveaux inversés par rapport à la logique TTL classique.

    5. Brancher le câble rouge de l'oscilloscope sur la broche 3.3V de l'ESP et le câble noir de l'oscilloscope sur la sortie A0 afin de visualiser les niveaux en logique TTL classique
    6. Repérer les bits de start, data et stop.

    Partie C — Exploitation

    • Groupe 1 mesure table → plafond.
    • Groupe 2 mesure sol → table.
    • Convertir les bits en binaire, puis en ASCII pour retrouver les caractères (ex: R, 1, 2, 3, \r). En déduire la hauteur mesurée.
    • Chaque groupe additionne ses mesures, calcule la hauteur totale de la salle de TP.
    • Vérification avec un mètre.

    Exploitation des résultats

    Comparer les mesures obtenues avec le capteur à ultrasons à celles obtenues au mètre ruban, puis calculer l’erreur relative.

    1. Rappel des grandeurs

    SymboleSignification
    𝑀Mesure de référence (mètre ruban)
    CMesure capteur (valeur décodée)
    εErreur relative (en %)

    2. Formule de l'erreur relative

    $epsilon=|(C-M)/M|xx100$

    Calculer l'erreur statique entre la mesure manuelle et celle mesurée par le capteur et vérifier si cette valeur est conforme au diagramme des exigences.

    Fond : Texte : Tables :