Gebruik van de VEX IQ (1e generatie) kleurensensor

De kleursensor gebruikt gereflecteerd licht om de kleur, tintwaarde, grijswaardenwaarde, helderheid en nabijheid van een object te detecteren.

VEX IQ (1e generatie) kleurensensor.

De VEX IQ kleurensensor is inbegrepen in de VEX IQ Super Kit en kan ook worden aangeschaft

Gebruik je een VEX IQ-robot van de tweede generatie? Bekijk hier een overzicht van de sensoren van de 2e generatie en informatie over de optische sensor, de 2e generatie versie van de kleurensensor.


Beschrijving van de kleursensor

De VEX IQ kleurensensor heeft meerdere modi, waardoor hij verschillende soorten informatie uit zijn omgeving kan vastleggen. De informatie die de sensor verzamelt, wordt beïnvloed door de lichtomstandigheden in de omgeving en de afstand tussen de sensor en het object of oppervlak dat wordt gemeten.


Kleurenwiel dat laat zien hoe de 360-gradencirkel overeenkomt met een kleurwaarde. De kleur rood heeft een helderheid van 0 graden, de kleur groen heeft een helderheid van 120 graden en de kleur blauw heeft een helderheid van 240 graden.


Hoe de kleursensor werkt

De kleursensor kan zowel kleur als nabijheid detecteren.

Kleuren detecteren
VEXcode IQ Helderheid van het blok dat de Color3-helderheid in % uitleest.
Diagram van een kleursensor die een helder oppervlak detecteert en een waarde van 80% rapporteert, en vervolgens een donker oppervlak detecteert en een waarde van 20% rapporteert.

In de helderheidsmodus wordt de kleurensensor gebruikt om de intensiteit van al het licht in de omgeving van de robot te detecteren. Hoe meer licht de kleursensor bereikt terwijl deze actief is, hoe hoger het percentage dat naar het robotbrein wordt gestuurd.

VEXcode IQ Set kleursensor lichtblok dat de kleursensor uitleest. Stel de Color3-verlichting in op 50%.
De kleurensensor is hier te zien, bevestigd aan een robot in een donkere omgeving. De lamp van de kleursensor wordt ingeschakeld om de omgeving te verlichten.

Als het gedetecteerde helderheidspercentage laag of onbetrouwbaar is, kan de lamp van de kleursensor worden ingeschakeld of kan het helderheidspercentage van de lamp worden verhoogd door het volgende ingestelde licht te blokkeren:

Drie VEXcode IQ kleurensensorblokken. De eerste is de kleur van het blok waarop de kleurnaam Color3 staat. Het tweede is een 'Hue'-blok met de tekst 'Color3 hue in degrees'. Het derde blok is een kleurdetectieblok met de tekst "Kleur3 detecteert niets?".

De kleursensor kan de kleur die hij ziet rapporteren als kleurwaarde of als tintwaarde.

VEXcode IQ Color detecteert een blok dat Color3 leest, maar detecteert er geen? Het vervolgkeuzemenu 'Kleur' ​​van het blok wordt geopend om een ​​lijst met kleuren weer te geven die het blok kan detecteren. De lijst luidt: oranje, paars, roodviolet, violet, blauwviolet, blauwgroen, geelgroen, geeloranje en roodoranje.

Kleurwaarden.Er zijn 14 kleuren vermeld die de kleursensor kan detecteren. De kleuren die ontbreken in de afbeelding van het blok zijn rood, groen, blauw, wit en geel.

Een diagram dat de correlatie tussen de 360 ​​graden en een kleurwaarde illustreert. De kleur rood heeft een helderheid van 0 graden, de kleur groen heeft een helderheid van 120 graden en de kleur blauw heeft een helderheid van 240 graden.

Kleurtoonwaarden.Kleurtoonwaarden zijn vergelijkbaar met kleurwaarden, maar dan numeriek. De tintwaarde varieert van 0 tot 360, zoals graden. De hierboven genoemde kleurwaarden hebben hun eigen equivalente tintwaardebereiken. 

Voor het detecteren van kleuren en tinten is het belangrijk dat de kleursensor voldoende licht ontvangt. Test, ook wel kalibreer genoemd, uw kleursensor bij verschillende lichtniveaus en met de lamp op verschillende standen om te bepalen wat de meest betrouwbare instelling is voor de kleursensor van uw robot.

Nabijheid detecteren

De kleurensensor bevat een infraroodsensor. De infraroodzender zendt onzichtbaar licht uit en detecteert vervolgens de reflectie ervan. Als het grootste deel van het infraroodlicht terugkaatst naar de sensor, geeft dit het Robotbrein het signaal dat er een object in de buurt is.

VEXcode IQ heeft een objectblok gevonden met de tekst "Kleur3 bevindt zich in de buurt van object?".

Algemeen gebruik van de kleursensor

Kleursensoren worden in veel technologische toepassingen gebruikt waar het belangrijk is om specifieke kleuren op schermen of producten weer te geven.

Enkele veelvoorkomende toepassingen in het dagelijks leven zijn:

  • Kleurkalibratiehulpmiddelen controleren of een digitaal scherm nauwkeurige kleuren weergeeft en passen vervolgens de weergave-instellingen indien nodig aan. Het is belangrijk voor grafische kunstenaars en elke ontwerper die met kleur op een digitaal scherm werkt, om precies de juiste kleur te kunnen zien die wordt weergegeven. Misverstanden en verspilde middelen ontstaan ​​wanneer de kleuren niet nauwkeurig zijn.
  • Camera's en camcorders gebruiken kleursensoren om instellingen aan te passen op basis van de lichtomstandigheden waarin ze zich bevinden, om zo hun foto's en video's te verbeteren door de lichtniveaus te maximaliseren en anders doffe kleuren te verbeteren. Met deze sensoren kan een fotograaf zich ook concentreren op specifieke kleuren in zijn foto's.
  • Kleursensoren worden soms gebruikt in de productie om snel te controleren of een product de juiste kleur heeft voordat het naar een klant wordt verzonden. Groenten en fruit die van kleur veranderen wanneer ze rijp zijn of klaar zijn om gegeten te worden, kunnen bijvoorbeeld worden gescand om er zeker van te zijn dat ze de juiste kleur hebben om naar de markt te worden verzonden. 


Enkele veelvoorkomende toepassingen van een VEX IQ-robot zijn:

  • Deze sensor kan worden gebruikt om de kleur van een object te detecteren. Bekijk deze animatie om te zien hoe een robot vooruit rijdt totdat de kleurensensor een groene kubus detecteert.

  • Deze sensor kan worden gebruikt om een ​​lijn te detecteren en/of te volgen. Bekijk deze animatie en zie hoe een robot de kleurensensor gebruikt om langs een gemarkeerde lijn te rijden.

  • Deze sensor kan detecteren of er een object in de buurt is.

Kleursensoren op een wedstrijdrobot

Onthoud dat het belangrijk is dat de kleursensor voldoende licht krijgt om kleuren en tinten te detecteren. Zorg ervoor dat u uw kleursensor test, ook wel kalibreert, telkens wanneer u op een nieuwe wedstrijdlocatie aankomt, omdat verschillende lichtomstandigheden de prestaties van uw kleursensor kunnen beïnvloeden. Test je project met de lamp op verschillende niveaus om te bepalen welke instelling het meest betrouwbaar is voor de kleursensor van je robot. 

De informatie die de kleursensor verzamelt, is nuttig voor het programmeren van een wedstrijdrobot, zodat deze op verschillende omstandigheden kan reageren. De kleursensor kan een wedstrijdrobot op de volgende manieren verbeteren:

  • Hiermee kan de robot de kleur van een object in de buurt van de sensor detecteren. Dit is handig als u wilt dat de robot verschillend gekleurde objecten sorteert, naar een specifiek gekleurd object rijdt of de kleur van objecten detecteert wanneer deze de sensor passeren.
  • Hiermee kan de robot detecteren hoeveel licht wordt teruggekaatst in de sensor. Hierdoor kan uw robot rijden tot hij een lijn op een oppervlak bereikt, of zelfs een lijn volgen.
  • Het laat de robot weten of een object of oppervlak in de buurt is. Dit is nuttig bij het bepalen of een gedetecteerde kleur een lezing is van een object in de buurt of mogelijk een afwijkende lezing van een oppervlak of licht op afstand. 

