Rastreador Líneas


ACTUALIZACIÓN 25/FEBRERO/2013

El siguiente circuito que verán a continuación posee algunas modificaciones respecto al circuito original, donde utilizo Transistores "TIP122" que son mejores que los "BD135" y además incorporo unos diodos "1N4007" de protección para cada motor DC. El diseño del PCB esta vez lo realicé en ARES-PROTEUS y los bloques de color verde son borneras para ajustar los cables de los motores DC y evitar soldarlos. 

Circuito Esquemático del Seguidor de Líneas Negras modificado:


Visualización en 3D del PCB del Seguidor de Líneas Negras modificado:


Para descargar el circuito esquemático, el PCB en Ares de PROTEUS y las imágenes aquí vistas hagan clic en el siguiente enlace:



Actualización 07/Mayo/2010: 

Algunas personas me han pedido por e-mail el diseño del PCB que hice del Seguidor de Líneas NEGRAS que vieron, como saben está realizado en el software "PCB WIZARD" y lo dejo al alcance de todos los que deseen armarlo. Existen 4 archivos comprimidos en WINRAR: 2 son los archivos en "PCB Wizard" tanto el esquema y el PCB y los restantes son archivos en PDF para que puedan imprimirlo y hagan su PCB sin problemas.
        CONTRASEÑA: www.pavdre.blogspot.com



        1) INTRODUCCIÓN:

        Es uno de mis primeros proyectos y no fue tan difícil de armarlo, lo que sí fue un poco complicado fue lograr polarizar bien los sensores pues como sabrán mayormente se utiliza los sensores CNY70.

        Disposición de los terminales del CNY70 gracias a X-Robotics.

        Hay que tener mucho cuidado con este sensor debido a que si se conecta de manera incorrecta, echaremos a perder totalmente el sensor.

        2) SENSOR DEL ROBOT: EL FAMOSO CNY70

        Como se puede observar, el sensor CNY70 posee internamente un diodo emisor de luz, en este caso infrarrojo, y un fototransistor que al recibir la luz infrarroja del emisor nos proporcionará una señal que nos indica la presencia una superficie blanca u oscura. El fototransistor recibirá la mayor cantidad de luz infrarroja al rebotar sobre una superficie clara mientras que si rebota sobre una superficie oscura obtendremos una mínima cantidad de luz infrarroja. Entonces para ambos casos tendremos 2 lecturas disitintas que pueden ser tratadas con algunos circuitos para obtener señales digitales ya que el sensor nos entregará señales analógicas.

        3) CIRCUITO Y FUNCIONAMIENTO DEL ROBOT: 

        Una manera de obtener señales digitales es usando el C.I. 40106 que es un disparador Trigger Schmitt y otra manera es usando un C.I. LM358 en modo comparador. En este caso utilizaremos el LM358 para este proyecto.

        Símbolo y disposición de los terminales del C.I. 40106.

        El circuito para el seguidor de líneas tendrá los siguientes componentes:

        Circuito con el LM358 gracias a X-Robotics.

        Éste no es el circuito total del seguidor de líneas, sólo es el circuito que se encarga de proporcionarnos una señal digital proveniente del sensor CNy70. Es decir, es el circuito de la etapa de los sensores del seguidor de líneas.

        Los resistores de 220 ohmnios y 10Kohmnios nos permiten polarizar el sensor CNY70. Recomiendo no utilizar un resistor por debajo de 220 ohmnios para el diodo emisor ya que podríamos exceder la corriente que soporta y podemos quemarlo.

        Según la conexión, cuando el sensor CNY70 se encuentre sobre una superficie clara o blanca permitirá que rebote casi toda la luz proveniente del diodo emisor hacia el fototransistor. Entonces, el fototransistor se comportará como un "cortocircuito" (saturación) y tendremos por el terminal del resistor de 10Kohmnios una tensión de aproximadamente "Vcc = 5V".

        Si colocáramos el sensor sobre una superficie oscura o negra tendríamos que casi nada de la luz del diodo emisor rebotaría hacia el fototransistor lo cual produciría que el fototransistor se comportara como un "circuito abierto" (corte) y en este caso por el terminal del resistor de 10Kohmnios obtendríamos una tensión de aproximadamente "0V".

        Cabe mencionar que en ambos casos las tensiones no son exactas debido a que la señal que nos brinda el sensor CNY70 es analógica y va depender de cuánta luz haya captado la base del fototransistor, pero si queremos comparar su funcionamiento podríamos decir que se comporta casi como un transistor común.

        La siguiente parte del circuito nos muestra como se conecta el C.I. LM358.

        El resistor variable de 10Kohmnios es para ajustar la sensibilidad del sensor. Este resistor debe ser un "trimpot" y no un potenciómetro como el que controla el volumen de los amplificadores de audio. Éste nos permite ajustar su valor con un pequeño desarmador, girándolo de un sentido al otro.

        Forma física de un "Trimpot".

        Mediante el "trimpot" de 10Kohmnios podremos fijar un valor de "referencia" en el comparador y cuando este valor de "referencia" se presente en el terminal de resistor de 10Kohmnios entonces en la salida del comparador tendremos un 1 lógico (Vcc=5V). Como podemos ver la señal que nos proporciona el LM358 es ahora "digital".

        Mientras que por el terminal del resistor de 10Kohmnios no se obtenga un valor similar al de "referencia" tendremos en la salida del comparador la señal de 0 lógico (0V).

        De esta manera ya contamos con 2 estados en la salida del comparador, uno cuando detecta y otro cuando no detecta la superficie deseada. Es muy importante el uso del "trimpot" para ajustar la sensibilidad del sensor en diferentes superficies.

        A la salida del LM358 conectaremos un LED pequeño, un resistor de 470 ohmnios, un transistor BD135 y un motor DC de 12V. El motor DC puede ser el que tienen los juguetes que generalmente funcionan con una tensión de 6V y para el circuito será más que suficiente. El circuito lucirá de la siguiente manera con la ayuda del software "PROTEUS-ISIS":


        Circuito para Seguidores de líneas "BLANCAS".

        El LED pequeño nos indicará, al encenderse, que el sensor CNY70 está detectando un superficie blanca y si se encuentra apagado estará detectando una superficie oscura. El resistor de 470 ohmnios y el transistor BD135 serán los que se encarguen de amplificar la corriente proveniente del C.I. LM358 y así se puede conectar al motor DC.

        El motor DC girará cuando en la salida del LM358 exista un 1 lógico ya que esta condición polariza el transistor y así permite que circule corriente por el motor haciéndolo girar sólo en un sentido. Si el sensor CNY70 está detectando una superficie oscura entonces por la salida del LM358 tendremos un 0 lógico lo cual no permite que circule corriente por el motor DC y eso no permite ningún giro del motor.

        Como podemos notar el circuito está preparado para un seguidor de líneas "blancas", si deseamos que nuestro minirobot siga líneas negras tendremos que realizar el siguiente cambio en la polarización del sensor, de esta manera:


        Circuito para Seguidor de Líneas "NEGRAS".

        Su funcionamiento se los dejo como práctica, lo importante es notar que cuando el sensor CNY70 detecte una superficie blanca en la salida del LM358 tendremos un 0 lógico y en caso inverso, cuando el sensor detecte una superficie oscura nos proporcionará en la salida del LM358 un 1 lógico lo que en este caso nos servirá para detectar una línea negra sobre un fondo blanco.

        Además solo necesitamos de una sola fuente de alimentación para el circuito que es de VCC = +6V, pueden ser 4 pilas AA de 1.5V cada una.

        El circuito mostrado es para un sólo sensor y debe armarse un circuito igual para el 2º sensor ya que normalmente un seguidor de líneas lleva 2 sensores.

        4) LÓGICA DEL ROBOT :


        Actualizado: 17 de Enero 2012

        Algo muy importante de considerar es que si tenemos un sensor "derecho" y otro "izquierdo" de nuestro minirobot, éste controlara el motor opuesto, es decir el sensor "derecho" controlará el giro del motor izquierdo y el sensor "izquierdo" controlará el motor derecho.

        Veamos la siguiente imagen para comprender la lógica del robot, quise hacer una propia pero me pareció mejor la que verán, tomando como fuente la Revista "SABER ELECTRÓNICA" (se las recomiendo):


        ACLARACIÓN: Como verán en la imagen, el robot tiene sus sensores en la parte delantera junto a la rueda loca, caso opuesto a lo que yo hice que coloqué la rueda loca en la parte trasera, al final no afecta el funcionamiento del robot, pero era necesario aclararlo.


        Empecemos desde la imagen del robot que aparece al lado izquierdo de su pantalla:

        a) El sensor que parece coloreado de color casi naranja viene a ser el sensor derecho y el que se ve sobre la línea es el sensor izquierdo, cuando el sensor derecho sale de la línea (como se ve) el motor izquierdo (opuesto en posición) se detiene mientas que el motor derecho sigue avanzando, eso permite que el robot corrija su posición para mantenerse en la línea.

        b) Seguimos con la siguiente situación, donde vemos que el robot tiene sus 2 sensores (derecho e izquierdo) situados dentro de la línea, en este caso ambos motores avanzarán y eso permitirá que el robot siga la trayectoria establecida de la línea negra.

        c) La siguiente situación se da en una curva, donde el sensor izquierdo se sale de la línea y el sensor derecho aún permanece sobre ella, en este caso como ven lo que pasará es que el motor derecho (opuesto al sensor que se salió de línea) se detendrá y el motor izquierdo avanzará para corregir nuevamente la posición del robot sobre la línea.

        d) Como ven se repite esta situación o condición la cual permite que el robot siga línea, por lo tanto el robot siempre buscará estar en esta situación donde avanzará hasta el final del recorrido, la otras situaciones son para corregir su posición.

        NOTA: Utilizando esta lógica podrían armar un seguidor de líneas con programación, utilizando un Microcontrolador que mediante condiciones pueden darse las órdenes de girar a la izquierda o derecha o que avance cuando sea necesario.


        5) PROTOTIPO DEL ROBOT:

        Así luce el prototipo que construí y pueden apreciar también que los sensores están delante de los motores con una protección contra la luz del medio ambiente para que nos afecte su funcionamiento ya que gran parte de la luz solar posee luz infrarroja y esto puede afectar la lectura del sensor CNY70.

        Prototipo denominado "MINIKANTUTO".

        Lista de Materiales:
         

        - 1 C.I. LM358.
        2 sensores CNY70.
        - 2 resistores de 10K ohmnios a 1/4W.
        - 2 resistores de 220 ohmnios a 1/4W.
        - 2 resitores de 470 ohmnios a 1/4W.
        - 2 Trimpot de 10K ohmnios.
        - 2 diodos emisores de lez (LED) del color rojo o verde.
        - 2 transistores BD135 (NPN).
        - 2 motores DC (motores de juguetes).
        - 2 Llantas de juguetes para los motores.
        - 1 Rueda loca.
        - 4 pilas AA de 1.5V cada una.
        - 1 Portapilas.
        - Cables para las conexiones.
        - 1 Circuito impreso del tamaño necesario (dependerá de su diseño).
        - Estaño y grasa para soldar.
        - 1 Cautín para soldar.
        - Taladro para realizar los agujeros.
        - Mica o madera para construir el chasis del seguidor.
        - 2 MOLEX de 4 pines para conectar los sensores al PCB, son de color blanco y viene en pareja (hembra y macho).

          6) CIRCUITO IMPRESO (PCB) DEL ROBOT:

          El circuito con todos los dispositivos lo monté sobre una placa impresa común y lo hice a mano, es decir con un plumón indeleble dibujé las pistas, pero luego con la ayuda del software "PCB WIZARD" pude hacer un diseño mucho mejor de las pistas del circuito como se verá a continuación:



          Diseño de las pistas del circuito con "PCB WIZARD".

          Actualizado: 20 de Agosto 2010

          NOTA: Las letras que aparecen al lado de los conectores de los sensores indican cada pin que irá conectado: A= ánodo, K=cátodo ambos pines del diodo LED del CNY70; C=colector , E=emisor ambos pines del fototransistor del CNY70. De la misma forma para los transistores BD135 tenemos: B=base, C=colector y E=emisor. Con esto se les facilitará las conexiones.

          7) INFORMACIÓN EXTRA:

          Para quienes no desen usar el sensor CNY70 en su minirobot les recomiendo visitar el siguiente enlace que nos proporciona un circuito para montar un sensor que detecte tanto la superficie blanca y oscura con LED infrarrojos:


          Espero que esta pequeña información les sea útil y si tienen alguna duda sólo dejen su pregunta que yo trataré de responderla.

          ATTE.
          Pavdre.

          49 comentarios:

          1. Creo que falto decir que los sensores iban a la misma altura que los motores y no por el lado de la rueda loca XD

            ResponderEliminar
          2. Creo que era muy importante decir que los sensores van a la altura del motor y no por el lado de la rueda loca XD

            ResponderEliminar
          3. Que gran manual muchas gracias por tu ayuda, esto es lo que buscaba.

            ResponderEliminar
          4. oye amigo tengo una pregunta que tipo de motores usaste y de q voltaje eran??

            ResponderEliminar
          5. Hola James, no necesariamente deben estar a la misma altura de los motores, depende de la distancia del sensor hacia el suelo si lo alejas mucho no detectará eso no depende de donde estén los motores.

            Los sensores también pueden ir delante de los motores por donde está la rueda loca no habría problema...

            ResponderEliminar
          6. Los motores que use son unos reciclados que internamente tienen un motor DC sencillo y su caja de engranajes, eso le da fuerza si tiene que subir pendientes. El motor me proporciona un eje para acoplar una rueda de juguete.

            El voltaje que soporta es hasta 15 V, consume poca corriente.

            Te recomiendo usar unos motores similares siempre con engranajes, quizás puedas usar servos también.

            Gracias por comentar a todos...

            ResponderEliminar
          7. Olas
            primeramente grasias por el aporte
            mi pregunta es:cual es la logica q sigue este seguidor eso es lo q ahun no logro entender

            ResponderEliminar
          8. Hola, voy a realizar una explicación textual como gráfica acerca de lo que pides y lo agregaré al post del tema, gracias por preguntar hacia falta eso...

            ResponderEliminar
          9. hola disculpa me puedes pasar tu korreo graciasss tengo una duda

            ResponderEliminar
          10. tengo una duda sobre una union de los dos circuitos uno de cada rueda espero tu respuesta en verdad me urge graciasss

            ResponderEliminar
            Respuestas
            1. pavdre@hotmail.com , escríbeme sobre tu duda...

              Eliminar
          11. oie no encontre la contraseña cual es?

            ResponderEliminar
            Respuestas
            1. CONTRASEÑA: www.pavdre.blogspot.com, estaba debajo del link de descarga...

              Eliminar
          12. oye una pregunta por que en tu circuito pusiste el pin 2 del lm358 al sensor y el 3 al trimpot si en tu simulacion de proteus estan al reves???????

            ResponderEliminar
          13. Hola, la conexión del sensor CNY70 es como aparece en la primera imagen donde el led y el fototransistor van conectados hacia positivo y luego las resistencias a negativo. Analizando tenemos que cuando detecta NEGRO da aproximadamente 0 voltios y en BLANCO nos da aproximadamente 5 voltios. Va conectado al pin 2 que es una entrada inversora para que cuando detecte NEGRO (0 voltios) luego en la salida lo invierta, es decir, nos dará 5 voltios y eso hará que el motor gire, como vistes el seguidor es de Líneas Negras y cuando los sensores detectan negro deben girar los motores. Es un arreglo nada más espero hayas comprendido.

            Saludos....

            ResponderEliminar
          14. El diseño en PCB Wizard es para lineas blancas o negras?

            ResponderEliminar
          15. Respuestas
            1. ¿Para hacer que siga blancos, solo invierto la corriente en el CNY70?
              no entendi muy bien eso.
              PD: Me sirvio mucho, anda perfecto :)

              Eliminar
            2. Hola, para que siga líneas blancas debes utilizar la conexión que aparece en la imagen de "Circuito para Seguidores de Líneas Blancas", si notas solo se cambia la posición del sensor nada más...el led y el fototransistor del CNY70 aparecen conectadas a positivo...

              Eliminar
          16. Hola donde obtengo la libreria del CNY70 para el proteus o como puedo creearla gracias

            ResponderEliminar
            Respuestas
            1. Hola, hasta ahora no sé si existe la librería del cny70 en proteus, si quieres crearlo mira este video:

              https://www.youtube.com/watch?v=8-cv1bCiuKM&list=FLhnVdigUMbJDFGGOhHvv6uw

              Eliminar
          17. pueden ayudarnos con el codigo en microcode

            ResponderEliminar
          18. Ayuda ahí un motor que no apaga al detectar blanco probé los cny con la cámara y funcionan los dos , también enciende los led y funcionan los trimpot que puede ser ?

            ResponderEliminar
          19. Hola, sino se detiene el motor es porque el sensor CNY70 no está trabajando bien porque si vez el circuito cuando detecta negro el OPAM recibe 5V y eso activa el motor, en cambio si detecta blanco el OPAM recibe 0V y eso apaga el motor, revisa tu sensor quizás se ha dañado, antes de eso revisa las conexiones para que si reemplazas por un sensor nuevo no se dañe nuevamente...puede que el led del sensor CNY70 este bien pero quizás el fototransistor no lo está, revisa esas conexiones quizás lo has colocado al revés...saludos...

            ResponderEliminar
          20. porque se calienta el lm358 y ya no prenden los leds

            ResponderEliminar
          21. Hola Daniel, si se calienta puede ser que este haciendo un corto circuito entre el pin 8 y pin 4 de ese circuito, otro motivo puede ser que hayas colocado al revés dicho integrado, la consecuencia de eso es que no enciendan los Leds...si persiste te aconsejo revisar la placa que diseñaste y también revisa por siacaso todas las demás conexiones...saludos espero soluciones tu problema...

            ResponderEliminar
          22. oye en tu cricuito en la parte de arriba manejaste diferente los valores de los componentes electronico y en el pcb estan otros y tu lista de compoentes manejas otros valores

            un favor especifica eso no por que encerio necesito un credito para la esuela espero me puedas ayudar por que e hecho el que yo tengo lo tengo con lm324 y solo me funciona u motor al parecer solo funciona mi circuito con lm 317 saludos

            ResponderEliminar
            Respuestas
            1. Hola, al parecer no has leído los comentarios que he colocado...en la parte de arriba menciono que el circuito y el pcb son actualizaciones del robot seguidor de líneas, la lista que aparece más abajo y el pcb son de las primeras versiones, es decir ambos poseen cambios y varían algunos componentes por eso coloqué el circuito para que puedan comparar...

              Respecto al LM324, es similar al LM358, solo que el primero tiene 4 OPAMS internamente, el segundo solo tiene 2. A la mayoría de personas que han hecho este proyecto les ha funcionado sin problemas porque antes de publicarlo lo he probado previamente, sino te funciona revisa bien tus conexiones y evita recalentar tus componentes al soldar porque pueden dañarse, principalmente el sensor CNY70...saludos...

              Eliminar
          23. mis motores no mueven el carro y no esta muy pesado deberia de usar engranes a fuerza?? o otro tipo de motores gracias :D

            ResponderEliminar
            Respuestas
            1. Hola Fred, te sugiero que uses motores DC con engranajes porque el motor solo no puede mover mucho peso aunque sea mínimo, un amigo lo hizo así y no se movía a pesar que era muy ligero...otro problema quizás sea las pilas que usas, derepente ya están muy gastadas, si tienes unas recargables mejor...gracias a ti por comentar :D (Y)

              Eliminar
            2. Los motores DC con engranajes los puedes encontrar en juguetes reciclados o en tienda electrónicas que venden artículos de Robótica, espero tengas suerte en conseguirlos, saludos...

              Eliminar
            3. hola, para conectar el pin header al sensor CNY70 , que cable necesito? y con que entradas?, sirve hacerlo con cable utp?

              Eliminar
            4. Hola Sebastian, no te recomiendo el cable UTP porque con el movimiento al final se termina quebrando, mejor consigue los cables con varios hilos y que sea maleable parecido al cable mellizo pero más delgado...los conectores que use se llaman MOLEX y son conocidos y los puedes conseguir...espero te sirvan estos datos y gracias por comentar...saludos...

              Eliminar
          24. hey viejo y eso puede funcionar con una bateria de 9v y que pasa si le pongo la bateria de 9v se puede quemar o no pasa nada

            ResponderEliminar
            Respuestas
            1. Hola, si puede funcionar con una batería de 9V pero tendrías que cambiar las resistencias que van a los sensores CNY70 de 220 ohmnios por unas de 470 ohmnios o más ya que pueden dañar o como dices "quemar" tus sensores...no te recomiendo la batería de 9V porque se gasta más rápido que las pilas...te sugiero que consigas baterías de celular para que te ahorren peso y además poseen más carga que las pilas y baterías...saludos...

              Eliminar
          25. mira en el circuito LM358 el pin 1 donde va conectado

            ResponderEliminar
          26. Hola, el pin 1 del LM358 es una salida de un OPAM que está conectado al led y al resistor de 470 ohmnios, sino se aprecia en la figura de la placa es porque la pista está por debajo...si descargas el diseño de la placa verás que es así...saludos...

            ResponderEliminar
          27. y el pin 8 del LM358 esta conectado al positivo de la bateria

            ResponderEliminar
          28. hey viejo no me sirvio se quedan encendidos los leds y el motor izquierdo es el unico que rueda y el motor derecho no funciona

            ResponderEliminar
            Respuestas
            1. Te sugiero que revises bien todas tus conexiones y sobre todo los sensores, quizás por ahí no están haciendo buen contacto o se dañaron, saludos...

              Eliminar
            2. ami tambien me pasa lo mismo

              Eliminar
          29. hola , de cualsualidad no tenes el mismo circuito pero con un microcontrolador pic 16f 84?.gracias

            ResponderEliminar
            Respuestas
            1. Hola, disculpa la demora en responder, no lo tengo a la mano pero te puedo sugerir que busques en el libro MICROCONTROLADOR PIC16F84 DESARROLLO DE PROYECTOS donde allí encontrarás el circuito que me pides, muy bueno y funciona sin problemas, te viene explicado todo su funcionamiento, saludos...

              Eliminar
          30. Una pregunta, ¿Cómo puedo variar la velocidad del motor?

            ResponderEliminar
            Respuestas
            1. Hola Arraond, en el diseño que propongo no se podría variar la velocidad, si deseas hacer eso te sugiero ya no usar transistores sino el driver L293D que es muy utilizado para controlar giros y velocidad en motores DC, saludos...

              Eliminar
          31. ¿en el circuito de ares para q sirve el d1 y d2 y los tip122 no esta en la lista eso se usan ? y cual es el circuito q se usa en realidad x favor podria aclararme la pregunta

            ResponderEliminar
            Respuestas
            1. Hola Angelo, antes de la imagen del circuito menciono para que se usan los componentes que comentas, son parte de una modificacion y el circuito es el mismo LM358, espero haber respondido tu pregunta...

              Eliminar