Mesurer une vitesse avec un capteur HC-SR 04

Bonjour,
Mon objectif est d'afficher une vitesse sur un écran LCD avec un capteur HC-SR 04. Ce capteur donne des mesures de distance en émettant des impulsions et en calculant le temps de retour. Afin d'afficher la vitesse de l'objet sur mon écran LCD, je pensais faire 2 mesures de distance successives et diviser la différence par le temps séparant ces 2 mesures. Je suis un débutant en Arduino, j'ai du mal à voir comment je pourrais coder ceci.
Merci pour votre aide.

Les questions se posent dans le forum général, pas dans "Tutoriels et cours".
Utilise le lien "Report to moderator" pour faire déplacer ta question.

hbachetti:
Les questions se posent dans le forum général, pas dans "Tutoriels et cours".
Utilise le lien "Report to moderator" pour faire déplacer ta question.

Ah oui, désolé, je me suis trompé. Merci.

Sujet déplacé...

Les instructions millis() et micros() permettent de connaitre le temps écoulé.
Donc si:
Tu places dans une variable la valeur de millis() ou micros()
Tu lances une mesure de distance
Tu places dans une seconde variable la valeur de millis() ou micros()
Tu lances une mesure de distance
A partir de là tu peux calculer un delta de temps et un delta de distance et faire ton calcul de vitesse.
Néanmoins, pour que la mesure sois pertinente, il y a une contrainte sur le placement du véhicule et la direction de son déplacement que tu dois certainement avoir déjà prévue.

Maintenant que le message est au bon endroit on peut répondre :grin: .

Sur le papier c'est possible mais il faut affiner.
Déjà le principal : quel est l'ordre de grandeur des vitesses que tu peux mesurer.

Ensuite il faut regarder les performances du capteur HC-SRO4.

  • Quel répétabilité a-t-il ? En langage de tous mes jours : dans les mêmes conditions donne-t-il toujours la même mesure ou faut-il faire une moyenne sur 5 , 10 mesures consécutives.
    S'il faut faire une moyenne cela prendra du temps dont le perturbant délai entre deux mesures.
  • A quelle distance sera l'objet ?

Un HC-SR04 est piloté en interne par un microcontrôleur dont on ne connaît pas grand chose. Quel est le temps minimum entre deux salves, ce temps mort est-il compatible avec l'ordre de grandeur des vitesse que tu veux mesurer.

Dernier point le HC-SR04 utilise des transducteur avec une cône d'émission de 60 degrés la mesure sera sensible à l'environnement avec des échos parasites.

Bref si c'est possible sur le principe, la réalisation ne me semble pas facile.

Connaît-tu le HB100 ?


Il est basé sur l'effet doppler (fréquence radio autour de 9 GigaHertz) et optimisé pour la vitesse de marche, mais je pense que la gamme de mesure peut être élargie.
On en trouve à moins de 3€ sur Ebay.

avec les ultra sons ne pas négliger l'effet doppler qui, si la vitesse de la cible est conséquente, risqued'aboutir a des signaux réfléchis mal detectés , trop décalés par rapport a 40 kHz

l'effet doppler n'est pas exploitable avec les transducteurs US courants mais comme le signale 68tjs c'est Ok en hyperfréquences

Tout d'abord, je vous remercie pour vos réponses.

Mon objet sera placé à moins de 4 m car le HC-SR 04 ne mesure uniquement des distances comprises entre 2 cm et 4 m.
Je ne connais pas le HB100, est-il possible de le coder avec Arduino ?

Mon objet sera placé à moins de 4 m car le HC-SR 04 ne mesure uniquement des distances comprises entre 2 cm et 4 m.

Est-ce que le temps aller+retour des ondes sonores pour un objet situé à 4m est compatible pour les vitesses que tu veux mesurer. Au fait pour avoir une aide efficace il faut donner tous les renseignements surtout ceux demandés.

Je ne connais pas le HB100, est-il possible de le coder avec Arduino ?

Si je l'ai proposé c'est que c'est possible :grin:

Je pense qu'une recherche sur ce forum en utilisant le champ de recherche de la loupe en haut à droite de cette page va te donner tous les messages du forum traitant du HB100 dont certain en français.

68tjs:
Est-ce que le temps aller+retour des ondes sonores pour un objet situé à 4m est compatible pour les vitesses que tu veux mesurer.

Les vitesses que je veux mesurer vont jusqu'à environ 16 m/s avec une précision de +/- 1,5 m/s.
La résolution de la mesure du capteur est de 0,3 cm.

Regarder quelle est la durée d'une mesure avec le HCSR04 (durée de la salve d'émission de 8 impulsions ultrasonore, plus durée d'attente de l'aller/ retour) et voir de quelle distance la cible aura bougé pendant ce temps.
Cette source d'erreur s'ajoute à l'effet Doppler.

Christian_R:
Regarder quelle est la durée d'une mesure avec le HCSR04 (durée de la salve d'émission de 8 impulsions ultrasonore, plus durée d'attente de l'aller/ retour) et voir de quelle distance la cible aura bougé pendant ce temps.
Cette source d'erreur s'ajoute à l'effet Doppler.

