SENSOR

SIGUELINEAS


Diseño de un siguelineas y final de carrera IR para LEGO Mindstorm NXT


down-verde-flecha

Actualización 11/11/11: Un programa más fino en Ideas para...


INTRODUCCION


Vamos a montar aquí otro sensor muy habitual en robótica para muchas aplicaciones, el CNY70. Es un sensor por Infrarojo (IR). En el mismo sensor se encuentra el led emisor y el receptor. Es decir, es como el sensor de luz de LEGO pero luz no visible y una distancia de trabajo muy corta.






En efecto, su campo de acción es de pocos milímetros, pero suficientes para algunas aplicaciones interesantes. Por ejemplo un robot siguelíneas, un final de carrera o un posicionador, siempre y cuando trabajemos en las distancias correctas.


Un final de carrera es un sensor, originalmente mecánico y no óptico, que nos avisa cuándo un elemento llega al final de su recorrido. Podríamos poner este sensor en un ascensor para saber cuándo la cabina llega al último piso y poder así parar.


Lo del posicionador es más complicado que nos cuadre. Si acercas una hoja de papel lo suficiente al sensor, empezará a variar la señal según la distancia. Pero claro, según las condiciones, a lo mejor nos da señal entre 2 y 4 mm, que es muy poco.


Veremos aquí cómo construir tanto un siguelíneas como un final de carrera. Al final tienes un video.


MATERIAL


Una relación del material necesario para la construcción de este sensor. Además de lo relacionado a continuación, son necesarios los habituales cables de conexión al NXT (solo cable blanco, negro y verde), pequeños cables para conexiones y el board.


Las resistencias (1/4 de vatio) son:


1 de 10k (marrón negro naranja)

1 de 15k (marrón verde naranja)

1 de 220 ohm (rojo rojo marrón)


Y lógicamente el sensor CNY70.


EL SENSOR


Ya hemos dicho alguna cosa sobre el sensor, pero vamos a ampliar la información y a ver sus conexiones. Lo primero, la hoja de datos del CNY70.


Como puedes ver, el sensor tiene algo parecido a unos leds. En realidad, uno es el emisor de luz IR (un tipo de luz que no podemos ver) y el otro es el receptor. Por eso el sensor tiene 4 patas, 2 para cada uno. Es parecido a montar 2 leds.


Si lo miras bien, podrás ver que uno tiene un color azul claro. Ese es el receptor de luz. El otro es más oscuro y es el emisor de luz. Otra forma de distinguir quién es quién, es por una inscripción que pone en uno de sus laterales. El lado de la inscripción es el del emisor ("led" negro).


La alimentación de cada uno de esos dos componentes la puedes ver en la siguiente imagen. Esta alimentación se proporciona con el cable verde del NXT.


Diseño de un siguelineas y final de carrera IR para LEGO Mindstorm NXT

Debido a que es un sensor de luz, la luz ambiente le afecta, al igual que al sensor de LEGO. Por eso es conveniente que no le de la luz directa. Recuerda que una forma de comprobar si el led emisor se enciende, es mirarlo a través de alguna cámara de fotos o del visor del móvil.


EL CIRCUITO


Le des el uso que le des al sensor, el circuito será el mismo. Los cuadrados negros representan las conexiones a los cables del NXT. Como ves, es un circuito muy sencillito con solo 3 resistencias.


Diseño de un siguelineas y final de carrera IR para LEGO Mindstorm NXT

MONTAJE SOBRE UN BOARD


Allá van algunas fotos paso a paso. Lo primero, identificar las patas del sensor tal como ya expliqué más arriba. Para mayor comodidad, lo pincho girado, de forma que los pines de alimentación coinciden en la misma vertical del board. De esta forma, quedan ya conectados entre sí. Móntalo en una esquina para luego poder usarlo contra el suelo para seguir la línea.


Diseño de un siguelineas y final de carrera IR para LEGO Mindstorm NXT

Ahora unos cables de conexión. Van por orden, fíjate bien. Hay que montarlos muy planos porque luego la placa mirará al suelo y así no tropiezan.


Diseño de un siguelineas y final de carrera IR para LEGO Mindstorm NXT

Ahora la resistencia que conecta al cable blanco del NXT. Si luego vas a usar este montaje para pruebas, convendría que las resistencias también las montaras pegadas al board, como los cables anteriores.


Diseño de un siguelineas y final de carrera IR para LEGO Mindstorm NXT

Ahora las resistencias que conectan al cable negro del NXT. Una de ellas tendrá una pata coincidente con la resistencia que hemos montado antes. En la foto del montaje final se aprecia mejor esto.


Diseño de un siguelineas y final de carrera IR para LEGO Mindstorm NXT

Ahora el único cable al que no hemos conectado nada, el central. Ahí va conectado el cable verde del NXT. Todo junto quedaría así:


Diseño de un siguelineas y final de carrera IR para LEGO Mindstorm NXT

Hay distintas opciones para conectar todo esto al NXT. Puedes ver distintas posibilidades en la sección de conectores.


OBTENER LOS DATOS


Una vez todo montado todo, vamos a comprobar qué tal funciona. Haremos el típico programa para ver los valores que nos aporta el sensor:


Diseño de un siguelineas y final de carrera IR para LEGO Mindstorm NXT

Para obtener datos, situa el sensor sobre una superficie blanca y anota el dato. Repite la operación sobre una superficie negra.


ROBOT SIGUELINEAS


EL VEHICULO


Recuerda que arriba del todo tenías un vídeo de su funcionamiento.


