De kleursensor gebruikt gereflecteerd licht om de kleur, tintwaarde, grijswaardenwaarde, helderheid en nabijheid van een object te detecteren.
Beschrijving van de kleursensor
De VEX IQ kleurensensor heeft meerdere modi, waardoor hij verschillende soorten informatie uit zijn omgeving kan vastleggen. De informatie die hij verzamelt, wordt beïnvloed door de lichtomstandigheden in zijn omgeving en door de afstand tussen de sensor en het object of oppervlak dat hij leest.
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.
Tintwaarden.Tintwaarden lijken op kleurwaarden, maar zijn numeriek. De tintwaarde varieert van 0 tot 360, zoals graden. De hierboven genoemde kleurwaarden hebben hun eigen equivalente tintwaardebereiken.
Bij het detecteren van kleuren en tinten is het belangrijk dat de kleursensor hiervoor de juiste hoeveelheid licht heeft. Zorg ervoor dat u uw kleursensor test, ook wel kalibreren genoemd, in verschillende lichtniveaus en met de lamp op verschillende niveaus ingesteld om te bepalen wat de meest betrouwbare instelling is voor de kleursensor van uw robot.
Nabijheid detecteren
De kleurensensor bevat een infraroodsensor-emitter. De infraroodzender straalt een onzichtbaar licht uit en detecteert vervolgens de reflectie ervan. Als het grootste deel van het infraroodlicht terugkaatst naar de sensor, vertelt dit het robotbrein dat er een object dichtbij is.
Algemeen gebruik van de kleursensor
Kleursensoren worden gebruikt in veel technologische toepassingen waarbij het belangrijk is om specifieke kleuren op displays of producten te hebben.
Enkele veel voorkomende 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.
- Deze sensor kan worden gebruikt om een lijn te detecteren en/of te volgen.
- Deze sensor kan detecteren of er een object in de buurt is.
Kleursensoren op een wedstrijdrobot
Houd er rekening mee dat het bij het detecteren van kleuren en tinten belangrijk is dat de kleursensor daarvoor de juiste hoeveelheid licht heeft. Zorg ervoor dat u uw kleursensor test, ook wel kalibreren genoemd, elke keer dat u op een nieuwe wedstrijdlocatie aankomt, omdat verschillende lichtniveaus de prestaties van uw kleursensor kunnen beïnvloeden. Test uw project met de lampenset op verschillende niveaus om te bepalen wat de meest betrouwbare instelling is voor de kleursensor van uw robot.
De informatie die door de kleurensensor wordt verzameld, is nuttig voor het programmeren van een concurrerende robot om op verschillende omstandigheden te reageren. De Kleursensor kan een wedstrijdrobot op de volgende manieren beter maken:
- 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) bumperschakelaar in Python te coderen, moet deze worden aangesloten op een VEX IQ (2e generatie) Brain. De VEX IQ (1e generatie) Brain ondersteunt geen Python.
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 en niet voorwaarde gebruikt met de opdracht color.is_near_object om de robot vooruit te laten rijden totdat de kleursensor een object detecteert dichtbij de voorkant van de sensor.
Het commando kleur.kleur rapporteert de kleur die momenteel wordt gedetecteerd door de kleurensensor.
In dit voorbeeld wordt eenWhile -lus met een en niet voorwaarde gebruikt met de opdracht color.color 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 commando kleur.helderheid rapporteert de hoeveelheid licht die door de kleursensor wordt gedetecteerd. Het rapporteert een bereik van waarden van 0% - 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.
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.