Tässä projektissa aiomme tunnistaa värit TCS3200-värianturimoduulilla Raspberry Pi: n kanssa. Tässä käytimme Raspberry Pi: n Python-koodia värien tunnistamiseen TCS3200-anturilla. RGB-LED-värin tunnistuksen osoittamiseksi tämä RGB-merkkivalo palaa samalla värillä, jonka esine on lähellä anturia. Tällä hetkellä olemme ohjelmoineet Raspberry Pi: n havaitsemaan vain punaiset, vihreät ja siniset värit. Mutta voit ohjelmoida sen havaitsemaan kaikki värit saatuasi RGB-arvot, koska jokainen väri koostuu näistä RGB-komponenteista. Tarkista esittelyvideo lopussa.
Olemme aiemmin lukeneet ja näyttäneet värien RGB-arvot samalla TCS3200: lla Arduinon kanssa. Ennen kuin jatkat, kerro TCS3200-väritunnistimesta.
TCS3200-värianturi:
TCS3200 on värianturi, joka tunnistaa minkä tahansa määrän värejä oikealla ohjelmoinnilla. TCS3200 sisältää RGB (punainen vihreä sininen) taulukot. Kuten kuvassa on esitetty mikroskooppisella tasolla, anturin silmässä näkyvät neliön muotoiset ruudut. Nämä neliölaatikot ovat RGB-matriisiryhmiä. Kukin näistä laatikoista sisältää kolme anturia punaisen, vihreän ja sinisen valon voimakkuuden tunnistamiseksi.
Joten meillä on punainen, sininen ja vihreä taulukot samassa kerroksessa. Joten vaikka havaitsemme väriä, emme voi havaita kaikkia kolmea elementtiä samanaikaisesti. Jokainen näistä anturiryhmistä on valittava erikseen peräkkäin värin havaitsemiseksi. Moduuli voidaan ohjelmoida tunnistamaan tietty väri ja jättämään muut. Se sisältää nastoja kyseistä valintatarkoitusta varten, mikä on selitetty myöhemmin. On neljäs tila, joka ei ole suodatintila; ilman suodatintilaa anturi havaitsee valkoisen valon.
Yhdistämme tämän anturin Vadelma Pi: hen ja ohjelmoimme Vadelma Pi: n antamaan sopivan vasteen väristä riippuen.
Vaaditut komponentit:
Tässä käytämme Raspberry Pi 2 -mallia B Raspbian Jessie -käyttöjärjestelmän kanssa. Kaikista laitteisto- ja ohjelmistovaatimuksista on keskusteltu aiemmin, voit etsiä niitä Raspberry Pi -esittelystä ja Vadelma PI -merkkivalo vilkkuu aloittaaksesi, paitsi mitä tarvitsemme:
- Raspberry Pi esiasennetulla käyttöjärjestelmällä
- TCS3200 -värianturi
- CD4040-laskuripiiri
- RGB-LED
- 1KΩ vastus (3 kpl)
- 1000uF kondensaattori
Piirikaavio ja liitännät:
Liitännät, jotka tehdään värianturin liittämiseksi Vadelma Pi: hen, on esitetty alla olevassa taulukossa:
Anturin nastat |
Vadelma Pi-nastat |
Vcc |
+ 3,3 v |
GND |
maahan |
S0 |
+ 3,3 v |
S1 |
+ 3,3 v |
S2 |
PI: n GPIO6 |
S3 |
PI: n GPIO5 |
OE |
PI: n GPIO22 |
OUT |
CD4040: n CLK |
CD4040-laskurin ja Raspberry Pi: n liitännät on esitetty alla olevassa taulukossa:
CD4040-nastat |
Vadelma Pi-nastat |
Vcc16 |
+ 3,3 v |
Gnd8 |
gnd |
Clk10 |
Anturin OUT |
Nollaa 11 |
PI: n GPIO26 |
Q0 |
PI: n GPIO21 |
Q1 |
PI: n GPIO20 |
Q2 |
PI: n GPIO16 |
Q3 |
PI: n GPIO12 |
Q4 |
PI: n GPIO25 |
Q5 |
PI: n GPIO24 |
Q6 |
PI: n GPIO23 |
Q7 |
PI: n GPIO18 |
Q8 |
Ei yhteyttä |
Q9 |
Ei yhteyttä |
Q10 |
Ei yhteyttä |
Q11 |
Ei yhteyttä |
Alla on Raspberry Pi -liitännän värianturin täydellinen kytkentäkaavio:
Työselitys:
Jokainen väri koostuu kolmesta väristä: punainen, vihreä ja sininen (RGB). Ja jos tiedämme RGB: n intensiteetit missä tahansa värissä, voimme havaita kyseisen värin. Olemme aiemmin lukeneet nämä RGB-arvot Arduinolla.
TCS3200-väritunnistinta käytettäessä emme voi havaita punaista, vihreää ja sinistä valoa samanaikaisesti, joten meidän on tarkistettava ne yksitellen. Väri, joka väritunnistimen on tunnistettava, valitaan kahdella nastalla S2 ja S3. Näillä kahdella tapilla voimme kertoa anturille, mikä värivalon voimakkuus on mitattava.
Sano, jos meidän on aistittava punaisen värin voimakkuus, meidän on asetettava molemmat nastat LOW-arvoksi. Kun PUNAINEN valo on mitattu, asetamme S2 LOW ja S3 HIGH mittaamaan sinisen valon. Muuttamalla S2: n ja S3: n logiikkaa peräkkäin voimme mitata punaisen, sinisen ja vihreän valon voimakkuuden alla olevan taulukon mukaisesti:
S2 |
S3 |
Valodiodityyppi |
Matala |
Matala |
Punainen |
Matala |
Korkea |
Sininen |
Korkea |
Matala |
Ei suodatinta (valkoinen) |
Korkea |
Korkea |
Vihreä |
Kun anturi tunnistaa RGB-komponenttien voimakkuudet, arvo lähetetään ohjausjärjestelmään moduulin sisällä alla olevan kuvan mukaisesti. Matriisilla mitattu valon voimakkuus lähetetään moduulin sisällä olevaan virta-taajuus -muuntimeen. Taajuusmuuttaja tuottaa neliöaallon, jonka taajuus on suoraan verrannollinen matriisin lähettämään arvoon. ARRAY: n suuremmalla arvolla virta-taajuusmuuttaja tuottaa korkeamman taajuuden neliöaallon.
Värianturimoduulin lähtösignaalin taajuus voidaan säätää neljälle tasolle. Nämä tasot valitaan anturimoduulin S0 ja S1 avulla alla olevan kuvan mukaisesti.
S0 |
S1 |
Lähtötaajuuden skaalaus (f0) |
L |
L |
Katkaise virta |
L |
H |
2% |
H |
L |
20% |
H |
H |
100% |
Tämä ominaisuus on kätevä, kun liitämme tämän moduulin järjestelmään matalalla kellolla. Raspberry Pi: llä valitsemme 100%. Muista, että varjossa väritunnistinmoduuli tuottaa neliöaaltolähdön, jonka maksimitaajuus on 2500 Hz (100%: n skaalaus) kullekin värille.
Vaikka moduuli tuottaa ulostulon neliöaallon, jonka taajuus on suoraan verrannollinen sen pinnalle putoavaan valon voimakkuuteen, ei ole helppoa tapaa laskea kunkin värin valovoima tällä moduulilla. Voimme kuitenkin kertoa, onko valon voimakkuus lisääntymässä vai pienenemässä jokaiselle värille. Voimme myös laskea ja verrata punaista, vihreää, sinistä arvoa havaitsemaan moduulin pinnalla olevan valon tai esiasetetun kohteen värin. Joten tämä on enemmän Color Sensor -moduulia kuin Light Intensity Sensor -moduulia.
Syötämme nyt tämän neliöaaltolähdön Vadelma Pi: lle, mutta emme voi antaa sitä suoraan PI: lle, koska Vadelma Pi: llä ei ole sisäisiä laskureita. Joten ensin annamme tämän lähdön CD4040-binaarilaskurille ja ohjelmoimme Vadelma Pi: n ottamaan taajuusarvon laskurista 100 ms: n jaksottaisin välein.
Joten PI lukee arvon 2500/10 = 250 max jokaiselle PUNAISELLE, VIHREälle ja SINISELLE värille. Olemme myös ohjelmoineet Vadelma Pi: n tulostamaan nämä valon voimakkuutta vastaavat arvot näytöllä alla olevan kuvan mukaisesti. Arvot vähennetään oletusarvoista päästäkseen nollaan. Tämä on kätevä, kun päätät värin.
Tässä oletusarvot ovat RGB-arvot, jotka on otettu asettamatta mitään esineitä anturin eteen. Se riippuu ympäröivistä valaistusolosuhteista ja nämä arvot voivat vaihdella ympäristön mukaan. Periaatteessa kalibroimme anturin vakiolukemia varten. Joten suorita ensin ohjelma asettamatta mitään esineitä ja huomioi lukemat. Nämä arvot eivät ole lähellä nollaa, koska anturiin putoaa aina valoa riippumatta siitä, mihin se sijoitetaan. Vähennä sitten lukemat lukemilla, jotka saamme testattavan kohteen asettamisen jälkeen. Tällä tavalla voimme saada vakiolukemat.
Vadelma Pi on myös ohjelmoitu vertaamaan R-, G- ja B-arvoja anturin lähelle sijoitetun kohteen värin määrittämiseksi. Tulos näkyy Hehkuvalla RGB-LEDillä, joka on kytketty Vadelma Pi: hen.
Joten pähkinänkuoressa,
1. Moduuli havaitsee lähelle pintaa sijoitetun kohteen heijastaman valon.
2. Värianturimoduuli tarjoaa lähtöaallon R: lle tai G: lle tai B: lle, jonka Vadelma Pi valitsee peräkkäin nastojen S2 ja S3 kautta.
3. CD4040 Laskuri ottaa aallon ja mittaa taajuusarvon.
4. PI ottaa taajuusarvon laskurilta jokaiselle värille 100 ms välein. Arvon ottamisen jälkeen joka kerta PI nollaa laskurin seuraavan arvon havaitsemiseksi.
5. Vadelma Pi tulostaa nämä arvot näytölle ja vertaa näitä arvoja havaitsemaan kohteen värin ja lopuksi hehkuttamaan RGB-LEDiä sopivalla värillä kohteen väristä riippuen.
Olemme noudattaneet yllä olevaa järjestystä Python-koodissamme. Koko ohjelma on esitetty alla esittelyvideolla.
Täällä Vadelma Pi on ohjelmoitu havaitsemaan vain kolme väriä. Voit sovittaa R-, G- ja B-arvot vastaavasti tunnistaaksesi enemmän värejä mieleisekseen.