Codering van de kleursensor in blokken

VEXcode IQ Heb je een objectblok gevonden met de tekst Color3 is near object?

Het <Found an object> blok is een Booleaans reporterblok dat een voorwaarde rapporteert als waar of onwaar. Booleaanse blokken, zoals het <Found an object> blok, passen in blokken met zeshoekige (zeszijdige) ingangen voor andere blokken.

Het Booleaanse blok <Found an object> rapporteert 'true' als het 'true' is als de kleursensor een object detecteert, en 'false' als de sensor dat niet doet. Voor meer informatie over Booleaanse blokken gaat u naar het artikel Help of het artikel Blokvormen en betekenis.

 

VEXcode IQ blokkeert projecten die een kleurensensor gebruiken om vooruit te rijden totdat het een object vindt. Het project luidt als volgt: Wanneer u begint, rijd dan vooruit, wacht totdat Color3 een object heeft gevonden en stop dan met rijden.

In dit voorbeeld wordt het <Found an object> blok gebruikt om nabijheid te detecteren, samen met een [Wacht tot]-blok, om de robot vooruit te laten rijden totdat een object wordt gedetecteerd.

VEXcode IQ Color detecteert een blok met de tekst Color3 detecteert groen?

Het <Color detects> blok is ook een Booleaans reporterblok dat een voorwaarde rapporteert als waar of onwaar. Het <Color detects> blok rapporteert 'true' als het 'true' is als de kleursensor de geselecteerde kleur detecteert en 'false' als de sensor een andere kleur detecteert. Voor meer informatie over Booleaanse blokken gaat u naar het artikel Help of het artikel Blokvormen en betekenis.

 

VEXcode IQ blokkeert projecten die een kleurensensor gebruiken om vooruit te rijden totdat het de kleur groen detecteert. Het project luidt als volgt: Wanneer gestart, rijd vooruit, wacht totdat Color3 groen detecteert en stop dan met rijden.

In dit voorbeeld wordt het <Color detects> blok samen met een [Wacht tot]-blok gebruikt om de robot vooruit te laten rijden totdat de kleursensor een groen object detecteert. De robot stopt dan met rijden. Dit wordt geïllustreerd in de eerste video hierboven.

VEXcode IQ Helderheid van het blok dat de helderheid van Color3 aangeeft in %.

Het blok (Helderheid van) rapporteert de hoeveelheid licht die door de Kleursensor wordt gedetecteerd. Het is een reporterblok dat wordt gebruikt in andere blokken met cirkelvormige ruimtes.

Het blok (Helderheid van) rapporteert een bereik van 0% tot 100%.

 

VEXcode IQ blokkeert projecten die een naar beneden gerichte kleurensensor gebruiken om een gemarkeerde lijn te volgen. Het project luidt: Wanneer gestart, stel Color3 licht in op 25%. Vervolgens, als de helderheid van Color3 in % groter is dan 25, draai dan de linkermotor 35 graden vooruit. Draai anders de rechtermotor 35 graden vooruit.

In dit voorbeeld wordt het blok (Helderheid van) gebruikt om de robot een lijn te laten detecteren en volgen, zoals weergegeven in de tweede video hierboven.

VEXcode IQ Kleurtint van het blok dat de kleurtint Color3 in graden aangeeft.

Het blok (Hue of) rapporteert de tint van de kleur die door de kleursensor wordt gedetecteerd. Het is een reporterblok dat wordt gebruikt in andere blokken met cirkelvormige ruimtes.

Het blok (Helderheid van) rapporteert een bereik van 0 tot 360.

 

VEXcode IQ blokkeert projecten die een optische sensor gebruiken om vooruit te rijden totdat het een object bereikt, en vervolgens naar rechts te gaan als het rood is, of naar links als dat niet het geval is. Het project luidt als volgt: Wanneer gestart, print Color3 de kleurtoon in graden op Brain, rijd vooruit en wacht tot Color3 een object heeft gevonden. Als de kleurtint in graden groter is dan 330 en de kleurtint in graden kleiner is dan 30, draai dan 90 graden naar rechts, anders 90 graden naar links.

In dit voorbeeld wordt het blok (Hue of) gebruikt om de robot een reeks tintwaarden te laten controleren die overeenkomen met de kleur rood, en om 90 graden naar rechts te draaien als deze waarden door de sensor worden gedetecteerd. Als er andere tintwaarden worden gedetecteerd, draait de robot 90 graden naar links.

Het blok (Hue of) kan handig zijn wanneer het nodig is dat de robot bepaalde kleuren detecteert wanneer de omgevingslichtomstandigheden inconsistent kunnen zijn.

Codering van de kleursensor in Python

Opmerking:Om een ​​VEX IQ (1e generatie) Bumper Switch in Python te programmeren, moet deze verbonden zijn met een VEX IQ (2e generatie) Brain. De VEX IQ (1e generatie) Brain ondersteunt geen Python.

color_3.is_near_object()

Het commando color.is_near_object rapporteert True wanneer een kleurensensor een object of oppervlak dicht bij de voorkant van de sensor detecteert en False wanneer een kleurensensor niet een object of oppervlak detecteert dicht bij de voorkant van de sensor sensor.

Opmerking:De naam van de kleursensor die in de opdracht verschijnt, komt overeen met de naam die deze in de configuratie krijgt. 

drivetrain.drive(FORWARD)
while not color_3.is_near_object():
wait(20, MSEC)
drivetrain.stop()
In dit voorbeeld wordt eenWhile lus met een niet voorwaarde gebruikt met de color.is_near_object opdracht om de robot vooruit te laten rijden totdat de kleursensor een object detecteert dat zich dicht voor de sensor bevindt.
color_3.color()

De opdracht color.color geeft de kleur weer die momenteel door de kleursensor wordt gedetecteerd.

drivetrain.drive(FORWARD)
while not color_3.GREEN():
    wait(20, MSEC)
drivetrain.stop()
In dit voorbeeld wordt eenWhile lus met een niet voorwaarde gebruikt met het color.color commando om de robot vooruit te laten rijden totdat de kleursensor een groen object detecteert. De robot stopt dan met rijden. Dit wordt geïllustreerd in de eerste video hierboven.
kleur_3.helderheid()

De opdracht color.brightness geeft de hoeveelheid licht weer die door de kleursensor is gedetecteerd. Het rapporteert een reeks waarden van 0% tot 100%.

color_3.set_light(25, PERCENT)
    while True:
        if color_3.brightness() > 25:
            # Als de kleursensor licht detecteert, beweegt de robot naar links
            LeftMotor.spin_for(FORWARD, 35, DEGREES)
        else:
            # Als de kleursensor duisternis detecteert, beweegt de robot naar rechts
            RightMotor.spin_for(FORWARD, 35, DEGREES)
        wait(20, MSEC)
In dit voorbeeld wordt het commando color.brightness gebruikt om de robot een lijn te laten detecteren en volgen, zoals weergegeven in de tweede video hierboven.
kleur_3.tint()

Het commando color.hue rapporteert de tint van de kleur die door de kleursensor wordt gedetecteerd. Het rapporteert een bereik van tintwaarden van 0 tot 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)

In dit voorbeeld wordt het commando color.hue gebruikt om de robot een reeks tintwaarden te laten controleren die overeenkomen met de kleur rood, en om 90 graden naar rechts te draaien als deze waarden door de sensor worden gedetecteerd. Als er andere tintwaarden worden gedetecteerd, draait de robot 90 graden naar links.

Het commando color.hue kan nuttig zijn wanneer de robot bepaalde kleuren moet detecteren wanneer de omgevingslichtomstandigheden inconsistent kunnen zijn.

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

Last Updated: