Använda VEX IQ (1:a generationen) färgsensor

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 (1:a generationen) Färgsensor.

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.


Färgcirkel som visar hur 360-graderscirkeln korrelerar med ett nyansvärde. Färgen röd har en grad på 0, färgen grön har en grad på 120 och färgen blå har en grad på 240.


Hur färgsensorn fungerar

Färgsensorn kan upptäcka både färg och närhet.

Färgupptäckt

VEXcode IQ Ljusstyrka för block som läser Color3 ljusstyrka i %.

Diagram över en färgsensor som detekterar en ljus yta och rapporterar ett värde på 80 %, och sedan detekterar en mörk yta och rapporterar ett värde på 20 %.

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.

VEXcode IQ Ställ in färgsensorns ljusblock som visar Ställ in Färg3-ljuset till 50 %.

Färgsensor visas fäst vid en robot i en mörk miljö. Färgsensorns lampa tänds för att belysa omgivningen.

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:

Tre VEXcode IQ-färgsensorblock. Den första är Färg på block som läser Färg3 färgnamn. Det andra är ett nyansblock som läser Color3-nyansen i grader. Det tredje är ett Color detects-block som läser Color3 detects none?

Färgsensorn kan rapportera den färg den ser antingen som ett färgvärde eller som ett nyansvärde.

VEXcode IQ Color detekterar block som läser Color3, detekterar inget? Blockets rullgardinsmeny Färg öppnas och visar en lista med färger som det kan känna av. Listan lyder orange, lila, rödviolett, violett, blåviolett, blågrön, gulgrön, gulorange och rödorange.

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ärdesdiagram som visar hur 360 grader korrelerar med ett nyansvärde. Färgen röd har en grad på 0, färgen grön har en grad på 120 och färgen blå har en grad på 240.

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.

VEXcode IQ Hittade du ett objektblock som läser Color3 är nära objekt?

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

VEXcode IQ Hittade du ett objektblock som läser Color3 är nära objekt?

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

 

VEXcode IQ blockerar ett projekt som använder en färgsensor för att köra framåt tills den hittar ett objekt. Projektet lyder När den startas, kör framåt, vänta tills Color3 hittat ett objekt och sluta sedan köra.

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.

VEXcode IQ Color detekterar block som läser Color3 detekterar grönt?

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

 

VEXcode IQ blockerar ett projekt som använder en färgsensor för att köra framåt tills den detekterar färgen grön. Projektet lyder När den startas, kör framåt, vänta tills Color3 detekterar grönt och sluta sedan köra.

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.

VEXcode IQ Ljusstyrka för block som läser Color3 ljusstyrka i %.

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 %

 

VEXcode IQ blockerar ett projekt som använder en nedåtriktad färgsensor för att följa en markerad linje. Projektet visar När den startas, ställ in Color3-ljuset till 25 %. Nästa, för alltid, om Color3:s ljusstyrka i % är större än 25, snurra då vänstermotorn framåt i 35 grader, annars snurra högermotorn framåt i 35 grader.

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.

VEXcode IQ Nyans för block som läser Color3 nyans i grader.

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

 

VEXcode IQ blockerar ett projekt som använder en optisk sensor för att köra framåt tills den når ett objekt, och sedan svänga höger om det är rött eller vänster om det inte är det. Projektet lyder När den startas, skriv ut Color3 nyans i grader på hjärnan, kör framåt och vänta sedan tills Color3 hittat ett objekt. Om Color3:s nyans i grader är större än 330 och Color3:s nyans i grader är mindre än 30, sväng höger i 90 grader, annars sväng vänster i 90 grader.

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)
medan inte color_3.is_near_object():
wait(20, MSEC)
drivetrain.stop()
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)
medan inte color_3.GREEN():
wait(20, MSEC)
drivetrain.stop()
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)
while True:
if color_3.brightness() > 25:
# Om färgsensorn detekterar ljus, kommer roboten att flytta åt vänster
LeftMotor.spin_for(FORWARD, 35, DEGREES)
else:
# Om färgsensorn detekterar mörker, kommer roboten att flytta åt höger
RightMotor.spin_for(FORWARD, 35, DEGREES)
wait(20, MSEC)
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())
drivetrain.drive(FÖRDRAG)
medan color_3.is_near_object() inte är:
wait(20, MSEC)
if color_3.hue() > 330 and color_3.hue() < 30:
drivetrain.turn_for(HÖGER, 90, GRADER)
else:
drivetrain.turn_for(VÄNSTER, 90, GRADER)

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.

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

Last Updated: