Télémètre à ultrasons

From Eric

Jump to: navigation, search

Contents

Objectifs

Réaliser un dispositif de mesure de distance alternatif à la mesure par capteur infrarouge (type Sharp). A terme, ce moyen de mesure derait être intégré à Trobot1.

Voici le montage une fois achevé :

Sonar final.jpg


Réalisation

Première version : détection à base de NE567

Cette première version du télémètre à ultrasons repose sur l'utilisation d'un détecteur à base de NE567 centré sur la fréquence de l'émetteur (40KHz).

Le système complet est composé d'un émetteur et d'un récepteur.

L'émetteur comprend :

  • Un transducteur d'émission (F=40KHz)
  • Un NE555 qui génère la fréquence de 40Khz (le "bip"). Un transistor est utilisé pour commander le transducteur.
  • Un NE555 qui génère les salves (bip, bip, ...), c'est-à-dire le signal de commande du "bip". Un transistor est utilisé pour inverser le signal.

L'émetteur fonctionne sous 12V pour disposer d'une portée suffisante.

Le récepteur comprend :

  • Un transducteur de réception (F=40KHz)
  • Un ampli-op qui réalise isole le signal du transducteur du reste du montage (pas indispensable...)
  • Un ampli-op d'amplification (x300)
  • Un ampli-op qui génère la masse virtuelle centrée sur 2.5V.
  • Un détecteur NE567 de fréquence F=40KHZ.

Il est important de noter que l'alimentation de la commande de l'émetteur doit être bien découplée de celle du récepteur. L'image suivante montre la situation avant et après découplage.

Tele us ne567 decouplage.jpg

L'image suivante montre le signal en entrée du détecteur, après amplification. On distingue très bien le signal reçu (l'écho) de fréquence 40KHz.

Tele us ne567 in detecteur.jpg

L'image suivante montre les signaux en entrée et en sortie du détecteur. On constate que le détecteur introduit un retard non négligeable.

Tele us ne567 retard detecteur.jpg

J'ai réalisé une petite vidéo sur ce sujet. (Ma première sur Youtube). Mais je suis le seul à pouvoir y accéder, c'est bête hein...? Non.

Deuxième version : seuil et monostable

L'utilisation d'un NE567 introduit un temps de détection variable, ce qui nuit à la précision de la mesure. En outre, le transducteur piezo constitue un filtre mécanique suffisant pour qu'il ne soit pas indispensable de faire un filtrage rigoureux du signal après amplification.

Aussi, j'ai remplacé la PLL par une bête détection de seuil, suivie d'un monostable. Le résultat est bien plus satisfaisant.

Le schéma est désormais le suivant :

Tele us seuil schema 1.jpg
Tele us seuil schema 2.jpg

Ajout de la commande numérique

Jusqu'ici, le télémètre ne comportait que des composants analogiques : l'émetteur émet des "bips" de façon périodique grâce à un NE555 et le récepteur capte, amplifie, et détecte l'écho (plus ou moins bien).

J'ai rajouté une petite partie numérique pour améliorer le filtrage des parasites et fournir un signal de détection plus "propre". On utilise pour cela un tout petit PIC10F200 dont le rôle va être de commander l'émission de la fréquence à 40Khz (il aurait d'ailleurs pu la générer tout seul...), de capter le signal d"écho après seuillage, et de mesurer l'intervalle de temps entre les deux.

Dans le principe, je pourrais transmettre la valeur sous une forme numérique de façon autonome (le capteur transmet la distance après chaque mesure). La transmission pourrait se faire de façon asynchrone ou synchrone car le PIC dispose d'assez de broches (1 pour la commande de l'émetteur, 1 pour la réception de l'écho, 1 pour la transmission de la distance, 1 pour l'horloge).

Cependant, hors mettre en oeuvre un protocole type I2C, le plus simple est encore d'émettre un créneau dont la durée dépend de la distance. Le micro-contrôleur à l'autre extrémité peut simplement utiliser le signal pour armer un timer (front montant), et attendre le front descendant pour mesurer le temps de propagation et donc la distance entre l'émetteur et l'objet. C'est ce que j'ai fait.

Le logiciel est extrêmement simple :

  • J'active l'émission au bout de 50ms,
  • J'attends quelques microsecondes avant d'écouter l'écho, ce qui permet de filtrer (éventuellement) un écho provenant d'une propagation "locale",
  • J'attends le signal d'écho pendant au plus 10ms. (La valeur résiduelle des compteurs lors de l'arrivée de l'écho pourrait être utilisée comme mesure de la distance et être transmise au microcontroleur "client".)
  • J'arrête l'émission du "top" dès que je reçois l'écho ou que les 10ms sont écoulées.
  • Je recommence au début...

Actuellement, le signal de sortie du télémètre est la recopie du signal de commande du "top".

Au final, voila quelques signaux mesurés sur la carte...

Le signal d'émission ("top") accompagné du signal en sortie d'amplificateur...

Tele us top et echo.jpg

... en sortie du trigger...

Tele us top trigger.jpg

... et en sortie du PIC (donc, en sortie du montage). On constate que le signal de sortie est identique au signal de commande du "top"...

Tele us top sortie.jpg

Voici donc le montage avant mise en boitier :

Tele us composants.jpg
Tele us circuit.jpg

Et une fois complètement terminé :

Tele us final.jpg

On remarquera que le boitier n'est pas fermé. En effet, si on le ferme, le signal sonore se propage directement de l'émetteur vers le récepteur à l'intérieur du boitier.

Le circuit est donné par le schéma qui suit, réalisé avec Inkscape (à noter qu'il manque le PIC)...

Tele us plan complet.jpg


Conclusions et leçons

Aucune.

Personal tools