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

De VEX IQ-kleurensensor is inbegrepen in de VEX IQ Super Kit en kan ook hier worden gekocht.

Gebruikt u een VEX IQ-robot van de 2e generatie? Bekijk hier een overzicht van 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 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.


Kleurenwiel dat laat zien hoe de 360-gradencirkel verband houdt met een tintwaarde. De kleur rood bevindt zich op graad 0, de kleur groen op graad 120 en de kleur blauw op graad 240.


Hoe de kleursensor werkt

De kleursensor kan zowel kleur als nabijheid detecteren.

Kleuren detecteren

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

Diagram van een kleurensensor 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 Stel het kleurensensorlichtblok in met de tekst Stel kleur3-licht in op 50%.

Kleurensensor bevestigd aan een robot in een donkere omgeving. De lamp van de kleurensensor 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 Color Sensor-blokken. De eerste is Kleur van het blok met de kleurnaam Color3. De tweede is een blok met de tint Color3 in graden. De derde is een Color detects-blok met de tekst Color3 detects none?

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

VEXcode IQ Color detecteert een blok met de tekst Color3 en detecteert er geen. Het vervolgkeuzemenu Kleur van het blok wordt geopend en toont een lijst met kleuren die het blok kan detecteren. De lijst ziet er als volgt uit: 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.

Tintwaardediagram dat laat zien hoe de 360 graden verband houden met een tintwaarde. De kleur rood bevindt zich op graad 0, de kleur groen op graad 120 en de kleur blauw op graad 240.

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.

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

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

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

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

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)
terwijl niet color_3.is_near_object():
wait(20, MSEC)
drivetrain.stop()
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.
kleur_3.kleur()

Het commando kleur.kleur rapporteert de kleur die momenteel wordt gedetecteerd door de kleurensensor.

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

Het commando kleur.helderheid rapporteert de hoeveelheid licht die door de kleursensor wordt gedetecteerd. Het rapporteert een bereik van waarden van 0% - 100%.

color_3.set_light(25, PERCENT)
while True:
if color_3.brightness() > 25:
# Als de kleurensensor licht detecteert, zal de robot naar links verschuiven
LeftMotor.spin_for(FORWARD, 35, DEGREES)
else:
# Als de kleurensensor duisternis detecteert, zal de robot naar rechts verschuiven
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 en color_3.hue() < 30:
drivetrain.turn_for(RECHTS, 90, GRADEN)
else:
drivetrain.turn_for(LINKS, 90, GRADEN)

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: