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.

Sensore di colore VEX IQ (1a generazione).

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

Utilizzi un robot VEX IQ di seconda generazione? potete trovare una panoramica dei sensori di seconda generazione e informazioni sul sensore ottico , la versione di seconda generazione del sensore di colore.


Descrizione del sensore di colore

Il sensore di colore VEX IQ dispone di diverse modalità che gli consentono di acquisire differenti tipi di informazioni dall'ambiente circostante. Le informazioni raccolte sono influenzate dalle condizioni di illuminazione dell'ambiente circostante, nonché dalla distanza tra il sensore e l'oggetto o la superficie che sta analizzando.


Ruota dei colori che illustra la correlazione tra un cerchio di 360 gradi e un valore di tonalità. Il colore rosso si trova a 0 gradi, il colore verde a 120 gradi e il colore blu a 240 gradi.


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 %.
Schema di un sensore di colore che rileva una superficie chiara 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 legge Imposta la luce Color3 al 50%.
Sensore di colore applicato 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 sensore di colore VEXcode IQ. Il primo è il colore del blocco che riporta il nome del colore Color3. Il secondo è un blocco di tonalità che indica la tonalità Color3 in gradi. Il terzo è un blocco di rilevamento del colore che legge Color3 non rileva nulla?

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

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

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 dei valori di tonalità che mostra come i 360 gradi si correlano a un valore di tonalità. Il colore rosso si trova a 0 gradi, il colore verde a 120 gradi e il colore blu a 240 gradi.

Valori di tonalità.I valori di tonalità sono simili ai 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 che, per rilevare colori e tonalità, il sensore di colore riceva la giusta quantità di luce. Assicurati di testare, ovvero calibrare, il tuo sensore di colore in diverse condizioni di luce e con la lampada impostata a diversi livelli per determinare qual è l'impostazione più affidabile per il sensore di colore del tuo robot.

Rilevamento della prossimità

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

VEXcode IQ ha trovato un blocco oggetto che dice Color3 è vicino all'oggetto?

Usi comuni del sensore di colore

I sensori di colore sono utilizzati in numerose 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 utilizzi comuni di 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 che, per rilevare colori e tonalità, è fondamentale che il sensore di colore riceva la giusta quantità di luce. Assicurati di testare, ovvero calibrare, il tuo sensore di colore ogni volta che arrivi in ​​un nuovo luogo di gara, poiché diversi livelli di luce possono influenzare le sue prestazioni. Metti alla prova il tuo progetto impostando la lampada a diversi livelli di intensità per determinare quale sia 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 da competizione in modo che risponda a diverse condizioni. Il sensore di colore può migliorare le prestazioni di 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 programmare un interruttore Bumper VEX IQ (prima generazione) in Python, è necessario collegarlo a un Brain VEX IQ (seconda generazione). Il cervello VEX IQ (prima 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)
while not 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 sensore.
colore_3.colore()

Il comando color.color riporta il colore attualmente rilevato dal sensore di colore.

drivetrain.drive(FORWARD)
while not 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 lo 0% e il 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: