- Senzor de culoare TCS3200:
- Componente necesare:
- Diagrama circuitului și conexiunile:
- Explicație de lucru:
În acest proiect vom detecta culorile folosind modulul senzor de culoare TCS3200 cu Raspberry Pi. Aici am folosit codul Python pentru Raspberry Pi pentru a detecta culorile folosind senzorul TCS3200. Pentru a demonstra detectarea culorii, am folosit un LED RGB, acest LED RGB va străluci în aceeași culoare, din care obiectul este prezentat lângă senzor. În prezent, am programat Raspberry Pi pentru a detecta numai culorile roșu, verde și albastru. Dar îl puteți programa pentru a detecta orice culoare după obținerea valorilor RGB, deoarece fiecare culoare este alcătuită din aceste componente RGB. Verificați video demo la sfârșit.
Am citit și afișat anterior valorile RGB ale culorilor folosind același TCS3200 cu Arduino. Înainte de a merge mai departe, anunțați despre senzorul de culoare TCS3200.
Senzor de culoare TCS3200:
TCS3200 este un senzor de culoare care poate detecta orice număr de culori cu o programare corectă. TCS3200 conține tablouri RGB (Roșu Verde Albastru). Așa cum se arată în figură la nivel microscopic, se pot vedea cutiile pătrate din interiorul ochiului senzorului. Aceste cutii pătrate sunt matrice de matrice RGB. Fiecare dintre aceste cutii conține trei senzori pentru detectarea intensității luminii roșii, verzi și albastre.
Deci avem matrici roșii, albastre și verzi pe același strat. Deci, în timp ce detectăm culoarea, nu putem detecta simultan toate cele trei elemente. Fiecare dintre aceste matrice de senzori trebuie selectate separat unul după altul pentru a detecta culoarea. Modulul poate fi programat pentru a detecta culoarea particulară și pentru a părăsi celelalte. Conține pini pentru acest scop de selecție, care a fost explicat mai târziu. Există al patrulea mod care nu este un mod de filtrare; fără modul de filtrare, senzorul detectează lumina albă.
Vom conecta acest senzor la Raspberry Pi și vom programa Raspberry Pi pentru a oferi un răspuns adecvat în funcție de culoare.
Componente necesare:
Aici folosim Raspberry Pi 2 Model B cu Raspbian Jessie OS. Toate cerințele de bază privind hardware-ul și software-ul sunt discutate anterior, le puteți căuta în Introducere Raspberry Pi și LED-ul Raspberry PI Clipește pentru a începe, în afară de asta avem nevoie:
- Raspberry Pi cu sistem de operare preinstalat
- Senzor de culoare TCS3200
- Contor cip CD4040
- LED RGB
- Rezistor 1KΩ (3 bucăți)
- Condensator 1000uF
Diagrama circuitului și conexiunile:
Conexiunile realizate pentru conectarea senzorului de culoare cu Raspberry Pi sunt date în tabelul de mai jos:
Pinii senzorului |
Raspberry Pi Pins |
Vcc |
+ 3,3v |
GND |
sol |
S0 |
+ 3,3v |
S1 |
+ 3,3v |
S2 |
GPIO6 al PI |
S3 |
GPIO5 al PI |
OE |
GPIO22 din PI |
OUT |
CLK al CD4040 |
Conexiunile pentru contorul CD4040 cu Raspberry Pi sunt date în tabelul de mai jos:
CD4040 Pin |
Raspberry Pi Pins |
Vcc16 |
+ 3,3v |
Gnd8 |
gnd |
Clk10 |
OUT din senzor |
Resetați 11 |
GPIO26 al PI |
Q0 |
GPIO21 al PI |
Q1 |
GPIO20 al PI |
Q2 |
GPIO16 al PI |
Q3 |
GPIO12 din PI |
Q4 |
GPIO25 al PI |
Q5 |
GPIO24 din PI |
Q6 |
GPIO23 al PI |
Q7 |
GPIO18 al PI |
Q8 |
Nici o conexiune |
Q9 |
Nici o conexiune |
Q10 |
Nici o conexiune |
Q11 |
Nici o conexiune |
Mai jos este schema completă a circuitului de interfațare a senzorului de culoare cu Raspberry Pi:
Explicație de lucru:
Fiecare culoare este alcătuită din trei culori: roșu, verde și albastru (RGB). Și dacă cunoaștem intensitățile RGB în orice culoare, atunci putem detecta acea culoare. Am citit anterior aceste valori RGB folosind Arduino.
Folosind senzorul de culoare TCS3200, nu putem detecta lumina roșie, verde și albastră în același timp, așa că trebuie să le verificăm pe rând. Culoarea care trebuie detectată de senzorul de culoare este selectată de doi pini S2 și S3. Cu acești doi pini, putem spune senzorului ce intensitate a luminii de culoare trebuie măsurată.
Spuneți dacă trebuie să simțim intensitatea culorii roșii, atunci trebuie să setăm ambii pini la LOW. După ce măsurăm lumina roșie, vom seta S2 LOW și S3 HIGH pentru a măsura lumina albastră. Prin schimbarea secvențială a logicii S2 și S3 putem măsura intensitățile luminii roșii, albastre și verzi, conform tabelului de mai jos:
S2 |
S3 |
Tip fotodiodă |
Scăzut |
Scăzut |
roșu |
Scăzut |
Înalt |
Albastru |
Înalt |
Scăzut |
Fără filtru (alb) |
Înalt |
Înalt |
Verde |
Odată ce senzorul detectează intensitățile componentelor RGB, valoarea este trimisă sistemului de control din interiorul modulului, așa cum se arată în figura de mai jos. Intensitatea luminii măsurată de matrice este trimisă convertorului curent în frecvență din interiorul modulului. Convertorul de frecvență generează o undă pătrată a cărei frecvență este direct proporțională cu valoarea trimisă de matrice. Cu o valoare mai mare de la ARRAY, convertorul de curent la frecvență generează unda pătrată de frecvență mai mare.
Frecvența semnalului de ieșire prin modulul senzorului de culoare poate fi ajustată la patru niveluri. Aceste niveluri sunt selectate folosind S0 și S1 ale modulului senzor, așa cum se arată în figura de mai jos.
S0 |
S1 |
Scalarea frecvenței de ieșire (f0) |
L |
L |
Putere scazuta |
L |
H |
2% |
H |
L |
20% |
H |
H |
100% |
Această caracteristică este utilă atunci când interacționăm acest modul cu sistemul cu ceas redus. Cu Raspberry Pi vom selecta 100%. Amintiți-vă aici, sub umbră, modulul senzorului de culoare generează o ieșire de undă pătrată a cărei frecvență maximă este de 2500Hz (100% scalare) pentru fiecare culoare.
Deși modulul oferă undă pătrată de ieșire a cărei frecvență este direct proporțională cu intensitatea luminii care cade pe suprafața sa, nu există o modalitate ușoară de a calcula intensitatea luminii fiecărei culori prin acest modul. Cu toate acestea, putem spune dacă intensitatea luminii crește sau scade pentru fiecare culoare. De asemenea, putem calcula și compara valorile roșu, verde, albastru pentru a detecta culoarea luminii sau culoarea obiectului presetată la suprafața modulului. Deci, acesta este mai mult un modul senzor de culoare decât un modul senzor de intensitate luminoasă.
Acum vom alimenta această ieșire cu undă pătrată către Raspberry Pi, dar nu o putem da direct PI, deoarece Raspberry Pi nu are contoare interne. Deci, mai întâi vom da această ieșire contorului binar CD4040 și vom programa Raspberry Pi pentru a lua valoarea frecvenței din contor la intervale periodice de 100 msec.
Deci PI citește o valoare de 2500/10 = 250 max pentru fiecare culoare ROȘU, VERDE și ALBASTRU. De asemenea, am programat Raspberry Pi pentru a imprima aceste valori reprezentând intensitățile luminii de pe ecran, așa cum se arată mai jos. Valorile sunt scăzute din valorile implicite pentru a ajunge la zero. Acest lucru este util la stabilirea culorii.
Aici valorile implicite sunt valorile RGB, care au fost luate fără a plasa niciun obiect în fața senzorului. Depinde de condițiile de lumină din jur și aceste valori pot diferi în funcție de mediul înconjurător. Practic, calibrăm senzorul pentru citiri standard. Deci, mai întâi rulați programul fără a plasa niciun obiect și notați citirile. Aceste valori nu vor fi aproape de zero, deoarece va exista întotdeauna o lumină care cade pe senzor, indiferent de locul în care îl plasați. Apoi scade acele citiri cu citirile pe care le vom obține după plasarea unui obiect pentru testare. Astfel putem obține citiri standard.
Raspberry Pi este, de asemenea, programat pentru a compara valorile R, G și B pentru a determina culoarea obiectului plasat lângă senzor. Acest rezultat este arătat de LED-ul RGB luminos conectat la Raspberry Pi.
Deci, pe scurt,
1. Modulul detectează lumina reflectată de obiectul plasat lângă suprafață.
2. Modulul senzorului de culoare oferă unda de ieșire pentru R sau G sau B, aleasă secvențial de Raspberry Pi prin intermediul pinilor S2 și S3.
3. Contorul CD4040 preia valul și măsoară valoarea frecvenței.
4. PI ia valoarea de frecvență de pe contor pentru fiecare culoare pentru fiecare 100ms. După luarea valorii de fiecare dată când PI resetează contorul pentru a detecta următoarea valoare.
5. Raspberry Pi tipărește aceste valori pe ecran și compară aceste valori pentru a detecta culoarea obiectului și pentru a aprinde în cele din urmă LED-ul RGB în culoarea corespunzătoare, în funcție de culoarea obiectului.
Am urmat secvența de mai sus din Codul nostru Python. Programul complet este prezentat mai jos cu un videoclip demonstrativ.
Aici Raspberry Pi este programat să detecteze doar trei culori, puteți potrivi valorile R, G și B în consecință pentru a detecta mai multe culori pe placul dvs.