Wprowadzenie do czujnika koloru RGB TCS3200

Wypróbuj Nasz Instrument Do Eliminowania Problemów





TCS3200 to kolorowy układ konwertera światła na częstotliwość, który można zaprogramować za pomocą mikrokontrolera. Moduł może być używany do wykrywania wszystkich 7 kolorów światła białego za pomocą zintegrowanego mikrokontrolera takiego jak Arduino.

W tym poście przyjrzymy się czujnikowi koloru RGB TCS3200, zrozumiemy, jak działa czujnik koloru i praktycznie przetestujemy czujnik TCS3200 za pomocą Arduino i wyodrębnimy przydatne dane.



Znaczenie rozpoznawania kolorów

Codziennie widzimy świat pełen bogatych kolorów, czy kiedykolwiek zastanawiałeś się, czym właściwie są kolory oprócz wizualnego odczucia. Cóż, kolory to fale elektromagnetyczne o różnych długościach fal. Czerwony, zielony, niebieski mają różne długości fal, ludzkie oczy są dostrojone do wychwytywania tych kolorów RGB, które jest wąskim pasmem widma elektromagnetycznego.

Ale widzimy więcej niż czerwony, niebieski i zielony, ponieważ nasz mózg może mieszać dwa lub więcej kolorów i wydzielać nowy kolor.



Zdolność widzenia różnych kolorów pomogła starożytnej cywilizacji ludzkiej uciec przed zagrażającymi życiu niebezpieczeństwami, takimi jak zwierzęta, a także pomaga zidentyfikować jadalne produkty, takie jak owoce, w odpowiednim momencie wzrostu, które będą przyjemne w spożyciu.

Kobiety lepiej rozpoznają różne odcienie kolorów (lepiej wrażliwe na kolory) niż mężczyźni, ale mężczyźni lepiej śledzą szybko poruszające się obiekty i odpowiednio reagują.

Wiele badań sugeruje, że dzieje się tak dlatego, że w starożytności mężczyźni wyjeżdżali na polowanie ze względu na większą niż kobiety siłę fizyczną.

Kobiety są honorowane mniej ryzykownymi zadaniami, takimi jak zbieranie owoców i innych jadalnych przedmiotów z roślin i drzew.

Zbieranie jadalnych produktów z roślin w ich prawidłowym wzroście (kolor owocu odgrywa ogromną rolę) było bardzo ważne dla dobrego trawienia, które pomogło ludziom przed problemami zdrowotnymi.

Te różnice w zdolnościach wzroku u mężczyzn i kobiet utrzymują się nawet w czasach współczesnych.

Dobrze, dlaczego powyższe wyjaśnienia dotyczące elektronicznego czujnika koloru? Cóż, ponieważ czujniki koloru są wytwarzane w oparciu o model koloru ludzkiego oka, a nie model koloru oczu innych zwierząt.

Na przykład, podwójna kamera w smartfonach, jedna z kamer jest specjalnie zaprojektowana do rozpoznawania kolorów RGB, a druga do robienia normalnych zdjęć. Połączenie tych dwóch obrazów / informacji za pomocą starannego algorytmu odtworzy dokładne kolory rzeczywistego obiektu na ekranie, tylko te, które ludzie mogą dostrzec.

Uwaga: nie wszystkie podwójne aparaty działają w taki sam sposób, jak wspomniano powyżej, niektóre są używane do zoomu optycznego, niektóre są używane do uzyskania efektu głębi pola itp.

Zobaczmy teraz, jak wytwarzane są czujniki koloru TCS3200.

Ilustracja czujnika TCS3200:

Czujnik TCS3200

Posiada 4 wbudowane białe diody LED do oświetlania obiektu. Ma 10 pinów, dwa piny Vcc i GND (użyj dowolnych dwóch z nich). Funkcja S0, S1, S2, S3, S4 i pinu „out” zostanie wkrótce wyjaśniona.

Jeśli przyjrzymy się bliżej czujnikowi, zobaczymy coś, co pokazano poniżej:

Ma matrycę 8 x 8 czujników koloru, w sumie 64. Blok fotoczujników ma czujniki czerwony, niebieski i zielony. Różne czujniki koloru są tworzone przez zastosowanie różnych filtrów kolorów na czujniku. Z 64 czujników ma 16 niebieskich, 16 zielonych, 16 czerwonych i 16 fotokomórek bez filtra koloru.

Filtr koloru niebieskiego pozwoli tylko niebieskiemu światłu padać na czujnik i odrzucić pozostałe długości fal (kolory). To samo dotyczy pozostałych dwóch czujników koloru.

Jeśli włączysz niebieskie światło na filtr czerwony lub zielony, mniej intensywne światło przejdzie przez zielony lub czerwony filtr w porównaniu z filtrem niebieskim. Tak więc czujnik z filtrem niebieskim otrzyma więcej światła w porównaniu do pozostałych dwóch.

Możemy więc umieścić czujniki kolorów z filtrami RGB w jednym bloku i świecić dowolnym kolorowym światłem, a odpowiedni czujnik koloru otrzyma więcej światła niż pozostałe dwa.

Mierząc intensywność światła otrzymanego przez czujnik, można ujawnić kolor, który świeciło.

Do interfejsu sygnału z czujnika do mikrokontrolera służy natężenie światła do przetwornicy częstotliwości.

Schemat blokowy obwodu

Styk „out” to wyjście. Częstotliwość styków wyjściowych wynosi 50% cyklu pracy. Piny S2 i S3 to linie wyboru dla czujnika foto.

Lepiej rozumiesz, patrząc na tabelę:

Piny S2 i S3 to linie wyboru dla czujnika foto.

Zastosowanie niskich sygnałów do pinów S2 i S3 spowoduje wybranie czujnika koloru czerwonego i zmierzenie intensywności długości fali czerwonej.

Podobnie, postępuj zgodnie z powyższą tabelą dla pozostałych kolorów.

Ogólnie rzecz biorąc, mierzone są czujniki czerwony, niebieski i zielony, pozostawiając czujniki bez filtrów.

S0 i S1 to szpilki skalujące częstotliwość:

S0 i S1 to kołki skalujące częstotliwość

S0 i S1 to kołki skalujące częstotliwość do skalowania częstotliwości wyjściowej. Skalowanie częstotliwości służy do wyboru optymalnej częstotliwości wyjściowej z czujnika do mikrokontrolera. W przypadku Arduino zalecane jest 20%, S0 „HIGH” i S1 „LOW”.

Częstotliwość wyjściowa wzrasta, jeśli natężenie światła odpowiedniego czujnika jest wysokie. Dla uproszczenia kodu programu częstotliwość nie jest mierzona, ale mierzony jest czas trwania impulsu, im wyższa częstotliwość, tym mniej czasu trwania impulsu.

Czyli tym, który na odczytach monitora szeregowego pokazuje najmniej, musi być ten, który jest umieszczony przed czujnikiem.

Pobieranie danych z czujnika koloru

Spróbujmy teraz praktycznie wyodrębnić dane z czujnika:

jak wyodrębnić dane z czujnika koloru za pomocą obwodu Arduino

Kod programu:

//--------------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--------------//

Wyjście monitora szeregowego:

Odczyt, który pokazuje najniższy, to kolor umieszczony przed czujnikiem. Możesz także napisać kod rozpoznający dowolny kolor, na przykład żółty. Żółty jest wynikiem zmieszania koloru zielonego i czerwonego, więc jeśli kolor żółty znajduje się przed czujnikiem, należy wziąć pod uwagę odczyty czujnika czerwonego i zielonego, podobnie jak w przypadku innych kolorów.

Jeśli masz jakiekolwiek pytania dotyczące tego czujnika koloru RGB TCS3200 przy użyciu artykułu Arduino, prosimy o wyrażenie w sekcji komentarzy. Możesz otrzymać szybką odpowiedź.

Opisany powyżej czujnik koloru może być również użyty do wyzwalanie zewnętrznego gadżetu przez przekaźnik do wykonania żądanej operacji.




Poprzedni: Przełącznik włączania / wyłączania zasilania sieciowego AC sterowany hasłem Dalej: Używanie czujników TSOP17XX z niestandardowymi częstotliwościami