Utilisation d'un capteur à ultrasons HC-SR04 1 - Comment fonctionne le capteur ? Au début, on applique un signal carré d'une durée de 10 µs. Puis un peu plus tard, le capteur va générer 8 signaux périodiques consécutifs à la fréquence de 40 kHz. Ceci va donc durer 8/40000 secondes soit 200 µs. Va alors être généré un signal d'écho dont la durée dépend la distance de l'objet. La durée minimale de ce signal sera de 150 µs pour une distance minimale de 2,5 cm) alors que la durée maximale sera de 25 ms pour une distance de 431 cm. Si aucun obstacle n'est détecté le signal aura une durée de 38 ms. 2 – Comment on obtient la distance en fonction du temps ? Les formules sont données dans le document. distance= temps avec distance en cm et temps en µs. 58 Cette formule est acceptable. Nous allons le démontrer ci-dessous. Cette formule a été déterminée pour une vitesse de transmission standard de 344 m/s. Or la vitesse de propagation d'une onde sonore (ou ultrasonore) dans l'air dépend de nombreux paramètres comme la température et l'altitude. Voici d'ailleurs un tableau qui indique les possibilités. Influence de la température de l'air θ en °C -5 0 +5 + 10 v en m/s 328,5 331,5 334,5 337,5 θ en °C + 15 + 20 + 25 + 30 v en m/s 340,5 343,4 346,3 349,2 La relation est de v = 331,5 + 0,6 x ∆T (∆T est la variation par rapport à 0°C) Documentation Capteur ultrasonore Page 1 sur 3 La table suivante présente l'évolution de quelques propriétés de l'air en fonction de l'altitude. Influence de l'altitude sur l'air Altitude en m 0 200 400 600 800 θ en °C 15,00 13,70 12,40 11,10 9,80 v en m/s 340,3 339,5 338,8 338,0 337,2 Altitude en m 1000 2000 3000 4000 6000 θ en °C 8,50 2,00 -4,49 -10,98 -24,0 v en m/s 336,4 332,5 328,6 324,6 316,5 On voit ainsi que cela se complique. Prenons un exemple : Pour une altitude de 200 m, on obtient à 13,7 °C une vitesse de 339,5 m/s. Si la température était de 0 °C, on aurait alors une vitesse de 339,5 +0,6*(-13,7) soit 331,3 m/s A 20 °C on aurait alors 331,3 + 0,6*20 soit 343,3 m/s. On voit que cela change peu. Si on calcule la distance en prenant en compte la vitesse du signal. (notons la v ) Le signal part du capteur, rencontre un obstacle et revient. Il parcourt donc le double de la distance entre le capteur et l'objet. Notons t le temps mis. La distance parcourue ( d ) sera de : d=t×v Si on se place à 20 °C on aura donc le tableau suivant : t en s 0,000100 0,000200 0,001000 0,005000 0,010000 0,030000 t 100 µs 200 µs 1 ms 5 ms 10 ms 30 ms d en m 0,03434 0,06868 0,3434 1,717 3,434 10,302 d en cm 3,434 6,868 34,340 171,700 343,400 1030,200 avec t en s, d/2 en cm 1,717 3,434 17,170 85,850 171,700 515,100 d en m et v Formule utilisée 1,724 3,448 17,241 86,207 172,414 517,241 en m/s. % d'erreur 0,42% 0,42% 0,42% 0,42% 0,42% 0,42% d/2 est la distance du capteur à l'objet et l'avant dernière colonne indique la valeur si on utilise la formule du document : distance= temps 58 avec distance en cm et temps en µs. On voit que la formule n'est pas si loin que cela de la vérité à 20 °C. (écart de 0,42%) Pour 10 °C, on obtient : t en s 0,000100 0,000200 0,001000 0,005000 0,010000 0,030000 t 100 µs 200 µs 1 ms 5 ms 10 ms 30 ms d en m 0,03375 0,0675 0,3375 1,6875 3,375 10,125 d en cm 3,375 6,750 33,750 168,750 337,500 1012,500 d/2 en cm 1,688 3,375 16,875 84,375 168,750 506,250 Formule utilisée 1,724 3,448 17,241 86,207 172,414 517,241 % d'erreur 2,17% 2,17% 2,17% 2,17% 2,17% 2,17% Là, les écarts deviennent plus importants, mais l'écart maximal est de 11 cm pour une distance de 5 m soit un écart de 2,17 %. On peut donc considérer que la formule donnée dans le document est plus que correcte. Documentation Capteur ultrasonore Page 2 sur 3 3 - Une idée d'algorithme : Initialiser les broches utilisées en entrée ou en sortie selon les cas. Attendre l'initialisation du capteur (par exemple 0,5 s) Générer un signal au niveau haut pendant 10 µs Attendre que le signal d'écho passe à 1 Mettre le temps de départ à 0 Attendre que le signal d'écho passe à 0 Déterminer le temps final Calculer le temps entre le départ et le temps final Calculer la distance Si la distance est supérieure à 400 cm, Afficher "aucun obstacle détecté" Sinon Afficher la distance Prévoir de tout réinitialiser lors de la fin du programme. 4 - Tests de fiabilité : Pour voir un peu la fiabilité de l'engin. On a testé son efficacité entre 2 et 140 cm. Vous trouverez ci dessous un tableau des valeurs récoltées (10 mesures pour chaque point de contrôle). Comme vous pouvez le voir, on a globalement des résultats pas mal pour un capteur de cette qualité. De plus la formule utilisée n'est pas totalement juste. Il faudrait tenir exactement compte de la température, de la pression atmosphérique, de l'altitude, .......... Certaines mesures semblent fantaisistes. Pour éviter des erreurs trop nombreuses, le Raspberry ne doit avoir aucune autre activité pendant les mesurages. Ceci améliorera peut-être les mesures. Ces tests nous apportent au moins une information intéressante : la plupart du temps, on pourra se contenter de quelques mesures, de supprimer la plus petite, la plus grande, et d’utiliser une moyenne des autres, cela afin d’éviter les rares valeurs parasites qui peuvent fausser le résultat. Documentation Capteur ultrasonore Page 3 sur 3