Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
Hola amigos !
Continuo mi post http://www.webdearde.com/modules.php?na ... pic&t=1724 aquí.
Como os dije, he decidido hacer el proyecto de hacer una "máquina", "robot" , que clasifique los objetos segun su color, ya sean cajitas, caramelos, tapones de botella, etc...
He hecho un cutreesquema (lo siento, nunca se me ha dado bien dibujar y menos ocn el paint) pero que resume lo que quiero hacer.
No obstante, he empezado a buscar informacion al respecto.
Como base para el robot, usaré un Boe-Bot que distribuye la empresa MSE http://www.msebilbao.com/tienda/index.php?cPath=53_78 .
Luego, para que localize los colores , había pensado en el sensor de color TCS230-DB de la casa Parallax : http://www.parallax.com/Store/Microcont ... roductName (el sensor también lo tiene MSE, lo vi en una revista de ellos bajo la referencia #30054 , por si sirve de ayuda).
Lo que necesito saber es si ese sensor se podría acoplar a un boe-bot, y lo principal, si se puede programar en Parallax Basic.
Aquí os dejo el dibujito (sencillo pero se entiende) , a ver si lo veis posible:
Bueno , a ver si me podeis echar un cable (o dos...) jejeje 😉
El esquema que has puesto es complicarse infinitamente la vida.
Para empezar y como te han comentado, con un simple servo te sobra. Pones al servo una plaquita de forma que pueda "barrer" con ella a derecha e izquierda. Dicha plaquita quedara en el centro de la cinta dispensadora. Cuando detectes color (recuerda ademas poner el sensor mucho mas proximo a los caramelos) gira con el servo a izquierda o derecha para separarlos.
El dibujo me ha recordado a un robot que justamente detecta el color mediante una camara y tb hay una pinza que ayuda a manipular el material y clasificarlo.
http://www.ackstorm-team.es/fotos_ackbot1.html
Lo de detectar color mediante LDR es muy complicado. Lo digo pq la LDR debe estar a muy pocos mm del objeto y la luz ambiente te va a hacer mucho daño. Por otro lado los fototransistores q apuntas creo q son de la banda del Infrarojo y no te van a servir para longitudes de onda visibles como las que necesitas. Mirate unos sensores de TAOS para detectar color pero ya te anticipo que tu mayor problema va a ser la luz ambiente. Otra solución es usar una camara tipo CmuCAM.
Suerte!
inventipex, creo que te estas complicando la vida. Yo te recomedaría que comprases el sensor de color que ya viene calibrado.
Aún así si te lo quieres hacer tú deberías tener en cuenta varias cosas:
- La luz ambiente afecta mucho (como bien dice roboticsBCN), así que tendrás que meterlo todo en una caja para que la luz ambiente no le afecte (o le afecte lo mínimo posible)
- Las LDR's y los fototransistores no te dan una respuesta plana para todos los colores, es decir para la misma potencia de luz en distintos colores no tendrás la misma salida.
- Para minimizar los efectos de la luz ambiente también puede hacer una corrección de zero (ahora lo explico).
El montaje que yo haría sería:
- Necesitas: Una LDR y varios diodos RGB y potenciómetros. Los potenciometros para regular la iluminación de cada color.
- Sin iluminar, haces una medida con la LDR (esta es la corrección de zero).
- Iluminas en Rojo, y mides
- Iluminas en Azul, y mides
- Iluminas en Verde, y mides
- A las medidas le restas el zero.
Para calibrarlo pones algo blanco (una hoja de papel por ejemplo) y mueves los potenciómetros hasta que la medida de rojo, azul y verde sea la misma.
S2
Ranganok Schahzaman
La solución profesional (o sea cara) ; pero así se detecta el color. Amplificador RGB de fibra óptica + accesorios en función de la aplicación .
http://www.keyence.com/products/sensors/rgb/rgb.php
Solución casera. Webcam a PC y analizar la imagen mediante rutinas escritas hechas por tí ó OpenCV, etc. Si situas bien la cámara con una iluminación acorde y la cámara no es muy mala lo podrás hacer. De hecho es la solución que haría para mí siempre y cuando esto fuera una prueba ó proyecto personal pero no para industria. Asi de paso si tengo PC también controlaría el brazo.
Por otro lado desestimaría la solución de detección de color a base de brillos (LDR). Demasiado inestable aunque si los colores lo permiten lo puedes probar iluminando con los colores básicos alternativamente y grabando los valores.Luego grabaría la tabla y . Sería como enseñar el color. Si solo tienes dos alternativas y son colores básicos como rojo , azul y si tienes una buena ventana de valores para que no te de error quizas funcione.
Otra alternativa que se me ocurre es tener tres LDR (quien dice LDR dice otra cosa) cada una con un filtro de un color básico(no sé celofan o algo así) e iluminando con blanco (LED). Entonces se trataría de grabar en el PIC las diferentes analógicas recibidas. Como lo único que tienes que hacer es diferenciar entre colores básicos que están separados en el espectro las diferencias serán suficientes como para "verlas". Supongo 😕
Muchas gracias por las respuestas.
La parte mecánica (el brazo) es lo de menos, ya le pondré una placa que se incline hacia un lado u otro lado, lo que me preocupa es el tema del sensor.
Primero me interesaría experimentar con los fototransistores , pues són mucho más económicos que una CmuCam o un sensor de color especializado.
Ya pondría el fototransistor mucho más cerca del objeto a detectar, y si hace falta, dentro de una caja negra, y que los objetos a detectar sean semitransparentes para hacer pasar la luz a través de ellos...
Me parece muy interesante el montaje que propone Ranganok, pero no entiendo la función de la LDR ahí ni de los diodos RGB 😕
También me parece muy interesante la solución que propone Tumbos, 3 LDR con un papel de celofan (rojo , verde y azul) y luego medir cada una de las señales e interpretarlas.
Yo tenía pensado en hacer esto del fototransistor para medir sólo 3 colores que se distingan bastante (como por ejemplo rojo, blanco y negro) , y medir previamente el rojo, apuntar su valor, el negro, apuntar su valor, el blanco, apuntar su valor y luego decirle al BoeBot que cuando reciva un valor próximo a cada uno de los valores correspondientes medidos a cada color , ejecute el comando de órdenes A, B o C.
Un Saludo ! 😉