Utilizzo del sensore di colore VEX IQ (1a generazione).

Il sensore di colore utilizza la luce riflessa per rilevare il colore, il valore della tonalità, il valore della scala di grigi, la luminosità e la prossimità di un oggetto.

Pezzo sensore di colore VEX IQ (1a generazione).

Il sensore di colore VEX IQ è incluso nel VEX IQ Super Kit e può essere acquistato anche qui .

Utilizzi un robot VEX IQ di seconda generazione? Per una panoramica dei sensori di seconda generazione , clicca quie scopri di più sul sensore ottico , la versione di seconda generazione del sensore di colore.


Descrizione del sensore di colore

Il sensore di colore VEX IQ ha molteplici modalità che gli consentono di acquisire diversi tipi di informazioni dal suo ambiente. Le informazioni raccolte sono influenzate dalle condizioni di illuminazione dell'ambiente e dalla distanza tra il sensore e l'oggetto o la superficie che sta leggendo.


Ruota dei colori che mostra come il cerchio di 360 gradi sia correlato a un valore di tonalità. Il colore rosso si trova a un grado pari a 0, il colore verde a un grado pari a 120 e il colore blu a un grado pari a 240.


Come funziona il sensore di colore

Il sensore di colore è in grado di rilevare sia il colore che la prossimità.

Rilevamento dei colori

VEXcode IQ Luminosità del blocco che legge la luminosità Color3 in %.

Diagramma di un sensore di colore che rileva una superficie luminosa e riporta un valore dell'80%, e poi rileva una superficie scura e riporta un valore del 20%.

In modalità luminosità, il sensore di colore viene utilizzato per rilevare l'intensità di tutta la luce nell'ambiente del robot. Maggiore è la luce che raggiunge il sensore di colore mentre è attivo, maggiore sarà il valore percentuale inviato al cervello del robot.

VEXcode IQ Imposta il blocco luce del sensore di colore che riporta Imposta luce Color3 al 50%.

Sensore di colore mostrato attaccato a un robot in un ambiente buio. La lampada del sensore di colore si accende per illuminare l'ambiente circostante.

Se la percentuale di luminosità rilevata è bassa o inaffidabile, è possibile accendere la lampada del sensore di colore o aumentare la percentuale di luminosità della lampada utilizzando la seguente luce impostata per il blocco:

Tre blocchi del sensore di colore VEXcode IQ. Il primo è il colore del blocco che legge il nome del colore Color3. Il secondo è una tonalità di blocco che legge la tonalità Color3 in gradi. Il terzo è un blocco Rileva colore che riporta la dicitura Color3 non rileva nessuno?

Il sensore di colore può segnalare il colore che vede come valore di colore o come valore di tonalità.

VEXcode IQ Color rileva un blocco che legge Color3 ma non ne rileva nessuno? Il menu a discesa Colore del blocco si apre per mostrare un elenco di colori da rilevare. L'elenco recita: arancione, viola, rosso violetto, viola, blu violetto, blu verde, giallo verde, giallo arancione e rosso arancione.

Valori di colore.Sono elencati 14 colori che il sensore di colore può rilevare. I colori mancanti nell'immagine del blocco sono rosso, verde, blu, bianco e giallo.

Diagramma del valore della tonalità che mostra come i 360 gradi siano correlati a un valore della tonalità. Il colore rosso si trova a un grado pari a 0, il colore verde a un grado pari a 120 e il colore blu a un grado pari a 240.

Valori di tonalità.I valori di tonalità sono come valori di colore ma numerici. Il valore della tonalità varia da 0 a 360, come i gradi. I valori di colore sopra elencati hanno i propri intervalli di valori di tonalità equivalenti. 

È importante quando si rilevano colori e tonalità che il sensore di colore disponga della quantità di luce adeguata per farlo. Assicurati di testare il sensore di colore, noto anche come calibrazione, con diversi livelli di luce e con la lampada impostata a livelli diversi per determinare quale sia l'impostazione più affidabile per il sensore di colore del tuo robot.

Rilevamento della prossimità

Il sensore di colore include un emettitore di sensori a infrarossi. L'emettitore a infrarossi emette una luce invisibile e poi ne rileva il riflesso. Se la maggior parte della luce infrarossa rimbalza verso il sensore, indica al cervello del robot che un oggetto è vicino.

VEXcode IQ Hai trovato un blocco oggetto che riporta la dicitura Color3 è vicino all'oggetto?

Usi comuni del sensore di colore

I sensori di colore vengono utilizzati in molte applicazioni tecnologiche in cui è importante avere colori specifici su display o prodotti.

Alcuni usi comuni nella vita quotidiana includono:

  • Gli strumenti di calibrazione del colore controllano se uno schermo digitale visualizza colori accurati, quindi regolano le impostazioni dello schermo secondo necessità. È importante per gli artisti grafici e qualsiasi designer che lavora con il colore su uno schermo digitale essere in grado di vedere esattamente visualizzato il colore corretto. Quando i colori non sono accurati si verificano incomprensioni e sprechi di risorse.
  • Fotocamere e videocamere utilizzano sensori di colore per regolare le impostazioni in base alle condizioni di illuminazione in cui si trovano, al fine di migliorare foto e video massimizzando i livelli di luce e migliorando i colori altrimenti opachi. Questi sensori consentono inoltre al fotografo di concentrarsi su colori specifici nelle proprie foto.
  • I sensori di colore vengono talvolta utilizzati nella produzione per verificare rapidamente se un prodotto ha il colore corretto prima di essere spedito al cliente. Ad esempio, è possibile scansionare frutta e verdura che cambiano colore quando sono mature o pronte per essere consumate per garantire che siano del colore corretto da inviare al mercato. 


Alcuni usi comuni con un robot VEX IQ includono:

  • Questo sensore può essere utilizzato per rilevare il colore di un oggetto. Guarda questa animazione per vedere un robot avanzare finché il sensore di colore non rileva un cubo verde.

  • Questo sensore può essere utilizzato per rilevare e/o seguire una linea. Guarda questa animazione per vedere un robot che utilizza il sensore di colore per guidare lungo una linea segnata.

  • Questo sensore può rilevare se un oggetto è vicino.

Sensori di colore su un robot da competizione

Ricorda, è importante quando si rilevano colori e tonalità che il sensore di colore abbia la giusta quantità di luce per farlo. Assicurati di testare il tuo sensore di colore, noto anche come calibrazione, ogni volta che arrivi in ​​un nuovo sito di competizione perché diversi livelli di luce possono influenzare le prestazioni del tuo sensore di colore. Metti alla prova il tuo progetto con la lampada impostata a diversi livelli per determinare qual è l'impostazione più affidabile per il sensore di colore del tuo robot. 

Le informazioni raccolte dal sensore di colore sono utili per programmare un robot competitivo per rispondere a una varietà di condizioni. Il sensore di colore può migliorare un robot da competizione nei seguenti modi:

  • Consente al robot di rilevare il colore di un oggetto vicino al sensore. Ciò è utile se desideri che il robot classifichi oggetti di colore diverso, si avvicini a un oggetto di colore specifico o rilevi il colore degli oggetti mentre passano accanto al sensore.
  • Consente al robot di rilevare la quantità di luce riflessa nel sensore. Ciò consente al tuo robot di guidare finché non raggiunge una linea su una superficie o addirittura di seguire una linea.
  • Consente al robot di sapere se un oggetto o una superficie è vicino. Ciò è utile per determinare se un colore rilevato è una lettura di un oggetto vicino o potenzialmente una lettura anomala di una superficie o luce distante. 

Codifica del sensore di colore in blocchi

VEXcode IQ Hai trovato un blocco oggetto che riporta la dicitura Color3 è vicino all'oggetto?

Il blocco <Found an object> è un blocco reporter booleano che segnala una condizione come vera o falsa. I blocchi booleani, come il blocco <Found an object> , si inseriscono all'interno di blocchi con input esagonali (a sei lati) per altri blocchi.

Il blocco booleano <Found an object> riporta "vero" se "vero" se il sensore di colore rileva un oggetto e "falso" se il sensore non lo rileva. Per saperne di più sui blocchi booleani visita l'articolo Aiuto o Forme dei blocchi e significato.

 

VEXcode IQ blocca il progetto che utilizza un sensore di colore per avanzare finché non trova un oggetto. Il progetto recita: Una volta avviato, procedi in avanti, attendi che Color3 trovi un oggetto, quindi interrompi la guida.

In questo esempio, il blocco <Found an object> viene utilizzato per rilevare la prossimità insieme a un blocco [Aspetta fino a], per far avanzare il robot finché non viene rilevato un oggetto.

VEXcode IQ Color rileva il blocco che legge Color3 rileva il verde?

Il blocco <Color detects> è anche un blocco reporter booleano che segnala una condizione come vera o falsa. Il blocco <Color detects> riporta 'vero' se 'vero' se il sensore di colore rileva il colore selezionato e 'falso' se il sensore rileva qualsiasi altro colore. Per saperne di più sui blocchi booleani visita l'articolo Aiuto o Forme dei blocchi e significato.

 

VEXcode IQ blocca il progetto che utilizza un sensore di colore per avanzare finché non rileva il colore verde. Il progetto recita: Una volta avviato, procedere in avanti, attendere che Color3 rilevi il verde, quindi arrestare la guida.

In questo esempio, il blocco <Color detects> viene utilizzato insieme a un blocco [Aspetta fino a] per far avanzare il robot finché il sensore di colore non rileva un oggetto verde. Il robot smetterà quindi di guidare. Questo è illustrato nel primo video qui sopra.

VEXcode IQ Luminosità del blocco che legge la luminosità Color3 in %.

Il blocco (Luminosità di) riporta la quantità di luce rilevata dal sensore di colore. È un blocco reporter utilizzato all'interno di altri blocchi con spazi circolari.

