|
Localisation ultrasonique dans une pièce |
Maj : 22/06/19
Abstract :
Résumé : |
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 Le récepteur
1, rouge, reçoit le top avec un retard de 21.7 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