Korzystanie z czujnika koloru VEX IQ (1. generacji).

Czujnik koloru wykorzystuje światło odbite do wykrywania koloru obiektu, wartości odcienia, wartości skali szarości, jasności i bliskości.

Element czujnika koloru VEX IQ (1. generacja).

Czujnik koloru VEX IQ jest elementem zestawu VEX IQ Super Kit i można go również kupić tutaj.

Używasz robota VEX IQ drugiej generacji? Zobacz przegląd czujników drugiej generacji tutaj, a także informacje o czujniku optycznym, wersji czujnika koloru drugiej generacji.


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.


Koło kolorów pokazujące, jak okrąg o promieniu 360 stopni odpowiada wartości odcienia. Kolor czerwony ma stopień 0, kolor zielony ma stopień 120, a kolor niebieski ma stopień 240.


Jak działa czujnik koloru

Czujnik koloru może wykryć zarówno kolor, jak i bliskość.

Wykrywanie kolorów

VEXcode IQ Jasność bloku odczytującego jasność Color3 w %.

Schemat czujnika koloru wykrywającego jasną powierzchnię i zgłaszającego wartość 80%, a następnie wykrywającego ciemną powierzchnię i zgłaszającego wartość 20%.

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.

VEXcode IQ Ustaw blok świetlny czujnika koloru, który odczytuje Ustaw światło Color3 na 50%.

Czujnik koloru przymocowany do robota w ciemnym otoczeniu. Włącza się lampę czujnika kolorów, aby oświetlić otoczenie.

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:

Trzy bloki czujnika koloru VEXcode IQ. Pierwszym jest Kolor bloku, który odczytuje nazwę koloru Color3. Drugim jest odcień bloku, który odczytuje odcień Color3 w stopniach. Trzecim blokiem jest Color detects, który wyświetla komunikat Color3 detects none?

Czujnik koloru może zgłaszać widziany kolor jako wartość koloru lub wartość odcienia.

VEXcode IQ Color wykrywa blok, który odczytuje Color3, a nie wykrywa niczego? Otwiera się menu rozwijane Kolor bloku, w którym wyświetlana jest lista kolorów do wykrycia. Na liście znajdują się następujące kolory: pomarańczowy, fioletowy, czerwono-fioletowy, fioletowy, niebiesko-fioletowy, niebiesko-zielony, żółto-zielony, żółto-pomarańczowy i czerwono-pomarańczowy.

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.

Diagram wartości odcienia pokazujący zależność 360 stopni od wartości odcienia. Kolor czerwony ma stopień 0, kolor zielony ma stopień 120, a kolor niebieski ma stopień 240.

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.

VEXcode IQ Znaleziono blok obiektu, który wyświetla komunikat Color3 znajduje się w pobliżu obiektu?

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. Obejrzyj tę animację, aby zobaczyć, jak robot jedzie do przodu, aż czujnik kolorów wykryje zieloną kostkę.

  • Czujnik ten może być używany do wykrywania i/lub podążania za linią. Obejrzyj tę animację, aby zobaczyć robota używającego czujnika koloru do jazdy wzdłuż wyznaczonej linii.

  • 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

VEXcode IQ Znaleziono blok obiektu, który wyświetla komunikat Color3 znajduje się w pobliżu obiektu?

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.

 

Projekt bloków VEXcode IQ wykorzystuje czujnik koloru do poruszania się do przodu, aż do znalezienia obiektu. Opis projektu brzmi: Po uruchomieniu jedź do przodu, poczekaj, aż Color3 znajdzie obiekt, a następnie zatrzymaj się.

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.

VEXcode IQ Color wykrywa blok, który odczytuje Color3 wykrywa kolor zielony?

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.

 

Projekt bloków VEXcode IQ wykorzystuje czujnik koloru do jazdy do przodu, aż wykryje kolor zielony. Opis projektu brzmi: Po uruchomieniu jedź do przodu, poczekaj, aż Color3 wykryje kolor zielony, a następnie zatrzymaj się.

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.

VEXcode IQ Jasność bloku odczytującego jasność Color3 w %.

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%.

 

Projekt bloków VEXcode IQ wykorzystuje skierowany w dół czujnik koloru do śledzenia zaznaczonej linii. W projekcie napisano: Po uruchomieniu ustaw światło Color3 na 25%. Następnie, jeśli jasność Color3 w % jest większa niż 25, wówczas lewy silnik obraca się do przodu o 35 stopni, w przeciwnym wypadku prawy silnik obraca się do przodu o 35 stopni.

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.

VEXcode IQ Odcień bloku odczytującego odcień Color3 w stopniach.

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.

 

Bloki VEXcode IQ to projekty, które wykorzystują czujnik optyczny do jazdy do przodu, aż dotrą do obiektu, a następnie skręcają w prawo, jeśli obiekt jest czerwony, lub w lewo, jeśli nie jest. Projekt brzmi: Po uruchomieniu wydrukuj odcień Color3 w stopniach w Brain, przejdź do przodu, a następnie czekaj, aż Color3 znajdzie obiekt. Jeśli odcień Color3 w stopniach jest większy niż 330 i odcień Color3 w stopniach jest mniejszy niż 30, należy skręcić w prawo o 90 stopni, w przeciwnym wypadku należy skręcić w lewo o 90 stopni.

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.

color_3.is_near_object()

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. 

drivetrain.drive(FORWARD)
dopóki nie color_3.is_near_object():
wait(20, MSEC)
drivetrain.stop()
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.
kolor_3.color()

Polecenie color.color zgłasza kolor aktualnie wykrywany przez czujnik koloru.

drivetrain.drive(FORWARD)
dopóki nie color_3.GREEN():
wait(20, MSEC)
drivetrain.stop()
W tym przykładzie pętlaWhile z warunkiem not została użyta 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.
color_3.jasność()

Polecenie color.brightness zgłasza ilość światła wykrytego przez czujnik koloru. Podaje zakres wartości od 0% do 100%.

color_3.set_light(25, PERCENT)
while True:
if color_3.brightness() > 25:
# Jeśli czujnik koloru wykryje światło, robot przesunie się w lewo
LeftMotor.spin_for(FORWARD, 35, DEGREES)
else:
# Jeśli czujnik koloru wykryje ciemność, robot przesunie się w prawo
RightMotor.spin_for(FORWARD, 35, DEGREES)
wait(20, MSEC)
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.
kolor_3.odcień()

Polecenie color.hue zgłasza odcień koloru wykrytego przez czujnik koloru. Podaje zakres wartości odcieni od 0 do 360.

brain.screen.print(color_3.hue())
drivetrain.drive(FORWARD)
while not color_3.is_near_object():
wait(20, MSEC)
if color_3.hue() > 330 and color_3.hue() < 30:
drivetrain.turn_for(RIGHT, 90, DEGREES)
else:
drivetrain.turn_for(LEFT, 90, DEGREES)

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.

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: