Použití barevného senzoru VEX IQ (1. generace).

Barevný senzor používá odražené světlo k detekci barvy objektu, hodnoty odstínu, hodnoty ve stupních šedi, jasu a blízkosti.

Barevný senzor VEX IQ (1. generace).

Barevný senzor VEX IQ je součástí sady VEX IQ Super Kit a lze jej zakoupit také

Používáte robota VEX IQ 2. generace? Přehled senzorů 2. generace naleznete zdea informace o optickém senzoru, což je verze barevného senzoru 2. generace.


Popis snímače barev

Barevný senzor VEX IQ má několik režimů, které mu umožňují zachycovat různé typy informací z okolí. Informace, které shromažďuje, jsou ovlivněny světelnými podmínkami okolí a také vzdáleností mezi senzorem a objektem nebo povrchem, který snímá.


Barevné kolo demonstrující, jak 360stupňový kruh koreluje s hodnotou odstínu. Červená barva má stupeň 0, zelená má stupeň 120 a modrá má stupeň 240.


Jak funguje snímač barev

Barevný senzor dokáže detekovat jak barvu, tak i blízkost.

Detekce barev
Jas VEXcode IQ bloku, který čte jas Color3 v %.
Schéma barevného senzoru detekujícího světlý povrch a hlásící hodnotu 80 %, a poté detekujícího tmavý povrch a hlásící hodnotu 20 %.

V režimu jasu se senzor barev používá k detekci intenzity veškerého světla v prostředí robota. Čím více světla dopadá na barevný senzor, když je aktivní, tím vyšší je procentuální hodnota odeslaná do robotického mozku.

VEXcode IQ Nastavte blok barevného senzoru, který ukazuje Nastavte světlo Color3 na 50 %.
Barevný senzor zobrazený připojený k robotovi v tmavém prostředí. Lampa barevného senzoru se rozsvítí, aby osvětlila své okolí.

Pokud je detekované procento jasu nízké nebo nespolehlivé, lze zapnout lampu barevného senzoru nebo zvýšit procento jasu lampy pomocí následujícího nastaveného světla k blokování:

Tři bloky barevného senzoru VEXcode IQ. První je Barva bloku, která čte název barvy Color3. Druhým je Hue bloku, který udává odstín Color3 ve stupních. Třetí je blok Color detects, který čte „Color3 detects none?“ (Color3 detects none?)

Snímač barev může hlásit barvu, kterou vidí, buď jako hodnotu barvy, nebo jako hodnotu odstínu.

VEXcode IQ Color detekuje blok, který čte Color3 nedetekuje žádný? Otevře se rozbalovací nabídka Barva bloku se seznamem barev, které má blok rozpoznat. Seznam zní oranžová, fialová, červenofialová, fialová, modrofialová, modrozelená, žlutozelená, žlutooranžová a červenooranžová.

Hodnoty barev.V seznamu je 14 barev, které snímač barev dokáže detekovat. Barvy chybějící na obrázku bloku jsou červená, zelená, modrá, bílá a žlutá.

Diagram hodnoty odstínu znázorňující, jak 360 stupňů koreluje s hodnotou odstínu. Červená barva má stupeň 0, zelená má stupeň 120 a modrá má stupeň 240.

Hodnoty odstínu.Hodnoty odstínu jsou podobné hodnotám barev, ale číselné. Hodnota odstínu se pohybuje od 0 do 360, jako jsou stupně. Hodnoty barev uvedené výše mají své vlastní ekvivalentní rozsahy hodnot odstínu. 

Při detekci barev a odstínů je důležité, aby barevný senzor měl dostatečné množství světla. Nezapomeňte otestovat (kalibrovat) barevný senzor při různých úrovních osvětlení a s lampou nastavenou na různé úrovně, abyste zjistili, které nastavení barevného senzoru vašeho robota je nejspolehlivější.

Detekce blízkosti

Barevný senzor obsahuje infračervený senzor-vysílač. Infračervený zářič vyzařuje neviditelné světlo a poté detekuje jeho odraz. Pokud se většina infračerveného světla odrazí zpět k senzoru, informuje to robotický mozek, že se objekt nachází blízko.

VEXcode IQ Nalezen blok objektu, který zobrazuje, že Color3 je blízko objektu?

Běžná použití snímače barev

Barevné senzory se používají v mnoha technologických aplikacích, kde je důležité mít na displejích nebo produktech specifické barvy.

Mezi běžné způsoby použití v každodenním životě patří:

  • Nástroje pro kalibraci barev zkontrolují, zda digitální obrazovka zobrazuje přesné barvy, a podle potřeby upraví nastavení zobrazení. Pro grafiky a každého designéra, který pracuje s barvami na digitální obrazovce, je důležité, aby viděli přesně tu správnou barvu, která se zobrazuje. Když barvy nejsou přesné, dochází k nedorozuměním a plýtvání zdroji.
  • Fotoaparáty a videokamery používají barevné senzory k úpravě nastavení podle světelných podmínek, ve kterých se nacházejí, aby vylepšily své fotografie a videa maximalizací úrovně osvětlení a zvýrazněním jinak matných barev. Tyto senzory také umožňují fotografovi zaměřit se na konkrétní barvy na svých fotografiích.
  • Barevné senzory se někdy používají ve výrobě, aby rychle zkontrolovaly, zda má produkt správnou barvu předtím, než je odeslán zákazníkovi. Například ovoce a zelenina, které se barví, když jsou zralé nebo připravené ke konzumaci, lze naskenovat, aby bylo zajištěno, že mají správnou barvu pro odeslání na trh. 


Mezi běžné způsoby použití robota VEX IQ patří:

  • Tento senzor lze použít k detekci barvy předmětu. Podívejte se na tuto animaci a uvidíte, jak robot jede vpřed, dokud barevný senzor nedetekuje zelenou kostku.

  • Tento senzor lze použít k detekci a/nebo sledování linie. Prohlédněte si tuto animaci, abyste viděli robota, který pomocí barevného senzoru jede po vyznačené čáře.

  • Tento senzor dokáže detekovat, zda je objekt blízko.

Barevné senzory na soutěžním robotu

Nezapomeňte, že při detekci barev a odstínů je důležité, aby měl barevný senzor dostatečné množství světla. Nezapomeňte pokaždé, když dorazíte na nové místo konání soutěže, otestovat (kalibrovat) svůj barevný senzor, protože různé úrovně světla mohou ovlivnit jeho výkon. Otestujte svůj projekt s lampou nastavenou na různé úrovně, abyste zjistili, které nastavení je pro barevný senzor vašeho robota nejspolehlivější. 

Informace shromážděné barevným senzorem jsou užitečné pro programování soutěžního robota tak, aby reagoval na různé podmínky. Barevný senzor může vylepšit soutěžního robota následujícími způsoby:

  • Umožňuje robotovi detekovat barvu předmětu v blízkosti senzoru. To je užitečné, pokud chcete, aby robot třídil různobarevné předměty, zajížděl ke specificky zbarvenému předmětu nebo detekoval barvu předmětů, když procházejí kolem senzoru.
  • Umožňuje robotovi zjistit, kolik světla se odráží zpět do senzoru. To umožňuje vašemu robotovi řídit, dokud nedosáhne čáry na povrchu, nebo dokonce čáru sledovat.
  • Dává robotovi vědět, zda je blízko nějaký předmět nebo povrch. To je užitečné při určování, zda detekovaná barva je čtením z blízkého objektu nebo potenciálně anomálním čtením vzdáleného povrchu nebo světla. 

Kódování barevného senzoru v blocích

VEXcode IQ Našli jste objektový blok, který čte Color3 is near object?

Blok <Found an object> je logický reportovací blok, který hlásí podmínku jako pravdivou nebo nepravdivou. Booleovské bloky, jako je blok <Found an object> , se vejdou do bloků s šestihrannými (šestistrannými) vstupy pro jiné bloky.

Booleovský blok <Found an object> hlásí 'true', pokud 'true', pokud snímač barev detekuje objekt, a 'false', pokud snímač ne. Chcete-li se dozvědět více o booleovských blocích, navštivte článek Help nebo Block Shapes and Meaning.

 

VEXcode IQ blokuje projekt, který používá barevný senzor k jízdě vpřed, dokud nenajde objekt. Projekt zní: Po spuštění jeďte vpřed, počkejte, dokud Color3 nenajde objekt, a poté přestaňte řídit.

V tomto příkladu se blok <Found an object> používá k detekci blízkosti spolu s blokem [Čekat, dokud], aby robot jel dopředu, dokud není detekován objekt.

VEXcode IQ Color detekuje blok, který čte Barva3 detekuje zelenou?

Blok <Color detects> je také logický reportovací blok, který hlásí podmínku jako pravdivou nebo nepravdivou. Blok <Color detects> hlásí „true“, pokud „true“, pokud senzor barev detekuje vybranou barvu, a „false“, pokud senzor detekuje jakoukoli jinou barvu. Chcete-li se dozvědět více o booleovských blocích, navštivte článek Help nebo Block Shapes and Meaning.

 

VEXcode IQ blokuje projekt, který používá barevný senzor k jízdě vpřed, dokud nezjistí zelenou barvu. V projektu je napsáno Po spuštění jeďte vpřed, počkejte, dokud Barva3 nezjistí zelenou, a poté zastavte jízdu.

V tomto příkladu se blok <Color detects> používá spolu s blokem [Počkejte, dokud], aby robot pojel vpřed, dokud senzor barev nedetekuje zelený objekt. Robot poté přestane řídit. To je znázorněno v prvním videu výše.

VEXcode IQ Jas bloku, který čte jas Color3 v %.

Blok (Brightness of) udává množství světla detekovaného snímačem barev. Je to reportérský blok používaný uvnitř jiných bloků s kruhovými mezerami.

