BTS Mesure BTS Mesure
DébutTP 1UARTLED RGBBilanCapteursDataloggingStationUltrasonCAN seriePontRégulationCO2

Mise en œuvre d’un capteur à ultrason

Vous pouvez télécharger le texte du TP ici.

Objectifs du TP :

Présentation du module HC-SR04 :

Etape 1 : Mise en œuvre du module HC-SR04, premières mesures 

Etape 2 : la fidélité

Etape 3 : étalonnage

Etape 4 : afficher la distance sur un écran LCD 

Etape 5 : le challenge

Présentation du module HC-SR04 :

Les caractéristiques techniques du module sont les suivantes :

-          Alimentation : 5v.

-          Consommation en utilisation : 15 mA.

-          Gamme de distance : 2 cm à 5 m.

-          Résolution : 0.3 cm.

-          Précision : 1 cm

-          Angle de mesure : < 15°.

Le fonctionnement du module est le suivant :

Il faut envoyer une impulsion niveau haut (à + 5v) pendant au moins 10 µs sur la broche ‘Trig Input’; cela déclenche la mesure. En retour la sortie ‘Output’ ou ‘Echo’, va fournir une impulsion + 5v dont la durée est proportionnelle à la distance si le module détecte un objet.

Voici une représentation graphique de la séquence de fonctionnement du module :

1. Pourquoi, sur la figure, l’obstacle est-il signalé au milieu de l’impulsion Echo ?

Rappel : Célérité du son dans l’air en m.s-1 : c = 331,2 + 0,607.θ, θ étant la température en °C.

2.      Quelle est la célérité des ultrasons dans l’air à une température de 25 °C ?

3.      Exprimer la formule donnant la distance d en cm pour une durée ΔT en µs de l’impulsion Echo.

4.      Application Numérique pour ΔT1 = 150 µs, ΔT2 = 1 ms, ΔT3 = 60 ms.

2) Mise en œuvre du module HC-SR04, premières mesures 

Pour utiliser le module HC-SR04, notre programme devra suivre le séquentiel suivant :

  • Créer une impulsion de 20 µs (>10 µs) sur la patte Trig
  • Mesurer la durée ΔT de l’impulsion Echo en µs
  • Calculer la distance d en cm correspondante
  • Afficher sur le moniteur série la durée ΔT et la distance d
  • Attendre 200 ms avant de réaliser une nouvelle mesure

Fonction à utiliser : pulseIn(broche, valeur, delai_sortie)

·         broche: le numéro de la broche sur laquelle vous voulez lire la durée de l'impulsion. (type int)

·         valeur: le type d'impulsion à "lire" : soit HIGH (niveau HAUT) ou LOW (niveau BAS). (type int)

·         delai_sortie (optionnel): le nombre de microsecondes à attendre pour début de l'impulsion. La valeur par défaut est 1 seconde. (type unsigned long)

Valeur renvoyée : la durée de l'impulsion (en microsecondes) ou 0 si aucune impulsion n'a démarrée avant le délai de sortie. (type unsigned long)

Organigramme en pseudocode :

DÉBUT

\\ Setup
    Initialiser liaison série
   ÉCRIRE "dt en µs \t d en cm" DANS Série   // \t = tabulation
    Patte Trig en sortie
    Patte Echo en entrée
    c = 331.2 + 0.607*Temp

\\ Loop
RÉPÉTER
    ÉCRIRE HIGH DANS Trig              // Créer une impulsion sur la patte Trig grâce à digitalWrite(Trig,HIGH)
    Tempo 20 µs                                     //  d'une durée de 20 µs (>10 µs)
    ÉCRIRE LOW DANS Trig
    dt=pulseIn(Echo,HIGH ,200000) (en µs)  // Mesurer la durée ΔT de l’impulsion Echo en µs
    d=k*dt                                                  // cf Question 3
    ÉCRIRE dt+"\t"+d DANS Série  // Afficher sur le moniteur série la durée ΔT en µs et la distance d avec 1 chiffre après la virgule
    Tempo 200 ms                            // Attendre 200 ms avant de réaliser une nouvelle mesure
JUSQU'À Stop

FIN

5.      Réaliser le programme répondant à ce cahier des charges, puis le tester.

Vous avez du mal à commencer ?
Arduino pour les nuls : affiche la structure du programme avec des commentaires.
Toujours en difficulté ?  Le corrigé.

6.      Visualiser sur l’oscilloscope les signaux des pattes Trig et Echo.
      Placer les curseurs afin de mesurer ΔT durée de l'impulsion Echo.
      Joindre une capture d'écran de votre oscilloscope à votre compte rendu.

7.      Mesurer la durée des impulsions Trig et Echo. Comparer ces durées à celles attendues.
     Puis visualiser la tension reçue par le récepteur US en synchronisme avec le signal Echo.

8.      Comparer la mesure d à la distance mesurée par un réglet. Justifiez si nécessaire la différence de mesure.

Appel 1 : faites valider par le professeur la partie mise en oeuvre

3) Incertitude de répétabilité

Evaluation de type A de l'incertitude - La fidélité

Evaluation de type A : c’est le cas où l'opérateur réalise une série de mesures répétées dans les conditions de répétabilité.
Elle se fonde sur l’application de méthodes statistiques à une série de valeurs expérimentales répétées.
L’incertitude-type u (σ, sigma ou s) est alors déterminée à partir du calcul de l’écart-type empirique corrigé sn-1

Condition de répétabilité :
condition de mesurage dans un ensemble de conditions qui comprennent la même procédure de mesure,
 les mêmes opérateurs, le même système de mesure, les mêmes conditions de fonctionnement et le même lieu,
ainsi que des mesurages répétés sur le même objet ou des objets similaires pendant une courte période de temps
Les mesures automatisées gérées par votre programme répondent parfaitement à ces conditions...

Fidélité : «Étroitesse de l'accord entre les indications ou les valeurs mesurées obtenues par des mesurages répétés du même objet ou d'objets similaires dans des conditions spécifiées » (Vocabulaire International de Métrologie : VIM).

Le défaut de fidélité résulte des erreurs aléatoires.

Le défaut de fidélité sera quantifié par l’écart type de la série de meure.  u = σn-1 = Sn-1

Loi normale : Lorsque les causes d'incertitudes sont nombreuses, indépendantes, et donnent des erreurs du même ordre de grandeur,
 l'histogramme de répartition de la série de mesures tend vers une courbe de Gauss lorsque le nombre n de mesures tend vers l'infini.

La loi normale n'est caractérisée que par deux paramètres :

  •  m : moyenne (indiquant la valeur centrale)
  •   σ (sigma <=> s) écart-type (indiquant la largeur de la courbe). 

Incertitude élargie U : L’incertitude élargie U est donc obtenue en multipliant l’incertitude-type composée par un facteur k appelé facteur d’élargissement,
qui permet d’obtenir un intervalle correspondant à un niveau de confiance choisi.

Pour une loi de distribution normale (cas le plus fréquent), le facteur d’élargissement k est assimilable au coefficient de Student t.
t est disponible dans la table de Student : il varie selon le nombre de mesures n et le niveau de confiance.
Pour un niveau de confiance de 95 % et un nombre de mesure >50, k tend vers 2.

 

9.            - Réaliser une série de 50 mesures dans les conditions de répétabilité.
        -  Arrêter le défilement automatique, sélectionner les 50 premières mesures et les copier ;
           coller les mesures dans un tableau Excel.
        - Rechercher et remplacer tous les . par des , dans Excel.

10.      Calculer dans Excel l’écart-type  et la moyenne de cette série de mesure.

11.      A l’aide de la table de Student déterminer l’incertitude élargie, pour un intervalle de confiance de 95 %, correspondante à cette erreur aléatoire.

Pour réduire cette erreur aléatoire nous allons réaliser une série de 10 mesures et afficher sa valeur moyenne.
Si une de ces mesures vaut 0 (écho non reçu) afficher 0 comme résultat.

12.    Modifier le programme pour que celui-ci affiche la valeur moyenne d'une série de 10 mesures

somme = 0     //  format : non signé (unsigned) 32 bits (long) soit Nmax = 232 - 1 = 4,29.109
  // Attention au format  : si une somme d'entier (int 16 bits) dépasse 32767 le résultat (en int)  devient négatif...

 POUR  i = 0 JUSQU'À 9 FAIRE {
   
t0 = millis()         // top départ
    ÉCRIRE HIGH DANS Trig              
    Tempo 20 µs
    ÉCRIRE LOW DANS Trig
    dt=pulseIn(Echo,HIGH ,200000) (en µs) 
    somme = somme+dt     // faire la somme des 10 mesures
     SI  
(
dt==0) ALORS {  // renvoi 0 si une mesure est hors limite.
            
somme=0
          break          
// Sortir de la boucle POUR si une mesure est hors limite

     
  } FINSI
    TANT QUE (millis()-t0<200)  FAIRE rien    // 200 ms entre 2 mesures                 
} FINPOUR

    dt=somme/10                   //   somme/10 = la moyenne...
   
d=k*dt                               // cf Question 3
    ÉCRIRE  dt+"\t"+d DANS Série  // Afficher sur le moniteur série la durée ΔT en µs et la distance d avec 1 chiffre après la virgule

Appel 2 : faites valider par le professeur la partie fidélité

4) Etalonnage du capteur

 13. Etalonner ce capteur.

Référence Règle en cm 5 10 15 20 25 30 35 40 45 50
dt en µs (Arduino)                    
dt en µs (Oscilloscope)                    

14. Etude de l'erreur de mesure due à la fonction pulseIn() :
      Tracer dtOscilloscope(dtArduino).
       
En théorie dtArduino = dtOscilloscope. Est-ce le cas ?
       Cette erreur est-elle systématique ou aléatoire ?
       Peut-on corriger cette erreur ?

Si les points sont dispersés : l'erreur est aléatoire.
Il s'agit alors d'une erreur de fidélité.
Une erreur de fidélité peut-être atténuée en effectuant une moyenne sur une série de mesure.

Si les points sont alignés l'erreur est systématique.
Ici on peut décomposer cette erreur systématique en 2 :
          ♦ une erreur d'offset (si b
0)
          ♦ une erreur de gain (si a≠1) 
Il s'agit alors d'une erreur de justesse qui implique un biais de mesure.
Un biais de mesure peut-être corrigé par un étalonnage par exemple
.

15. Tracer d(dtArduino). Etablir l'équation de cette droite.
      Tracer d(dtOscilloscope). Etablir l'équation de cette droite.

16. A l'aide du coefficient directeur de la droite Arduino déterminer la valeur expérimentale de la vitesse du son Arduino.
      A l'aide du coefficient directeur de la droite Oscilloscope déterminer la valeur expérimentale de la vitesse du son Oscilloscope.

17. Comment justifier la valeur de b (l'offset) de la droite Arduino ?

18. Evaluer l'incertitude élargie (95%) du modèle Umodélisation
      Tuto Excel :  la formule matricielle DROITEREG. Ecart type des résidus : u = Sey = Sn-2

19. Evaluer les sources d'incertitude suivantes :
        - Uétalon (la règle)
        - Ufidélité

20. Propagation des incertitudes : évaluer l'incertitude élargie
      pour un niveau de confiance de 95 % de votre étalonnage.

21. Rechercher dans le VIM la définition de :
       Utiliser la fonction recherche (Find) 
        - la précision en français et precision en anglais
        - la justesse de mesure. Le capteur à ultrason est-il juste ?
        - la fidélité de mesure. Le capteur à ultrason est-il fidèle ?
        - l'exactitude de mesure. Le capteur à ultrason est-il exact ?
Copier ces définitions dans votre compte rendu.

Appel 3 : faites valider par le professeur la partie étalonnage

5) Afficher la distance sur un écran LCD 

22.      Afficher sur l’écran LCD la distance d en cm, ou le texte : « Mesure hors limite » si dt=0.

Pour utiliser un écran LCD rendez-vous au TP Capteurs

6) Le challenge : compteur de passage

23. Ecrire un programme permettant de compter le nombre de passage dans l'allée centrale.
      Afficher le nombre de passage sur l'écran LCD.
      Allumer le rétroéclairage de l'écran LCD lors d'un passage et l'éteindre au repos.

Comment ne pas compter plusieurs fois le même passage ?
Piste : → on crée 2 booléens : passage et passage_ancien
            → Si ( d<100 cm et dt>0) passage=1 sinon passage=0
           → Pour détecter un nouveau passage  il faut que :
                passage==1 et passage_ancien==0

      
 

Appel : faites valider par le professeur la partie challenge

Rendre le compte rendu soit :

  • sur feuille

  • fichier word dans le répertoire de la classe 1MMesures : Ultrason_Nom1_Nom2

  • fichier word Etalonnage1_Nom1_Nom2 par email à bts.mesure@free.fr