Le système de balises

 
    Année de développement : 2002
 
Dimensions : 80 x 80 mm
 
Composants utilisé : PIC16F84

 
  Voici une petite description des balises que nous avons utilisées cette année. Ce sont des balises omnidirectionnelles, c'est-à-dire qu'elles émettent dans toutes les directions, le récepteur fixé sur le robot, lui, est directionnel. Cela permet au robot de trouver la direction d'une balise. Par contre, on ne peut pas mesurer la distance entre les balises avec ce système.
Note : Le système de balise décrit ici n'a rien d'original, on en trouve un équivalent sur le site des Fribotte et dans le numéro 2 de Micro et Robot. La principale différence est dans la programmation du microcontrôleur, et dans le codage des signaux.
Si vous voulez utiliser ce systeme, vous devez impérativement concevoir votre propre programme pour être sûr de ne pas brouiller l'adversaire ni d'être brouillé par lui!!!

 

 
  le schéma des balises FIXES
 
   
  Ce sont les balises disposées aux coins de l'aire de jeu.
Le schéma repose sur un microcontrôleur PIC 16F84, le quartz et les deux condensateurs de 33pf servent d'horloge et la résistance de 1K sur la patte 4 (MCLR) de vecteur de reset. L'alimentation 5V est faite avec un régulateur 7805 et deux condensateurs de forte valeur (ces valeurs sont sur-dimensionnées par rapport au courant consommé par le montage par mesure de sécurité; cependant on peut en utiliser d'autres mais il ne faut pas que la capacité en sortie du régulateur soit supérieure à la capacité en entrée sinon il ne fera pas long feu !).
Les LED infrarouges sont commandées par un transistor NPN relié à une sortie quelconque du PIC, on peut mettre autant de LED que l'on veut (dans les limites de puissance du transistor) mais il est inutile d'en mettre trop, cela n'empèchera pas le robot d'être brouillé, bien au contraire.
Enfin, les quatre interrupteurs permettent de sélectionner le numéro de la balise, il faut bien sûr attribuer un numéro différent à chaque balise !

 

 
  le schéma de la balises ROBOT ADVERSE
 
   
  Il s'agit ici d'une balise que nous allons disposer sur le support de balise du robot adverse.
Le principe est le même que celui d'une balise fixe, sauf qu'à présent la balise émet en infra-rouge 4 codes différents pour chacuns de ses quatre côtés. Ce système devrait nous permetre de différencier l'avant, l'arrière et les côtés gauche et droit du robot adverse afin de mieux se positionner par rapport à lui.
Les port B0 à B3 du PIC 16F84 servent maintenant à récupérer le code dedépart (qui est incrémenté de 1 à chaque double de LED). Une roue codeuse à comptage BCD y est connectée, elle permet de changer le code de 0 à 9.
Les sorties pilotant les LED sont présentes sur les ports B4 à B7, tel que le programme du PIC est conçu il ne faut pas brancher ces LED sur d'autres ports.

 

 
 
Le récepteur
Le récepteur est un RX-IR disponible chez Sélectronic, ce petit composant intègre un phototransistor et toute l'électronique nécessaire pour la démodulation pour une fréquence de 37KHz (ça fait ça de moins à faire). Il existe d'autres composants de ce genre qui travaillent à d'autres fréquences.
 
       
 
 
Il se branche comme ceci. La sortie signal est reliée à un PIC chargé du décodage.
 

 

 
  Modulation et Codage
  On pourrait faire émetre les balises en continu et utiliser un simple phototransistor comme récepteur, mais dans ce cas rien ne permettrait au robot de différencier les signaux d'une balise des lumières parasites des projecteurs, de même il serait impossible de différencier les balises entre elles. C'est le rôle de la modulation.

 
  Le signal modulé en sortie de la balise
 
   
  Le signal en sortie du récepteur
 

 
  Notre récepteur fonctionne pour une fréquence de 37 kHz, sa sortie passe au niveau bas quand il reçoit une lumière infrarouge modulée à cette fréquence. On a donc programé le PIC pour qu'il envoie un signal à 37 kHz dans les LED de la balise, Comme la fréquence de la lumière des projecteurs à la Coupe est à 100 Hz (ils sont alimentés par une tension sinusoidale à 50 Hz) le récepteur ne risque pas d'être brouillé par eux.
ça c'est suffisant pour ne pas se faire brouiller mais pas pour différencier nos balises. Pour ça il faut rajouter un codage par dessus la modulation. Le PIC qui est sur la balise va envoyer son signal à 37 kHz par salves pendant un temps t qui dépend du numéro de la balise. La période totale du signal T reste fixe. Le PIC branché en sortie du récepteur va mesurer les temps t et T, Si la période T correspond à celle que nous avons fixé pour toutes nos balises ça veut dire que la balise vue par le récepteur est bien une des nôtres et pas une balise de l'adversaire qui fonctionne à la même fréquence (ça peut arriver). Ensuite, en fonction du temps t il déduit le numéro de la balise qu'il voit.
Le code source de la fonction de décodage est disponible parmis les codes de la carte PICATF
 
Il y a d'autres façons de réaliser un tel codage, on aurait pu par exemple faire envoyer un signal numérique en série par la balise pour indiquer son numéro, ou encore utiliser deux fréquences différentes pour les niveaux haut et bas du récepteur (le nôtre n'en utilise qu'une pour le niveau bas et l'absence de signal pour le niveau haut).
 

 

 
Nous n'avons pas utilisé ce système pendant nos matchs car nous n'avons pas eu le temps de l'installer sur le robot, mais les tests qu'on a fait après on été plutôt concluant. Nous le réutiliserons surement l'année prochaine.