De kleursensor gebruikt gereflecteerd licht om de kleur, tintwaarde, grijswaardenwaarde, helderheid en nabijheid van een object te detecteren.
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.
Hoe de kleursensor werkt
De kleursensor kan zowel kleur als nabijheid detecteren.
Kleuren detecteren
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.
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:
De kleursensor kan de kleur die hij ziet rapporteren als kleurwaarde of als tintwaarde.
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.
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.
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
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.
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.
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.
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.
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%.
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.
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.
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.
|
| 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.
|
| 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%.
|
| 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.
|
|
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. |