Blok (Brightness of) hlásí rozsah 0 % až 100 %.

 

Projekt bloků VEXcode IQ, který používá dolů směřující barevný senzor ke sledování označené linie. Projekt zní: Při spuštění nastavte světlo Color3 na 25 %. Dále, navždy, pokud je jas Color3 v % větší než 25, otočte levý motor dopředu o 35 stupňů, jinak otočte pravý motor dopředu o 35 stupňů.

V tomto příkladu se blok (Brightness of) používá k tomu, aby robot detekoval a sledoval čáru, jak ukazuje druhé video výše.

VEXcode IQ Hue bloku, který čte barevný odstín 3 ve stupních.

Blok (Hue of) udává odstín barvy detekovaný snímačem barev. Je to reportérský blok používaný uvnitř jiných bloků s kruhovými mezerami.

Blok (Brightness of) hlásí rozsah 0 až 360.

 

VEXcode IQ blokuje projekt, který využívá optický senzor k jízdě vpřed, dokud nedosáhne objektu, a poté odbočte doprava, pokud je červená, nebo doleva, pokud není. Projekt zní: Po spuštění vytiskněte na Brain odstín Color3 ve stupních, jeďte vpřed a počkejte, dokud Color3 nenajde objekt. Pokud je odstín Color3 ve stupních větší než 330 a odstín Color3 ve stupních je menší než 30, otočte se doprava o 90 stupňů, jinak se otočte doleva o 90 stupňů.

V tomto příkladu se blok (Hue of) používá k tomu, aby robot zkontroloval rozsah hodnot odstínu, které odpovídají červené barvě, a aby se otočil doprava o 90 stupňů, pokud jsou tyto hodnoty detekovány senzorem. Pokud jsou detekovány jakékoli jiné hodnoty odstínu, robot se otočí doleva o 90 stupňů.

Blok (Hue of) může být užitečný, když je nutné, aby robot detekoval určité barvy, když okolní světelné podmínky mohou být nekonzistentní.

Kódování barevného senzoru v Pythonu

Poznámka:Pro napsání nárazníkového spínače VEX IQ (1. generace) v Pythonu musí být připojen k mozku VEX IQ (2. generace). Brain VEX IQ (1. generace) nepodporuje Python.

barva_3.je_blízko_objektu()

Příkaz color.is_near_object hlásí True , když snímač barev detekuje předmět nebo povrch blízko přední části snímače a False , když snímač barev ne detekuje objekt nebo povrch blízko přední části snímače. senzor.

Poznámka:Název snímače barev, který se objeví v příkazu, odpovídá názvu, který je uveden v konfiguraci. 

drivetrain.drive(VPŘED)
while not color_3.is_near_object():
wait(20, MSEC)
drivetrain.stop()
V tomto příkladu je použita smyčkaWhile s podmínkou not s příkazem color.is_near_object , aby se robot pohyboval vpřed, dokud senzor barev nezaznamená objekt blízko před senzorem.
barva_3.barva()

Příkaz color.color hlásí barvu aktuálně detekovanou senzorem barev.

drivetrain.drive(VPŘED)
while not color_3.GREEN():
    wait(20, MSEC)
drivetrain.stop()
V tomto příkladu je použita smyčkaWhile s podmínkou , nikoli , s příkazem color.color , aby se robot pohyboval vpřed, dokud senzor barev nezaznamená zelený objekt. Robot poté přestane jezdit. To je ilustrováno v prvním videu výše.
barva_3.jas()

Příkaz color.brightness hlásí množství světla detekovaného barevným senzorem. Uvádí rozsah hodnot od 0 % do 100 %.

color_3.set_light(25, PERCENT)
    while True:
        if color_3.brightness() > 25:
            # Pokud senzor barev detekuje světlo, robot se posune doleva
            LeftMotor.spin_for(FORWARD, 35, DEGREES)
        else:
            # Pokud senzor barev detekuje tmu, robot se posune doprava
            RightMotor.spin_for(FORWARD, 35, DEGREES)
        wait(20, MSEC)
V tomto příkladu se příkaz color.brightness používá k tomu, aby robot detekoval a sledoval linii, jak je znázorněno na druhém videu výše.
color_3.hue()

Příkaz color.hue hlásí odstín barvy detekovaný snímačem barev. Uvádí rozsah hodnot odstínu od 0 do 360.

brain.screen.print(color_3.hue())
drivetrain.drive(VPŘED)
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)

V tomto příkladu se příkaz color.hue používá k tomu, aby robot zkontroloval rozsah hodnot odstínu, které odpovídají červené barvě, a aby se otočil doprava o 90 stupňů, pokud jsou tyto hodnoty detekovány senzorem. Pokud jsou detekovány jakékoli jiné hodnoty odstínu, robot se otočí doleva o 90 stupňů.

Příkaz color.hue může být užitečný, když je nutné, aby robot detekoval určité barvy, když okolní světelné podmínky mohou být nekonzistentní.

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

Last Updated: