| 
	 
      | 
     |||||
|  
       | 
     
         Localisation ultrasonique dans une pièce  | 
     
       
  | 
  
|  
       Maj : 22/06/19 
 
  | 
  
![]()
Identifier en permanence la position d'une personne (ou d'un animal) dans une pièce pour divers motifs :
 Élément 
  de sécurité pour empêcher un opérateur d'approcher 
  d'une machine ou d'une zone dangereuse pendant les opérations.
 Ouvrir et refermer 
  automatiquement des portes de sas, par exemple pour ne laisser passer qu'un 
  convoyeur de fonds identifié (ou sa valise) dans un couloir sécurisé, 
  commander l'éclairage automatique par zones de locaux peu fréquentés 
  (faible précision requise).
 Piloter avec une 
  très grande précision un spot de poursuite automatique centrant 
  un artiste très mobile sur scène.
 Tester les réactions 
  d'un téléspectateur pour voir combien de temps il est allé faire 
  pipi pendant la pub...
Avec un animal, il vaudra mieux commencer par un gros, une vache sera plus facile à équiper (et à repérer dans un couloir) qu'une souris ou qu'un poisson rouge.
 
 
La solution simple est d'équiper la cible d'un boîtier accroché à sa ceinture. Le principe est d'utiliser un boîtier actif émettant librement des bips ultrasons. Des récepteurs placés sur les murs et reliés à un bus écoutent les bips. Un microcontrôleur central mesure les délais et donne la positon triangulée.
 Avec deux récepteurs, 
  deux points possibles à l'intersection des deux cercles, incertitude.
 Avec trois récepteurs 
  levée du doute, la zone de présence est un petit triangle (curviligne)
 Avec plus de récepteurs, 
  diminution de la surface du polygone de la zone de présence, moins d'ombres.
Les retards sont toujours affectés d'une constante due au fait que le maître ne synchronise pas l'émission, mais cette constante est annulée par le logiciel qui décale son top synchro après analyse de chaque réponse des récepteurs, cette constante est annulée à chaque cycle.
|  
       Un petit schéma montre l'application En prenant 330 mètres/seconde pour la vitesse du son soit 3.3 
        m par 10 ms 
  | 
     
       
  | 
  
Il est utile d'augmenter le nombre de récepteurs si la zone à tester est masquée ou s'étale sur plusieurs pièces.
Je détaillerai ultérieurement un des points clefs du système, la résolution d'un système d'équations (les lieux sont des hyperboles), très lourde pour un microcontrôleur en assembleur est facile en C.. L'algorithmique est basée sur une approche dichotomique par tables pré-calculées, méthode rapide et très précise.
 
 Remarque sur les vitesses 
 Bien évidemment, cela de marche qu’à cause de l’extrême lenteur de la propagation sonore. Le timer d’un microcontrôleur sait compter dans le domaine des microsecondes, donc sait résoudre le millimètre sans problème en comparant un retard de phase d’un signal comparé à un pilote. 
Cela ne marcherait évidemment pas aussi simplement avec des ondes radio dont la propagation est un million de fois plus rapide. Un   GPS   sait faire cela mais au prix d’une incroyable complexité, hors de portée de l’amateur ! 
 
 
Le principe va être de déterminer ce retard inconnu mais constant 
  pour les trois récepteurs, qui au départ ne connaissent évidemment 
  pas linstant initial démission.
  Voici une approche basique qui peut être adoptée, mais avec un 
  peu dastuce, il est possible doptimiser.
Première trame, le contrôleur vient de lire les délais 
  des trois récepteurs et les a mis en mémoire, variables A1, B1, 
  C1, en prenant un top de départ quelconque.
  Le programme commence par supposer que le délai le plus court des 3 est 
  nul, et soustrait cette valeur aux deux autres, par exemple A1 est le plus petit. 
  Nous obtenons maintenant trois nouveaux délais : A1-A1=0 , B1-A1 et C1-A1.
  Cette hypothèse de départ signifie donc que lémetteur 
  serait au contact du premier récepteur A (retard nul). Par intersection 
  des courbes des deux autres, vérifions cette affirmation. Si les 2 cercles 
  se coupent bien en A, lémetteur est localisé, il est au 
  contact de A, cest terminé, mais ce cas particulier est très 
  peu probable.
Nous allons maintenant essayer une suite de retards tels que un ou plusieurs 
  donnent une intersection dans la zone probable. Tous les retards ne donnant 
  pas de solution ou un triangle de grande surface sont rejetés.
  Si la géométrie a été bien calculée, il ny 
  aura qune solution. Il faut déterminer le retard le plus long possible 
  correspondant au point le plus éloigné de A. Ces trois valeurs 
  (éloignement maximum de lémetteur aux trois sources) ont 
  été mises en mémoire une fois pour toutes.
En procédant systématiquement par découpage de ce retard maximum en une centaine de tranches et en affichant le graphe de linverse de la surface du triangle curviligne dinterception, une jolie gaussienne va apparaître. En pratique ce pic sera unique et déterminera le retard qui sera pris comme base. évidemment, les moins « bourrins » qui après les phases dessais ont vu que la courbe existait bien, ne vont pas samuser à recalculer une centaine ou plus détats successifs (nuls à plus de 95% des cas), mais arriveront au résultat très précis en mois dune dizaine détapes par dichotomie.
Ce retard sera évidemment recalculé pour chaque trame, linstant démission suivant nétant pas avec précision, toutefois, lémetteur étant piloté à quartz et dérivant très faiblement, la stratégie sera plus subtile.
En début dacquisition, le système ne cherchera pas à 
  donner la position, mais simplement à calculer linstant démission 
  et se synchronisera en affinant le calcul du top. Quand la précision 
  maximale aura été atteinte, les trois délais absolus seront 
  calculés à chaque trame pour donner la position, mais en plus, 
  un calcul sera fait avec un délai très faiblement plus long, un 
  autre plus court pour déterminer si une surface plus faible du triangle 
  peut être trouvée.
  Cela signifierait que le top prévu a légèrement glissé, 
  le programme va alors le recaler pour que la valeur centrale soit toujours optimale.
Le système a maintenant terminé son apprentissage et passe en mode opérationnel en plotant la position sur la carte de la pièce, sous forme de courbes de niveaux, le point haut de la montagne étant la position le plus probable.
 ![]()
Le boîtier est actif, alimenté par 4 accus R6 NiMh, ou batterie Li-Ion de téléphone, autonomie de plus de 24 h.
Il émet un bip sur un cristal piézo, impulsion modulée à 10 kHz, 10 périodes soit une milliseconde toutes les 100 ms, commande par un timer libre en hard basé sur un dérivé du NE555 en CMS, il n'y pas de microcontrôleur.
Le boîtier actif comprend :
 alimentation par 
  accumulateurs
  
 circuit timer
  
 oscillateur à 
  onde de surface (ou auto oscillateur via une spire du transfo)
  
 driver et le push-pull 
  de puissance
  
 ferrite de transformation
  
 cristal d'émission
Le boîtier se charge sur son support qui coupe l'émission, un ILS (interrupteur à lames souples) est placé dans le boîtier, un aimant sur le support.
Trois récepteurs (c'est le même type de cristal) sont disposés sur les murs de la pièce (sommets d'un triangle presque équilatéral). Le signal est mis en forme par un passe fréquence amorti et déclenche le timer interne d'un microcontrôleur pic.
Il y a un ATTiny par récepteur (modèle de base à 1.5 Euros), c'est le plus économique et fiable et règle définitivement le problème des collisions. Ces trois (ou plus) contrôleurs sont reliés à un bus 2 paires torsadées, en fil téléphonique. La première paire transporte l'alimentation 5 V, l'autre les signaux en bidirectionnel non simultané. Sur cette même ligne est le microcontrôleur maître.
Il envoie un top synchro pour "reseter " les timers des récepteurs esclaves, puis N trames contenant les adresses successives des N contrôleurs.
Le contrôleur qui identifie son adresse renvoie la valeur de son timer. Le maître traite les N retards et donne le point triangulé directement sur un afficheur en coordonnées XY. Il suffit la première fois d'étalonner les 4 coins de la pièce en y plaçant le boîtier et d'affiner pour les recoins cachés si les zones d'ombre sont importantes.
Il y a deux manières de travailler :
 Soit le maître 
  corrige les positions par l'intermédiaire de look-up tables téléchargées 
  et affiche les coordonnées corrigées.
  
 Soit le maître 
  envoie les coordonnées brutes au PC de traitement qui effectuera corrections 
  et affichages.
La liaison au PC se fait par infra-rouge ou RS-232 si le maître est dans la même pièce. Dans le cas contraire, il faut implanter un contrôleur Ethernet sur le maître, l'information est alors disponible sur tous les PC de réseau. Cette solution est plus souple, l'implantation d'une interface Ethernet sur micro contrôleur est bien documentée dans les notes d'applications constructeurs.
Il est alors très simple de renvoyer la position sur un plan de la pièce affiché sur un moniteur par le port série, et de déterminer les zones à risques (par exemple en utilisant des couches sous Autocad, par les propriétés des gifs )
 
 
Considérons d'abord la résolution possible pour un timer implanté dans un microcontrôleur. Prenons le cas la famille 8051, comme les petits otp ou le 80c552, un vieux classique lent mais très répandu, ou un ATTiny plus rapide.
A 11.0592 MHz de fréquence horloge, un pas pour 10 clocks, donne une résolution d'environ 1 microseconde, un circuit moderne fait beaucoup mieux
En prenant une vitesse du son arrondie à 330 m/s, 0.3 m/ms soit 0.3 mm/µS. Le timer d'un petit microcontrôleur donne la µS de résolution au minimum, cela laisse espérer une résolution de l'ordre de 0.3 mm. En pratique, à cause des réflexions parasites, et du filtrage on obtient de l'ordre du centimètre.
Dans un atelier avec un spectre très pollué et encombré de grosses machines masquant des zones et générant des échos, la précision est meilleure que 10 cm avec 4 récepteurs.
 Astuces de réalisation 
Les capsules piezo montent beaucoup plus haut en fréquence que les tweeters, cela permet une résolution fine. 
Pour une réalisation soignée, il n’est pas souhaitable d’utiliser un simple oscillateur indépendant à l’émission car le contrôleur doit piloter l'onde émise, les mesures se font sur la phase du signal de retour, la fréquence et le niveau de l’émission varient constamment pour discriminer les signaux utiles par rapport au bruit.
 
 
Autres applications de ce système, pour une sonde d'imagerie par échographie.
  Lorsque l'on utilise une sonde d'échographie dans le but de créer 
  une reconstitution de l'environnement en 3D, par exemple pour une image médicale, 
  il faut déplacer une sonde autour du patient. Il est indispensable de 
  connaître avec une grande précision la position et l'orientation 
  de la sonde dans l'espace. Les systèmes classiques utilisent un bras 
  à triple rotule, avec recopie des angles de chaque articulation. Ces 
  multiples mesures augmentent l'incertitude.
  Ce système adapté avec 4 ou 6 capteurs proches et comportant un 
  clinomètre 3 axes permet de repérer la position et l'orientation 
  avec des précisions très supérieures à celles des 
  bras mécaniques. L'incertitude sur la position influe directement sur 
  la précision de la reconstitution 3D. A cause de l'accumulation des erreurs, 
  un écart de 1 mm sur la position du capteur induit une imprécision 
  plus grande sur le point reconstitué par accumulation de bruit.
  Dans ce cas, le problème est plus simple que pour l'émetteur libre, 
  en effet la sonde doit être reliée au bloc électronique, 
  il faut véhiculer impérativement la puissance de la sonde, donc 
  le top émission est connu. Il suffit de rajouter un câble signal 
  véhiculant les trois angles. Cela évite de mettre en oeuvre l'algorithme 
  complexe de reconstitution de la synchronisation. C'est la même sonde 
  qui sert d'émission réception pour l'imagerie et la triangulation.
Cette page ne contient aucun lien externe à maintenir