Czujnik koloru wykorzystuje światło odbite do wykrywania koloru obiektu, wartości odcienia, wartości skali szarości, jasności i bliskości.
Czujnik koloru VEX IQ jest zawarty w zestawie VEX IQ Super Kit i można go również kupić tutaj.
Opis czujnika koloru
Czujnik koloru VEX IQ ma wiele trybów, które pozwalają mu przechwytywać różne rodzaje informacji z otoczenia. Na zbierane przez niego informacje wpływają warunki oświetleniowe otoczenia, a także odległość między czujnikiem a obiektem lub powierzchnią, którą odczytuje.
Jak działa czujnik koloru
Czujnik koloru może wykryć zarówno kolor, jak i bliskość.
Wykrywanie kolorów
W trybie jasności czujnik koloru służy do wykrywania intensywności całego światła w otoczeniu robota. Im więcej światła dociera do czujnika koloru, gdy jest on aktywny, tym większa jest wartość procentowa wysyłana do mózgu robota.
Jeśli wykryty procent jasności jest niski lub niewiarygodny, można włączyć lampę czujnika koloru lub zwiększyć procent jasności lampy, korzystając z następującego ustawienia blokowania światła:
Czujnik koloru może zgłaszać widziany kolor jako wartość koloru lub wartość odcienia.
Wartości kolorów.Na liście znajduje się 14 kolorów, które może wykryć czujnik koloru. Kolory, których brakuje na obrazie bloku, to czerwony, zielony, niebieski, biały i żółty.
Wartości odcieni.Wartości odcieni są takie same jak wartości kolorów, ale są liczbowe. Wartość odcienia mieści się w zakresie od 0 do 360, podobnie jak stopnie. Wartości kolorów wymienione powyżej mają swoje własne równoważne zakresy wartości odcieni.
Podczas wykrywania kolorów i odcieni ważne jest, aby czujnik koloru miał do tego odpowiednią ilość światła. Pamiętaj o przetestowaniu, zwanego także kalibracją, czujnika koloru przy różnych poziomach oświetlenia i przy ustawieniu lampy na różnych poziomach, aby określić, które ustawienie jest najbardziej niezawodne dla czujnika koloru robota.
Wykrywanie bliskości
Czujnik koloru zawiera czujnik-emiter podczerwieni. Emiter podczerwieni emituje niewidzialne światło, a następnie wykrywa jego odbicie. Jeśli większość światła podczerwonego odbija się z powrotem w kierunku czujnika, mózg robota informuje mózg robota, że obiekt jest blisko.
Typowe zastosowania czujnika koloru
Czujniki koloru są wykorzystywane w wielu zastosowaniach technologicznych, gdzie ważne jest posiadanie określonych kolorów na wyświetlaczach lub produktach.
Niektóre typowe zastosowania w życiu codziennym obejmują:
- Narzędzia do kalibracji kolorów sprawdzają, czy ekran cyfrowy prawidłowo wyświetla kolory, a następnie w razie potrzeby dostosowują ustawienia wyświetlania. Dla grafików i każdego projektanta pracującego z kolorem na ekranie cyfrowym ważne jest, aby móc dokładnie zobaczyć, jaki kolor jest wyświetlany. Nieporozumienia i marnowanie zasobów powstają, gdy kolory nie są dokładne.
- Aparaty i kamery wykorzystują czujniki koloru do dostosowywania ustawień w zależności od warunków oświetleniowych, w jakich się znajdują, w celu ulepszenia zdjęć i filmów poprzez maksymalizację poziomu światła i uwydatnienie matowych kolorów. Czujniki te pozwalają także fotografowi skupić się na określonych kolorach na zdjęciach.
- Czasami w produkcji stosuje się czujniki koloru, aby szybko sprawdzić, czy produkt ma właściwy kolor, zanim zostanie wysłany do klienta. Na przykład owoce i warzywa, które zmieniają kolor, gdy są dojrzałe lub gotowe do spożycia, można skanować, aby upewnić się, że mają odpowiedni kolor do wysłania na rynek.
Niektóre typowe zastosowania robota VEX IQ obejmują:
- Za pomocą tego czujnika można wykryć kolor obiektu.
- Czujnik ten może być używany do wykrywania i/lub podążania za linią.
- Ten czujnik może wykryć, czy obiekt znajduje się w pobliżu.
Czujniki koloru w robocie konkursowym
Pamiętaj, że przy wykrywaniu kolorów i odcieni ważne jest, aby czujnik koloru miał do tego odpowiednią ilość światła. Pamiętaj o przetestowaniu, zwanej także kalibracją, czujnika koloru za każdym razem, gdy dotrzesz do nowego miejsca zawodów, ponieważ różne poziomy światła mogą mieć wpływ na działanie czujnika koloru. Przetestuj swój projekt z lampą ustawioną na różnych poziomach, aby określić, które ustawienie jest najbardziej niezawodne dla czujnika koloru robota.
Informacje zebrane przez czujnik koloru są przydatne do programowania konkurencyjnego robota tak, aby reagował na różne warunki. Czujnik koloru może ulepszyć robota konkurencyjnego w następujący sposób:
- Pozwala robotowi wykryć kolor obiektu w pobliżu czujnika. Jest to przydatne, jeśli chcesz, aby robot sortował obiekty o różnych kolorach, podjeżdżał do obiektu o określonym kolorze lub wykrywał kolor obiektów przechodzących obok czujnika.
- Pozwala robotowi wykryć, ile światła odbija się z powrotem do czujnika. Dzięki temu robot może jechać, aż dotrze do linii na powierzchni, a nawet podążać za nią.
- Dzięki temu robot wie, czy obiekt lub powierzchnia znajduje się w pobliżu. Jest to pomocne w określeniu, czy wykryty kolor jest odczytem z pobliskiego obiektu, czy potencjalnie anomalnym odczytem odległej powierzchni lub światła.
Kodowanie czujnika koloru w blokach
Blok <Found an object> to logiczny blok reportera, który raportuje warunek jako prawdziwy lub fałszywy. Bloki logiczne, takie jak blok <Found an object> , mieszczą się wewnątrz bloków z sześciokątnymi (sześciościennymi) wejściami dla innych bloków.
Blok logiczny <Found an object> zgłasza „prawdę”, jeśli „prawda”, jeśli czujnik koloru wykryje obiekt, i „fałsz”, jeśli czujnik tego nie robi. Aby dowiedzieć się więcej na temat bloków logicznych, odwiedź artykuł Pomoc lub Kształty bloków i znaczenie.
W tym przykładzie blok <Found an object> służy do wykrywania bliskości wraz z blokiem [Czekaj do], aby robot jechał do przodu, aż do wykrycia obiektu.
Blok <Color detects> jest także blokiem reportera Boole'a, który raportuje warunek jako prawdziwy lub fałszywy. Blok <Color detects> zgłasza „prawdę”, jeśli „prawda”, jeśli czujnik koloru wykryje wybrany kolor, i „fałsz”, jeśli czujnik wykryje inny kolor. Aby dowiedzieć się więcej na temat bloków logicznych, odwiedź artykuł Pomoc lub Kształty bloków i znaczenie.
W tym przykładzie zastosowano blok <Color detects> wraz z blokiem [Czekaj do], aby spowodować, że robot pojedzie do przodu, aż czujnik koloru wykryje zielony obiekt. Robot przestanie wtedy jeździć. Pokazano to na pierwszym filmie powyżej.
Blok (Jasność) informuje o ilości światła wykrytego przez czujnik koloru. Jest to blok reporterski stosowany wewnątrz innych bloków z okrągłymi odstępami.
Blok (Jasność) podaje zakres od 0% do 100%.
W tym przykładzie blok (Jasność) służy do wykrywania przez robota linii i podążania za nią, jak pokazano na drugim filmie powyżej.
Blok (Hue of) informuje o odcieniu koloru wykrytym przez czujnik koloru. Jest to blok reporterski stosowany wewnątrz innych bloków z okrągłymi odstępami.
Blok (Jasność) podaje zakres od 0 do 360.
W tym przykładzie blok (Odcień) służy do tego, aby robot sprawdził zakres wartości odcieni odpowiadających kolorowi czerwonemu i skręcił w prawo o 90 stopni, jeśli te wartości zostaną wykryte przez czujnik. Jeżeli zostaną wykryte inne wartości odcienia, robot skręci w lewo o 90 stopni.
Blok (Odcień) może być przydatny, gdy konieczne jest wykrycie przez robota określonych kolorów, gdy warunki oświetlenia otoczenia mogą być niespójne.
Kodowanie czujnika koloru w Pythonie
Uwaga:Aby zakodować wyłącznik zderzakowy VEX IQ (1. generacji) w języku Python, należy go podłączyć do mózgu VEX IQ (2. generacji). Brain VEX IQ (1. generacji) nie obsługuje języka Python.
Polecenie color.is_near_object zgłasza True , gdy czujnik koloru wykryje obiekt lub powierzchnię blisko przodu czujnika i False , gdy czujnik koloru nie wykryje obiektu lub powierzchni blisko przodu czujnika czujnik.
Uwaga:Nazwa czujnika koloru pojawiająca się w poleceniu odpowiada nazwie podanej w konfiguracji.
W tym przykładzie zastosowano pętlęWhile z warunkiem , a nie z poleceniem color.is_near_object , aby robot jechał do przodu, aż czujnik koloru wykryje obiekt blisko przodu czujnik.
Polecenie color.color zgłasza kolor aktualnie wykrywany przez czujnik koloru.
W tym przykładzie zastosowano pętlęWhile z warunkiem , a nie z poleceniem color.color , aby robot jechał do przodu, aż czujnik koloru wykryje zielony obiekt. Robot przestanie wtedy jeździć. Pokazano to na pierwszym filmie powyżej.
Polecenie color.brightness zgłasza ilość światła wykrytego przez czujnik koloru. Podaje zakres wartości od 0% do 100%.
W tym przykładzie polecenie color.brightness służy do wykrywania przez robota linii i podążania za nią, jak pokazano na drugim filmie powyżej.
Polecenie color.hue zgłasza odcień koloru wykrytego przez czujnik koloru. Podaje zakres wartości odcieni od 0 do 360.
W tym przykładzie polecenie color.hue służy do tego, aby robot sprawdził zakres wartości odcieni odpowiadających kolorowi czerwonemu i skręcił w prawo o 90 stopni, jeśli te wartości zostaną wykryte przez czujnik. Jeżeli zostaną wykryte inne wartości odcienia, robot skręci w lewo o 90 stopni.
Polecenie color.hue może być przydatne, gdy konieczne jest, aby robot wykrył określone kolory, gdy warunki oświetlenia otoczenia mogą być nierówne.