Sonar acoustique

Bonjour ! Je suis débutant et je me lance dans un projet de sonar. J'ai l'habitude de traîner sur ce forum mais j'ai sauté le pas en créant mon compte pour demander de l'aide. Je tiens à signaler que j'ai effectué quelques recherches sur le forum, mais je n'ai pas trouvé ce que je cherchais :P

En fait, l'idée est d'avoir une indication de distance en utilisant le principe du sonar ... sans recourir au HC SR04 (et la difficulté est là >:( ). Le HC SR04 est bien sympa à utiliser, les bibliothèques sont déjà toutes faites, mais la portée est très limitée. L'idée est d'avoir l'info sur le niveau d'eau dans une cuve grâce au principe du sonar pour avoir la distance entre la surface de l'eau et le top de la cuve (je ne souhaite pas utiliser de capteurs immergés).

Je peux certes investir dans un module à ultrason à une centaine d'euros pour gagner en portée, mais l'idée est de me servir plutôt d'un haut parleur et d'un microphone qui seront peut-être plus abordables. Mes quelques connaissances de bases sur les ondes acoustiques semblent me pousser à croire qu'il n'y a pas de raison pour que les ondes acoustiques audibles ne puissent réaliser cette tâche de sonar (même si c'est bruyant).

Alors pour cette mission j'ai commencé par faire émettre via un buzzer actif une fréquence quelconque (un Do il me semble) et j'essaye de capter ça par un module de détection de son (le fameux soundsensor module avec gain ajustable fourni dans les kit de base, c'est lowcost mais j'ai un microphone un peu plus performant qui est en cours d'expédition). J'imagine que le buzzer actif ne sera pas suffisant pour avoir de la portée, mais dans un premier temps je cherche juste à faire quelque chose de fonctionnel sans me servir du HC SR04.

Je suis en train de bosser et d'apprendre comment lancer le son et l'écoute du signal "en même temps" (je découvre le séquençage de tâches haha, je vous avais prévenu je suis débutant) mais j'aimerais connaître votre avis si, selon vous, ce projet est réalisable avec cette méthode. Ma première idée était d'utiliser la fonction millis() et de comparer les temps entre l'émission du signal et la réception de l'autre, mais je ne sais pas si ça sera assez précis car les instructions du programme doivent "bouffer" du temps :'( .

Je vous serais reconnaissant si vous pouviez me donner votre point de vue sur tout ça, et comment vous vous y prendriez ?

Si tout ceci marche, j'aimerais par la suite utiliser un microphone et non un simple détecteur de bruit pour "reconnaitre" la fréquence émise pour éviter les faux positifs et que mon programme ne réagisse pas à chaque bruit.

Merci pour votre lecture,

Sheppard

Je ne sais pas quoi répondre.....parce que là tu te lance dans l'électronique analogique et je dis méfiance. Il va falloir des amplis a bande passante de type "passe-bande" pour éliminer le bruit. Il me semble prudent de ne pas penser programme avant que le matériel fonctionne. Il suffira de copier le principe du HC-SR04. A ce sujet un site qui décortique le HC-SR04 http://uglyduck.vajn.icu/ep/archive/2014/01/Making_a_better_HC_SR04_Echo_Locator.html

C'est vrai que la vitesse de propagation dans l'air des ondes acoustiques est indépendante de la fréquence de ces ondes. Mais dans le principe de fonctionnement du mesureur de distance à ultra sons la fréquence a son importance sur d'autres points.

Petit rappel du fonctionnement des HC-SR04 et autres. Le module est géré par un microcontroleur qui envoie des salves de 8 périodes à 40 kHz. Pourquoi 8 périodes seulement : parce qu'il ne faut pas qu'il émette quand la salve, ayant rebondi sur un obstacle, revient sur le capteur. Sinon le microcontroleur ne saura pas reconnaître les ondes réellement utiles.

A partir de ce moment là si au lieu de travailler à 40 kHz tu travaille à 1kHz ( au passage zone de fréquence où la perception de l'oreille est maximale) le temps d'émission de la salve prendra 40 fois plus de temps (Période = 1/Fréquence). Rapidement a vu de nez (un affinage du raisonnement sera probablement nécessaire) je dirai que cela simplifiera la mesure de longues distances mais compliquera celle des faibles distance.

Avant d'aller plus loin je ferais des essais en programmant une fréquence de 1kHz qui attaquerait le buzzer et si la sortie du microphone est capable de sortir du numérique je regarderai comment cela se passe. La meilleure solution est de contrôler avec un oscillo . Problème un oscillo c'est un investissement non négligeable et en plus il faut savoir s'en servir.

Si le module microphone sort du numérique, peut-être avec la fonction pulseIn ? ou plutôt avec un analyseur logique. Contrairement à un oscillo un analyseur logique est bon marché (Clone chinois de Saleae entre 5 et 7 €) et rend de grand service dont la mesure de fréquence ou de temps entre deux impulsions sans oublier le décodage de la liaison série, I2C ou SPI.

Info : le module HC-SR04 est une (mauvaise) copie d'un autre capteur à US. Pour voir les différentes réalisations du marché faire une recherche Ebay avec "arduino ultrasonic sensor"

Et ce n’est pas millis() qu’il faudra utiliser mais micros() vue la vitesse de propagation du son dans l’air. (Ensuite ce n’est pas juste par confort auditif que l’on utilise des ultra-sons mais une question de propagation, même les dauphins le font...)

La portée du HC SR04 est effectivement limitée dans l'air à quelques mètres, mais dans l'eau qu'en est il exactement ?

je suppose qu'il souhaite mettre son HP + micro au dessus de la surface de l'eau

Christian_R: La portée du HC SR04 est effectivement limitée dans l'air à quelques mètres, mais dans l'eau qu'en est il exactement ?

J-M-L: je suppose qu'il souhaite mettre son HP + micro au dessus de la surface de l'eau

Je n'ai pas compris que les sons doivent traverser l'interface air/eau. Si ce devait être le cas c'est perdu d'avance. L'interface air/eau possède un coefficient de réflexion de 1 c'est à dire que la réflexion est totale.

La portée c'est uniquement une question de puissance à l'émission et de sensibilité à la réception, avec un bon rapport Signal/Bruit. Une précision : l'angle d'émission qui est donné dans les notices commerciales est le demi-angle. Vu que c'est un angle solide les notices commerciales jouent sur les mots. C'est aisément vérifiable quand par bonheur on dispose du diagramme d'émission. C'est aussi un point important car il ne faut pas qu'il y ait réflexion sur les paroies de la cuve.

Il a écrit

L’idée est d’avoir l’info sur le niveau d’eau dans une cuve grâce au principe du sonar pour avoir la distance entre la surface de l’eau et le top de la cuve (je ne souhaite pas utiliser de capteurs immergés).

donc c’est clair qu’il veut mesurer la hauteur “libre” dans une cuve → donc la distance dans l’air entre la position du micro/HP et la surface de l’eau et sans doute que son besoin dépasse les 3/4m environ du HC SR04… (et un VL53L0X ou VL6180X (Time of Flight) a une portée mois grande).

cela dit, si le niveau peut être 4m plus bas que le système, ça va faire bcp de déperdition en énergie et faudra bien booster la puissance à l’émission

Rebonjour, Merci pour vos réponses ! Effectivement je ne souhaite pas franchir l'interface air / eau, justement le problème d'autres techniques est l'absorption des fréquences par l'eau, ce qui n'est pas le cas des ondes sonores avec le Cr (presque) égal à 1, comme l'a rappelé 68tjs.

68tjs: C'est aisément vérifiable quand par bonheur on dispose du diagramme d'émission. C'est aussi un point important car il ne faut pas qu'il y ait réflexion sur les paroies de la cuve.

Et si on met le tout dans un tube pour "diriger les ondes" ? Pour la cuve peut-être que des réflexions seront visibles mais j'imagine seront de moindre amplitude que "La" réflexion sur la surface de l'eau, si l'émission est bien dirigée vers l'eau (réflexion simple et non multiple comme sur les parois).

J-M-L: sans doute que son besoin dépasse les 3/4m environ du HC SR04... (et un VL53L0X ou VL6180X (Time of Flight) a une portée mois grande). cela dit, si le niveau peut être 4m plus bas que le système, ça va faire bcp de déperdition en énergie et faudra bien booster la puissance à l'émission

Je viserai facilement la 10aine de mètres alors ... Oui ! On va devoir booster la puissance hahaha, après je n'ai pas besoin d'une mesure par seconde, l'objectif serait peut-être plus vers une par heure par exemple.

68tjs: La portée c'est uniquement une question de puissance à l'émission et de sensibilité à la réception, avec un bon rapport Signal/Bruit.

J'aime entendre ce genre de choses !

68tjs: C'est vrai que la vitesse de propagation dans l'air des ondes acoustiques est indépendante de la fréquence de ces ondes. Mais dans le principe de fonctionnement du mesureur de distance à ultra sons la fréquence a son importance sur d'autres points.

A partir de ce moment là si au lieu de travailler à 40 kHz tu travaille à 1kHz ( au passage zone de fréquence où la perception de l'oreille est maximale) le temps d'émission de la salve prendra 40 fois plus de temps (Période = 1/Fréquence). Rapidement a vu de nez (un affinage du raisonnement sera probablement nécessaire) je dirai que cela simplifiera la mesure de longues distances mais compliquera celle des faibles distance.

Avant d'aller plus loin je ferais des essais en programmant une fréquence de 1kHz qui attaquerait le buzzer et si la sortie du microphone est capable de sortir du numérique je regarderai comment cela se passe. La meilleure solution est de contrôler avec un oscillo . Problème un oscillo c'est un investissement non négligeable et en plus il faut savoir s'en servir.

Si le module microphone sort du numérique, peut-être avec la fonction pulseIn ? ou plutôt avec un analyseur logique. Contrairement à un oscillo un analyseur logique est bon marché (Clone chinois de Saleae entre 5 et 7 €) et rend de grand service dont la mesure de fréquence ou de temps entre deux impulsions sans oublier le décodage de la liaison série, I2C ou SPI.

Info : le module HC-SR04 est une (mauvaise) copie d'un autre capteur à US. Pour voir les différentes réalisations du marché faire une recherche Ebay avec "arduino ultrasonic sensor"

Je ... Ok je vais essayer de balancer le 1 kHz et voir la réponse. Le microphone est un petit module analogique, il arrive soudé au petit circuit électronique comprenant un ampli et ajuste théoriquement le gain automatiquement. Je vais regarder pour l'analyseur logique et voir ce qu'il existe d'autre en ultrason, mais je suis pas convaincu par la portée.

En tout cas super pour vos réponses, merci beaucoup! Je vais me renseigner sur micros()

Bonne journée à vous, Sheppard

Un tube pour « diriger » le son ? Vous aurez des rebonds sur la paroi du tube;

si c’est un Grand réservoir auquel vous avez accès et pouvez aller « au fond », avez vous regardé du côté de la mesure de pression différentielle entre la surface du liquide et la position d’un transmetteur installé en immersion au fond du réservoir ? Une colonne d’eau de 10m donnera grosso modo 1bar et ça diminuera quand le réservoir se vide.

Si la cuve fait 10 m de profondeur avec un demi angle de 15° un rapide calcul montre que "la tache" à 10 m de profondeur aura un rayon de près de 3 m. Rayon de la tache = distance x tangeante(demi-angle d'émission). Si on compare avec une profondeur de 1 m (tache de rayon 0,3 m), à 10 m la densité surfacique de puissance sera 100 fois plus faible qu'à 1 m ( proportionnel à la surface donc au carré de la distance).

L'angle d'émission est le résultat de la conception du module émetteur ou du récepteur. Je ne vois pas comment le modifier par des moyens extérieurs sans risquer des réflexions parasites. Les lentilles concaves ou convexes pour le son je ne connais pas, mais je ne connais pas tout. Je sais qu'il existe des microphones directionnels (sûrement pas le modèle Ebay) mais qu'en est-il pour les "haut parleurs" ?

68tjs: Les lentilles concaves ou convexes pour le son je ne connais pas, mais je ne connais pas tout.

cherchez Experience/lentille de Sondhauss

--> application simple : on peut fabriquer une "lentille acoustique" avec un ballon de baudruche rempli de gaz plus dense que l'air (CO2 par exemple) et mis en forme de cône.

j'ai bien fais d'écrire :

mais je ne connais pas tout.

:grin:

68tjs: j'ai bien fais d'écrire ::grin:

et moi j'aurais mieux fait de faire la recherche avant de poster parce que c'est plutôt en lentille d'écoute (micro) que d'émission...

La construction d'une lentille acoustique focalisante est possible mais c'est un autre domaine et bien plus cher :)

Merci pour vos réponses !

Les lentilles sonores je connaissais pas ! Je réfléchissais toujours à l'idée du tube ... On aura peut-être effectivement des réflexions ... mais vont elles aller dans la direction du micro ?

J-M-L: si c’est un Grand réservoir auquel vous avez accès et pouvez aller « au fond », avez vous regardé du côté de la mesure de pression différentielle entre la surface du liquide et la position d’un transmetteur installé en immersion au fond du réservoir ? Une colonne d’eau de 10m donnera grosso modo 1bar et ça diminuera quand le réservoir se vide.

C'est le concept des capteur de pressions immergés, qui mesurent la pression de la colonne d'eau sus-jacente, couplé à un capteur de pression atmosphérique. Mais je tiens au fait que rien ne soit immergé, dans le cas d'eau potable les normes sont très strictes.

Je continue mes recherches ... Je n'ai pu y consacrer que très peu de temps cette semaine :'(

Je vais regarder les systèmes pour focaliser le son, ça doit exister c'est certain !

s'il y'a un robinet en bas du reservoir vous pouvez mettre votre capteur de pression à cet endroit

sinon il faut essayer... vous verrez bien si ça fonctionne - perso j'ai des doutes - comme l'a expliqué @68tjs le cercle / ellipse couvert par l'onde sonore qui va taper la surface du liquide est relativement grand (en fonction aussi du diamètre de la cuve) et c'est juste la phase aller du signal... en rebondissant il va encore plus perdre d'énergie sur la phase retour...

J'ai envie de faire un hors sujet: est ce que quelqu'un a eu l'idée d'analyser tout le signal reçu (et non la position d'un maximum/dépassement de seuil?) du micro -je sais que c'est au delà des performances du CAN d'un arduino; mais des cartes comme les tiva de texas ont des convertisseurs analogiques numeriques 40 fois plus rapodes, et se programment sous energia, un proche cousin du c++ d'arduino).