Existen varios tipos de ondas electromagnéticas (radiación electromagnética). Dependiendo de la longitud de onda que tenga, puede ser: luz visible, luz infrarroja, o luz ultravioleta, entre otras.
La luz visible es aquella que el ojo humano puede percibir. Es la que nos permite ver los objetos y los colores.
La luz infrarroja es aquella que está por debajo del rango que el ojo humano puede percibir. Los objetos que están iluminados con luz infrarroja no los podemos ver. Solamente podemos ver aquellos que están iluminados por luz visible.
La luz ultravioleta (UV) es aquella que está por encima del rango que el ojo humano puede percibir. Los objetos que están iluminados con luz ultravioleta tampoco los podemos ver. Solamente que estuvieran iluminados por luz visible.
Sin embargo, algunos animales como las serpientes o las pirañas pueden ver con luz infrarroja. De forma similar, hay animales que pueden ver con luz ultravioleta, como los perros o los ratones.
Para que un robot pueda percibir colores, utiliza la luz infrarroja. La forma de hacerlo es emitiendo un pequeño haz de luz infrarroja sobre un objeto, y después recibe la luz que "rebotó" del objeto. Dependiendo de la cantidad de luz reflejada será el color del objeto. Los colores claros reflejan más la luz que los colores oscuros.
Solo debe tenerse en cuenta que si hay dos objetos de colores diferentes pero parecidos, el sensor de luz no podrá detectar muy bien la diferencia entre ambos y puede dar un resultado equivocado. Por eso, cuando se utiliza un sensor de color, tiene que usarse con objetos que tengan colores bien definidos, y con diferencias claras.
A continuación se muestra como se detectan los colores en los robots MakeBlock mBot y Lego MindStorms EV3.
MakeBlock mBot
Para usar el sensor de color se utilizan las instrucciones "leer sigue-líneas" y "sensor sigue líneas ... en". En ambos casos se debe especificar el puerto en el cual está conectado el sensor. Ambas permiten leer solamente los colores blanco y negro.
Estas dos instrucciones por si solas no funcionan. Para que funcionen debe colocarse alguna instrucción de control. Pueden usarse con las instrucciones "si - hacer", "esperar hasta" y "repetir", y pueden usarse en comparaciones.
La diferencia entre ellas, es que con "leer sigue-líneas" se debe especificar un valor entre 0 y 3, los cuales significan: blanco-blanco, blanco-negro, negro-blanco y negro-negro; en cambio con la instrucción "sensor sigue líneas ... en" se especifica el dato de una forma visual (con cuadritos de color blanco y negro).
Lego MindStorms EV3
El sensor de color comúnmente se usa con el comando "Esperar", con el cual el robot continuará realizando cualquier cosa que esté haciendo hasta que el sensor de color realice la detección esperada. También se puede usar con las instrucciones de control "Bucle" e "Interruptor".
Se puede usar de dos formas: una es para detectar un color específico, por ejemplo amarillo o rojo. En este caso solo se especifica el color.
La otra forma de usarlo es para detectar un cambio en el color. Esta opción no lleva parámetros.
Soporta los colores: rojo, verde, azul, amarillo, negro, blanco y marrón.
Para usar el sensor de color se utilizan las instrucciones "leer sigue-líneas" y "sensor sigue líneas ... en". En ambos casos se debe especificar el puerto en el cual está conectado el sensor. Ambas permiten leer solamente los colores blanco y negro.
Estas dos instrucciones por si solas no funcionan. Para que funcionen debe colocarse alguna instrucción de control. Pueden usarse con las instrucciones "si - hacer", "esperar hasta" y "repetir", y pueden usarse en comparaciones.
La diferencia entre ellas, es que con "leer sigue-líneas" se debe especificar un valor entre 0 y 3, los cuales significan: blanco-blanco, blanco-negro, negro-blanco y negro-negro; en cambio con la instrucción "sensor sigue líneas ... en" se especifica el dato de una forma visual (con cuadritos de color blanco y negro).
Lego MindStorms EV3
Se puede usar de dos formas: una es para detectar un color específico, por ejemplo amarillo o rojo. En este caso solo se especifica el color.
La otra forma de usarlo es para detectar un cambio en el color. Esta opción no lleva parámetros.
Soporta los colores: rojo, verde, azul, amarillo, negro, blanco y marrón.
Ejemplos
MakeBlock mBot. Aquí, el robot avanzará a una velocidad de 100 hasta que el sensor de color detecte color blanco. Cuando esto pase el robot se detendrá.
Lego MindStorms EV3. Aquí, el robot avanzará a una velocidad de 50 hasta que llegue a donde haya color amarillo. Al hacerlo se detendrá. Después avanzará dando vuelta y se detendrá cuando llegue al color rojo.
Enlaces
Isaac Newton y la descomposición de la luz
¿Qué es la luz? ¿Por qué vemos colores?
Los colores no existen
¿Qué es la luz? ¿Por qué vemos colores?
Los colores no existen