En este reto hay que programar mBot para que sea capaz de detectar y reconocer diferentes colores.
Se trata de un reto de nivel avanzado.
Reto #18: Sensor de color con mBot.
El reto lanzado en el twitter de Juegos Robótica era el siguiente:
Y se ofrecieron un par de pistas para la resolución:
Para resolver el reto las pistas dejaban claro que se iba a utilizar el sensor de luminosidad incorporado en la placa de mBot. Intentaremos medir la luz reflejada en cartulinas de diferentes colores y haremos patrones de respuesta a la luz roja, luz verde y luz azul emitida por los LEDs RGB de la placa.
Lógicamente un paso previo es retirar la carcasa de plástico de la placa del robot mBot y proteger lateralmente la entrada de luz al sensor de luz mediante un cilindro opaco que bien puede ser una tira de papel enrollada. De esta manera se evita que la luz emitida por los LEDs llegue directamente al sensor de luz, y únicamente recibirá la luz reflejada en las cartulinas que le llega por la parte superior.
Teniendo en cuenta que las cartulinas de diferentes colores van a reflejar diferente cantidad de luz según el color de la luz que le llega y su propio color, podremos crear patrones. Haremos una media de 3 medidas para tener un patrón más fiable de los colores que queramos “grabar” para poder ser identificados posteriormente. En el ejemplo se ha calibrado el sensor para reconocer cartulinas de color azul, rojo y verde, pero se podrían calibrar otros colores.
Por último, una vez calibrado el sensor, se trata de hacer una comparación con los patrones grabados previamente para identificar el color de la cartulina de la que estemos haciendo lectura.
Como es habitual os dejo un vídeo para que podáis entender mejor la resolución de este reto, pero recordad que hay diversas soluciones para un mismo problema, por lo que es posible que lo hayas resuelto de otra manera.
Si queréis ser vosotros los que lancéis el reto con Lego Mindstorms EV3, mBot o Arduino no tenéis más que poneros en contacto o dejar un comentario.
La semana que viene tendremos nuevo reto, estad atent@s!
Buenas!
Primero de todo gracias por el contenido, es muy didáctico.
Soy un estudiante de Telecomunicaciones de Barcelona, ahora estudiando en Irlanda. Quiero usar este sensor de color para una parte de mi proyecto de fin de grado. Tengo un par de dudas sobre esto.
Me gustaria que mi mBot identificara diferentes colores cuando pasa por un color en concreto y entonces enviar un aviso para que un programa en Java ejecute una funcion concreta, sabes como hacer para enviar dicho aviso? Y para que el programa se ejecute solo cuando detecte el color? He pensado en definir el color “NingunColor” y que el programa simplemente no haga nada si lo detecta pero no se si hay alguna otra forma mejor.
Muchas gracias y felicidades por el trabajo!
Gerard
Hola Gerard,
Si vas a tener el robot conectado al ordenador puedes enviar los datos que necesites utilizar en tu programa en Java a través de la comunicación serie, y si necesitas estar alejado sería cuestión de pelearse con el bluetooth o el wifi.
El programa en el robot realmente siempre se estará ejecutando, pero en dicho programa le puedes definir que si no detecta ciertos colores concretos no haga nada, y si detecta alguno de esos colores ejecute una rutina común o individual para esa detección.
Por último te recuerdo que después de publicar ese reto Makeblock sacó a la venta un sensor de color muy económico y mucho más fácil de utilizar que con el método de este reto.
Saludos,
Dani
Otra pregunta,
Tienes por casualidad el codigo en Arduino? Creo que para el codigo completo tendré que pasarlo a este lenguaje.
Muchas gracias!
Hola Gerard,
Tendré el código generado por mBlock en lenguaje Arduino si te pudiera servir.
Te recuerdo que el sensor de color de Makeblock ya está a la venta y lo puedes conseguir fácilmente si lo necesitas, y para Arduino, a parte del de Makeblock, tienes varios modelos disponibles.
Saludos,
Dani
Te agredeceria que me lo pudieras pasar, a mi no me permite generar el código a partir de Scratch.
Ya sé que existe el sensor de color, gracias por la información!
Saludos,
Gerard
Te contacto por correo.
Saludos,
Dani