ESP8266 - Capteur de couleur TCS3200D/TCS230
Ce tutoriel vous guide dans l'utilisation de l'ESP8266 avec le capteur de couleur TCS3200D/TCS230 pour une détection précise des couleurs et une mesure RVB.
En détail, nous apprendrons :
- Comment connecter le capteur TCS3200D/TCS230 à l'ESP8266
- Comment calibrer le capteur pour des lectures précises
- Comment programmer l'ESP8266 pour lire et afficher les valeurs RVB
Préparation du matériel
Ou vous pouvez acheter les kits suivants:
| 1 | × | Kit de Capteurs DIYables (30 capteurs/écrans) | |
| 1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
À propos du capteur de couleur TCS3200D/TCS230
Le capteur de couleur TCS3200D/TCS230 utilise une grille de 64 photodiodes disposées en une matrice 8×8 pour la détection des couleurs via un filtrage spécifique à la longueur d’onde. Dans ce réseau, 16 photodiodes intègrent des filtres de longueur d’onde rouge, 16 utilisent des filtres de longueur d’onde verte, 16 emploient des filtres bleus et 16 fonctionnent sans filtrage (réponse claire). La mesure des couleurs s’effectue en sélectionnant des ensembles de filtres particuliers et en évaluant la fréquence du signal de sortie.
Les modules TCS3200D courants présentent des matrices d’éclairage LED blanches intégrées qui fournissent un éclairage constant de la cible, assurant la stabilité des mesures quelles que soient les fluctuations de l’éclairage externe et améliorant la sensibilité dans des conditions de faible luminosité.
Brochage
Configuration des broches du module capteur TCS3200D/TCS230 :
- Broche VCC: Entrée d'alimentation (+5 V).
- Broche GND: Référence de masse (0 V).
- Broches S0, S1: Sélecteurs de mise à l'échelle de la fréquence de sortie.
- Broches S2, S3: Sélecteurs de filtre des canaux couleur.
- Broche OUT: Sortie d'onde carrée modulée en fréquence.
- Broche OE: Entrée d'activation de la sortie (s'active lorsque le niveau est BAS). Les modules standard la branchent généralement directement à la masse en interne. Si ce n'est pas connecté, reliez-le manuellement à la masse.

Comment cela fonctionne
Le fonctionnement du capteur dépend de deux commandes principales : quel groupe de filtres pour photodiodes activer et quelle plage de fréquences de sortie générer. Deux paires de broches de contrôle gèrent ces fonctions :
Contrôle de la mise à l'échelle de la fréquence (broches S0 et S1) :
- S0=BAS, S1=BAS: État hors tension
- S0=BAS, S1=HAUT: facteur d'échelle de 2 %
- S0=HAUT, S1=BAS: facteur d'échelle de 20 %
- S0=HAUT, S1=HAUT: facteur d'échelle de 100 % (vitesse maximale)
Sélection du canal de couleur (broches S2 et S3) :
- S2=BAS, S3=BAS: Photodiodes rouges actives
- S2=BAS, S3=HAUT: Photodiodes bleues actives
- S2=HAUT, S3=BAS: Photodiodes claires actives (pas de filtrage)
- S2=HAUT, S3=HAUT: Photodiodes vertes actives
La broche OUT fournit des fréquences d'onde carrée couvrant environ 2 Hz à 500 kHz. Une intensité lumineuse plus élevée produit une sortie de fréquence plus élevée. La fonction pulseIn() de l'ESP8266 mesure la durée d'une impulsion, ce qui est inversement corrélé : une illumination plus lumineuse produit des durées plus courtes. Des mesures calibrées se traduisent par un format RVB conventionnel 0-255.
Atteindre une précision optimale
- Maintenez le capteur à une distance de 1 à 3 cm de la cible de mesure avec un alignement angulaire stable.
- Utilisez un éclairage LED blanc intégré pour un éclairage reproductible.
- Protégez le capteur de la lumière ambiante variable afin d'améliorer la constance des mesures.
Diagramme de câblage
Connectez le capteur de couleur TCS3200 à l'ESP8266 comme suit :
| TCS3200 Color Sensor | ESP8266 |
|---|---|
| VCC | 3V3 |
| GND | GND |
| S0 | D6 (GPIO12) |
| S1 | D7 (GPIO13) |
| S2 | D2 (GPIO4) |
| S3 | D5 (GPIO14) |
| OUT | D1 (GPIO5) |

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
Pour plus d'informations, consultez Brochage ESP8266. et Comment alimenter l'ESP8266..
Code ESP8266 - Calibration du capteur
L'étalonnage élimine les interférences environnementales des mesures brutes. Les variables telles que la puissance de sortie de la LED, l'espacement des cibles, la réflectivité du matériau et l'éclairage ambiant influent sur les mesures. La routine d'étalonnage identifie les largeurs d'impulsion minimales et maximales sur tous les canaux de couleur, établissant des limites de référence pour convertir les données brutes en valeurs RGB précises de 0 à 255 adaptées à votre environnement de déploiement.
Étapes rapides
Pour commencer avec l'ESP8266 dans l'IDE Arduino, suivez ces étapes :
- Consultez le tutoriel Installation du logiciel ESP8266. si c'est la première fois que vous utilisez l'ESP8266.
- Connectez les composants comme indiqué sur le schéma.
- Branchez la carte ESP8266 à votre ordinateur à l'aide d'un câble USB.
- Ouvrez l'IDE Arduino sur votre ordinateur.
- Choisissez la carte ESP8266 correcte, telle que (par exemple NodeMCU 1.0 (ESP-12E Module)), et son port COM respectif.
- Copiez le code d'étalonnage et ouvrez-le dans l'IDE Arduino.
- Cliquez sur le bouton Upload pour compiler et téléverser sur l'ESP8266.
- Lancez le moniteur série.
- Dirigez le capteur vers différentes surfaces : blanc (papier), noir et différentes couleurs.
- Observez les valeurs min et max qui se mettent à jour automatiquement.
- Lorsque les valeurs se stabilisent (généralement 10 à 20 secondes), enregistrez les six paramètres d'étalonnage.
Exemples de paramètres d'étalonnage extraits de la sortie ci-dessus:
- RougeMin = 42, rougeMax = 210
- VertMin = 55, vertMax = 185
- BleuMin = 60, bleuMax = 172
Code ESP8266 - Lecture des valeurs RVB
Étapes rapides
- Localisez les variables d'étalonnage au début du code:
Please provide the English text to translate. The content between the code blocks is empty.
int redMin = 0; // Largeur d'impulsion minimale pour le rouge
int redMax = 0; // Largeur d'impulsion maximale du rouge
int greenMin = 0; // Largeur d'impulsion minimale pour le vert
int greenMax = 0; // Largeur d'impulsion maximale du vert
int blueMin = 0; // Largeur d'impulsion minimale bleue
int blueMax = 0; // Largeur d'impulsion maximale bleue
The content to translate is missing. Please paste the English text you want translated into French.
- Remplacez tous les six espaces réservés à zéro par des données d'étalonnage mesurées. Exemple en utilisant les valeurs redMin = 42, redMax = 210, greenMin = 55, greenMax = 185, blueMin = 60, blueMax = 172 :
Please provide the English text to translate.
int rougeMin = 42;
int rougeMax = 210;
int vertMin = 55;
int maxVert = 185;
int bleuMin = 60;
int bleuMax = 172;
Please provide the English text you would like translated into French.
- Téléchargez le code mis à jour sur l'ESP8266.
- Placez un objet de couleur devant le capteur.
- Ouvrez le moniteur série pour afficher les mesures RGB.
Les valeurs RVB affichées respectent l'échelle standard 0-255. Des largeurs d'impulsion réduites (indiquant des réflexions plus lumineuses) génèrent des sorties RVB plus élevées ; des largeurs d'impulsion prolongées (réflexions plus sombres) produisent des valeurs plus faibles.
À partir des valeurs RVB, vous pouvez :
- Identifier des couleurs spécifiques en comparant les rapports RVB
- Trier les objets selon la détection des couleurs
- Faire correspondre les couleurs entre différents échantillons
- Déclencher des actions en fonction des couleurs détectées
Candidatures de projets
Avec une capacité de mesure RGB opérationnelle, vous pouvez développer :
- Système de tri chromatique : Classer les objets par couleur (différenciation rouge/vert/bleu)
- Dispositif de vérification des couleurs : Confirmer la cohérence des couleurs entre les échantillons
- Suiveur de chemin coloré : Robots qui naviguent le long des marqueurs chromatiques
- Inspection visuelle de la qualité : Détecter les défauts de production par analyse des couleurs
- Automatisation déclenchée par la couleur : Exécuter des actions lorsque des teintes spécifiques sont détectées