Cómo construir un robot que siga una línea (line follower)

Cómo construir un robot que siga una línea (line follower)

Todas las personas tenemos alguna habilidad, y si bien en Cómo Lo Hago ya tenemos un experto en electrónica, desde hoy me gustaría compartir con ustedes una de mis especialidades (o al menos a eso me he dedicado a estudiar), proyectos de Robótica.

Hace algunos años participé en un entretenido concurso de Mecatrónica en la Universidad del Valle de México (en Ciudad de México), y hoy publicaré en este artículo uno de los robots que presenté, un clásico “seguidor de líneas” (o denominado en competencias internacionales como line follower), más adelante seguiremos con una sonda de exploración integrado con paneles solares, pero… vamos de a poco.

Luego del salto podrán continuar leyendo este tutorial.

Cómo construir un robot que siga una línea (line follower)

mecatronica

Campos de la Mecatrónica

Un clásico ejercicio para cualquier estudiante de Ingeniería en Robótica, Mecatrónica o Electrónica (en algunos casos), es construir un robot que siga una línea, básicamente porque esto integra muchas áreas de las ciencias, permitiendo desarrollar un conocimiento empírico sobre el control automático.

En la actualidad se realizan concursos en todo el mundo, generalmente patrocinados por el IEEE, que miden desde el tiempo que demora el robot en recorrer la pista, hasta en la calidad de detectar anomalías en la ruta.

Una de las técnicas mas usadas para cumplir este propósito es el Puente H, que permite ante un impulso, girar un motor eléctrico DC y de esta forma tener un rápido tiempo de reacción (casi instantáneo) para seguir una ruta, no obstante, hoy les enseñaremos cómo seguir una línea con un poco mas de inteligencia artificial usando un microcontrolador (Basic Stamp) y fotorresistencias.

Materiales:

  • Microcontrolador Basic Stamp (modelo BS2-IC).
  • 2 Servomotores.
  • 2 Fotorresistencias (o también llamadas fotorresistores).
  • 2 Capacitores (0,1 uF)
  • 2 Capacitores (0,015 uF)
  • 2 Resistencias (220 ohms).
  • Batería de 6 voltios.
  • Cable RS232 para comunicarnos con el computador (pueden considerar opcionalmente un conversor USB-RS232 en la medida que no tengan este puerto en su computador).
  • Software Stamp Editor (descargable desde este link).
  • Cartulinas negras y papeles blancos (para construir la pista).

Procedimiento:

El primer paso es construir nuestra pista, es importante probar con más de un diseño, debido a que en las competencias las pistas suelen varias en cada etapa, y nuestro robot debe ser capaz de enfrentar situaciones complejas (curvas cerradas), así cómo también tener una tolerancia correcta de la luz (lo veremos mas adelante en el algoritmo).

Luego que hemos construido nuestras pistas comenzamos a implementar nuestro circuito directamente en nuestro Basic Stamp, una de las razones por las cuales hemos escogido este dispositivo para el tutorial es debido a que integra una placa de pruebas (o protoboard), conectado directamente a nuestro controlador BS2, en otras palabras está todo integrado, de esta forma sólo necesitamos conectar nuestro circuito.

Procesador: 20 mhz, procesa 4.000 instruciones por segundo, contiene una memoria EEPROM de 2 KBytes, usa de 5 a 12 V(dc) y su interfaz nativa es serial.

A continuación les presentamos un diagrama del circuito:

Diagrama del circuito de fotorresistencias

Diagrama del circuito de fotorresistencias

Fotorresistencia

Fotorresistencia

Las fotorresistencias son utilizadas para detectar variaciones en el nivel de intensidad de la luz, en este caso cómo se genera un contraste entre el blanco de la línea y el negro del fondo, nuestro robot las utiliza para denotar cuando se presenta una curva.

Un fotorresistor es un resistencia cuyo valor depende de la intensidad de luz (también se conocen como LDR: light dependent resistor), y cubren un espectro similar al ojo humano. Los elementos activos de estos fotorresistores están hechos de sulfuro de cadmio (CdS). La luz entra en la capa smiconductora que está aplicada sobre un sustrato cerámico.

En nuestro ejercicio utilizaremos este dispositivo para medir la luminancia (que se mide en lux), el objetivo es que nuestro robot gire hacia la luz (en este caso la línea blanca).

Robot Prototipo de silla de ruedas con fotorresistores presentado en el concurso.

Robot Hoper: Prototipo de silla de ruedas con fotorresistores presentado en el concurso en México.

Cómo pueden ver en la imagen las fotorresistores mantendrán una distancia asociada al ancho de nuestra pista para ir identificando las variaciones de lux, adicionalmente en la imagen podrán apreciar que nuestro robot que estaba en los “huesos” se ha transformado en una silla… Personalmente creo que cada proyecto que uno construye debe ir un poco más allá, y transformarse eventualmente en un aporte para la sociedad, esta silla de ruedas fue pensada para gente minusválida para que pudieran trasportarte de forma más fácil por algunos establecimientos (ejemplo: clínicas, hospitales, universidades, etc.).

A continuación les dejó el mismo diagrama del circuito presentado anteriormente, pero con un dibujo mucho mas amigable para realizar las conexiones en la protoboard del Basic Stamp.

Para llegar y conectar

Una vez que tengamos nuestro circuito conectado, podemos montar la Basic Stamp en una arquitectura mecánica con ruedas, donde instalaremos los servomotores. Nuestro modelo consta de 2 servomotores y cumplen la función tracción y dirección. Están montados en un chasis de madera que es la base de la silla de rueda.

Estos motores tienen retroalimentación de posición interna con rangos de giros típicos de 90º y 180º, gneran una gran fuerza y torque con un bajo consumo de energía haciéndolos ideales para nuestro objetivo. Cabe destacar que el sistema entero es alimentado por 4 baterías AA de 1,5 voltios generando una diferencia potencial de 6 voltios ubicados en el mismo chasis.

Servomotores

Servomotores: Las médidas son presentadas a modo de ejemplo, pero pueden variar.

Cómo pueden apreciar en la parte superior de los servomotores se indican los 3 cables que debemos conectar a nuestro Basic Stamp (tierra, voltaje directo y finalmente el cable que recibe los pulsos desde el microcontrolador).

Imagen referencial

El siguiente paso es programar nuestro robot, y para ello ocuparemos la conexión serial, tal cómo lo indicamos en la descripción de materiales si tu computador no tiene una conexión de este tipo, puedes usar un conversar serial-usb.

Algoritmo:

A continuación presentamos el algoritmo programado en el lenguaje nativo de los Basic Stamp, PBasic. Cómo podrán apreciar el código está comentado con una comilla simple ‘ para explicar que acción ejecuta cada línea.

‘ {$STAMP BS2}
‘ {$PBASIC 2.5}

‘————-[ Line non-twitter Follower de CLH ]—————
‘ Archivo……………CLH Follower.bs2
‘ Propósito………….Tutorial CLH
‘ Autor……………..Goten
‘ E-mail…………….guillermodiazs@gmail.com
‘ Fecha de Desarrollo….03/12/09

‘——- [Descripción del Programa ] ————-

‘   El programa consiste basicamente en recorrer la pista, siguiendo la línea blanca con gran fidelidad mediante el uso de fotoresistencias ubicadas en el robot como “bigotes” a una distancia de 5cm. el uno del otro, que determinen la luminosidad que se encuentra bajo ellos y con lo cual se puede determinar el momento exacto en que comience una curva, debido a que el rango de luminosidad que reciben las fotoresistencias cambiará, y el robot doblará en esa dirección.

‘———-[ Declaración de variables ]———–

fizquierdo VAR Word           ‘  Almacenan los tiempos RC del fotoresistores izquierdo y derecho
fderecho VAR Word
x VAR Word

‘—————[ Inicialización ]————–

DEBUG CLS                    ‘  Abre y limpia la pantalla de datos
OUTPUT 2                     ‘  Fija P2 como salida
FREQOUT 2,2000,3000   ‘  Indicador de reset

inicio:

PULSOUT 12, 600            ‘  Aplica un pulso para avanzar (los servos están conectados en estos puntos).
PULSOUT 13, 900            ‘

HIGH 5                           ‘  Fija P5 como salida alta (fotorresistor)
PAUSE 3                          ‘  Pause de 3ms
RCTIME 5, 1, fizquierdo    ‘  Mide el tiempo de RC en eP5

HIGH 3                           ‘  Fija P3 como salida alta (fotorresistor)
PAUSE 3                          ‘  Pause de 3ms
RCTIME 3, 1, fderecho      ‘  Mide el tiempo de RC en eP3

IF fizquierdo  > 40 AND fderecho  > 50 THEN inicio            ‘  Condiciones que dependiendo de
IF fizquierdo  < 40 AND fderecho  > 50 THEN irizquierda    ‘  los tiempos de RC recibidos
IF fizquierdo  > 40 AND fderecho  < 50 THEN irderecha      ‘  determinan que subrutina seguir.

* Este es el momento donde dirime que hacer.

GOTO inicio                ‘  regresa a inicio
irderecha:                   ‘ aplica un pulso a la derecha por un tiempo determinado

FOR x=1 TO 20            ‘  por la variable x
PULSOUT 12,790
PULSOUT 13, 1000
NEXT
GOTO inicio                ‘  regresa a inicio

irizquierda:                 ‘ aplica un pulso a la izquierda por un tiempo determinado

FOR x=1 TO 20           ‘  por la variable x
PULSOUT 12,500
PULSOUT 13, 750
NEXT
GOTO inicio                ‘  regresa a inicio

‘————– Fin del programa —————

Cargan esta información en la EEPROM del Basic Stamp utilizando el mismo software descargado en la lista de materiales y listo, han construido su primer line follower.

Les llamará la atención que en los materiales indicamos 2 tipos de capacitores, y luego en el diagrama sólo mostramos 1 tipo,  esto es debido a que un fotorresitor es un dispositivo analógico y su valor cambia en forma continua de acuerdo a la luminancia, que es otro valor analógico. La resistencia del fotorresitor es muy baja cuando se expone directamente a la luz del sol. A medida que desciende el nivel de luz, su resistencia aumenta. En completa oscuridad, la resistencia del fotorresitor puede alcanzar valores muy altos. Aunque el fotorresitor es analógico, esto no quiere decir que sea lineal. Esto significa que si la fuente de luz (luminancia) varía a una proporción constante, el valor del fotorresitor no necesariamente variará a una proporción constante. El objetivo de contar con capacitores de distinta capacidad es que ustedes puedan cambiarlos según las condiciones de luz y tener un resultad mucho más efectivo.

Imagen Referencial: Goten's Lab

A continuación les dejo un video de ejemplo (les pido disculpas de antemano por la calidad, pero no contaba con una buena cámara).

Les agradezco la paciencia de haber leído este tutorial y espero sinceramente que les haya gustado, si tienen dudas o consultas, no duden en escribirnos en la sección de comentarios más adelante, para finalizar agradezco y cito las licencias de las siguientes imágenes:

Cordialmente,

Staff CLH


Tutoriales relacionados:

MalenaMaomaRegulequeWendyFantabuloso (4 votos, promedio: 5.00 de 5)
Loading ... Loading ...

Escrito por Goten

Animador profesional de Kermeses escolares



