Go Down

Topic: Capteur Ultrason HC-SR04 et type de surface ou matériau (Read 806 times) previous topic - next topic

Dododu01

Bonjour amis arduiniens,

J'ai pas mal rechercher mais il est vrai que lorsque l'on parle de capteur ultrason, on tobe systématiquement sur des mesures de distance (normal il est fait pour ca).

J'aimerais cependant pouvoir estimer la surface réfléchissante.
Bois, metal, mousse ect...

Lorsque l'on mesure la distance avec ce capteur on mesure le délais de réponse du signal.
Dans mon cas, je pense qu'il est possible de mesurer le type de matériaux mesuré en mesurant la puissance de réception du signal émis.
Lorsqu'il s'agit par exemple de métal, il renverra bcp plus de signaux que s'il s'agit de mousse (car signal absorbé en parti).

Pensez vous qu'il est possible de faire ceci ?

dourlen

Yo,
il me semble q'un capteur ultrason peu envoyer un court ultrason et calculer le temps de réception, donc la vitesse du son!
Il est peut-être possible de mesurer la vitesse du son a travers le matériau.

68tjs

Deux points :

point 1
Es tu sur de la référence HC SR01 ?
J'ai vérifié avec un moteur de recherche  et le HC-SR01 est un capteur PIR, c'est à dire dans l'infra rouge.
Ne serait-ce pas un HC-SR04 ?


point 2
Ce que tu veux faire va nécessiter des mesures de puissance ou de niveau très précises et analogiques.
Il faudrait pour cela modifier le HC-SR04 pour récupérer le signal avant écrêtage et là vu comment le machin est mal foutu et ne demande qu'à se transformer en oscillateur cela ne va pas être de la tarte.

Il existe d'autres capteurs qui font la même chose et qui comportent moins de composants et donc seront plus stables.
Les explications ici : http://uglyduck.ath.cx/ep/archive/2014/01/Making_a_better_HC_SR04_Echo_Locator.html
J'ai pu vérifier il y a 2 ou 3 ans que l'erreur de centrage du filtre était toujours présente.

Principe :
Quand une onde incidente arrive sur un changement de milieu il y a :  
- une partie qui est transmise et qui passe du milieu 1 au milieu 2. Cette partie peut éventuellement être affaiblie pendant la traversée du milieu 2.
- une partie qui est réfléchie et reste dans le milieu 1.


La proportion entre les deux composantes dépend de la nature de l'onde.
Avec une onde ultra sonique quasiment tout est réfléchi, il va falloir être très précis et méticuleux et avoir de bonne connaissance en électronique pour quantifier la partie transmise.
Une onde lumineuse qui frappe une vitre sera quasiment transmise à 100%
Une onde  ultrasonore sera réfléchie quasiment à 100%