Il blocco (Luminosità di) riporta un intervallo compreso tra % e 100%.

 

VEXcode IQ blocca il progetto che utilizza un sensore di colore rivolto verso il basso per seguire una linea marcata. Il progetto riporta: All'avvio, imposta la luce Color3 al 25%. Quindi, se la luminosità di Color3 in % è maggiore del 25, ruotare LeftMotor in avanti di 35 gradi, altrimenti ruotare RightMotor in avanti di 35 gradi.

In questo esempio, il blocco (Luminosità di) viene utilizzato per fare in modo che il robot rilevi e segua una linea, come mostrato nel secondo video sopra.

VEXcode IQ Tonalità del blocco che legge la tonalità Color3 in gradi.

Il blocco (Tonalità di) riporta la tonalità del colore rilevato dal Sensore di colore. È un blocco reporter utilizzato all'interno di altri blocchi con spazi circolari.

Il blocco (Luminosità di) riporta un intervallo compreso tra e 360.

 

VEXcode IQ blocca un progetto che utilizza un sensore ottico per avanzare finché non raggiunge un oggetto, per poi girare a destra se è rosso o a sinistra se non lo è. Il progetto recita: Una volta avviato, stampa la tonalità di Color3 in gradi su Brain, procedi in avanti e attendi che Color3 trovi un oggetto. Se la tonalità Color3 in gradi è maggiore di 330 e la tonalità Color3 in gradi è minore di 30, allora girare a destra di 90 gradi, altrimenti girare a sinistra di 90 gradi.

In questo esempio, il blocco (Tonalità di) viene utilizzato per fare in modo che il robot controlli un intervallo di valori di tonalità che corrispondono al colore rosso e ruoti a destra di 90 gradi se tali valori vengono rilevati dal sensore. Se vengono rilevati altri valori di tonalità, il robot girerà a sinistra di 90 gradi.

Il blocco (Tonalità di) può essere utile quando è necessario che il robot rilevi determinati colori quando le condizioni di luce ambientale potrebbero essere incoerenti.

Codificare il sensore di colore in Python

Nota:Per codificare un interruttore paraurti VEX IQ (1a generazione) in Python, è necessario collegarlo a un cervello VEX IQ (2a generazione). Il cervello VEX IQ (1a generazione) non supporta Python.

color_3.is_near_object()

Il comando color.is_near_object riporta True quando un sensore di colore rileva un oggetto o una superficie vicino alla parte anteriore del sensore e False quando un sensore di colore non rileva un oggetto o una superficie vicino alla parte anteriore del sensore.

Nota:Il nome del sensore di colore che appare nel comando corrisponde al nome assegnato nella configurazione. 

drivetrain.drive(FORWARD)
mentre non color_3.is_near_object():
wait(20, MSEC)
drivetrain.stop()
In questo esempio, un cicloWhile con una condizione not viene utilizzato con il comando color.is_near_object per far avanzare il robot finché il sensore di colore non rileva un oggetto vicino alla parte anteriore del robot. il sensore.
colore_3.colore()

Il comando color.color riporta il colore attualmente rilevato dal Color Sensor.

drivetrain.drive(AVANTI)
mentre non color_3.GREEN():
wait(20, MSEC)
drivetrain.stop()
In questo esempio, un cicloWhile con una condizione not viene utilizzato con il comando color.color per far avanzare il robot finché il sensore di colore non rileva un oggetto verde. Il robot smetterà quindi di guidare. Questo è illustrato nel primo video qui sopra.
colore_3.luminosità()

Il comando color.brightness riporta la quantità di luce rilevata dal sensore di colore. Riporta un intervallo di valori compreso tra 0% e 100%.

color_3.set_light(25, PERCENT)
while True:
if color_3.brightness() > 25:
# Se il sensore di colore rileva la luce, il robot si sposterà a sinistra
LeftMotor.spin_for(FORWARD, 35, DEGREES)
else:
# Se il sensore di colore rileva l'oscurità, il robot si sposterà a destra
RightMotor.spin_for(FORWARD, 35, DEGREES)
wait(20, MSEC)
In questo esempio, il comando color.brightness viene utilizzato per fare in modo che il robot rilevi e segua una linea, come mostrato nel secondo video sopra.
color_3.hue()

Il comando color.hue riporta la tonalità del colore rilevato dal sensore di colore. Riporta un intervallo di valori di tonalità da 0 a 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 questo esempio, il comando color.hue viene utilizzato per fare in modo che il robot controlli un intervallo di valori di tonalità che corrispondono al colore rosso e giri a destra di 90 gradi se tali valori vengono rilevati dal sensore. Se vengono rilevati altri valori di tonalità, il robot girerà a sinistra di 90 gradi.

Il comando color.hue può essere utile quando è necessario che il robot rilevi determinati colori quando le condizioni di luce ambientale potrebbero essere incoerenti.

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

Last Updated: