Kolorymetr - urządzenie do rozpoznawania barw
-
FireIsland
- -
- Posty: 36
- Rejestracja: 07 lis 2013, 20:58
- Lokalizacja: Grybów
Kolorymetr - urządzenie do rozpoznawania barw
Cześć,
Od jakiegoś czasu myślę nad zbudowaniem urządzenia do rozpoznawania barw owoców.
Nie mam zbytnio konkretnego pomysłu jak się za to zabrać, bo w internecie niewiele można znaleźć. Urządzenie powinno rozpoznawać wiele barw i odcieni a nie tylko podstawowe kolory. W majowym wydaniu EdW z 2006 roku, w Szkole Konstruktorów był omawiany podobny temat. Zaciekawiło mnie rozwiązanie polegające na oświetlaniu świetlówką badanego elementu. Promienie odbite padałyby na elementy światłoczułe. Operacja odbywała by się w ciemnym pomieszczeniu, pudełku - chodzi o to by zminimalizować wpływ światła dziennego. Po odbiciu promieni świetlówki, każdy z elementów światłoczułych odebrał by określoną porcję promieniowania odpowiedniego dla danego zakresu - czerwony, zielony,niebieski. Elementy te były by podłączone do mikroprocesora, który w zależności od tego jak duża byłaby ilość każdej z podstawowych barw zarejestrowanych przez elementy światłoczułe, obliczyłby stosunki tych wielkości i na tej podstawie wybrał by kolor który ma stosunek barw RGB najbardziej zbliżony do tego jaki zarejestrowały elementy światłoczułe.
Nie wiem czy to jest w ogóle realne. Dopiero zagłębiam się w tematykę optoelektroniki, a jak poznać ją lepiej jeśli nie przez myślenie nad jakimś projektem ?
Prosiłbym o informacje na temat podobnych układów, jakie zagadnienia powinienem poznać, jakich elementów światłoczułych użyć najlepiej.
Pozdrawiam,
Od jakiegoś czasu myślę nad zbudowaniem urządzenia do rozpoznawania barw owoców.
Nie mam zbytnio konkretnego pomysłu jak się za to zabrać, bo w internecie niewiele można znaleźć. Urządzenie powinno rozpoznawać wiele barw i odcieni a nie tylko podstawowe kolory. W majowym wydaniu EdW z 2006 roku, w Szkole Konstruktorów był omawiany podobny temat. Zaciekawiło mnie rozwiązanie polegające na oświetlaniu świetlówką badanego elementu. Promienie odbite padałyby na elementy światłoczułe. Operacja odbywała by się w ciemnym pomieszczeniu, pudełku - chodzi o to by zminimalizować wpływ światła dziennego. Po odbiciu promieni świetlówki, każdy z elementów światłoczułych odebrał by określoną porcję promieniowania odpowiedniego dla danego zakresu - czerwony, zielony,niebieski. Elementy te były by podłączone do mikroprocesora, który w zależności od tego jak duża byłaby ilość każdej z podstawowych barw zarejestrowanych przez elementy światłoczułe, obliczyłby stosunki tych wielkości i na tej podstawie wybrał by kolor który ma stosunek barw RGB najbardziej zbliżony do tego jaki zarejestrowały elementy światłoczułe.
Nie wiem czy to jest w ogóle realne. Dopiero zagłębiam się w tematykę optoelektroniki, a jak poznać ją lepiej jeśli nie przez myślenie nad jakimś projektem ?
Prosiłbym o informacje na temat podobnych układów, jakie zagadnienia powinienem poznać, jakich elementów światłoczułych użyć najlepiej.
Pozdrawiam,
Pytanie jakie się nasuwa to jakiej dokładności chcesz to urządzenie? Włożysz żółto-zielono- czerwone jabłko z czarnymi kropkami i jaki kolor ma z tego wyjść?
Masz trzy takie same elementy foto czułe, które pokrywają całe widmo. Odpowiednia lampa która pokrywa również całe widmo. Następnie na każdy z trzech elementów montujesz przesłonę/folię R, G, B, i odczytujesz napięcia. Cała reszta to programowe interpretowanie pomiarów.
Jeśli chcesz dokładniej czyli ...żółto-zielono-czerwone jabłko z czarnymi kropkami to jedynie kamera i sprzętowe analizowanie obrazu.
Wadą pierwszego jest pomiar w różnych miejscach i w najniekorzystniejszym przypadku wyjdzie kolor czarny, bo każdy kolor może występować w różnych miejscach pomiarowych. Sprawę załatwiła by może optyka, ale znów przy zbyt małej powierzchni pomiarowej trafisz na ciemną pestkę na truskawce i okaże się że czerwona truskawka jest brązowa czy czarna.
Masz trzy takie same elementy foto czułe, które pokrywają całe widmo. Odpowiednia lampa która pokrywa również całe widmo. Następnie na każdy z trzech elementów montujesz przesłonę/folię R, G, B, i odczytujesz napięcia. Cała reszta to programowe interpretowanie pomiarów.
Jeśli chcesz dokładniej czyli ...żółto-zielono-czerwone jabłko z czarnymi kropkami to jedynie kamera i sprzętowe analizowanie obrazu.
Wadą pierwszego jest pomiar w różnych miejscach i w najniekorzystniejszym przypadku wyjdzie kolor czarny, bo każdy kolor może występować w różnych miejscach pomiarowych. Sprawę załatwiła by może optyka, ale znów przy zbyt małej powierzchni pomiarowej trafisz na ciemną pestkę na truskawce i okaże się że czerwona truskawka jest brązowa czy czarna.
- joon
- Użytkownik
- Posty: 2076
- Rejestracja: 30 cze 2007, 22:56
- Lokalizacja: Kraków, Przemyśl, Warszawa
- Kontakt:
http://botland.com.pl/czujniki-swiatla- ... -barw.html nad wykorzystaniem tego czujnika zastanowiłbym się.
-
FireIsland
- -
- Posty: 36
- Rejestracja: 07 lis 2013, 20:58
- Lokalizacja: Grybów
Dziękuje za zainteresowanie tematem.
Dzięki za link joon - przeanalizuję ten czujnik.
Odnośnie dokładności urządzenia to myślę, że nie potrzebuje aż tak dobrego, aby rozpoznawał żółto-zielono-czerwone jabłko z czarnymi kropkami.
Głównie chodzi o zbadanie zmiany barwy owocu pod wpływem suszenia. Odwodnienie owocu, powoduje zmiany parametrów barwy - i to głównie chciałbym wyłapać.
Więc raczej będzie chodziło o wyłapanie zmieniającego się odcienia owocu np. suszona truskawka nadal pozostanie czerwona ale będzie to inna czerwień niż przed suszeniem.
Jeśli zmianę odcienia dałoby się wyłapać w taki sposób jaki opisał timo66, czyli elementy fotoczułe i przesłony RGB to najprawdopodobniej na tym rozwiązaniu chciałbym się skupić.
EDIT: Czujnik zaproponowany w w/w linku zainteresował mnie. Przesyła informacje w postaci : rrr,ggg,bbb; gdzie rrr - to przestawienie barwy czerwonej w zakresie 0-255, analogicznie dla barwy zielonej i niebieskiej. Po podłączeniu do mikroprocesora można by już chyba otrzymać jakieś sensowne wyniki. Dodatkowo czujnik informuje również o natężeniu światła.
Posiada tryb pracy, który dokonuje pomiaru co 1200ms. Można by było umieścić owoc na obrotowej podstawce, odpowiednio dobrać szybkość obracania, tak aby na jeden obrót owocu czujnik wykonał np. 5 pomiarów, następnie wszystkie pomiary uśrednić i otrzymalibyśmy dokładniejszy wynik. Myślę, że zastosowanie tego czujnika warte jest przemyślenia.
Dzięki za link joon - przeanalizuję ten czujnik.
Odnośnie dokładności urządzenia to myślę, że nie potrzebuje aż tak dobrego, aby rozpoznawał żółto-zielono-czerwone jabłko z czarnymi kropkami.
Głównie chodzi o zbadanie zmiany barwy owocu pod wpływem suszenia. Odwodnienie owocu, powoduje zmiany parametrów barwy - i to głównie chciałbym wyłapać.
Więc raczej będzie chodziło o wyłapanie zmieniającego się odcienia owocu np. suszona truskawka nadal pozostanie czerwona ale będzie to inna czerwień niż przed suszeniem.
Jeśli zmianę odcienia dałoby się wyłapać w taki sposób jaki opisał timo66, czyli elementy fotoczułe i przesłony RGB to najprawdopodobniej na tym rozwiązaniu chciałbym się skupić.
EDIT: Czujnik zaproponowany w w/w linku zainteresował mnie. Przesyła informacje w postaci : rrr,ggg,bbb; gdzie rrr - to przestawienie barwy czerwonej w zakresie 0-255, analogicznie dla barwy zielonej i niebieskiej. Po podłączeniu do mikroprocesora można by już chyba otrzymać jakieś sensowne wyniki. Dodatkowo czujnik informuje również o natężeniu światła.
Posiada tryb pracy, który dokonuje pomiaru co 1200ms. Można by było umieścić owoc na obrotowej podstawce, odpowiednio dobrać szybkość obracania, tak aby na jeden obrót owocu czujnik wykonał np. 5 pomiarów, następnie wszystkie pomiary uśrednić i otrzymalibyśmy dokładniejszy wynik. Myślę, że zastosowanie tego czujnika warte jest przemyślenia.
-
FireIsland
- -
- Posty: 36
- Rejestracja: 07 lis 2013, 20:58
- Lokalizacja: Grybów
-
FireIsland
- -
- Posty: 36
- Rejestracja: 07 lis 2013, 20:58
- Lokalizacja: Grybów
Bardzo fajnie 
Jak widać jestem dosyć początkujący, stąd takie pytania.
W zależności od intensywności suszenia warzywa (np. buraka czerwonego) zmienia on kolor z czerwonego na inny odcień. Rozpoznawanie barw pozwoli na ocenę procesu suszenia i weryfikację czy jest on przeprowadzany prawidłowo.
Biorąc pod uwagę wyjścia tego czujnika będę musiał zaznajomić się z komunikacją szeregową w mikroprocesorach.
Myślę, że skoro czujnik jest 8 bitowy to da radę odróżnić zmieniające się odcienie podczas suszenia. W końcu tych kombinacji barw trochę jest
Dziękuje za pomoc,
Mam nadzieję, że coś z tego wyjdzie ;)Na razie muszę się nauczyć jak obsługiwać ten czujnik i wkrótcę się odezwę
Jak widać jestem dosyć początkujący, stąd takie pytania.
W zależności od intensywności suszenia warzywa (np. buraka czerwonego) zmienia on kolor z czerwonego na inny odcień. Rozpoznawanie barw pozwoli na ocenę procesu suszenia i weryfikację czy jest on przeprowadzany prawidłowo.
Biorąc pod uwagę wyjścia tego czujnika będę musiał zaznajomić się z komunikacją szeregową w mikroprocesorach.
Myślę, że skoro czujnik jest 8 bitowy to da radę odróżnić zmieniające się odcienie podczas suszenia. W końcu tych kombinacji barw trochę jest
Dziękuje za pomoc,
Mam nadzieję, że coś z tego wyjdzie ;)Na razie muszę się nauczyć jak obsługiwać ten czujnik i wkrótcę się odezwę
-
FireIsland
- -
- Posty: 36
- Rejestracja: 07 lis 2013, 20:58
- Lokalizacja: Grybów
Witam po przerwie. Prace powolutku posuwają się na przód. Posiadam już czujnik koloru, jednak nie taki o którym była mowa wyżej. Link do czujnika: http://electropark.pl/moduly-optyczne/3 ... s3200.html
Zamienia on natężenie barw podstawowych na prostokątną falę o określonej w dokumentacji częstotliwości. Jaką barwę chcemy mierzyć, określamy przez odpowiednią konfigurację dwóch z czterech pinów konfiguracyjnych. Za to jaką chcemy mierzyć barwę odpowiadają piny S2 i S3. Zależnie czy podepniemy je pod Vcc czy GND czujnik mierzy natężenie innej barwy. I tak np. dla S2 = GND i S3 = GND czujnik mierzy natężenie barwy czerwonej, dla S2 = GND i S3 = Vcc barwy niebieskiej.
Piny S0 i S1 określają coś, co w dokumentacji oznaczono jako " Output Frequency Scaling ". Nie bardzo rozumiem o co dokładnie chodzi. Dla S0 = Vcc i S1 = Vcc Output Frequency Scaling wznosi 100%, z kolei dla S0 = GND i S1 = Vcc Output Frequency Scaling wynosi 2%. Nie wiem w czym rzecz. Pomijając tą kwestię piny te określają też częstotliwość, która może mieścić się w przedziałach : 10 - 12 kHz , 100 - 120 kHz oraz 500 - 600 kHz.
Na pinie czujnika oznaczonym OUT pojawia się wspomniana fala prostokątna. Podłączyłem ten pin pod TIMER1 Atmegi32. Aby Timer nie przepełnił się za szybko zaprogramowałem go tak, aby co 100ms wyświetlał zmierzoną częstotliwość a potem się kasował i tak w kółko. Nie wiem czy dobrze myślę, bo programowania mikroprocesorów uczę się dopiero miesiąc, ale mam nadzieję że tak.
Mam zamiar napisać program, który będzie najpierw ustawiał np. piny S2 i S3 w stan zera logicznego (GND), zmierzył częstotliwość barwy czerwonej, zapamiętywał ją, potem ustawi te same piny tak aby mierzyć barwę niebieską, zapisać wynik, potem znowu zmienić ustawienie pinów S2 i S3 i zmierzyć natężenie barwy zielonej. Potem odpowiednio zestawić ze sobą otrzymane wyniki.
Jednak ostatnio jeden wykładowca, wspomniał że podłączenie pinu wyjściowego z czujnika do TIMERa nie jest dobrym pomysłem bo należy jeszcze zastosować filtry oddzielające niechciane częstotliwości. Czy to konieczne ? Przykładowo mam skonfigurowane piny S0 i S1 w stan wysoki, więc częstotliwość generowanej przez czujnik fali ( wg. dokumentacji) powinna mieścić się w granicach 500 - 600kHz. Czy muszę zastosować zestaw odpowiednich filtrów aby odciąć wszystkie niepożądane harmoniczne, przez podaniem sygnału do mikroprocesora ?
Dziękuję, pozdrawiam
Zamienia on natężenie barw podstawowych na prostokątną falę o określonej w dokumentacji częstotliwości. Jaką barwę chcemy mierzyć, określamy przez odpowiednią konfigurację dwóch z czterech pinów konfiguracyjnych. Za to jaką chcemy mierzyć barwę odpowiadają piny S2 i S3. Zależnie czy podepniemy je pod Vcc czy GND czujnik mierzy natężenie innej barwy. I tak np. dla S2 = GND i S3 = GND czujnik mierzy natężenie barwy czerwonej, dla S2 = GND i S3 = Vcc barwy niebieskiej.
Piny S0 i S1 określają coś, co w dokumentacji oznaczono jako " Output Frequency Scaling ". Nie bardzo rozumiem o co dokładnie chodzi. Dla S0 = Vcc i S1 = Vcc Output Frequency Scaling wznosi 100%, z kolei dla S0 = GND i S1 = Vcc Output Frequency Scaling wynosi 2%. Nie wiem w czym rzecz. Pomijając tą kwestię piny te określają też częstotliwość, która może mieścić się w przedziałach : 10 - 12 kHz , 100 - 120 kHz oraz 500 - 600 kHz.
Na pinie czujnika oznaczonym OUT pojawia się wspomniana fala prostokątna. Podłączyłem ten pin pod TIMER1 Atmegi32. Aby Timer nie przepełnił się za szybko zaprogramowałem go tak, aby co 100ms wyświetlał zmierzoną częstotliwość a potem się kasował i tak w kółko. Nie wiem czy dobrze myślę, bo programowania mikroprocesorów uczę się dopiero miesiąc, ale mam nadzieję że tak.
Mam zamiar napisać program, który będzie najpierw ustawiał np. piny S2 i S3 w stan zera logicznego (GND), zmierzył częstotliwość barwy czerwonej, zapamiętywał ją, potem ustawi te same piny tak aby mierzyć barwę niebieską, zapisać wynik, potem znowu zmienić ustawienie pinów S2 i S3 i zmierzyć natężenie barwy zielonej. Potem odpowiednio zestawić ze sobą otrzymane wyniki.
Jednak ostatnio jeden wykładowca, wspomniał że podłączenie pinu wyjściowego z czujnika do TIMERa nie jest dobrym pomysłem bo należy jeszcze zastosować filtry oddzielające niechciane częstotliwości. Czy to konieczne ? Przykładowo mam skonfigurowane piny S0 i S1 w stan wysoki, więc częstotliwość generowanej przez czujnik fali ( wg. dokumentacji) powinna mieścić się w granicach 500 - 600kHz. Czy muszę zastosować zestaw odpowiednich filtrów aby odciąć wszystkie niepożądane harmoniczne, przez podaniem sygnału do mikroprocesora ?
Dziękuję, pozdrawiam