Merci pour votre réponse. La durée d'une mesure est proportionnelle à la distance mesurée.
Cela revient à effectuer deux mesures afin de connaître le placement de la cible à la fin de la durée de la mesure, non ?

Tu oublies une donnée :
Dans le HC-SR04 il y a un microcontroleur chinois dont on ne connait pas le programme.

La question est : peut-on envoyer des salves répétitives ou faut t'il faire une pause entre deux "trig".
Les exemples d'utilisation que j'ai vu contiennent tous des pauses. Est-ce obligatoire ou pas, je n'ai pas la réponse.

Si oui quelle est la valeur min de cette pause?
A l'issue de cette pause l'objet dont tu veux mesurer la vitesse sera-t-il toujours dans le "champ de vision" du HC-SR04.

68tjs:
La question est : peut-on envoyer des salves répétitives ou faut t'il faire une pause entre deux "trig".
Les exemples d'utilisation que j'ai vu contiennent tous des pauses. Est-ce obligatoire ou pas, je n'ai pas la réponse.

Si oui quelle est la valeur min de cette pause?

Pourquoi faudrait-il faire des pauses ? Je ne comprends pas bien...

68tjs:
A l'issue de cette pause l'objet dont tu veux mesurer la vitesse sera-t-il toujours dans le "champ de vision" du HC-SR04.

Cela dépend de la vitesse de l'objet. On sait que le capteur a un angle de mesure efficace d'environ 15°.
Mais je n'ai pas compris le système de pauses entre deux Trig ...

Pourquoi faudrait-il faire des pauses ? Je ne comprends pas bien...

Je pose la question.
A partir du moment où tu utilises un produit qui contient un microcontroleur dont tu ne connais rien, tu ne pourra faire que ce que le concepteur du programme inconnu a prévu que tu puisse faire.

Par exemple la datasheet du DHT22, qui contient un microcontroleur STM8, précise qu'il faut une pause d'une minute entre deux mesures. Parce que le traitement de l'humidité est long.

J'ai vu des exemples d'utilisation du HC-SR04 qui comportaient des pauses.
Ces pauses sont soit du confort visuel pour ne pas voir les mesures défiler trop vite, soit elles sont nécessaires car imposées par le programme interne.
Cela vaut la peine de se poser la question.

Comme cela vaut la peine d'acheter un HC-SR04 (1€ sur Ebay) et de tester la précision et la reproductibilité des mesures pour différentes distances parce que je ne sais pas si tu as remarqué le fournisseur ne propose strictement aucune documentation.

Bonsoir

le HC-SR04 est une copie 'en moins bon' (modifications du schéma dégradant les performances) du SFR04 du fabricant anglais Devantec

Ce dernier (doc ici) recommande d'attendre 10mS après la fin de l'echo pour relancer TRIG

Capture d’écran du 2019-01-31 21-27-08.png

68tjs:
Je pose la question.
A partir du moment où tu utilises un produit qui contient un microcontroleur dont tu ne connais rien, tu ne pourra faire que ce que le concepteur du programme inconnu a prévu que tu puisse faire.

Par exemple la datasheet du DHT22, qui contient un microcontroleur STM8, précise qu'il faut une pause d'une minute entre deux mesures. Parce que le traitement de l'humidité est long.

J'ai vu des exemples d'utilisation du HC-SR04 qui comportaient des pauses.
Ces pauses sont soit du confort visuel pour ne pas voir les mesures défiler trop vite, soit elles sont nécessaires car imposées par le programme interne.
Cela vaut la peine de se poser la question.

Comme cela vaut la peine d'acheter un HC-SR04 (1€ sur Ebay) et de tester la précision et la reproductibilité des mesures pour différentes distances parce que je ne sais pas si tu as remarqué le fournisseur ne propose strictement aucune documentation.

D'accord, encore merci pour tes réponses. Oui j'ai bien remarqué que le constructeur ne fournit aucune documentation. On trouve uniquement des documents provenant des sites d'achat.
En fait, il faudrait que les mesures s'affichent uniquement lorsque l'objet passe devant le capteur. Dans ce cas là je ne pense pas que les pauses soit une bonne idée car on ne sait pas à quel moment l'objet va arriver devant le capteur.

al1fch:
Ce dernier recommande d'attendre 10mS après la fin de l'echo pour relancer TRIG

Le non respect de cette recommandation entraîne une mauvaise précision des mesures ?

probablement .
Il faudrait le schéma et le code du petit microcontrolleur pour le certifier

Au message #6 je disais de faire attention à l'effet doppler.
Soit on l'exploite ...soit il gêne..

A 16m/s le signal réfléchi arrivera vers 42 kHz
Vu la sélectivité de transducteurs récepteurs il apparaîtra comme un écho faible.... problème supplémentaire...
doppler 16ms.jpg

Je ne me rappelai plus des infos d'Al1fch mais si tu trouve des SFR04 n'hésite pas a les acheter à la place du HC-SR04.
Pour le HC-SR04 ils se sont gourés sur le calcul du filtre et comme ils ne se sont pas remis en question ils ont ajouté une amplification de malade qui rend le système en limite d'instabilité.