Färgsensorn använder reflekterat ljus för att detektera ett objekts färg, nyansvärde, gråskalevärde, ljusstyrka och närhet.
VEX IQ-färgsensorn ingår i VEX IQ Super Kit och kan även köpas här.
Använder du en andra generationens VEX IQ-robot? Se en översikt över andra generationens sensorer här, och information om den optiska sensorn, andra generationens version av färgsensorn.
Beskrivning av färgsensorn
VEX IQ-färgsensorn har flera lägen som gör att den kan fånga olika typer av information från sin omgivning. Informationen den samlar in påverkas av ljusförhållandena i omgivningen samt avståndet mellan sensorn och objektet eller ytan den avläser.
Hur färgsensorn fungerar
Färgsensorn kan upptäcka både färg och närhet.
Färgupptäckt
I ljusstyrkeläge används färgsensorn för att detektera intensiteten hos allt ljus i robotens omgivning. Ju mer ljus som når färgsensorn medan den är aktiv, desto högre procentvärde skickas till robothjärnan.
Om den detekterade ljusstyrkeprocenten är låg eller otillförlitlig kan färgsensorns lampa tändas eller lampans ljusstyrkeprocent ökas genom att använda följande inställning för att blockera ljus:
Färgsensorn kan rapportera den färg den ser antingen som ett färgvärde eller som ett nyansvärde.
Färgvärden.Det finns 14 listade färger som färgsensorn kan upptäcka. Färgerna som saknas i bilden av blocket är röd, grön, blå, vit och gul.
Nyansvärden.Nyansvärden är som färgvärden men numeriska. Nyansvärdet varierar från 0 till 360, ungefär som grader. Färgvärdena som anges ovan har sina egna motsvarande nyansvärdeintervall.
Det är viktigt vid detektering av färger och nyanser att färgsensorn har rätt mängd ljus för att göra det. Se till att testa, även känt som kalibrering, din färgsensor i olika ljusnivåer och med lampan inställd på olika nivåer för att avgöra vilken inställning som är mest tillförlitlig för din robots färgsensor.
Närhetsdetektering
Färgsensorn inkluderar en infraröd sensor-sändare. Den infraröda sändaren avger ett osynligt ljus och detekterar sedan dess reflektion. Om det mesta av det infraröda ljuset studsar tillbaka mot sensorn, talar det om för robothjärnan att ett objekt är nära.
Vanliga användningsområden för färgsensorn
Färgsensorer används i många tekniska tillämpningar där det är viktigt att ha specifika färger på skärmar eller produkter.
Några vanliga användningsområden i vardagen inkluderar:
- Färgkalibreringsverktyg kontrollerar om en digital skärm visar korrekta färger och justerar sedan skärminställningarna efter behov. Det är viktigt för grafiker och alla designers som arbetar med färg på en digital skärm att kunna se exakt rätt färg som visas. Missförstånd och slöseri med resurser uppstår när färgerna inte är korrekta.
- Kameror och videokameror använder färgsensorer för att justera inställningar baserat på ljusförhållandena de befinner sig i, i syfte att förbättra sina foton och videor genom att maximera ljusnivåerna och förstärka annars matta färger. Dessa sensorer gör det också möjligt för en fotograf att fokusera på specifika färger i sina foton.
- Färgsensorer används ibland i tillverkningen för att snabbt kontrollera om en produkt har rätt färg innan den skickas till en kund. Till exempel kan frukt och grönsaker som ändrar färg när de är mogna eller redo att ätas skannas för att säkerställa att de har rätt färg att skicka till marknaden.
Några vanliga användningsområden för en VEX IQ-robot inkluderar:
- Denna sensor kan användas för att detektera färgen på ett objekt. Titta på den här animationen för att se en robot köra framåt tills färgsensorn detekterar en grön kub.
- Denna sensor kan användas för att detektera och/eller följa en linje. Titta på den här animationen för att se en robot som använder färgsensorn för att köra längs en markerad linje.
- Den här sensorn kan upptäcka om ett föremål är i närheten.
Färgsensorer på en tävlingsrobot
Kom ihåg att det är viktigt när man detekterar färger och nyanser att färgsensorn har rätt mängd ljus för att göra det. Se till att testa, även känt som kalibrering, din färgsensor varje gång du anländer till en ny tävlingsplats eftersom olika ljusnivåer kan påverka hur din färgsensor presterar. Testa ditt projekt med lampan inställd på olika nivåer för att avgöra vilken inställning som är mest tillförlitlig för din robots färgsensor.
Informationen som samlas in av färgsensorn är användbar för att programmera en konkurrenskraftig robot att reagera på en mängd olika förhållanden. Färgsensorn kan göra en tävlingsrobot bättre på följande sätt:
- Den låter roboten upptäcka färgen på ett objekt nära sensorn. Detta är användbart om du vill att roboten ska sortera föremål i olika färger, köra fram till ett föremål med en specifik färg eller upptäcka färgen på föremål när de passerar förbi sensorn.
- Den låter roboten detektera hur mycket ljus som reflekteras tillbaka in i sensorn. Detta gör att din robot kan köra tills den når en linje på en yta, eller till och med följa en linje.
- Den låter roboten veta om ett föremål eller en yta är i närheten. Detta är användbart för att avgöra om en detekterad färg är en avläsning från ett närliggande objekt eller potentiellt en avvikande avläsning från en avlägsen yta eller ett ljus.
Kodning av färgsensorn i block
<Found an object> blocket är ett booleskt reporterblock som rapporterar ett villkor som antingen sant eller falskt. Booleska block, som <Found an object> blocket, passar inuti block med hexagonala (sexsidiga) indata för andra block.
Det booleska blocket <Found an object> rapporterar 'sant' om 'sant' om färgsensorn detekterar ett objekt, och 'falskt' om sensorn inte gör det. För att lära dig mer om booleska block, besök artikeln Hjälp eller Blockformer och betydelse.
I det här exemplet används <Found an object> blocket för att detektera närhet tillsammans med ett [Vänta tills]-block, för att få roboten att köra framåt tills ett objekt detekteras.
<Color detects> blocket är också ett booleskt reporterblock som rapporterar ett villkor som antingen sant eller falskt. <Color detects> blocket rapporterar 'sant' om 'sant' om färgsensorn detekterar den valda färgen och 'falskt' om sensorn detekterar någon annan färg. För att lära dig mer om booleska block, besök artikeln Hjälp eller Blockformer och betydelse.
I det här exemplet används <Color detects> blocket tillsammans med ett [Vänta tills]-block för att få roboten att köra framåt tills färgsensorn detekterar ett grönt objekt. Roboten kommer då att sluta köra. Detta illustreras i den första videon ovan.
Blocket (Ljusstyrka för) rapporterar mängden ljus som detekterats av färgsensorn. Det är ett reporterblock som används inuti andra block med cirkulära mellanrum.
Blocket (Ljusstyrka för) rapporterar ett intervall från 0 % till 100 %
I det här exemplet används blocket (Ljusstyrka för) för att roboten ska upptäcka och följa en linje, som visas i den andra videon ovan.
Blocket (Nyans av) rapporterar nyansen på den färg som detekterats av färgsensorn. Det är ett reporterblock som används inuti andra block med cirkulära mellanrum.
Blocket (Ljusstyrka) rapporterar ett intervall från till 360
I det här exemplet används blocket (Nyans av) för att roboten ska kontrollera ett intervall av nyansvärden som motsvarar färgen röd, och svänga höger i 90 grader om dessa värden detekteras av sensorn. Om andra nyansvärden detekteras svänger roboten 90 grader åt vänster.
Blocket (Nyans av) kan vara användbart när det är nödvändigt för roboten att upptäcka vissa färger när omgivande ljusförhållanden kan vara inkonsekventa.
Kodning av färgsensorn i Python
Obs:För att koda en VEX IQ (1:a generationen) Bumper Switch i Python måste den vara ansluten till en VEX IQ (2:a generationen) Brain. VEX IQ (1:a generationen) Brain stöder inte Python.
color_3.is_near_object()
Kommandot color.is_near_object rapporterar Sant när en färgsensor detekterar ett objekt eller en yta nära sensorns framsida och Falskt när en färgsensor inte detekterar ett objekt eller en yta nära sensorns framsida.
Obs:Namnet på färgsensorn som visas i kommandot motsvarar det namn den har fått i konfigurationen.
drivetrain.drive(FRAMÅT) |
| I detexemplet används enWhile -slinga med ett not villkorkommandot för att få roboten att köra framåt tills färgsensorn detekterar ett objekt nära sensorns framsida. |
color_3.color()
Kommandot color.color rapporterar den färg som för närvarande detekteras av färgsensorn.
drivetrain.drive(FRAMÅT) |
| I det här exemplet används enWhile -slinga med ett not -villkor med kommandot color.color för att få roboten att köra framåt tills färgsensorn detekterar ett grönt objekt. Roboten kommer då att sluta köra. Detta illustreras i den första videon ovan. |
color_3.brightness()
Kommandot color.brightness rapporterar mängden ljus som detekteras av färgsensorn. Det rapporterar ett värdeintervall från 0 % - 100 %.
color_3.set_light(25, PERCENT) |
| I det här exemplet används kommandot color.brightness för att roboten ska upptäcka och följa en linje, som visas i den andra videon ovan. |
color_3.hue()
Kommandot color.hue rapporterar nyansen på den färg som detekterats av färgsensorn. Den rapporterar ett intervall av nyansvärden från till 360
brain.screen.print(color_3.hue()) |
|
I det här exemplet används kommandot color.hue för att roboten ska kontrollera ett intervall av nyansvärden som motsvarar färgen röd, och svänga höger i 90 grader om dessa värden detekteras av sensorn. Om andra nyansvärden detekteras svänger roboten 90 grader åt vänster. Kommandot color.hue kan vara användbart när det är nödvändigt för roboten att upptäcka vissa färger när omgivande ljusförhållanden kan vara inkonsekventa. |