Go Down

Topic: Mesurer une vitesse avec un capteur HC-SR 04 (Read 989 times) previous topic - next topic

Alan46

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.

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.
Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

Alan46

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.

jfs

Pas d'aide par MP !!!

Concernant le fonctionnement du forum tout se trouve dans les messages épinglés en tête de page.

fdufnews

#4
Jan 30, 2019, 02:02 pm Last Edit: Jan 30, 2019, 02:03 pm by fdufnews
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.

68tjs

Maintenant que le message est au bon endroit on peut répondre :smiley-mr-green: .

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.

al1fch

#6
Jan 30, 2019, 02:14 pm Last Edit: Jan 30, 2019, 02:15 pm by al1fch
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

Alan46

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 ?

68tjs

#8
Jan 30, 2019, 05:17 pm Last Edit: Jan 30, 2019, 05:21 pm by 68tjs
Quote
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.

Quote
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 :smiley-mr-green:

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.


Alan46

#9
Jan 30, 2019, 05:47 pm Last Edit: Jan 30, 2019, 05:51 pm by Alan46
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.

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.
Christian

Alan46

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 ?

68tjs

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.

Alan46

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...

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 ...

68tjs

#14
Jan 31, 2019, 08:48 pm Last Edit: Jan 31, 2019, 08:49 pm by 68tjs
Quote
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.

Go Up