Lisa
shadow

Lisa es un pequeño Robot diseñado para salir de un laberinto.

Existen muchas competiciones que cuentan con esta prueba dentro de sus categorias,puedes ver algunos videos de estas pruebas aquí

Algunas de estas competiciones necesitan que el robot sea capaz de seguir una linea negra que va guiando el recorrido, por ello nuestro robot debera ser capaz de hacer esto.

Además de lograr estos objetivos, yo, a nivel personal, me he propuesto algunos más:

  • - Modular, de tal forma que se puedan añadir con facilidad nuevas funciones ( Control Remoto, usarlo como explotador.. etc) sin tener que hacer grandes modificaciones en el hardware ya existente.
  • - Barato.
  • - Sencillo.


Componentes

La lista BÁSICA de componentes que vamos a utilizar es la siguiente:

(haciendo clic sobre el nombre accedera a los datasheet o al tutorial correspondiente a cada componente.)

Control de Motores

Como por algun sitio hay que empezar, empezaremos controlado los motores que propulsarán el robot

Una de los puntos importantes a la hora de diseñar un robot es pensar como va a ser la propulsión del mismo, existen multiples configuraciónes que se pueden usar, un o dos motores de propulsión y otro que controle la dirección, dos motores independientes y una "rueda loca"... también se pueden usar distintos componentes para ello, servomotores,motores de corriente continua, motores de paso a paso... Puedes encontrar información sobre estas configuraciones en este tutorial

En el caso que nos ocupa, LISA tendrá dos motores de corriente continua que se controlan de forma independiente y una tercera rueda "loca", esta configuración se conoce normalmente como "configuración de triciclo".

Para girar de dirección una rueda girara hacia delante y la otra hacia atrás. Esta forma de moverse cumple dos objetivos que se pusieron al Robot, es sencillo y barato.

Me pareció que el mejor sitio por el que empezar a construir el robot era por la placa que controlara los motores que impulsaran el robot.

El circuito de control se basa en el integrado L293, puedes conocer a fondo este integrado en el tutorial correspondiente.

Usaremos este integrado para controlar los dos motores, utilizando este circuito:

circuito en la protoboar

Estas son las patillas del ingrado:

circuito en la protoboar

Para más información sobre su función, visita el tutorial

Controladora de Motores de Corriente continua empleando un L293.

Alimentando la Maquina

Para que todo funcione, es necesario dotarlo de energia. Este circuito regulará la tensión de entrada (ya sea desde una bateria o mediante un transformador). Vamos a dotarle de dos salidas, una de ellas a 5V para la electronica(sensores,integrados y arduino) y la otra para los motores.

Pero cada componente necesita un voltaje distinto para funcionar. Casi todos los integrados necesitan funcionar a 5V, pero lo motores necesitan algo mas de energía para funcionar ( empiezan a tener fuerza y estar fluidos de movimiento a partir de unos 9V) Ademas, conviene asegurarse de que la electricidad que les suministramos este siempre en unos valores correctos y estables.

Para lograr esto, haremos pasar el voltaje entrante por reguladores,concretamente un 7805 y otro 7809. De esta forma tendremos una salida de 5V y otra de 9V tal y como queriamos.

Para saber más sobre los reguladores 78XX, puedes consultar el siguiente tutorial: Tutorial sobre los 78XX

La forma de conectar estos reguladores es muy simple:

78xx

La fuente que utiliza Lisa para alimentarse es sencilla a mas no poder:

Fuente de Alimentacion

El Chasis

En este caso, el chasis del robot sera sencillo a mas no poder- cumpliendo los objetivos propuestos al comienzo.- se trata, simplemente de una placa de metacrilato.

Redondeamos un poco los bordes

Detalle de las esquinas

Un agujero para pasar los cables, y un par mas para fijar los finales de carrera:

Plancha del Chasis

Y por ultimo algo de sitio para colocar los sensores y el servo:

Chasis

Ya solo falta atornillarlo todo, cablearlo, y fijarlo:

 
 
 
 
 
 
 
 
 

Sensores: Ultrasonidos

Sensores: CNY70

Los sensores CNY70 que colocaremos en LISA son los que nos permitirán seguir una linea en el suelo (Generalmente, linea negra sobre fondo blanco.)

Estos sensores tienen una visión muy limitada, del orden de mm, dependiendo de la luz ambiental y la alimentación del Led. Si quieres información más detallada sobre estos sensores,consulta el tutorial sobre los CNY70

Hay muchas formas de conectar un CNY70, su montaje tipico seria el siguiente:

montaje CNY70

Pero nosotros vamos a usar este otro:

Conexion del CNY70

El Servo

Con lo que tenemos hasta ahora ya podriamos hacer que el robot se mueva e incluso que lo haga siguiendo una linea en el suelo. Pero la función de LISA es salir de un laberinto, para eso tendemos que dotar al robot de algun tipo de visión que le permita saber si se ha topado con un callejon sin salida y por donde tiene via libre para seguir.

¿cómo hará LISA esto?

Muy sencillo, con el sensor de ultrasonidos irá tomando lecturas de lo que tiene delante, mientras tenga sitio para seguir, avanzará recto. En el momento en el que se tope con un algo que le impida el paso, entrará en acción el Servo que soporta el sensor.

El servo girará para permitir mirar a ambos lados si encontramos camino abierto a la derecha ordenaremos a los motores que nos hagan girar en esa dirección. Si la ruta estuviese a la izquierda ordenariamos el giro contrario.

Nuestro servo es un S3003 adquirido en eBay. Si deseas conocer las posibilidades que ofrece la libreria de servos de Arduino, hay un tutorial aquí

Servo S3003.

Adaptando Arduino

Todo el conjunto va a estar controlado por un Arduino Nano. Este leerá he interpretará la información de los sensores y tomará la mejor decisión basandose en lo que le hayamos programado previamente. Enviando entonces la correspondiente orden a los motores mediante nuestro circuito de control de motores.

Para facilitar la conexión, hemos colocado el Arduino en una pequeña placa con una tira de pines en la que podemos conectar los cables facilmente:


Software

Ya tenemos en robot montado, ahora falta programar el Arduino para que sea capaz de guiarlo hasta fuera del laberinto.

Este es un ejemplo MUY basico de como podría hacerse. Ahora toca perfeccionarlo.

  • #include <

    Servo.h

    >
  • #include <

    Ultrasonic.h

    >
  • Ultrasonic

    ultrasonic(7,8)

    ;
  • Servo

    miservo;
  • int

    Distancia

    ;
  • int

    LED

    = 12;
  • void

    setup()

    {
  • miservo.

    attach(2)

    ;
  • miservo.

    write(90)

    ;

    //coloca el servo en su posición central

  • pinMode

    (LED,OUTPUT);
  • Serial

    .

    begin(9600)

    ;

    // abre el puerto serie a 9600 bps

  • }
  • //--------Declaracion de Funciones de Control-------

  • void

    mirarFrente()

    {
  • miservo.

    write(90)

    ;
  • }
  • void

    mirarDerecha()

    {
  • miservo.

    write(0)

    ;
  • }
  • void

    mirarIzquierda(){
  • miservo.

    write(180)

    ;
  • }
  • //----------------Bucle---------------------------

  • void

    loop(){
  • Distancia

    = ultrasonic.Ranging(CM);
  • if

    (

    Distancia

    <= 20){
  • digitalWrite

    (LED,HIGH);
  • mirarDerecha();
  • delay

    (500);
  • mirarIzquierda();
  • delay

    (500);
  • }

    else

    {
  • mirarFrente();
  • digitalWrite

    (LED,

    LOW

    );
  • }
  • //Esta linea es solo para debuggear el funcionamiento

  • Serial

    .

    println

    (

    Distancia)

    ;
  • delay

    (500);
  • }

Pruebas

Sensor de Ultrasonidos + Servo.