Club robotique de Sophia-Antipolis

Accueil > POBOTpedia > Capteurs > Capteurs de lumière > Capteur de lumière ambiante

Capteur de lumière ambiante

dimanche 14 septembre 2008, par Julien H.

Il existe différents types de capteur de lumière :
 les capteurs de proximité
 les capteurs de distance
 les capteurs de luminosité ambiante

Alors que les deux premiers sont largement utilisés en robotique (pour déclencher des actionneurs ou faire une mesure de l’environnement), les troisièmes ne le sont pas tellement. C’est de ceux-ci que nous allons parler.

L’usage qu’on peut en faire est pourtant pratique : adapter nos autres systèmes basés sur la lumière à des conditions variables de luminosité. Nous en avons fait plusieurs fois la désagréable expérience, les capteurs (infra-rouges, caméra, webcam) sont très sensibles aux conditions lumineuses.

Il est reconnu que les roboticiens (et tous les hobbyistes de manière générale) travaillent tard le soir, à la lumière d’une lampe d’atelier ou d’une lampe de chevet, sans variation des conditions lumineuses, tandis que leurs démonstrations ont presque toujours lieu en plein jour, dehors et surtout avec plein de gens autour (en tout cas on le souhaite). Quelle importance revêt ce dernier point ? tout simplement ces personnes vont modifier la lumière reçu par votre robot (ou votre système électronique pour généraliser) au cours de la démonstration ou du concours, donc votre calibrage de capteurs va être complètement caduque.

Il faut donc réaliser un système de calibrage des capteurs qui puisse fonctionner de manière automatique régulièrement en cours d’utilisation du robot. Nous allons d’abord tester un capteur.



Tests du capteur TEMT6000

Les capteurs de luminosité ambiante existent depuis longtemps sous la forme des photo-résistances "CdS" (Cadmium Sulfide), reconnaissables à leur petite grille et autres photo-transistors.

Mais une nouvelle génération de capteurs existe désormais. Nous allons utiliser le capteur TEMT6000 (disponible pour 1 euro chez Sparkfun, et pour 4$, intégré à un circuit de 9 mm x 9 mm).

C’est un photo-transistor (ça se connecte comme tel) et c’est utilisé dans les appareils mobiles et les voitures pour adapter le rétro-éclairage des écrans à la lumière ambiante pour de l’économie d’énergie.

On connecte la sortie du transistor sur l’entrée analogique d’un micro-contrôleur et on utilise une résistance de pull-down de 10 kOhms.

Programmation

Le code utilisé pour faire des tests (sur une Arduino mais transposable à n’importe quel autre circuit) est très simple, on lit la valeur sur l’entrée analogique (sur AVR, résolution de 10 bits soit entre 0 et 1024) et on l’envoie sur la liaison série pour affichage sur l’oscilloscope minimal sous Processing.


void setup()
Serial.begin(9600) ;

void loop()
int val = analogRead(0) ;
Serial.print( 0xff, BYTE) ;
Serial.print( (val >> 8) & 0xff, BYTE) ;
Serial.print( val & 0xff, BYTE) ;

Et pour l’oscilloscope minimal, toujours le même :

/* 
 * Oscilloscope 
 * Gives a visual rendering of analog pin 0 in realtime. 
 * 
 * This project is part of Accrochages 
 * See http://accrochages.drone.ws 
 * 
 * (c) 2008 Sofian Audry (info@sofianaudry.com) 
 * 
 * GNU GPL
 */

Les résultats

Comme tout signal analogique, il y a des petites variations autour de la valeur moyenne, mais le capteur a une grande stabilité. Les copies d’écran de l’oscillo Processing sont réalisées en agitant le capteur sous une lampe.

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 champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.