37 Comentarios a “ Cómo construir un robot que siga una línea (line follower) ”

  1. Felipe dice:

    La raja…la cagó, es como esos roboc del MIM jajaj esos de lego. Wenísimo el tuto
     
    Saludos

  2. Dexter dice:

    Wow, me alegra mucho verte en este tipo de tutoriales Goten, Sos un Cra!!!!! El tutorial está realmente bueno!!!

    Un abrazo enorme!!!

  3. Goten dice:

    Gracias amigos, espero seguir subiendo el nivel de tutorial, aunque demandan haaarto trabajo… Este proyecto (investigación incluida) tomó casi 2 meses, considerando la optimización del algoritmo.

  4. Nicolás dice:

    una consulta,
    como cuanto sale en $ maomeno,
    creo que encontre en que entretenerme el verano

  5. Fabiantronc dice:

    la raja wn!!! :)
     
    gracias :)

  6. me kedo clarisimo… CUAKKKKKKKKK

  7. blip dice:

    Está re bueno el tutorial. Siempre quise hacer algo que tenga que ver con robótica. Ví de estos robots en otras páginas, pero nunca decían las instrucciones para armarlos. Que bueno que en esta página no sólo hay videos que te dejan con las ganas de hacer las cosas, sino que también hay pasos para hacerlas.
    :)

  8. Goten dice:

    @Nicolás los costos son relativos, por ejemplo si compras el microcontrolador directamente al fabricante (Parallax) o si lo haces por medio de un reseller, el resto de la circuitería lo puedes comprar en alguna tienda local (cómo por ejemplo en Chile: Casa Royal), todo el robot (pista incluída) debe tener un costo aproximado de: USD$200.00
    @Fabiantronc gracias!!
    @Darko es una ironía?
    @Blip muchas gracias, pronto se vienen mas!!
     

  9. Seba dice:

    Si entregas este robot como  proyecto seguro q tendrás un 10, va un 15 sobretodo si estas en mi situación de ir a una escuela técnica.Saludos

  10. Kevin Music dice:

    Cuanto tiempo demora construrilo ?
     

  11. Goten dice:

    @Seba, no te entendí muy bien. Un 1 o un 10? jajaj…
    @Kevin, lo básico puede tomar 1 día, el diseño y detalles un par de dias mas.

  12. Luis dice:

    Esta muy bueno me encanta esta pagina e visto como 7 proyectos e hize 5 :P Gracias!

  13. Goten dice:

    Que bueno Luis, esa es la idea.
    Saludos!

  14. zaldumbide23 dice:

    hola  se ve interesantisimo esto  yo noc casi nada de electronica pero me gustaria intentarlo,  y queria hacer una pregunta  donde se comprar  el  Microcontrolador  (modelo BS2-IC).  aqui en venezuela  o solo es se puede comprar por internet?

  15. Goten dice:

    Hola @Zaldumbide23 te aconsejo que visites el sitio web del fabricante de estos microcontroladores (www.parallax.com), y busques un distribuidor local.
    Si hay distribuidor en tu país, siempre tienes la posibilidad de importar los dispositivos directamente.
    Saludos!.

  16. zaldumbide23 dice:

    muchisimas gracias   Goten  ya vi que si hay un distribuidor aqui en venezuela  ya me voy a informar y a pedir uno

  17. kubetv dice:

    que nivel !!! exelente tutorial!

  18. Goten dice:

    @Kubetv muchas gracias!

  19. blip dice:

    Yo había hecho un autito con un motor de un juego y un LED de 10 mm era a control remoto, pero sólo iba para adelante y para atrás, como sea, cuando lo mandaba para adelante o para atrás la intensidad del LED bajaba ¿Cómo tendría q hacer para q no pase eso? Desde ya gracias.Lo hice hace 7 meses y cómo el motor ya al principio que era viejo, se rompió.

  20. Rosendo dice:

    oyes goten el microcontrolador es a fuerzas obligatorio o puede ser el control nomas fisico (resistencias , fotoresistores) o tienes que programar por si se podia hacer en baquelita

  21. Nacho dice:

    Como dibujaron las lineas o con que perdonen mi ignorancia? :)

  22. Goten dice:

    @blip, podrías explicarme un poco mas cómo funcionaba el circuito de tu auto.

    @Rosendo a que te refieres con “baquelita” (¿http://es.wikipedia.org/wiki/Baquelita?).  De todos modos el micro debe ser programado.

    @Nacho que líneas?, si te refieres a la pista  es papel blanco cortado.

     

     

  23. Nacho dice:

    Muchas gracias …. Me ayudarías en como construir la base del robot la metálica como la que ustedes tienen ????

  24. Goten dice:

    @Nacho la silla tiene una base de madera, la estructura cruda es una base de plástico que viene con la Basic Stamp

  25. Rafael dice:

    Disculpa, quiero construir uno, pero no se donde pueda conseguir la Basic Stamp me podrias auydar o recomendar alguna pagina que sea de mexico? no importa pagar que pague envio pero si que sea de Mexico. Vivo en Guadalajara, Jalisco

  26. Goten dice:

    Puedes importar los dispositivos directamente desde Parallax.com, o en su defecto, puedes asistir a la Universidad del Valle de México, o al Tecnológico de Monterrey, o a la UNAM, en todas estas instituciones tienes departamento avanzados de robótica (probablemente en otras también), y te puedes guiar para construir un robot mas en crudo mediante puentes H.

    saludos.

  27. Failo58 dice:

    Otra pregunta… Mmm… la Basic Stamp que debo comprar es igual a la que esta en sus fotos? porque me meti a parallax.com y la Basic Stamp BS2-IC no es igual a la de sus fotos…

  28. Goten dice:

    Las versiones pueden variar estéticamente pero de todas formas, lo importante es que opere bajo el mismo lenguaje, hay varios modelos que sirven.

  29. Failo58 dice:

    Entonces con una Basic Stamp HomeWork lo puedo hacer?

Comenta