Como ya hay gente que ha hecho estas cosas, lo más sencillo es no duplicar el trabajo. Una vez hecho el sensor, para el resto nos basaremos en la magnífica página de NXTprograms. Concretamente en su Five minute Bot. En ese enlace puedes encontrar detalles para su construcción.


Luego ya te las tendrás tú que ingeniar para acoplar correctamente el sensor para que quede lo más próximo posible a la posición del sensor original, que es el Line Follower de la misma página. Yo he optado por soldar uno definitivo sobre una plaquita. Más adelante tienes fotos de esa posición.


PRIMER PROGRAMA


Para el programa también me he basado en la misma página. Con los datos sobre superficie blanca y negra que has obtenido, aquí va una primera aproximación en "zig zag" a un robot siguelíneas.


El valor que debes escribir en el "Compare" debe estar a mitad camino entre el blanco y el negro que hayas leido (círculo amarillo). En cuanto a la configuración de los motores (solo pongo uno de ellos) lo único que cambia es la potencia. En el motor B pone Power = 10 y en motor C Power = 80. En la línea de abajo es a la inversa.


Diseño de un siguelineas y final de carrera IR para LEGO Mindstorm NXT

UNA MEJORA


Para no tener que estar haciendo mediciones y programar el icono "compare" cada vez en función de las condiciones de luz ambiental, puedes añadir la siguiente mejora. Es una especie de "puesta a cero", en la que al inicio del programa te pide que situes el sensor sobre blanco (y pulses el botón naranja) y luego sobre negro (y vuelvas a pulsar).


Puedes descargarte el programa pulsando sobre el siguiente icono.


Descargar Programa Siguelíneas para NXT


IDEAS PARA UN PROGRAMA MAS FINO


En la misma página de "nxtprograms" puedes encontrar un segundo programa para este robot que funciona de forma menos brusca.


Tienes otra aproximación muy interesante y muy bien explicada en el blog de electricBricks basada en lógica difusa. Está basado en el trabajo de Stefans-robots tal como se explica en su blog. Es un programa bastante sencillo y por tanto recomendable.


UN SENSOR DEFINITIVO


En lugar de hacer el montaje sobre un Board, lo he realizado sobre una plaquita y he soldado los componentes. De esta forma tengo un sensor siguelíneas completo y adaptable al NXT.


Partiendo del "Five Minute Bot" ya construido, el acople para la parte sensora sería este:


Diseño de un siguelineas y final de carrera IR para LEGO Mindstorm NXT

La construcción del circuito es prácticamente la misma que antes, así que no entraré en muchos detalles. En la foto que sigue, se puede ver claramente las dos patas de alimentación soldadas al cable verde del NXT, así como los cables blanco y negro. En mi caso van a un conector.


Diseño de un siguelineas y final de carrera IR para LEGO Mindstorm NXT

Los agujeros para los pines están hechos con un cuter, una lima redonda y algo de paciencia. Previamente he marcado los puntos con una viga de LEGO sobre la placa. A la izquierda asoma el conector que he usado, pero (obviamente) puedes poner el que te resulte más cómodo. El resultado sería este:


Diseño de un siguelineas y final de carrera IR para LEGO Mindstorm NXT

Y todo junto:


Diseño de un siguelineas y final de carrera IR para LEGO Mindstorm NXT


SENSOR FINAL DE CARRERA


¿QUÉ ES?


Un sensor final de carrera suele hacer referencia a un sensor mecánico porque así eran en al principio. Cuando algún mecanismo "pulsa" el sensor, se para (o activa) algún motor. Un ejemplo de esto sería un ascensor que llega al último piso, activa el sensor en un lugar establecido y el ascensor para justo al nivel del suelo.






Lógicamente no es necesario que esto suceda en el último piso, aunque el nombre de "final de carrera" así lo sugiera. Esto ocurre en cualquier piso. En los ascensores, como en cualquier otro mecanismo, pueden usarse distintos dispositivos para realizar esta función.


Es habitual usar en ascensores unas aspas con forma de "X" que giran al pasar el ascensor y así van contando pisos. Otro sistema es el de usar un Reed Switch, un tipo de sensor magnético que ya usamos.


Con todo esto quiero decir que actualmente ya no es necesario que el final de carrera sea de tipo mecánico, y pueden usarse sensores como el que estamos usando aquí, el CNY70 o cualquier otro con este fin.


CNY70 COMO FINAL DE CARRERA


Los ejemplos pueden ser infinitos. Si tenemos necesidad de usar un final de carrera, simplemente habrá qué conocer el funcionamiento de cada sensor que tengamos disponible y adaptarlo. El CNY70 tiene un alcance muy limitado, de pocos milímetros, pero a favor tiene que la detección puede ser más precisa que la aportada por el sensor de ultrasonido del NXT, que en un momento dado podría hacer la misma función.


Esto puede hacer que detecte una posición de forma muy fiable y esto es lo que aprvecharemos para su uso como final de carrera. Como ejemplo ("pedagógico" más que útil) la detección del recorrido de una puerta. A diferencia del siguelíneas en el que el sensor enfocaba al suelo, este habrá que orientarlo en vertical.


USO: Este final de carrera podrías usarlo para la automatización de la puerta de la "famosa" casa domótica de LEGO. En el video tienes un ejemplo de puerta horizontal y otro de puerta vertical. Si se te ocurren más usos y aplicaciones que hayas puesto en práctica, siempre puedes compartirlas en el foro.


up-verde-flecha
Un sensor de presión para NXT
Un sensor comunitario para NXT
.