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.
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.
Come funziona il sensore di colore
Il sensore di colore è in grado di rilevare sia il colore che la prossimità.
Rilevamento dei colori
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.
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:
Il sensore di colore può segnalare il colore che vede come valore di colore o come valore di tonalità.
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.
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.
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
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.
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.
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.
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.
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%.
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.
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.
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) |
| 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) |
| 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) |
| 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()) |
|
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. |