Introducere în senzorul de culoare RGB TCS3200

Introducere în senzorul de culoare RGB TCS3200

TCS3200 este un cip de culoare lumină-frecvență care poate fi programat printr-un microcontroler. Modulul poate fi utilizat pentru detectarea tuturor celor 7 culori de lumină albă cu ajutorul unui microcontroler integrat, cum ar fi Arduino.

În acest post vom analiza senzorul de culoare RGB TCS3200, vom înțelege modul în care funcționează senzorul de culoare și vom testa practic senzorul TCS3200 cu Arduino și vom extrage câteva date utile.



Importanța recunoașterii culorilor

Vedem lumea în fiecare zi, plină de culori bogate, v-ați întrebat vreodată ce sunt de fapt culorile în afară de a le simți vizual. Ei bine, culorile sunt unde electromagnetice cu lungimi de undă diferite. Roșu, verde, albastru are lungimi de undă diferite, ochii umani sunt reglați pentru a prelua aceste culori RGB, care este o bandă îngustă din spectrul electromagnetic.



Dar vedem mai mult decât roșu, albastru și verde, deoarece creierul nostru poate amesteca două sau mai multe culori și dă o nouă culoare.

Abilitatea de a vedea diferite culori a ajutat civilizația umană antică să scape de pericolele care pun viața în pericol, cum ar fi animalele, și, de asemenea, ajută la identificarea obiectelor comestibile, cum ar fi fructele, la creșterea corectă, care vor fi plăcute de consumat.



Femeile sunt mai bune în recunoașterea diferitelor nuanțe de culoare (mai bune la culoare) decât bărbatul, dar bărbații sunt mai buni în urmărirea obiectelor care se mișcă rapid și reacționează în consecință.

Multe studii sugerează că acest lucru se datorează faptului că, în perioada antică, bărbații merg la vânătoare din cauza forței lor fizice care era superioară femeilor.

Femeile sunt onorate cu o sarcină mai puțin riscantă, cum ar fi colectarea fructelor și a altor obiecte comestibile de la plante și copaci.



Colectarea obiectelor comestibile de la plante la creșterea corectă (culoarea fructelor joacă un rol imens) a fost foarte importantă pentru o bună digestie, care a ajutat oamenii de la probleme de sănătate de la distanță.

Aceste diferențe în capacitatea vizuală la bărbați și femei persistă chiar și în epoca modernă.

Bine, de ce explicațiile de mai sus pentru un senzor electronic de culoare? Ei bine, deoarece senzorii de culoare sunt fabricați pe baza modelului de culoare al ochiului uman și nu cu modelul de culoare al ochilor altor animale.

De exemplu, camerele duale din telefoanele inteligente una dintre camere este concepută special pentru recunoașterea culorilor RGB și alte camere pentru realizarea de imagini normale. Amestecarea acestor două imagini / informații cu un algoritm atent va reproduce culorile exacte ale obiectului real pe ecran numai pe care oamenii le pot percepe.

Notă: Nu toate camerele duale funcționează în același mod ca cel menționat mai sus, unele sunt utilizate pentru zoom optic, altele sunt utilizate pentru a produce un efect de câmp în profunzime etc.

Acum, să vedem cum sunt fabricați senzorii de culoare TCS3200.

Ilustrarea senzorului TCS3200:

Senzor TCS3200

Are 4 LED-uri albe încorporate pentru iluminarea obiectului. Are 10 pini doi pini Vcc și GND (utilizați oricare dintre aceștia). Funcția S0, S1, S2, S3, S4 și pinul „out” va fi explicată în scurt timp.

Dacă aruncăm o privire atentă asupra senzorului, putem vedea ceva așa cum este ilustrat mai jos:

Are o gamă de 8 x 8 senzori de culoare, în total 64. Blocul foto-senzori are senzori roșu, albastru, verde. Diferitii senzori de culoare sunt formați prin aplicarea diferitelor filtre de culoare pe senzor. Din 64, are 16 senzori albastru, 16 verde, 16 roșu și există 16 senzori foto fără niciun filtru de culoare.

Filtrul de culoare albastră va permite doar luminii albastre să atingă senzorul și să respingă restul lungimilor de undă (Culori), același lucru pentru alți doi senzori de culoare.

Dacă străluciți o lumină albastră pe un filtru roșu sau verde, o lumină mai puțin intensă va trece prin filtrele verzi sau roșii în comparație cu filtrul albastru. Deci, senzorul filtrat albastru va primi mai multă lumină în comparație cu alți doi.

Deci, putem pune senzorii de culoare cu filtre RGB într-un bloc și să strălucească orice lumină colorată, iar senzorul de culoare relevant va primi mai multă lumină decât alte două.

Prin măsurarea intensității luminii primite la un senzor, se poate dezvălui culoarea luminii strălucitoare.

Pentru a interfața semnalul de la senzor la microcontroler se face cu intensitatea luminii la convertorul de frecvență.

Diagrama blocului de circuite

Pinul „out” este ieșirea. Frecvența pinului de ieșire este de 50% ciclu de funcționare. Pinii S2 și S3 sunt linii selectate pentru senzor foto.

Înțelegeți mai bine uitându-vă la intabulare:

Pinii S2 și S3 sunt linii selectate pentru senzor foto.

Prin aplicarea semnalelor mici la pinii S2 și S3 se va selecta senzorul de culoare roșie și se va măsura intensitatea lungimii de undă roșie.

În mod similar, urmați tabelul de mai sus pentru restul culorilor.

În general, se măsoară senzorii roșu, albastru și verde, lăsând senzorii unul fără filtre.

S0 și S1 sunt pinii de scalare a frecvenței:

S0 și S1 sunt pinii de scalare a frecvenței

S0 și S1 sunt pini de scalare a frecvenței pentru a scala frecvența de ieșire. Scalarea frecvenței este utilizată pentru a selecta frecvența optimă de ieșire de la senzor la microcontroler. În cazul Arduino se recomandă 20%, S0 ‘HIGH’ și S1 ‘LOW’.

Frecvența de ieșire crește dacă intensitatea luminii senzorului relevant este mare. Pentru simplitatea codului programului, frecvența nu este măsurată, dar durata impulsului este măsurată, cu cât frecvența este mai mare, mai puțin durata impulsului.

Deci, cea care pe afișajul monitorului serial arată cel mai puțin trebuie să fie culoarea plasată în fața senzorului.

Extragerea datelor din senzorul de culoare

Acum să încercăm practic să extragem date din senzor:

cum se extrag date din senzorul de culoare folosind circuitul Arduino

Codul programului:

//--------------Program Developed by R.GIRISH--------------//
const int s0 = 4
const int s1 = 5
const int s2 = 6
const int s3 = 7
const int out = 8
int frequency1 = 0
int frequency2 = 0
int frequency3 = 0
int state = LOW
int state1 = LOW
int state2 = HIGH
void setup()
{
Serial.begin(9600)
pinMode(s0, OUTPUT)
pinMode(s1, OUTPUT)
pinMode(s2, OUTPUT)
pinMode(s3, OUTPUT)
pinMode(out, INPUT)
//----Scaling Frequency 20%-----//
digitalWrite(s0, state2)
digitalWrite(s1, state1)
//-----------------------------//
}
void loop()
')
delay(100)
//------Sensing Blue colour----//
digitalWrite(s2, state1)
digitalWrite(s3, state2)
frequency3 = pulseIn(out, state)
Serial.print(' Blue = ')
Serial.println(frequency3)
delay(100)
Serial.println('---------------------------------------')
delay(400)

//--------------Program Developed by R.GIRISH--------------//

IEȘIRE monitor serial

Cea care arată cel mai jos este culoarea plasată în fața senzorului. De asemenea, puteți scrie cod pentru recunoașterea oricărei culori, de exemplu galben. Galbenul este rezultatul amestecului de verde și roșu, deci dacă culoarea galbenă este plasată în fața senzorului, trebuie să luați în considerare valorile senzorului roșu și verde, în mod similar pentru orice alte culori.

Dacă aveți întrebări cu privire la acest senzor de culoare RGB TCS3200 folosind articolul Arduino, vă rugăm să exprimați în secțiunea de comentarii. Este posibil să primiți un răspuns rapid.

Senzorul de culoare explicat mai sus poate fi folosit și pentru declanșarea unui gadget extern printr-un releu pentru executarea unei operații dorite.




Precedent: Comutator pornit / oprit de la rețeaua CA controlat prin parolă În continuare: Utilizarea senzorilor TSOP17XX cu frecvențe personalizate