28) 25/11/2017 : Le télémètre à ultrasons (MJD 58082)

Prendre des décisions pour la suite à donner à l’exploitation d’une sonde aussi éloignée dans le système solaire n’est jamais anodin. Les échanges radio entre la Terre et Mars sont laborieux et prennent un temps considérable. Par ailleurs, évaluer l’éloignement d’un obstacle à partir des images à haute résolution issues d’une caméra embarquées n’est pas évident et toujours imprégné d’une certaine imprécision aléatoire. Hors il faut décider de la trajectoire à imposer. Choisir entre poursuivre sans changer de direction ou orienter différemment le mobile. Si l’on constate que l’on s’est trompé, faire reculer la sonde puis élaborer une autre stratégie va engloutir des heures. Aussi, pour « rentabiliser » la machine scientifique et le cout des personnels impliqués dans sa gestion, il devient pratiquement indispensable de munir l’explorateur d’un radar. Celui installé sur JEKERT est immobile sur le châssis et orienté en capture dans l’axe vers l’avant du véhicule. Il fonctionne aux ultrasons, technologie possible car la planète visitée possède une atmosphère.

Fondamentalement, le principe de fonctionnement d’un radar ou d’un sonar est élémentaire. On projette dans le milieu observé une « pulse » sous forme d’une onde électromagnétique ou sonore. Cette dernière ricoche sur l’obstacle dont on désire déterminer la distance. Le temps T mis par l’onde pour parcourir l’aller et le retour est mesuré. La distance D à laquelle se trouve l’écho est égale à D = V x T / 2 , formule dans laquelle V est la vitesse de propagation de l’onde dans le milieu traversé. Il faut diviser par deux car avec l’aller et le retour de l’écho l’onde à franchi deux fois l’éloignement. Considérons la Fiche n°20 qui traite du petit module HC-SR04. Ce dispositif électronique est équipé de deux transducteurs piézo-électriques identiques. Chaque composant peut fonctionner aussi bien en transmission d’une impulsion ultrasonore s’il est soumis à une sollicitation électrique calibrée à sa fréquence de résonance, qu’en capteur acoustique. Si l’air ambiant vibre à sa fréquence de résonance, la cellule piézo-électrique sera soumise à des compressions mécaniques car elle est associée à une membrane souple, exactement comme pour un petit haut-parleur. Les faibles tensions électriques générées à la réception sont alors amplifiées et traitées pour mesurer le temps mis par l’écho pour revenir suite à une impulsion initiale. Il serait possible de n’utiliser qu’un seul composant ultrasonore, ce qui compliquerait sa mise en Å“uvre, car un système de commutation rapide devrait effectuer l’aiguillage entre l’oscillateur du transmetteur et l’amplificateur sensible du récepteur. Ce type de composant restant d’un prix d’achat vraiment faible, il devient nettement plus simple et plus économique d’oublier l’électronique d’aiguillage et d’installer deux transducteurs.

Ping Pong acoustique.

L‘image donnée en Fig.3 sur Fiche n°20 présente le module HC-SR04 vu de face avec à gauche l’antenne d’émission et à droite celle de réception. Les informations de branchement correspondent à ceux de JEKERT dans sa version définitive. Comme un système de commutation d’antenne a été écarté, il faut mobiliser deux broches de l’ATmega328. Des Entrées/Sorties binaires conviennent parfaitement. C’est D12 et D13 qui seront affectées à ce capteur. Le HC-SR04 à l’image des modules électroniques actuels intègre une logistique électronique et informatique qui en rend la mise en application élémentaire. La Fiche n°20 expose le principe de mesurage qui se fait en deux temps. On déclenche la transmission d’une impulsion acoustique en plaçant un état logique « 1 » d’au moins 10 µs sur la broche Trig pilotée par D12 qui correspond à une entrée sur le module pour déclencher une mesure. En retour, sur sa sortie Output (Ou écho électronique.) branchée sur D13 on mesure la durée le l’impulsion fournie dont la durée est proportionnelle à la distance, si le module détecte un objet. Afin de pouvoir calculer la distance exprimée en cm, on utilise la formule de conversion Distance en cm = (Durée de l’impulsion Echo en µs) / 58 précisée dans les documents de caractéristiques qui accompagnent le module. Notez au passage que le « Ping » sonore émis dans l’atmosphère présente une fréquence de 40kHz. Comme une oreille humaine ne détecte que des sons globalement inférieurs à 18kHz, nous n’entendons pas le signal envoyé par le transducteur. C’est la raison pour laquelle un tel « bruit » est qualifié d’Ultrason.

Jalonner le terrain.

Concrètement, l’écriture du logiciel qui traite du télémètre à ultrasons se résume à peu de chose. L’intégralité du traitement pour le HC-SR04 est présenté sur la Fiche n°20. Le code source est directement extrait du logiciel qui anime la sonde et reste d’une grande banalité. Éventuellement, deux instructions sont à souligner. Commodité apportée par le compilateur C++ d’Arduino, delayMicroseconds(10) réalise une temporisation de 10µS. Ainsi on peut calibrer très facilement la durée de l’impulsion de déclenchement du processus de mesurage. D’une souplesse remarquable, la fonction pulseIn(EntéeBinaire, EtatLogique) retourne la durée en µS d’une impulsion mesurée sur une broche initialisée en EntéeBinaire durant l’EtatLogique défini par las constantes LOW ou HIGH. (En fait cette fonction est encore plus riche et peut tester un dépassement de délai.) Dans le démonstrateur l’instruction Lecture_Echo = pulseIn(Echo, HIGH) affecte à la variable nommée Lecture_Echo la durée à laquelle la broche Echo monte et reste à l’état logique « 1 ». Dans le traitement on va se contenter d’une précision d’un centimètre, alors que la résolution du capteur est de 3mm. C’est suffisant comme finesse dans le cadre de cette application ludique.

La commande qui incite la sonde à effectuer la mesure d’une distance d’obstacle « j* » déclenche une mesure ultrasonore vers l’avant de la sonde et retourne la distance d’un éventuel obstacle exprimée en centimètres. La portée maximale est limitée par le logiciel à 2,5m car pour minimiser la taille des variables on a utilisé pour Distance un byte et pour Lecture_Echo un int. Si vous ne disposez pas du module et que le connecteur HE14 est inoccupé, la distance indiquée sera de 0cm. Sur la Fig.129 en A le module fonctionne correctement. En B il a été enlevé du connecteur. Donc ceux qui n’ont pas encore reçu leur petit capteur peuvent effectuer tous les essais logiciels qu’ils désirent sans pénalité. Il vous arrivera certainement de diriger le châssis vers un mur lointain et d’avoir en retour des distances du genre 96cm. Ce n’est pas que le module ne fonctionne pas bien. Si vous analyser les caractéristiques du HC-SR04, vous constaterez que l’angle d’ouverture de l’antenne ultrasonore (Diagramme polaire.) dépasse les ±25°. Du coup une pulse peut accrocher des échos latéraux sur des obstacles qui semblent visuellement très éloignés. En revanche, placez votre main bien dans l’axe et vous observerez que le dispositif fonctionne parfaitement. Ainsi il est utilisé pour l’anti-collision dans les séquences de protection logicielle avec une fiabilité remarquable. JEKERT ne risque pas de se taper le nez contre un lampadaire ! Jalonnez, jalonnez, il en restera toujours quelque chose. Autrement dit, testez ce radar pour en cerner les comportements, les réactions. Expérimentez des obstacles divers comme une plaque de carton, miroir en verre, matériau absorbant comme du polystyrène expansé, du tissu etc. Bien que ces matériaux ne seront pas rencontrés sur le chemin de notre exploratrice, il serait bien dommage de ne pas tester les réactions sur Terre du module HC-SR04 …

La suite est ici.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *