lundi 9 décembre 2013

LES ULTRA-SONS

Pour dompter cette seconde version de mon robot, je change mon fusil d'épaule, et je remplace les infra-rouges (IR) par des ultra-sons (US).
A savoir qu'en théorie (et en pratique) les IR sont plus précis en direction : le faisceau se réduisant à un angle de quelques degrés, alors que les ultra-sons ont un faisceau de 25-30°. Par ailleurs les IR sont plus sensibles à l'environnement : lumière, chaleur, couleur des obstacles.
Comme ma première expérience avec les IR n'était pas très concluante j'opte donc pour les US.
Mais quel modèle choisir ? Il existe effectivement une pléthore de modèles. Mais comme bien souvent : c'est le prix qui est déterminant.
Je décide d'utiliser des SRF05 qui a priori utilisent une seul pin pour envoyer (trigger) le signal de déclenchement et recevoir (echo) en retour l'information. On émet un signal d'émission et on attend son retour, et suivant le temps passé en aller-retour de l'onde, on sait à quelle distance se situe l'obstacle.  Via ebay, je commande mes SRF05 à Hong-Kong. J'en ai une dizaine pour 10 euros ! et sans frais de port ! Mais il ne faut pas en avoir besoin pour le lendemain.
Premier montage : rien ne va ! Normal...
Après analyse, je constate que les HY-SRF05 reçus nécessitent 2 pins : une pour l'émission, l'autre pour la réception, et malheureusement ça double le nombre de connections avec l'Arduino. Comme je pensais utiliser 8 US disposés en cercle tous les 45°, il me faut 16 pins au lieu de 8...et ça coince. Mais je ne désarme pas et je câble mes US via 2 multiplexeurs-démultiplexeurs, et j'arrive à commander les US avec 3 signaux (8 possibilités), plus 1 signal pour le 'trigger' et 1 signal pour l'écho. Soit 5 pins seulement d'utilisées. Mais un peu plus de programmation.pour tout synchroniser.
Sur la photo ci-dessus, on voit les 2 IC pour le multiplexage-démultiplexage derrière le compas , avec seulement 6 US installés.
Les premiers essais sont désastreux. Je constate que j'ai "cramé" plusieurs US, et ce : en voulant souder directement les fils sur les pins de ces derniers. Pour la suite, je revalide une commande via la Chine avec des HC-SRF04 qui fonctionnent à l'identique des SRF05 précédemment reçus. Et pour la mise en oeuvre j'utilise des connecteurs pour relier les pins avec l'Arduino.
Les essais s'avèrent meilleurs, mais certaines valeurs sont toujours erratiques. Je constate effectivement que lorsque les mesures sont effectuées perpendiculairement à l'obstacle, celles-ci sont correctes. Mais lorsque l'US est positionné sous un certain angle, les mesures ne correspondent plus du tout à la réalité !
Et c'est pourquoi de 8 US envisagés au départ, je me limite à 6 : un à chaque point cardinal du robot plus deux disposés à un faible angle de l'US de devant. Ceci devant permettre de déceler des obstacles pouvant se situer sur la trajectoire de JAG2.
Par ailleurs, il n'est pas possible d'obtenir les valeurs successives de plusieurs US disposés les uns à côté des autres. Il est nécessaire d'attendre un délai d'environ 70 millisecondes entre 2 mesures, pour que la réception de l'un ne soit pas perturbée par l'émission du précédent. Donc beaucoup de paramètres à gérer...
Qu'à cela ne tienne...on avance...Mais est-ce dans le bon sens ?

A suivre....