A l'émission le max232 du HC-SR04 envoi un train d'impulsions rectangulaires. Le transducteur d'émission est très sélectif et je pense que seule une sinusoïde est transmise "dans les airs".
A la réception c'est pareil et à la sortie du transducteur de réception il doit y avoir une sinusoïde parfaite.
C'est cette sinusoïde qu'il faut amplifier linéairement (sans l'écrêter) et mesurer.

Et mesurer le train incident pour comparer. Mais comment fait-on ?
Mettre les deux transducteurs face à face ?
Il faut faire très attention a ne pas introduire des erreurs de mesure.

Dododu01

Bonjour a vous deux et merci pour vos réponses.

Dourlen, merci mais je suis désolé, je pense que tu te trompe, la vitesse ne rentre pas en jeux dans ce cas, c'est en effet une erreur qu'on a l'habitude de faire à cause par exemple des ballon qu'on envoi contre un mur dur ou moue, mais à cette échelle les choses sont très différentes.

68tjs, merci pour tes réponses, en effet j'ai fais une erreur et je vais la modifier dans le titre. Heureusement tu n'en a pas tenu compte ;)
Je comprends le problème, je n'avais pas imaginé que le capteur s'occupait de prés arranger le signal (en même temps j'aurais dû m'en douter lorsque l'on voie le nombre de puce et circuit à son dos).
Une sinusoïdale... arggg, berg, qu'elle galère. Pour les tests et la précision, cela ne me fait pas peur, mais ce qui me fait peur c'est plutôt les faux positifs dû aux composants utilisés.

Ton lien, même si j'ai du mal a tout comprendre semble indiquer que la durée de chaque impulsion recu, peu permettre de connaitre ou au moins d'estimer la nature du matériaux réfléchissant. Il y a clairement une différence entre les impulsion sur matériaux dure et sur matériaux moue. Si je pars de ce principe, il devrait suffire de mesurer la durée des impulsions reçu pour pouvoir estimer le matériaux. (Sauf si je fais fausse route).

68tjs

Quote
Ton lien, même si j'ai du mal a tout comprendre semble indiquer que la durée de chaque impulsion recu, peu permettre de connaitre ou au moins d'estimer la nature du matériaux réfléchissant.
Je ne suis pas un spécialiste des US mais je ne vois pas ce qui provoquerait un changement de fréquence des impulsions puisque la fréquence est imposée par la bande passante des transducteurs. Les transducteurs ont une fonction passe-bande donc on ne reçoit que ce qui est calé sur la fréquence centrale du transducteur de réception.
Je ne balaie pas a priori l'idée que c'est possible mais pour l'admettre il me faut une validation par la lecture d'un tuto un peu théorique .

Quote
Pour les tests et la précision, cela ne me fait pas peur,
Je te laisse ta confiance. Moi ce qui me fait peur c'est de récupérer un signal analogique et linéaire , c'est à dire non écrêté par un ampli à grand gain qui part en butée sur les deux rails d'alimentation.

L'expérience que j'ai de ce module c'est qu'une simple sonde d'oscillo peut le faire accrocher.
Si le décentrage du filtre n'a toujours pas été corrigé le filtre ne sert à rien et il atténue.  D'où l' amplification d'enfer pour compenser cette atténuation. Trop de gain amène à l'accrochage.
D'autre part sur les exemplaires que j'ai testé (j'avais approvisionné un lot de 5) la pompe de charge du Max232 ne pompait pas et au lieu d'attaquer le transducteur émetteur sous +/- 10 V soit 20 volts C/C il n'était attaqué que par 5V --> du niveau en moins à l'émission donc encore de l'amplification à ajouter en réception.

C'est pour cela que j'ai déconseillé cette réalisation. Il en existe d'autres avec moins de composants donc on peut espérer avec moins de conneries.



Artouste

Je ne suis pas un spécialiste des US mais je ne vois pas ce qui provoquerait un changement de fréquence des impulsions puisque la fréquence est imposée par la bande passante des transducteurs. Les transducteurs ont une fonction passe-bande donc on ne reçoit que ce qui est calé sur la fréquence centrale du transducteur de réception.
Je ne balaie pas a priori l'idée que c'est possible mais pour l'admettre il me faut une validation par la lecture d'un tuto un peu théorique .
Je te laisse ta confiance. Moi ce qui me fait peur c'est de récupérer un signal analogique et linéaire , c'est à dire non écrêté par un ampli à grand gain qui part en butée sur les deux rails d'alimentation.

L'expérience que j'ai de ce module c'est qu'une simple sonde d'oscillo peut le faire accrocher.
Si le décentrage du filtre n'a toujours pas été corrigé le filtre ne sert à rien et il atténue.  D'où l' amplification d'enfer pour compenser cette atténuation. Trop de gain amène à l'accrochage.
D'autre part sur les exemplaires que j'ai testé (j'avais approvisionné un lot de 5) la pompe de charge du Max232 ne pompait pas et au lieu d'attaquer le transducteur émetteur sous +/- 10 V soit 20 volts C/C il n'était attaqué que par 5V --> du niveau en moins à l'émission donc encore de l'amplification à ajouter en réception.

C'est pour cela que j'ai déconseillé cette réalisation. Il en existe d'autres avec moins de composants donc on peut espérer avec moins de conneries.



Bonsoir
+1 avec 68tjs
Anecdotiquement , sur de l'US base HSR04 un lien que j'avais en réserve pour jouer  8)


Pas encore eu le temps (et ce ne sera pas pour "tout de suite"  )

Dododu01

Bonjour a vous deux et encore merci.

Sympa ton lien Artouste :D

Merci encore 68tjs,
j'suis pas un grand calé en électronique, donc je ne comprends pas entièrement ce que tu dis.
Mais en effet, j'avais fais erreur en regardant ces graphiques (au centre de l'article), en pensant que l'arduino recevait des salves d'impulsions.
Je vais tout de même faire quelques essais, histoire de ne pas abandonner si rapidement.

Je suis très déçu, j'étais tellement certains de pouvoir faire d'avantage que de la distance avec ce capteur.
La question que je me pose du coup... C'est comment je vais faire pour détecter le type de matériaux ?
Un capteur de dureté ? (mesure l'enfoncement d'une petite tige) mouai boff...
Un capteur de luminosité réfléchie ? (une led et un capteur de luminosité) Incertain et pas fiable...
Un capteur de son ? (Le robot produit surement un bruit différent selon la surface qu'il traverse) A tester mais j'ai peur que ca me prenne bcp de place et de calcul. (j'ai un arduino mega).

Si quelqu'un a une idée ?

68tjs

Sympa le lien, mouais pas quand on a fait allemand seconde langue option dernier rang chargé de l'animation :)

Go Up