Club robotique de Sophia-Antipolis

Accueil > POBOTpedia > Capteurs > Capteurs de lumière > La géolocalisation chromatique

La géolocalisation chromatique

lundi 30 septembre 2013, par Llorenç



Se déplacer avec une relative précision est une difficulté qui s’impose à tout mobile autonome quand il se doit de suivre un chemin précis. Pour cela il existe plusieurs techniques dont les suiveurs de ligne monochrome, les radar optique, les systèmes de triangulation, etc. Alors pourquoi ne pas également utiliser les couleurs ?
C’est ce que nous allons découvrir ensemble sous l’appellation de géolocalisation chromatique .


 Les champs d’exploration

JPEG - 100.1 ko

Nous allons expérimenter tour à tour :
- un lecteur de couleurs (cet atelier)
- un suivi de ligne bicolore (à venir)
- un déplacement sur le cercle chromatique (à venir)

 Le capteur de couleur

JPEG - 37 ko
La platine de chez Manolins, utilisée dans cet atelier.

Commençons par le capteur de couleurs. Le choix s’est porté sur le TCS3200 (pas le TCS3210 moins puissant) qui peut détecter et mesurer une gamme presque infinie de couleurs visibles. Il dispose d’un réseau de photodétecteurs en grille 8x8, dont 16 ont un filtre bleu, 16 ont un filtre vert, 16 ont un filtre rouge, et les 16 autres n’ont pas de filtre. Ces différents capteurs sont réparties uniformément.

JPEG - 350.8 ko
La puce TSC3200 vendue par Emartee

Les valeurs obtenues seront une représentation proportionnelle de l’intensité lumineuse des trois teintes de bases : Rouge-Vert-Bleu et de leur somme.

JPEG - 47.4 ko
La carte d’extension TSC3200-DB de Parallax

Pour un résultat optimum, on placera la couleur à détecter à une distance à déterminer de telle sorte que le faisceau des quatre sources lumineuses convergent en un point unique (et qu’il n’y ait pas quatre spots lumineux distincts sur l’objet). Ici, ce qui a le mieux fonctionner c’est de plaquer les DEL de la platine pour ne laisser que 10mm entre le capteur et la zone à lire.
Sur certaines platines, une broche de commutation du système d’éclairage est disponible. Cela peut permettre d’ajouter une fonction de détection de présence...

Pour obtenir les sus-citées valeurs, un oscillateur interne produit une signal carré dont la fréquence est proportionnelle à l’intensité de la teinte sélectionnée. L’intervalle typique est 2Hz-500Khz. On peut diviser cette fréquence par 5 ou par 50. Remarque : si on utilise la fonction PulseIn de l’arduino (utilisé ici comme microcontrôleur) pour effectuer l’acquisition des valeurs RVB , il faut impérativement réduire la fréquence par 5. En effet, la période qui correspond à la fréquence typique maximum est de 1/500Khz soit 2µs, ce qui est plus petit que la valeur minimum que cette fonction peut retourner (10µs).

 Un lecteur de couleurs

On se propose de réaliser dans un premier temps un discriminateur six couleurs plus noir, gris, blanc.

Pour cela on va utiliser :
- un capteur de couleurs basé sur la puce TCS3210
- une carte arduino, dans cet exemple la DFRduino Romeo V2 (R3)
- 8 câbles pour platine d’expérimentation

Il faut réaliser le montage suivant :

PNG - 44.8 ko
Schéma de montage de la platine lecteur couleur sur une carte arduino

Remarque : Le schéma tient compte du brochage maximum.

Passons à l’algorithme.
Nous allons lire tour à tour les quatre valeurs du capteur puis appliquer une transformation RVB vers TSL de façon à extraite la teinte.

GIF - 24.4 ko

n.b. pour plus d’informations sur les couleurs, il y a cet excellent article.

On déterminera en premier s’il s’agit de noir, de gris ou de blanc, de façon empirique, en se basant sur la composante -lumière- ; puis la teinte directement depuis la valeur issue de la transformation.

Vous trouverez le code ici.

Pour vos expérimentations, voici une roue chromatique simple à imprimer.
PNG - 53.1 ko

 Étape suivante

Lors du prochain article nous verrons comment mettre à profit cette détection des teintes pour faire suivre une ligne à un mobile équipé d’un seul capteur, sans pour autant qu’il perde le fil de son trajet :) ...


à suivre...

Vos commentaires

  • Le 2 octobre 2013 à 09:41, par joëlle En réponse à : La géolocalisation chromatique

    J’ai trouvé votre article trés intéréssant. Comment avez vous fait pour déterminer á quelle distance il faut placer le capteur de l’objet ?

    • Le 2 octobre 2013 à 11:44, par Llorenç En réponse à : La géolocalisation chromatique

      Bonjour Joëlle,

      Merci pour votre appréciation. Concernant votre question, la notice technique du composant précise que la meilleur distance est 10mm. C’est d’ailleurs souvent précisé comme sur ce site.
      Pour ma part j’ai plaqué la platine équipée de ses quatre DEL sur une feuille blanche puis j’ai observé les valeurs retournées par le canal ’clair’ (sans filtre Rouge ou Vert ou Bleu). J’ai ensuite éloigné progressivement la platine de l’objet et observé une ’perte’ d’intensité lumineuse. J’en ai déduit que plaquer la platine était la solution qui fournissait le meilleur signal, ce qui m’arrange pour les ateliers suivant de suiveur de ligne ;)

    Répondre à ce message

Un message, un commentaire ?

modération a priori

Attention, votre message n’apparaîtra qu’après avoir été relu et approuvé.

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici
  • Ce formulaire accepte les raccourcis SPIP [->url] {{gras}} {italique} <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document