- TCS3200 Color Sensor:
- Kinakailangan ang Mga Bahagi:
- Circuit Diagram at Mga Koneksyon:
- Paggawa ng Paliwanag:
Sa proyektong ito, matutukoy namin ang Mga Kulay gamit ang TCS3200 Color Sensor Module na may Raspberry Pi. Dito ginamit namin ang Python code para sa Raspberry Pi upang makita ang mga kulay gamit ang TCS3200 sensor. Upang maipakita ang pagtuklas ng kulay na ginamit namin ng isang RGB LED, ang RGB LED na ito ay mamula sa parehong kulay, kung saan ipinakita ang bagay malapit sa sensor. Sa kasalukuyan ay nai-program namin ang Raspberry Pi upang makita lamang ang mga Pula, berde at asul na mga kulay. Ngunit maaari mo itong i-program upang makita ang anumang kulay pagkatapos makuha ang mga halagang RGB, dahil ang bawat kulay ay binubuo ng mga sangkap na RGB na ito. Suriin ang demo na Video sa dulo.
Nabasa na namin dati at ipinakita ang mga halagang RGB ng mga kulay gamit ang parehong TCS3200 kasama ang Arduino. Bago magpatuloy, ipaalam ang tungkol sa TCS3200 Color Sensor.
TCS3200 Color Sensor:
Ang TCS3200 ay isang Sensor ng Kulay na maaaring makakita ng anumang bilang ng mga kulay na may tamang programa. Naglalaman ang TCS3200 ng mga array na RGB (Red Green Blue). Tulad ng ipinakita sa pigura sa antas ng mikroskopiko, makikita ng isang tao ang mga parisukat na kahon sa loob ng mata sa sensor. Ang mga square box na ito ay mga arrays ng RGB matrix. Ang bawat isa sa mga kahon na ito ay naglalaman ng tatlong mga sensor para sa pandama ng Red, Green at Blue light intensity.
Kaya mayroon kaming mga Red, Blue at Green arrays sa parehong layer. Kaya't habang nakikita ang kulay ay hindi namin makita ang lahat ng tatlong mga elemento nang sabay-sabay. Ang bawat isa sa mga sensor ng arrays na ito ay pipiliin nang magkahiwalay na sunud-sunod upang makita ang kulay. Maaaring mai-program ang modyul upang maunawaan ang partikular na kulay at iwanan ang iba. Naglalaman ito ng mga pin para sa layuning iyon ng pagpili, na naipaliwanag sa paglaon. Mayroong pabalik na mode na walang filter mode; na walang filter mode ang sensor ay nakakita ng puting ilaw.
Ikonekta namin ang sensor na ito sa Raspberry Pi at ipaprogram ang Raspberry Pi upang magbigay ng naaangkop na tugon depende sa kulay.
Kinakailangan ang Mga Bahagi:
Narito ginagamit namin ang Raspberry Pi 2 Model B kasama ang Raspbian Jessie OS. Ang lahat ng pangunahing mga kinakailangan sa Hardware at Software ay dati nang tinalakay, maaari mo itong tingnan sa Panimula ng Raspberry Pi at Raspberry PI LED Blinking para sa pagsisimula, bukod sa kailangan namin:
- Raspberry Pi na may paunang naka-install na OS
- Sensor ng kulay ng TCS3200
- CD4040 counter chip
- RGB LED
- 1KΩ risistor (3 piraso)
- 1000uF capacitor
Circuit Diagram at Mga Koneksyon:
Ang mga koneksyon na tapos na para sa pagkonekta ng Color Sensor sa Raspberry Pi ay ibinibigay sa ibaba ng talahanayan:
Mga Sensor Pins |
Mga Raspberry Pi Pins |
Vcc |
+ 3.3v |
GND |
lupa |
S0 |
+ 3.3v |
S1 |
+ 3.3v |
S2 |
GPIO6 ng PI |
S3 |
GPIO5 ng PI |
OE |
GPIO22 ng PI |
PALABAS |
CLK ng CD4040 |
Ang mga koneksyon para sa CD4040 counter sa Raspberry Pi ay ibinibigay sa ibaba ng talahanayan:
CD4040 Mga Pin |
Mga Raspberry Pi Pins |
Vcc16 |
+ 3.3v |
Gnd8 |
gnd |
Clk10 |
LABAS ng sensor |
I-reset11 |
GPIO26 ng PI |
Q0 |
GPIO21 ng PI |
Q1 |
GPIO20 ng PI |
Q2 |
GPIO16 ng PI |
Q3 |
GPIO12 ng PI |
Q4 |
GPIO25 ng PI |
Q5 |
GPIO24 ng PI |
Q6 |
GPIO23 ng PI |
Q7 |
GPIO18 ng PI |
Q8 |
Walang koneksyon |
Q9 |
Walang koneksyon |
Q10 |
Walang koneksyon |
Q11 |
Walang koneksyon |
Nasa ibaba ang buong diagram ng circuit ng Interfacing Color Sensor na may Raspberry Pi:
Paggawa ng Paliwanag:
Ang bawat kulay ay binubuo ng tatlong mga kulay: Pula, berde at Asul (RGB). At kung alam natin ang kasidhian ng RGB sa anumang kulay, maaari nating makita ang kulay na iyon. Nabasa na namin dati ang mga halagang RGB na ito gamit ang Arduino.
Gamit ang TCS3200 Color Sensor, hindi namin mahahanap ang Pula, berde at Asul na ilaw nang sabay kaya kailangan naming suriin ang mga ito isa-isa. Ang kulay na kailangang ma-sensed ng Color Sensor ay napili ng dalawang mga pin na S2 at S3. Sa dalawang pin na ito, masasabi natin sa sensor kung aling sukat ng ilaw ng kulay ang susukat.
Sabihin kung kailangan nating maunawaan ang Pulang kulay ng kulay pagkatapos ay kailangan nating itakda ang parehong mga pin sa LOW. Matapos masukat ang RED light, magtatakda kami ng S2 LOW at S3 HIGH upang masukat ang asul na ilaw. Sa pamamagitan ng sunud-sunod na pagbabago ng mga lohika ng S2 at S3 maaari naming sukatin ang mga intensidad ng pula, Asul at Green na ilaw, ayon sa ibabang talahanayan sa ibaba:
S2 |
S3 |
Uri ng Photodiode |
Mababa |
Mababa |
Pula |
Mababa |
Mataas |
Bughaw |
Mataas |
Mababa |
Walang filter (puti) |
Mataas |
Mataas |
Berde |
Kapag nakita ng sensor ang tindi ng mga sangkap ng RGB, ipinadala ang halaga sa control system sa loob ng module tulad ng ipinakita sa pigura sa ibaba. Ang intensity ng ilaw na sinusukat ng array ay ipinadala sa Kasalukuyang converter ng Frequency sa loob ng module. Ang converter ng dalas ay bumubuo ng isang square wave na ang dalas ay direktang proporsyonal sa halagang ipinadala ng array. Na may mas mataas na halaga mula sa ARRAY, ang Kasalukuyang converter ng Frequency ay bumubuo ng square alon ng mas mataas na dalas.
Ang dalas ng output signal ng module ng color sensor ay maaaring iakma sa apat na antas. Ang mga antas na ito ay napili sa pamamagitan ng paggamit ng S0 at S1 ng module ng sensor tulad ng ipinapakita sa ibaba ng pigura.
S0 |
S1 |
Pag-scale ng Frequency ng Frequency (f0) |
L |
L |
Power Down |
L |
H |
2% |
H |
L |
20% |
H |
H |
100% |
Ang tampok na ito ay madaling gamitin kapag kami ay interfacing ang module na ito sa system na may mababang orasan. Sa Raspberry Pi pipiliin namin ang 100%. Tandaan dito, sa ilalim ng lilim ang Color Sensor Module ay bumubuo ng isang square wave output na ang maximum na dalas ay 2500Hz (100% scaling) para sa bawat kulay.
Bagaman ang module ay nagbibigay ng output square wave na ang dalas ay direktang proporsyon sa light intensity na bumabagsak sa ibabaw nito, walang madaling paraan upang makalkula ang light intensity ng bawat kulay ng modyul na ito. Gayunpaman maaari naming sabihin kung ang lakas ng ilaw ay tumataas o bumababa para sa bawat kulay. Maaari din nating kalkulahin at ihambing ang mga halagang Pula, berde, Asul upang makita ang kulay ng ilaw o kulay ng preset ng bagay sa ibabaw ng module. Kaya't higit ito sa module ng Color Sensor sa halip na module ng Light Intensity Sensor.
Ngayon ay papakainin namin ang output ng alon ng Square sa Raspberry Pi ngunit hindi namin ito maibigay nang direkta sa PI, dahil ang Raspberry Pi ay walang anumang panloob na mga counter. Kaya muna bibigyan namin ang output na ito sa CD4040 Binary Counter at ipaprogram namin ang Raspberry Pi upang kunin ang halaga ng dalas mula sa counter sa mga pana-panahong agwat ng 100msec.
Kaya't nagbabasa ang PI ng isang halaga na 2500/10 = 250 max para sa bawat kulay PULANG, GREEN at BLUE. Nag-program din kami ng Raspberry Pi upang mai-print ang mga halagang ito na kumakatawan sa mga light intensities sa screen tulad ng ipinakita sa ibaba. Ang mga halaga ay ibabawas mula sa mga default na halaga upang maabot ang zero. Ito ay madaling gamiting habang nagpapasya ng kulay.
Narito ang mga default na halaga ay ang mga halaga ng RGB, na kinuha nang hindi inilalagay ang anumang bagay sa harap ng sensor. Ito ay depende sa mga nakapaligid na kundisyon ng ilaw at ang mga halagang ito ay maaaring magkakaiba ayon sa paligid. Talaga ay pinapag-calibrate namin ang sensor para sa karaniwang mga pagbasa. Kaya't patakbuhin muna ang programa nang hindi naglalagay ng anumang bagay at tandaan ang mga pagbasa. Ang mga halagang ito ay hindi malapit sa zero dahil palaging may ilang ilaw na bumabagsak sa sensor kahit saan mo ito ilagay. Pagkatapos ibawas ang mga pagbabasa na iyon sa mga pagbabasa na makukuha natin pagkatapos maglagay ng isang bagay upang subukan. Sa ganitong paraan makakakuha tayo ng karaniwang mga pagbasa.
Naka-program din ang Raspberry Pi upang ihambing ang mga halagang R, G at B upang matukoy ang kulay ng bagay na inilagay malapit sa sensor. Ang resulta na ito ay ipinapakita sa pamamagitan ng kumikinang na RGB LED na konektado sa Raspberry Pi.
Sa madaling sabi,
1. Nakita ng modyul ang ilaw na nasasalamin ng bagay na nakalagay malapit sa ibabaw.
2. Ang Color Sensor Module ay nagbibigay ng output wave para sa R o G o B, na sunud-sunod na pinili ng Raspberry Pi sa pamamagitan ng Pins S2 at S3.
3. Ang CD4040 Counter ay kumukuha ng alon at sinusukat ang halaga ng dalas.
4. Kinukuha ng PI ang halaga ng dalas mula sa counter para sa bawat kulay para sa bawat 100ms. Matapos ang pagkuha ng halaga sa bawat oras na i-reset ng PI ang counter upang makita ang susunod na halaga.
5. I-print ng Raspberry Pi ang mga halagang ito sa screen at inihambing ang mga halagang ito upang makita ang kulay ng object at sa wakas ay mamula ang RGB LED sa naaangkop na kulay depende sa kulay ng object.
Sinundan namin ang pagkakasunud-sunod sa itaas sa aming Python Code. Ang buong programa ay ibinibigay sa ibaba na may isang Demonstration Video.
Dito naka-program ang Raspberry Pi upang makita ang tatlong kulay lamang, maaari mong itugma ang mga halagang R, G at B nang naaayon upang matukoy ang higit pang mga kulay na gusto mo.