ఈ ప్రాజెక్ట్లో మేము రాస్ప్బెర్రీ పైతో TCS3200 కలర్ సెన్సార్ మాడ్యూల్ ఉపయోగించి రంగులను గుర్తించబోతున్నాం. ఇక్కడ మేము TCS3200 సెన్సార్ ఉపయోగించి రంగులను గుర్తించడానికి రాస్ప్బెర్రీ పై కోసం పైథాన్ కోడ్ను ఉపయోగించాము. మేము RGB LED ని ఉపయోగించిన రంగు గుర్తింపును ప్రదర్శించడానికి, ఈ RGB LED అదే రంగులో మెరుస్తుంది, వీటిలో వస్తువు సెన్సార్ దగ్గర ప్రదర్శించబడుతుంది. ప్రస్తుతం మేము ఎరుపు, ఆకుపచ్చ మరియు నీలం రంగులను మాత్రమే గుర్తించడానికి రాస్ప్బెర్రీ పైని ప్రోగ్రామ్ చేసాము. ప్రతి రంగు ఈ RGB భాగాలతో తయారైనందున, RGB విలువలను పొందిన తర్వాత ఏదైనా రంగును గుర్తించడానికి మీరు దీన్ని ప్రోగ్రామ్ చేయవచ్చు. చివర డెమో వీడియోను తనిఖీ చేయండి.
మేము ఇంతకుముందు అదే టిసిఎస్ 3200 ను ఆర్డునోతో ఉపయోగించి రంగుల యొక్క RGB విలువలను చదివి ప్రదర్శించాము. ఇంకేముందు వెళ్ళే ముందు, TCS3200 కలర్ సెన్సార్ గురించి తెలుసుకుందాం.
TCS3200 కలర్ సెన్సార్:
TCS3200 అనేది కలర్ సెన్సార్, ఇది సరైన ప్రోగ్రామింగ్తో ఎన్ని రంగులను గుర్తించగలదు. TCS3200 లో RGB (రెడ్ గ్రీన్ బ్లూ) శ్రేణులు ఉన్నాయి. మైక్రోస్కోపిక్ స్థాయిలో చిత్రంలో చూపినట్లుగా, కంటి లోపల చదరపు పెట్టెలను సెన్సార్లో చూడవచ్చు. ఈ చదరపు పెట్టెలు RGB మాతృక యొక్క శ్రేణులు. ఈ పెట్టెల్లో ప్రతి ఎరుపు, ఆకుపచ్చ మరియు నీలి కాంతి తీవ్రతను సెన్సింగ్ చేయడానికి మూడు సెన్సార్లు ఉంటాయి.
కాబట్టి మనకు ఒకే పొరలో ఎరుపు, నీలం మరియు ఆకుపచ్చ శ్రేణులు ఉన్నాయి. కాబట్టి రంగును గుర్తించేటప్పుడు మేము మూడు మూలకాలను ఒకేసారి గుర్తించలేము. ఈ ప్రతి సెన్సార్ శ్రేణుల రంగును గుర్తించడానికి ఒకదాని తరువాత ఒకటి విడిగా ఎంచుకోవాలి. మాడ్యూల్ నిర్దిష్ట రంగును గ్రహించడానికి మరియు ఇతరులను వదిలివేయడానికి ప్రోగ్రామ్ చేయవచ్చు. ఆ ఎంపిక ప్రయోజనం కోసం ఇది పిన్లను కలిగి ఉంది, ఇది తరువాత వివరించబడింది. వడపోత మోడ్ లేని ముందుకు మోడ్ ఉంది; ఫిల్టర్ మోడ్ లేకుండా సెన్సార్ తెల్లని కాంతిని కనుగొంటుంది.
మేము ఈ సెన్సార్ను రాస్ప్బెర్రీ పైకి కనెక్ట్ చేస్తాము మరియు రంగును బట్టి తగిన ప్రతిస్పందనను అందించడానికి రాస్ప్బెర్రీ పైని ప్రోగ్రామ్ చేస్తాము.
అవసరమైన భాగాలు:
ఇక్కడ మేము రాస్ప్బెర్రీ పై 2 మోడల్ B ని రాస్పియన్ జెస్సీ OS తో ఉపయోగిస్తున్నాము. అన్ని ప్రాథమిక హార్డ్వేర్ మరియు సాఫ్ట్వేర్ అవసరాలు ఇంతకుముందు చర్చించబడ్డాయి, మీరు దీన్ని ప్రారంభించటానికి రాస్ప్బెర్రీ పై ఇంట్రడక్షన్ మరియు రాస్ప్బెర్రీ పిఐ ఎల్ఇడి బ్లింకింగ్ లో చూడవచ్చు.
- ముందే వ్యవస్థాపించిన OS తో రాస్ప్బెర్రీ పై
- TCS3200 కలర్ సెన్సార్
- CD4040 కౌంటర్ చిప్
- RGB LED
- 1KΩ నిరోధకం (3 ముక్కలు)
- 1000uF కెపాసిటర్
సర్క్యూట్ రేఖాచిత్రం మరియు కనెక్షన్లు:
కలర్ సెన్సార్ను రాస్ప్బెర్రీ పైతో కనెక్ట్ చేయడానికి చేసిన కనెక్షన్లు క్రింది పట్టికలో ఇవ్వబడ్డాయి:
సెన్సార్ పిన్స్ |
రాస్ప్బెర్రీ పై పిన్స్ |
విసిసి |
+ 3.3 వి |
GND |
నేల |
ఎస్ 0 |
+ 3.3 వి |
ఎస్ 1 |
+ 3.3 వి |
ఎస్ 2 |
PI యొక్క GPIO6 |
ఎస్ 3 |
PI యొక్క GPIO5 |
OE |
PI యొక్క GPIO22 |
అవుట్ |
CD4040 యొక్క CLK |
రాస్ప్బెర్రీ పైతో CD4040 కౌంటర్ కోసం కనెక్షన్లు క్రింద పట్టికలో ఇవ్వబడ్డాయి:
CD4040 పిన్స్ |
రాస్ప్బెర్రీ పై పిన్స్ |
Vcc16 |
+ 3.3 వి |
Gnd8 |
gnd |
Clk10 |
సెన్సార్ వెలుపల |
రీసెట్ 11 |
PI యొక్క GPIO26 |
Q0 |
PI యొక్క GPIO21 |
Q1 |
PI యొక్క GPIO20 |
Q2 |
PI యొక్క GPIO16 |
Q3 |
PI యొక్క GPIO12 |
Q4 |
PI యొక్క GPIO25 |
Q5 |
PI యొక్క GPIO24 |
Q6 |
PI యొక్క GPIO23 |
Q7 |
PI యొక్క GPIO18 |
Q8 |
కనెక్షన్ లేదు |
Q9 |
కనెక్షన్ లేదు |
Q10 |
కనెక్షన్ లేదు |
Q11 |
కనెక్షన్ లేదు |
రాస్ప్బెర్రీ పైతో ఇంటర్ఫేసింగ్ కలర్ సెన్సార్ యొక్క పూర్తి సర్క్యూట్ రేఖాచిత్రం క్రింద ఉంది:
పని వివరణ:
ప్రతి రంగు మూడు రంగులతో రూపొందించబడింది: ఎరుపు, ఆకుపచ్చ మరియు నీలం (RGB). ఏ రంగులోనైనా RGB యొక్క తీవ్రత మనకు తెలిస్తే, ఆ రంగును మనం గుర్తించవచ్చు. మేము గతంలో ఈ RGB విలువలను Arduino ఉపయోగించి చదివాము.
TCS3200 కలర్ సెన్సార్ ఉపయోగించి, మేము ఎరుపు, ఆకుపచ్చ మరియు నీలిరంగు కాంతిని ఒకే సమయంలో గుర్తించలేము కాబట్టి వాటిని ఒక్కొక్కటిగా తనిఖీ చేయాలి. కలర్ సెన్సార్ ద్వారా గ్రహించాల్సిన రంగును రెండు పిన్స్ ఎస్ 2 మరియు ఎస్ 3 ఎంపిక చేస్తుంది. ఈ రెండు పిన్లతో, ఏ రంగు కాంతి తీవ్రతను కొలవాలో సెన్సార్కు తెలియజేయవచ్చు.
మేము ఎరుపు రంగు తీవ్రతను గ్రహించాల్సిన అవసరం ఉంటే, అప్పుడు మేము రెండు పిన్లను తక్కువకు సెట్ చేయాలి. RED కాంతిని కొలిచిన తరువాత, నీలిరంగు కాంతిని కొలవడానికి మేము S2 LOW మరియు S3 HIGH ని సెట్ చేస్తాము. S2 మరియు S3 యొక్క లాజిక్లను వరుసగా మార్చడం ద్వారా మేము క్రింద ఇచ్చిన పట్టిక ప్రకారం ఎరుపు, నీలం మరియు ఆకుపచ్చ కాంతి తీవ్రతలను కొలవవచ్చు:
ఎస్ 2 |
ఎస్ 3 |
ఫోటోడియోడ్ రకం |
తక్కువ |
తక్కువ |
ఎరుపు |
తక్కువ |
అధిక |
నీలం |
అధిక |
తక్కువ |
వడపోత లేదు (తెలుపు) |
అధిక |
అధిక |
ఆకుపచ్చ |
సెన్సార్ RGB భాగాల తీవ్రతను గుర్తించిన తర్వాత, విలువ క్రింద ఉన్న చిత్రంలో చూపిన విధంగా మాడ్యూల్ లోపల ఉన్న నియంత్రణ వ్యవస్థకు పంపబడుతుంది. శ్రేణి ద్వారా కొలవబడిన కాంతి తీవ్రత మాడ్యూల్ లోపల కరెంట్ టు ఫ్రీక్వెన్సీ కన్వర్టర్కు పంపబడుతుంది. ఫ్రీక్వెన్సీ కన్వర్టర్ శ్రేణి పంపిన విలువకు నేరుగా అనులోమానుపాతంలో ఉండే చదరపు తరంగాన్ని ఉత్పత్తి చేస్తుంది. ARRAY నుండి అధిక విలువతో, కరెంట్ టు ఫ్రీక్వెన్సీ కన్వర్టర్ అధిక పౌన.పున్యం యొక్క చదరపు తరంగాన్ని ఉత్పత్తి చేస్తుంది.
కలర్ సెన్సార్ మాడ్యూల్ ద్వారా అవుట్పుట్ సిగ్నల్ ఫ్రీక్వెన్సీని నాలుగు స్థాయిలకు సర్దుబాటు చేయవచ్చు. దిగువ చిత్రంలో చూపిన విధంగా సెన్సార్ మాడ్యూల్ యొక్క S0 మరియు S1 ఉపయోగించి ఈ స్థాయిలు ఎంపిక చేయబడతాయి.
ఎస్ 0 |
ఎస్ 1 |
అవుట్పుట్ ఫ్రీక్వెన్సీ స్కేలింగ్ (f0) |
ఎల్ |
ఎల్ |
పవర్ డౌన్ |
ఎల్ |
హెచ్ |
2% |
హెచ్ |
ఎల్ |
20% |
హెచ్ |
హెచ్ |
100% |
మేము ఈ మాడ్యూల్ను తక్కువ గడియారంతో సిస్టమ్కు ఇంటర్ఫేస్ చేస్తున్నప్పుడు ఈ లక్షణం ఉపయోగపడుతుంది. రాస్ప్బెర్రీ పైతో మేము 100% ఎంచుకుంటాము. ఇక్కడ గుర్తుంచుకోండి, నీడ కింద కలర్ సెన్సార్ మాడ్యూల్ చదరపు వేవ్ అవుట్పుట్ను ఉత్పత్తి చేస్తుంది, దీని గరిష్ట పౌన frequency పున్యం ప్రతి రంగుకు 2500Hz (100% స్కేలింగ్).
మాడ్యూల్ అవుట్పుట్ స్క్వేర్ వేవ్ను అందించినప్పటికీ, దాని ఫ్రీక్వెన్సీ దాని ఉపరితలంపై పడే కాంతి తీవ్రతకు నేరుగా అనులోమానుపాతంలో ఉంటుంది, ఈ మాడ్యూల్ ద్వారా ప్రతి రంగు యొక్క కాంతి తీవ్రతను లెక్కించడానికి సులభమైన మార్గం లేదు. అయితే ప్రతి రంగుకు కాంతి తీవ్రత పెరుగుతుందా లేదా తగ్గుతుందో మనం చెప్పగలం. మాడ్యూల్ యొక్క ఉపరితలం వద్ద కాంతి రంగు లేదా ఆబ్జెక్ట్ ప్రీసెట్ యొక్క రంగును గుర్తించడానికి మేము ఎరుపు, ఆకుపచ్చ, నీలం విలువలను లెక్కించవచ్చు మరియు పోల్చవచ్చు. కాబట్టి ఇది లైట్ ఇంటెన్సిటీ సెన్సార్ మాడ్యూల్ కంటే కలర్ సెన్సార్ మాడ్యూల్ ఎక్కువ.
ఇప్పుడు మేము ఈ స్క్వేర్ వేవ్ అవుట్పుట్ను రాస్ప్బెర్రీ పైకి తింటాము కాని దానిని నేరుగా పిఐకి ఇవ్వలేము, ఎందుకంటే రాస్ప్బెర్రీ పైకి అంతర్గత కౌంటర్లు లేవు. కాబట్టి మొదట మేము ఈ అవుట్పుట్ను CD4040 బైనరీ కౌంటర్కు ఇస్తాము మరియు 100msec యొక్క ఆవర్తన వ్యవధిలో కౌంటర్ నుండి ఫ్రీక్వెన్సీ విలువను తీసుకోవడానికి మేము రాస్ప్బెర్రీ పైని ప్రోగ్రామ్ చేస్తాము.
కాబట్టి PI ప్రతి RED, GREEN మరియు BLUE రంగులకు 2500/10 = 250 గరిష్ట విలువను చదువుతుంది. క్రింద చూపిన విధంగా తెరపై కాంతి తీవ్రతలను సూచించే ఈ విలువలను ముద్రించడానికి మేము రాస్ప్బెర్రీ పైని ప్రోగ్రామ్ చేసాము. విలువలు సున్నాకి చేరుకోవడానికి డిఫాల్ట్ విలువల నుండి తీసివేయబడతాయి. రంగును నిర్ణయించేటప్పుడు ఇది ఉపయోగపడుతుంది.
ఇక్కడ డిఫాల్ట్ విలువలు RGB యొక్క విలువలు, ఇవి ఏ వస్తువును సెన్సార్ ముందు ఉంచకుండా తీసుకున్నాయి. ఇది చుట్టుపక్కల కాంతి పరిస్థితులపై ఆధారపడి ఉంటుంది మరియు ఈ విలువలు పరిసరాల ప్రకారం భిన్నంగా ఉంటాయి. ప్రాథమికంగా మేము ప్రామాణిక రీడింగుల కోసం సెన్సార్ను క్రమాంకనం చేస్తున్నాము. కాబట్టి మొదట ఏ వస్తువును ఉంచకుండా ప్రోగ్రామ్ను అమలు చేయండి మరియు రీడింగులను గమనించండి. ఈ విలువలు సున్నాకి దగ్గరగా ఉండవు, ఎందుకంటే మీరు ఎక్కడ ఉంచినా సెన్సార్పై కొంత కాంతి ఉంటుంది. ఆ రీడింగులను పరీక్షించడానికి ఒక వస్తువును ఉంచిన తర్వాత మనకు లభించే రీడింగులతో తీసివేయండి. ఈ విధంగా మనం ప్రామాణిక రీడింగులను పొందవచ్చు.
సెన్సార్ దగ్గర ఉంచిన వస్తువు యొక్క రంగును నిర్ణయించడానికి R, G మరియు B విలువలను పోల్చడానికి రాస్ప్బెర్రీ పై కూడా ప్రోగ్రామ్ చేయబడింది. రాస్ప్బెర్రీ పైకి కనెక్ట్ చేయబడిన RGB LED ను మెరుస్తూ ఈ ఫలితం చూపబడుతుంది.
కాబట్టి క్లుప్తంగా,
1. మాడ్యూల్ ఉపరితలం దగ్గర ఉంచిన వస్తువు ప్రతిబింబించే కాంతిని కనుగొంటుంది.
2. కలర్ సెన్సార్ మాడ్యూల్ R లేదా G లేదా B కొరకు అవుట్పుట్ వేవ్ను అందిస్తుంది, పిన్స్ ఎస్ 2 మరియు ఎస్ 3 ద్వారా రాస్ప్బెర్రీ పై వరుసగా ఎంపిక చేస్తుంది.
3. CD4040 కౌంటర్ తరంగాన్ని తీసుకుంటుంది మరియు ఫ్రీక్వెన్సీ విలువను కొలుస్తుంది.
4. PI ప్రతి 100ms కోసం ప్రతి రంగుకు కౌంటర్ నుండి ఫ్రీక్వెన్సీ విలువను తీసుకుంటుంది. ప్రతిసారీ విలువను తీసుకున్న తరువాత, తదుపరి విలువను గుర్తించడానికి PI కౌంటర్ను రీసెట్ చేస్తుంది.
5. రాస్ప్బెర్రీ పై ఈ విలువలను తెరపై ప్రింట్ చేస్తుంది మరియు ఆబ్జెక్ట్ రంగును గుర్తించడానికి ఈ విలువలను పోల్చి చివరకు వస్తువు యొక్క రంగును బట్టి తగిన రంగులో RGB LED ని మెరుస్తుంది.
మేము పైథాన్ కోడ్లో పై క్రమాన్ని అనుసరించాము. ప్రదర్శన వీడియోతో పూర్తి ప్రోగ్రామ్ క్రింద ఇవ్వబడింది.
ఇక్కడ రాస్ప్బెర్రీ పై మూడు రంగులను మాత్రమే గుర్తించడానికి ప్రోగ్రామ్ చేయబడింది, మీరు ఇష్టపడే ఎక్కువ రంగులను గుర్తించడానికి మీరు R, G మరియు B విలువలతో సరిపోలవచ్చు.