Détecteurs de ligne infrarouge

Aujourd'hui, nous allons nous attarder sur des détecteurs/suiveurs de ligne infrarouge utilisable avec les microcontroleur comme Arduino.
L'occasion d'apprendre une technique de détection analogique/numérique très intéressante.

Description
Détecteur de ligne QTR-8RC (IR LINE TRACKER)


Ce module senseur est composé de 8 paires de LED Infrarouge et phototransistor montés avec un espacement de 9.5mm. Cela fait de ce module un excellent suiveur de ligne pour robots. Les paires de LEDs sont placées en série de façon a réduire de moitié la consommation de courant et un transistor MOSFET permet de désactiver les LEDs pour soit économiser de l'énergie, soit obtenir un senseur infrarouge. Chaque senseur produit une  sortie mesurable sur une entrée/sortie digitale.
Détecteur de ligne QTR-8RC (IR LINE TRACKER)
Comment cela fonctionne
L'ensemble des senseurs du QTR-8RC (détection par réflécissement) sont prévu pour être utilisé comme détecteur de ligne mais peuvent également être comme senseur de proximité d'usage général ou senseur de surface réfléchissante. Le module supporte 8 emetteurs infrarouges et 8 senseurs infrarouge (phototransistor) monté en paires et espacés de 9.525 mm.
Détection à l'aide d'un
phototransistor sur le QTR-8RC

Pour utiliser le senseur, vous devez d'abord activer la broche de lecture de votre microcontroleur en sortie pour charger la capacité du noeud en appliquant une tension sur la broche OUT (sortie). Vous pouvez ensuite lire la réflectance (Wikipedia.fr) en relisant la tension sur cette broche en reconfigurant la broche de votre microcontroleur en entrée. Une fois la broche du microcontroleur reconfigurée en entrée, la capacité se déchargera au travers du photo-transistor... cette décharge ce faisant plus ou moins vite en fonction de la surface réfléchissante excitant le phototransistor.
La tension sur la broche OUT, chutera donc plus ou moins vite. Il suffit donc de mesurer le temps nécessaire pour que la tension chute suffisament pour ramener la broche OUT à l'état bas. Ce temps est un bon indicateur de la lumière infrarouge renvoyée sur senseur infrarouge (photo-transistor) et donc du type de surface réfléchissante sous le senseur.
Un temps de décroissance court signifie une plus grande réflexion de la surface.
Cette approche pour effectuer les mesures à plusieurs avantages, plus particulierement avec ce module capable de désactiver ses LEDs infrarouges:
  • Pas besoin d'un convertisseur digital/analogique (ADC).
  • Améliore la sensibilité par rapport à une sortie analogique avec pont diviseur de tension.
  • Il est possible de lire plusieurs senseurs en même temps (sur la plupart des micro-controleurs).
  • La lecture en parallèle permet d'optimiser l'activation des LEDs et d'optimiser la consommation.
Toutes les sorties sont indépendantes mais les LEDs sont connectées en série par paires (pour diviser la consommation par deux). Les LEDs sont contrôlées par un MOSFET avec la gate maintenue à VCC à l'aide d'une résistance pull-up. Cela permet de désactiver les LEDs en ramenenant le potentiel de la gate du MOSFET à 0 volts (niveau bas). Pouvoir désactiver les LEDs peut être avantageux pour limiter la puissance consommée par le projet lorsque le senseur n'est pas utilisé. Il est également possible de contrôler la luminosité de celles-ci à l'aide d'un signal PWM.

Interfacer une sortie sur une entrée digitale
La sortie du QTR-1RC (jaune) lorsque le senseur passe au dessus d'une ligne noire (à 3.1mm) et correspondance du temps d'impulsion de cette sortie sur un microcontroleur (bleu).
La sortie du QTR-1RC (jaune) lorsque le senseur passe au dessus d'une surface blanche (à 3.1mm) et correspondance du temps d'impulsion de cette sortie sur un microcontroleur (bleu).

Le module QTR-8RC dispose de 8 sorties identiques (une seule sortie pour le QTR-1RC) et nécessite des sorties digitales capable de contrôler une sortie pour produire un signal HIGH et ensuite passer cette broche en entrée pour mesurer le temps nécessaire à la tension pour chuter.
La séquence à utiliser pour lire un senseur est la suivante:
  • Allumer les LEDs Infrarouges (optionnel).
  • Placer la ligne digital en sortie (mode OUTPUT) et placer la ligne au niveau HAUT (HIGH).
  • Attendre au moins 10 μs pour permettre au noeud de se charger.
  • Placer la ligne digital en entrée (haute impédance).
  • Mesurer le temps qui à été nécessaire pour cette ligne retombe au niveau bas.
  • Eteindre les LEDs Infrarouges (optionnel).
En général, ces étapes sont exécutées en parallèles sur les multiples lignes d'entrées/sorties du module.

Avec un forte réflectance, le temps de décroissance de la tension peut être de quelques dizaines de micro-secondes;
Sans aucune réflectance, le temps de décroissance de la tension peut être de plusieurs millisecondes.
Le temps de décroissance exacte dépends des caractéristiques des lignes de votre microcontroleur (de l'impédance de la ligne lorsqu'elle est configurée en entrée).
Les résultats significatifs sont obtenus endéans 1 ms pour les cas typiques (sauf lorsque vous essayez de mesurer une subtile différence dans des scénarios a basse réflectances), ce qui autorise un échantillonnage des 8 senseurs à une fréquence pouvant atteindre 1 kHz. Si un échantillonnage à basse fréquence est suffisant, il est possible d'économiser une puissance substantielle en désactivant les LEDs Infrarouges. A titre d'exemple, pour un échantillonnage à 100 Hz, les LEDs peuvent être désactivées pendant 90% du temps, ce qui ramène la consommation moyenne de 10mA (au lieu de 100mA).
 
Où acheter

Aucun commentaire