<< The Fribotte Homepage >>
Un club de passionnés en robotique participant à la coupe de France E=M6.
[Accueil] [Qui sommes-nous ?] [Robots] [Coupe e=m6] [BD Technique] [Forum] [Reportages] [Liens] [WiKiFri]

Fribotte



 Introduction : les balises IR
L'objectif de cette fiche est de vous donner toutes les informations nécessaires pour fabriquer des balises infra-rouges gérées avec un PIC 16F84. Ces balises sont utilisées comme des phares émettant chacune un signal codé différent. Le robot se dirige vers la balise qu'il a choisi de suivre. Ce système de balise peut servir à faire un calcul de triangulation, même s'il est seulement utilisé comme phare dans cet exemple. Mais il ne permet pas sans modification de transmettre des informations.

Dans le cas du règlement de la coupe de robotique 2000, les ballons qu'on cherche à creuver sur le terrain sont repérables par des balises, et forment des objectifs facilement identifiables par ce moyen pour un robot. Un système de balise codée convient donc bien à ce type d'application. Mais on n'est pas obligé de participer au concours pour avoir à l'utiliser ! :-)



 Le Principe
On part de l'hypothèse que le robot doit pouvoir atteindre 2 balises l'une après l'autre. Si les 2 balises émettent un signal strictement identique, le robot ne pourra pas les différencier et ne saura pas dans quelle direction aller. Il est donc impératif de dissocier les signaux des balises.
Pour pouvoir différencier 2 signaux infra-rouge, il faut les coder. Ce codage sera d'autant plus utile puisqu'il rendra le système beaucoup moins sensible aux perturbations extérieures.

Principe général
Principe général




 IMPORTANT : Charte d'utilisation
Attention : Nous utilisons ce système de balises pour la Coupe de robotique 2000. D'autres équipes peuvent l'utiliser aussi tel quel si elles le souhaitent.
MAIS si deux équipes qui utilisent ce même système se rencontrent lors d'un match, elles sont tenues de le signaler, et de s'entendre alors sur des codes différents.

Une équipe disposera des codes pairs, et l'autre des codes impairs.


Cette précaution élémentaire permettra à chacun d'utiliser au mieux ses robots, pour encore plus de spectacle et d'éclate à la Ferté !

Si vous désirez utiliser notre système de balise à la Coupe, merci de nous le signaler afin que nous puissions contacter les équipes qui l'utilisent et nous mettre tous d'accord sur des jeux de code différents.


 Le protocole
Vous trouverez les bases de l'émission infra-rouge dans la page de notre BD-technique portant sur la détection d'obstacles en infra-rouge.
Le principe ici est globalement le même, sauf que c'est la balise qui émet le signal et non plus le robot. Et c'est bien sûr toujours le robot qui reçoit.

Le signal infra-rouge correspondant à l'émission logique d'un "1" est un signal carré de 38.5KHz de fréquence (26 µs de période).
Le récepteur du robot retourne un 0V au PIC quand il reçoit ce signal carré, et +5V quand il ne reçoit rien.


On pourrait émettre des 1 en continu depuis la balise. De la même façon que précédemment, le robot détecterait la balise quand il se trouverait en face d'elle.
Mais cette méthode, en plus d'interdire toute autre émission simultanée, ne permet ni de différencier plusieurs balises entre elles, ni de différencier l'émission de la balise avec une émission parasite.

Donc nous avons adopté un autre principe. Sur une longueur totale fixe, on émet des "1" pendant un temps proportionnel au numéro de la balise, le reste étant complété par des "0".
Nous avons choisi comme longueur totale d'émission 4992 µs (essentiellement pour avoir le temps de gérer les signaux des servo entre 2 réceptions) soit exactement 192 fois les 26 ms du signal à 40Khz.
On utilise un système à 16 numéros de balises.
Chacune d'elles émet à "1" pendant 208 µs * leur numéro (208 µs = 8 * 26 µs).
La longeur du signal à "1" de la balise numéro 1 durera 208µs.
La longeur du signal à "1" de la balise numéro 2 durera 416µs.
...
La longeur du signal à "1" de la balise numéro 16 durera 3328µs.


ATTENTION : D'après nos tests, certains récepteurs ont du mal à différencier les codes 1 et 2. il vaut donc mieux ne pas les utiliser en même temps.


 L'émission Infra Rouge
L'électronique
  • Le principe :
    Le codage du signal est géré grâce à un micro-contrôleur PIC 16F84. Celui-ci lit sur ses pattes 6 à 9 (port B) le code qu'il doit utiliser. On peut facilement changer la valeur du code grâce aux interrupteurs. Le signal ainsi généré est envoyé sur les 8 diodes infra-rouges d'émission.
Schéma de l'émetteur
Schéma de l'émetteur


  • La pratique
La liste des composants :

-1 PIC 16F84
-1 plaque à trous, d'au moins 18*18 trous
-1 pile 9V
-1 régulateur 7805
-1 transistor BC547B
-1 quartz 4 Mhz
-2 diodes rouges (une 3mm et une 5mm)
-8 diodes Infra-rouges CQY -A2
-1 interrupteur 4 entrées (micro-switch)
-2 condensateurs chimiques 100µF
-1 condensateur 100 nF
-2 condensateurs 33pF
-1 potentiomètre 47k ohms
-3 résistances 1k ohms
-4 résistances 10k ohms
-1 résistance 470 ohms
-4 résistances 47 ohms

Le câblage :

Cablage de la balise
A quoi ça ressemble :
L'émetteur IR

(cette version est légèrement différente de la version définitive)

Le programme
Le programme ci-dessous permet de gérer cette balise.
Les codes émis vont donc de 1 à 16, et correspondent au code binaire des interrupteurs +1.
Vous trouverez le code du programme en assembleur ainsi que l'éxécutable ici.


 La réception Infra Rouge
Le principe
Au niveau de la réception, pour ne pas avoir besoin de synchronisation, nous utilisons une astuce permettant au PIC de la PMI de ne pas attendre un signal précis, mais de consacrer juste un temps fixe à cette détection sans se soucier du moment où débute le signal.

Pour cela, il va détecter le signal pendant un temps égal à deux fois la période totale d'émission du code, soit 9984 µs.
Il va ensuite compter le nombre de "1" consécutifs qu'il reçoit, sachant qu'il regarde l'état du capteur toutes les 52 µs (deux périodes du 40Khz). Vu qu'il regarde le signal pendant 2 périodes complètes, il est sûr d'avoir au moins une émission consécutive complète, et ce sans synchronisation avec la balise.

Soit N le numéro de la balise recherchée, si le nombre de 1 consécutif est bien supérieur ou égal à N et inférieur à N+1 c'est bien la balise que le robot voit !
Une sécurité est ajoutée sur le nombre de "1" total que reçoit le récepteur pendant ces 2 périodes, qui ne doit pas dépasser certaines marges.
L'électronique
Pour la réception infra-rouge, nous avons choisi un module comprenant un récepteur infra-rouge et un amplificateur. Avec un brochage on ne peut plus simple, on a donc directement en sortie du module un signal TTL exploitable par exemple par un PIC.
La description de ce dernier se trouve dans la page sur la détection d'obstacle en infra-rouge.
(A noter qu'ici nous avons testé le capteur de chez Selectronics).
Le cache
Le cache est très important, car ce système de code ne permet pas 2 réceptions de balises différentes simultanées. Donc il faut absolument n'en recevoir qu'une seule à la fois.
Un cache bien sélectif va aider à ne regarder que dans une direction. De plus, il va faciliter l'asservissement du robot vers la balise, car la précision angulaire sera meilleure.

Le cache de Joyeux
Le programme

Vous trouverez ici le code d'une fonction qui réalise la réception, et donne en retour le numéro de la balise détectée, si elle existe.

Vous n'avez plus qu'à l'insérer dans votre programme de robot favori !


 Conclusion
Problèmes rencontrés :
  • brouillage par lumière forte :
    Et bien en fait non, les récepteur qu'on utilise semblent assez insensibles à la lumière et le cache fait le reste
    On croise les doigts, et on espère que les projecteurs de la Ferté ne vont pas nous brouiller. On vous tient au courrant pour l'an prochain !

  • réflexion des IR :
    L'émission des balises a une facheuse tendance à se réfléchir sur les objets environnants. Du coup, le robot peut prendre ces objets pour la vrai balise...
    En fait à la coupe le problème ne se pose pas vraiment. La table est assez grande. De plus, les balises sont en hauteur, donc le cache est aussi orienté vers le haut et les diodes des balises vers le bas. Ainsi la table (qui réflette les IR) n'est pas vue par le robot.

  • La hauteur des balises :
    Mais cette hauteur est aussi un problème, car du coup la détection ne peut pas se faire de trop près.
    On a réglé les inclinaisons respectives des diodes et du récepteur pour pouvoir néanmoins s'approcher suffisamment du ballon.
Sinon ce système de balise marche bien, répond vite et permet un asservissement efficace.
Reste à savoir comment il va se comporter pendant le concours !

Applications :
Cette balise est utilisée pour faire un petit robot pour la coupe de robotique 2000 : Joyeux.
Le récepteur IR est monté sur une tourrelle mobile sur le robot, qui s'asservit sur la balise.
Suivant l'angle de la tourelle, Joyeux va avancer ou tourner pour se diriger directement vers la balises.
Lorsqu'il a trouvé une balise (interrupteur de contact activé quand il cogne sur le socle de la balise), il change de code de balise pour passer au ballon suivant.
Vous trouverez plus d'info dans la future page sur Joyeux.

Ces balises peuvent aussi servir à la triangulation. Vous trouverez les détails sur la théorie des balises sur cette page de notre BD Technique.
Amusez-vous bien !

CONCLUSION APRES LA COUPE :
Les balises ont super bien marché !
Joyeux arrivait même à les voir de l'autre bout du terrain, malgré les problèmes d'inclinaisons.
Il semble que l'on ai jamais été brouillé (à l'opposé, on a eu des problèmes sur les capteurs de lignes, qui étaient en infra-rouge non modulés).
La differentiation des balises se faisait aussi très bien.
Pour tout dire on a creuvé 4 ballons le dernier match uniquement avec des detections de balises !
En clair : vous pouvez vous resservir de ces balises, elles marchent bien ! Mais attention à ne pas vous brouiller mutuellement ...

Complétez cette page, posez vos questions et remarques ici : WiKiFri

Page http://fribotte.free.fr/bdtech/BaliseIR/baliseIR.html modifiée le 14/10/2002.
Copyright fribotte@free.fr, libre de droit pour toute utilisation non commerciale.
Reproduction autorisée par simple mail