Pololu-Senseur-QTR-Fonctionnement

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche

Le senseur de ligne

L'ensemble des senseurs du QTR-8RC (détection par réfléchissement) sont utilisés comme détecteur de ligne mais peuvent également servir comme senseur de proximité ou senseur de surface réfléchissante.

Pololu-Senseur-QTR-Fonctionnement-00.png

Module QTR8C de pololu.

Cliquer l'image pour l'agrandir

Le module QTR8C lien pololu est équipé de 8 émetteurs infrarouges et 8 senseurs infrarouges (des phototransistors) montés en paires et espacés de 9.525 mm.

Ce senseur est conçu pour que la carte soit placée parallèlement à la surface à surveiller.

Séparable en deux

Si vous n'avez pas besoin des 8 senseurs (ou s'il n'y a pas assez de place) alors il est possible de scinder la section en deux!

Pololu-Senseur-QTR-Fonctionnement-05.jpg

Module QTR8C séparable.

Cliquer l'image pour l'agrandir

De la sorte, il est possible de disposer d'une section à 6 senseurs et une autre section de 2 senseurs (comme visible ci-dessus).

La carte peut être incisée sur les deux côtes (le long des perforations) et ensuite être courbé jusqu'à ce qu'il soit scindé. Chacune des deux pièces résultante peut être utilisé comme un senseur indépendant.

La section à 2 senseurs nécessite le placement d'une résistance complémentaire pour limiter le courant des LEDs (résistance incluse dans le kit).

Pololu-Senseur-QTR-Fonctionnement-06.jpg

Module QTR8C séparé.

Cliquer l'image pour l'agrandir

Les photo-transistors

Pololu-Senseur-QTR-Fonctionnement-01.jpg

QTRxC principe de fonctionnement.

Cliquer l'image pour l'agrandir

Pour utiliser le senseur, il faut d'abord activer la broche de lecture du microcontrôleur en sortie. Configurée en sortie, la broche permet de charger la capacité du noeud en appliquant une tension de 5V sur la broche OUT (broche de sortie du circuit).

Ensuite, on passe broche en entrée pour lire la réflectance (Wikipedia.fr) en lisant la tension sur cette broche. En effet, une fois reconfigurée en entrée, la broche présente une très haute impédance et la seule opportunité de déchargement de la capacité, c'est par l'intermédiaire du phototransistor. La courant traversant le transistor dépend de son excitation... et donc directement proportionnel à la luminosité qu'il reçoit (donc de la lumière renvoyée par la surface réfléchissante).

Il suffit de surveiller la vitesse de la chute de tension pour déterminer la réflectance de la surface sous le senseur:

  • La tension chutera beaucoup plus vite pour une surface blanche car le photo-transistor, plus excité, conduit plus de courant. La capacité se déchargera plus rapidement.
  • La tension chutera lentement si la surface renvoie peu de lumière vers le photo-transistor. C'est le cas pour une surface opaque.
Pololu-Senseur-QTR-Fonctionnement-02.png

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 microcontrôleur (bleu).

Cliquer l'image pour l'agrandir

Pololu-Senseur-QTR-Fonctionnement-03.png

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 microcontrôleur (bleu).

Cliquer l'image pour l'agrandir

La tension sur la broche OUT, chutera donc plus ou moins vite. La bibliothèque Arduino doit mesurer le temps nécessaire pour que la tension chute suffisamment pour ramener la broche OUT à l'état bas. Ce temps est un bon indicateur de la lumière infrarouge renvoyée vers senseur infrarouge (photo-transistor) et donc du type de surface réfléchissante sous le senseur.

L'approche utilisée pour réaliser la mesure a plusieurs avantages, plus particulièrement avec le module QTR8C capable de désactiver ses LEDs infrarouges.

Quels sont les avantages:

  • Pas besoin d'un convertisseur digital/analogique (ADC).
  • Améliore la sensibilité par rapport à une sortie analogique utilisant pont diviseur de tension.
  • Il est possible de lire plusieurs senseurs en même temps (sur la plupart des microcontrôleurs).
  • La lecture en parallèle permet d'optimiser l'activation des LEDs et d'optimiser la consommation.

Activation des LEDs

Toutes les sorties sont indépendantes mais les LEDs sont infrarouges sont connectées en série par paires (pour diviser la consommation par deux).

Pololu-Senseur-QTR-Fonctionnement-10.png

Les LEDs du QTRxC

Cliquer l'image pour l'agrandir

Les LEDs sont contrôlées par un MOSFET avec la gate maintenue à VCC via une résistance Pull-Up. Cela permet au microcontrôleur désactiver les LEDs en ramenant le potentiel de la gate du MOSFET à 0 volts (niveau bas).

Pouvoir désactiver les LEDs permet de 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.

Les LEDs sont connectées par paire en série (pour diviser la consommation par deux). Les LEDs sont contrôlées par l'intermédiaire d'un MOSFET dont la gate maintenue à VCC avec une résistance pull-up. Ramener le potentiel au niveau LOW (0v) permet de désactiver les LEDs.

Sous 3.3V

Les résistances de limitation de courant des LED sont prévu pour un fonctionnement sous 5 V.

Pololu-Senseur-QTR-Fonctionnement-11.jpg

Le QTR8C sous 3.3v

Cliquer l'image pour l'agrandir

Ces résistances sont organisées en deux étages; ce qui permet de bypasser un étage pour autoriser le fonctionnement sous 3.3 V.

Consommation

Le courant d'une LED est d'approximativement 20–25 mA, ce qui fait représente un courant de fonctionnement total de 80-100mA pour tout le module.

Fonctionnement de la bibliothèque

Le module QTR-8RC dispose de 8 sorties identiques (le QTR-1RC à une seule sortie) et nécessite des entrées/sorties digitales capable de piloter le signal de sortie pour imposer un niveau logique HIGH. Par la suite, 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 nécessaire à la ligne pour retomber au niveau bas.
  • Eteindre les LEDs Infrarouges (optionnel).

En général, ces étapes sont conduites simultanément sur plusieurs 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 entrées/sorties de votre microcontrôleur. Plus précisément de l'impédance de la ligne lorsque celle-ci est configurée en entrée.

Pour les cas typiques, les résultats significatifs sont obtenus endéans la milliseconde (1 ms), ce qui autorise un échantillonnage des 8 senseurs à une fréquence pouvant atteindre 1 kHz (1000 fois par secondes) avec une consommation moyenne de 100mA puisque les LEDs infrarouges restent allumées.

Si un échantillonnage à basse fréquence est suffisant, il est possible d'économiser une puissance substantielle en désactivant les LEDs Infrarouges. Par exemple, un échantillonnage à 100 Hz (100 fois par secondes), les LEDs peuvent être désactivées pendant 90% du temps, ce qui ramène la consommation moyenne de 10mA (au lieu de 100mA).

Note:

Les temps de décroissance de la tension de l'ordre de 10ms (forte réflectance) contre plusieurs ms (faible réflectance) ne permettent pas de mesurer -de façon fiable- de subtiles différences dans des environnement à basse réflectances.


Basé sur "Arduino Library for the Pololu QTR Reflectance Sensors" de Pololu (www.pololu.com/docs/0J19/1) - Traduit en Français par shop.mchobby.be CC-BY-SA pour la traduction
Toute copie doit contenir ce crédit, lien vers cette page et la section "crédit de traduction". Traduit avec l'autorisation expresse de Pololu (www.pololu.com)

Based on "Arduino Library for the Pololu QTR Reflectance Sensors" from Pololu (www.pololu.com/docs/0J19/1) - Translated to French by shop.mchobby.be CC-BY-SA for the translation
Copies must includes this credit, link to this page and the section "crédit de traduction" (translation credit). Translated with the Pololu's authorization (www.pololu.com)