Bonjour,
StingKnight a écrit :est il possible d'utiliser que la fonction récepteur/ ou émetteur de ce capteur?
Pour être sûr : on parle bien d'utiliser
uniquement l'émission ou la réception n'est-ce pas ?
Si l'on en croît
ce schéma tout tourne autour du composant U1 / EM78P153S, qui est un microcontrôleur 8-bits basique, et U3, qui doit sans doute être un driver intelligent pour haut-parleur ultra-sons (sans doute une version beaucoup plus basique que
celui-là). C'est U1 qui prend le signal trigger, et qui doit indiquer à U3 les impulsions à générer via TX1 et TX2 (je suppose tout ça, s'pas ? Je n'en ai aucune idée en vrai). De l'autre côté il reçoit le signal du récepteur, après un conditionnement (le haut du circuit autour de U2B, U2C, U2D), et il génère un signal de seuil (THRESHOLD, selon toute vraisemblance généré via une sortie PWM qui est lissée par R11-R12-C8) qui est utilisé pour référence pour le comparateur U2A.
https://www.davidpilling.com/wiki/index.php/HCSR04Ce qui est flagrant, c'est qu'il y a visiblement un retour du signal reçu vers l'émission, via les entrées SLICE et SIGIN de U3, donc je suis quasi-sûr qu'il y a modulation de la puissance d'émission en fonction de l'amplitude du signal reçu, et donc je doute fortement qu'il soit possible de décorréler l'émission et la réception sur ce module. En étant vraiment gruiiiik on peut imaginer forcer U3 à émettre à puissance fixe, mais pour ça il faudrait avoir sa datasheet pour savoir comment il fonctionne.
Bon, je ne pense pas qu'il soit nécessaire de faire des choses aussi compliquées.
Faire de l'émission seule est relativement facile : il suffit de ne pas lire ECHO
Pour la réception seule, si on émet des trains d'impulsion à 40kHz (à priori c'est la fréquence des signaux utilisés sur ce module) par une autre source, on devrait avoir ECHO qui bagotte quand il voit passer les signaux. Et ce sans envoyer de commande sur TRIGGER, à priori ça devrait marcher. Ptet je me trompe et U1 n'envoie rien sur ECHO tant qu'on ne lui demande pas d'émettre ... Mais ça me semble un peu trop compliqué comme comportement. A mon avis, il mesure juste ce qu'il se passe sur SIGNAL, et quand il voit qu'il y a une impulsion qui passe il envoie une impulsion sur ECHO (et en parallèle il mesure l'amplitude du signal et il adapte sa sortie THRESHOLD en fonction pour moduler la puissance de l'émetteur, mais ça pour de la réception seule on s'en fiche un peu).
(Grmpf ... chuis bête, ils décrivent le fonctionnement du circuit ici :
http://www.pcserviceselectronics.co.uk/arduino/Ultrasonic/electronics.php#circuit)
Par contre je ne comprends pas du tout quelle est la question concernant la synchronisation des horloges. Quelle synchronisation ? Entre quelles horloges ?
Vu la première question et vu que tu parles de triangulation, je suppose que ton idée est de mettre un émetteur sur le bonhomme à suivre, et deux capteur à l'arrière du bateau, un de chaque côté, et de comparer les distances mesurées pour en déduire l'angle entre l'arrière du bateau et le bonhomme, c'est bien ça ? En tous cas moi je ferais comme ça.
Je suppose que ton problème est de savoir identifier au niveau des récepteurs quel train d'impulsion d'un côté correspond à quel autre train d'impulsion de l'autre côté quand il commence à y avoir beaucoup de trains envoyés à intervalle régulier. Pour moi, avec un module aussi simpliste que celui-ci, il n'y a aucun moyen de discriminer les signaux, car pour cela il faudrait les "marquer" pour les différencier, or ici le module envoie juste des impulsions à fréquence fixe, et fait une détection tout-ou-rien pour savoir s'il reçoit ou non cette fréquence. Si c'est bien ça ton problème, je pense qu'il serait plus simple de le contourner, et envoyant des trains d'impulsions suffisamment éloignés les unes des autres pour que le temps entre deux trains soit largement supérieur à la longueur d'onde la propagation du son entre le bateau et le bonhomme à suivre. De cette façon, quand tu reçois de chaque côté des signaux qui reviennent, s'ils sont suffisamment éloignés de base, même si le bonhomme est très désaxé par rapport à l'axe du bateau cela ne provoquera pas un décalage suffisamment grand pour être du même ordre de grandeur que le temps entre deux impulsions émises. De cette façon, pour savoir quel train reçu d'un côté correspond à quel train reçu de l'autre, il suffit de regarder lesquels sont proches.
Si on dit, 8 impulsion à 40kHz, on est dans les 250µs. Si on suppose que la source est ~10m derrière le bateau (je prends cette longueur au pif, c'est à réadapter) on a donc un temps de propagation de 10m / (300m/s) = ~33ms, donc 66ms aller-retour. Ça c'est la latence du signal, le retard entre l'émission et la réception. L'écart max qu'il y aura entre les deux côtés ça va dépendre de l'angle maximal que prendra le bonhomme par rapport à l'axe du bateau. Cet angle sera de toutes façons limité par la directivité du capteur. Si on dit qu'il s'écarte de +/-45° (je donne ce nombre au pif, ça me semble déjà beaucoup), et que le bateau fait ~1.5m de large (toujours au pif), ça fera une différence max entre la source et les deux capteurs de +/- ~1m (approximation à la hache), donc un délai de +/- (1m / (300m/s)) = ~3ms. Pour pouvoir les discriminer, il faut donc envoyer des impulsions écartées d'une durée notablement supérieure, genre 3 fois, genre 20ms.
Ça veut dire envoyer des TRIGGER une fois toutes les 20ms, et donc aussi que le rafraichissement serait de cet ordre de grandeur, donc 50 fois par seconde. Ça devrait être suffisamment rapide. Par contre, ne pas oublier qu'il y a la latence qui fera que la correction de l'angle aura toujours 66ms de retard sur le déplacement effectif de la cible. Ça m'a l'air relativement tolérable.
Sinon, autre idée plus pointue : créer un motif, en envoyant des trains plus rapprochés, mais pas à des intervalles égaux, mais avec un motif périodique facilement identifiable, qui fasse au minimum 20ms de période totale (genre 1ms - 2ms - 3ms - 4ms). En regardant l'écart entre deux ECHOS, on peut savoir à quel niveau du motif on se trouve, de chaque côté, et donc retrouver quelle impulsion d'un côté correspond à quelle impulsion de l'autre côté. Bon, c'est surdimensionné, à priori pas besoin d'un truc aussi évolué, la méthode précédente doit donner de bons résultats.
Si tu as des questions ...