Construcción de un robot con forma de Araña y seguidor de luz con PIC16F84A
Por: Jorge O. Lezana S
(año 2005)

 

 

Por inquietud de un amigo me propuse a realizar un robot, ya que comenzaba a internarme en el mundo de los microcontroladores de microchip, y viendo el gran rendimiento y versatilidad, vi posible este proyecto.

Para comenzar debía adquirir un poco de material de contracción y comenzar el diseño de este en la parte electrónica como mecánica, y la cual me llevo unas par de días en decidir que funcionaria mejor y que elementos definitivos tendría que usar, en primera instancia quería fabricarlo con motores, para que así en ves de patas tenga ruedas (que en realidad hubiese sido mucho mas fácil :/ ) pero bueno me complique la vida queriendo usar servomotores de los que se usan en aeromodelismo por lo cual tuve que investigar como funcionan. Al cabo de un tiempo encontré información que me arrojarían brillantes ideas no solo para este robot si no para otro tipo de aplicaciones. Cabe mencionar que como el estilo araña seria su forma final, tuve que nada menos que capturar una araña y firmar su movimiento con una cámara y así poder llevar ese movimiento a los 3 servomotores que utilice (cada servomotor maneja 2 patas, ósea 6 patas en total).

Por que Servomotores. Una de las ventaja de los servomotores es su fuerza y que si se le esta entregando señal adecuada quedan en una posición fija, y si tratas de moverlo el servo hace fuerza contraria para mantener su posición en que se dejo (gran ventaja en comparación a los motores DC y Paso a Paso.) la única desventaja es que originalmente solo trabajan de 0° a 180° pero ya alguien pillo la forma de hacerlo que giren 360° :) y ya con ello se pueden utilizar como motores y se les puede controlar la velocidad y el sentido de giro (como para usarlo para vehículos con buena tracción y todo terreno :D ).

Tratare de ir explicando sin mucho detalle todo el proceso de diseño y construcción de este para si alguien se anima no solo construirlo si no mejorarlo :D, ya que no me sobra mucho tiempo para seguir su desarrollo, pero bueno mano a la obra :)

Para comenzar iré explicando por la parte mecánica para dar lugar mas tarde a la parte electrónica análoga como digital.

LISTA DE COMPONENTES NECESARIOS:
  • 3 Reostatos de 1k.
  • 4 Resistencias de 10k.
  • 3 Resistencias de 1k.
  • 3 Resistencias de 220 ohmios.
  • 1 Regulador de voltaje 78m05.
  • 1 Cristal de 4mhz.
  • 1 PIC 16f84a (micro-controlador 84).
  • 1 Integrado lm324n.
  • 3 Leds.
  • 3 Foto-celdas.
  • 3 Servos FT-S148 (u otro de marca FUTABA con un torque de unos 3Kg).
  • 4 Pilas AA.
  • 1 Pila de 9V.
  • 2 Capacitadores Cerámicos 33pf (33 pico faradios).
  • 1 Capacitador Cerámico de 104f (104 faradios).
    Primero que nada como tener un poco de herramientas necesarias para la construcción y un instrumento para medir en el caso de la electrónica, algunos de ellos se muestran en la Figura N°1


Fig. N°1

Para la base del robot utilice un tubo de pvc estirado, obviamente un terciado delgado serviría también o otro tipo de plástico no tan grueso, para así no añadir demasiado peso adicional.

Corte un pedazo de pvc en forma de rectángulo de 15cm su lado mayor y el menor de 9cm y posiciones los servos de tal manera que sus ejes de movimiento estuvieran en linea recta y en la mitad del rectángulo como se muestra en la Figura N°2, además de los orificios que se marcan y distribuyen cuando estos están listos para ser montados, el detalle de los orificios no esta detallado ya que tienen que posicionarlos de manera uniforme en el rectángulo para mantener un equilibrio y estabilidad a futuro (mas adelante verán como son posicionardos dentro de este rectángulo).

 



FIg. N°2

Como se puede apreciar solo hay dos orificios para los servomotores, esto se debe a que uno de los servos tiene que ir en forma horizontal como lo veremos mas adelante, esto debido a que este se encargara de inclinar el horizonte de la araña para poder desplazar, mas adelante detallare un poco mas esto.

También hay unos pedasillos de plástico que soportaran el servo a una altura adecuada de la placa para que todos queden al mismo nivel cuando estén montados, estos son un rectángulo de 2cm por 1cm y como se ve en la figura son 4, además de 8 tornillos con dos tuercas por tornillo que nos fijaran dos de los servos, el tercero se fijara con un amarra cable ya que es mas practico por su posición en horizontal. Los tornillos son de 1.5mm por 1 pulgada.

A continuación mostraremos el servo con su cabezal redondo y el alambre que nos servirá de patas para la primera parte, ver Figura N°3

Fig. N°3

Como se ve tenemos u trozo de alambre de unos 25 cm de largo por 1.5mm cuadrado de sección, por cada servo se necesitan 3 tiras de esa misma medida ya que por firmeza tuve que agregarle esa cantidad por que por el peso de este cuando esta terminado no era capas de mantener rígidas las patas. El cabezal del servo tiene tres orificios por cada 90° y cada alambre se inserta de la manera mostrada en la Figura N°4.

 

Fig. N°4

Como se ve en la figura ya esta ensamblado en uno de los 3 orificios falta que pase por el segundo y curvar el alambre para que tenga nuestra forma deseada Ver Figura N°5

 

Fig. N°5

Aunque no se ve muy bien debo mencionar que el alambre pasa por los dos orificios y sale por la parte delantera del cabezal.

Fig. N°6

Aquí ya se ve terminado con sus tres alambres por cabezal y envueltos con hincha aisladora para darle rigidez.

Fig. N°7

Aquí ya esta ensamblado en el eje para ver ya una de sus dos patas terminadas, así devén quedar dos de los 3 servomotores, el 3° servo los alambres y posición de estos devén quedar como se muestra en la siguiente figura.

Fig. N°8

Si se fijan bien este es el servo que ira en la parte del medio y sus alambres están en otra dirección, este servo es el que se encarga de inclinar todo el cuerpo de la araña mientras los otros dos hacen que se desplace. Sin este servo no existe movimiento alguno ya que si se ponen a pensar un poco para poder avanzar hay que inclinar el peso hacia un lado para mantener el equilibrio y así poder alanzar con el otro pie, En este caso pasa algo similar, Necesito inclinar el eje de equilibrio para que los dos servos restantes puedan hacer que la base completa se desplace.

Como en esto requiere no solo de electrónica si no de varios estudios adicionales jejej :D


Fig. N°9

Como se ve en la figura ya tenemos los tres servos con sus respectivas cabezas y patas terminadas lista para ser montadas al final de proyecto cuando todo este en su sitio.

Fig. N°10

Mano ala obra y comencemos el ensamblaje de las partes :D en la Figura N°10 comenzamos a poner el primer servo en su sitio con sus tornillos y soporte de plástico pequeños, fíjense que el eje de giro se encuentra en la mitad de la base marcado con una línea en la figura..

Fig. N°11

Aquí ya lo tenemos montado y para el segundo servo es exactamente el mismo procedimiento.

Fig. N°11

En esta figura se ve la parte superior en donde esta anclado el servo con sus tuercas que mantendrán el servo en su posición.

Fig. N°12

En esta figura se muestra el servo que va en forma horizontal con sus amarra cable como sujeción, su eje de movimiento en el centro de la base como se ve en la siguiente figura.

Fig. N° 13

En esta figura se observa con mas detalle el posicionamiento de los servo en la parte que mirara hacia el piso, observe que el servo que tiene numero 1 su cable de control es pasado por el orificio que esta a un costado, para quedar por su parte superior como se muestra en la Figura N°14 y mas o menos ordenada para el conexionado posterior

Aquí es importante que tengan cada servo enumerado de la siguiente manera en una esquina el servo 0 en la otra el 2 y en el medio el 1 también se debe marcar el terminal de conexión del servo con el numero que corresponda, ya que esto nos servira para entender su conexionado posterior y para el que entienda de programación sepa en el programa de movimiento cual servo es el que se debe mover.

Fig. N°14

Fig. N°15

 

Como debemos alimentar nuestra parte de potencia con una alimentación que pueda manejar los servos se usan 4 pilas 2AA y para la parte electrónica análoga y digital una batería de 9 volt que posteriormente se regulara para 5 Volt con un regulador de voltaje, ya que los circuitos de proceso requieren ducho voltaje para un buen funcionamiento.

Así que esta demás que diga que necesitan un porta pilas para 4 de ellas de forma plana y un terminal de batería, con ello podemos posisionar dichos elementos en la parte superior de la base del robot, aquí entenderán el porque de las cuñas ocupadas en los servos, son para mantener un tamaño que puedan albergar las pilas para asi colocar posteriormente el circuito de control y proceso.

Fig. N° 16

Véase su forma definitiva para sujetar la placa que ira sobre este apartado se usan dos elásticos, que se encuentran en cualquier librería :)

Es hora de comenzar el diseño Electrónico y de proceso digital. Como se muestra en la Figura N°17 esta el esquema electrónico que se encarga de verificar la fuente de luz que en este caso usamos 3 sensores de luz para direcionar entre Izquierda, Centro y Derecha, y que son llevados al microcontrolador (16F84A) que se encargara de procesar y enviar las ordenes a los servo motores para poder hacer lo que se pretende, que es mover la araña en el sentido de la fuente de luz. Véase Figura N°17.

Fig. N°17

En esta figura esta detallada cada sección de todo el conjunto, Ya sea la parte Análoga que se encarga de enviar la señal al microcontrolador (Control digital) su fuente de alimentación y regulación y finalmente la parte de potencia que son los servomotores.

Aquí me detendré a explicar cada una de ellas para que se hagan la idea de como funciona cada parte del circuito.

Comenzando con la parte analógica vemos en el costado izquierdo superior que tenemos las 3 LDR que nos darán la posición de la fuente de luz, y son ingresadas a un circuito integrado que esta configurado como comprador de voltaje y que para un LDR tenemos que:

Al aplicarle luz a la foto resistencia su valor disminuye ingresando por la entrada negativa del operacional un valor que se compara por el de la resistencia variable de 1 kohm cuando este valor es igual ala salida del operacional tenemos un alto (3.3 Volt aproximadamente) y cuando no existe luz este valor de voltaje es diferente por el cual la salida de ese operacional es de 0 Volt.

A la salida de cada operacional se conecta diodos LED que se encargan de avisarnos el estado de las entradas y así poder verificar y ajustar con las resistencias variables de 1 k ohm el valor de luz o mejor dicho la sensibilidad ala luz que queremos que funcione nuestro robot, si se encuentra encendido algún led es por que esta llegando luz de alguna fuente del ambiente, para dejarlo apagado solo se tiene que ajustar la resistencia de 1k ohm hasta que se apague. Debo mencionar que estos indicadores deben estar apagados en un comienzo para así al aplicarles luz comience a funcionar el robot según la dirección del rayo de luz.

Aquí podemos sacar en conclusión que para los 3 LDR tenemos 8 posibles combinaciones que nos darán los diferentes estados que serán procesados por el microcrontolador, esta tabla se muestra en la Figura N°18.

Fig. N°18

Ya sabemos que el 0 corresponde a un 0 lógico y los 3.3 volt a un 1 lógico por lo que tenemos una tabla con todas las posibles combinaciones y su respectivo movimiento que llevara a cabo finalmente.

En la parte de control Digital se toman estos valores y según nuestra tabla, se le enviaran las señales al servo que corresponda para hacer un movimiento en particular, y para entender que tipo de señal se le debe enviar, detallare a continuación como Funciona un servomotor.

Fig. N°19

Como se muestra en la figura y como mencione anteriormente el servo tiene una movilidad de 180° y funciona con lo que se conoce como modulación por ancho de pulsos o PWM. Osea este servo que es de la marca FUTABA de Radiocontrol, funciona a 50Hz, o sea en un segundo le son enviados 50 pulsos, y con un simple calculo se puede dividir 1/50 y nos dará 20miliseg el ancho de pulso se utilizara para el trabajo del movimiento de este:

Osea trabajando en este pequeño intervalo, podemos poner en un ángulo a nuestro antojo el servomotor y que se quede allí hasta que cambiemos ese pulso por otro,

Para 0° tenemos que tener un pulso de 0,2 mili segundos y el resto un pulso bajo hasta los 20 mili segundos, esto repetidamente 50 veces nos da los 50 Hz y por consecuencia el servo en la posición 0° como se muestra en la figura.

Para 90° tenemos que aplicar un pulso de 1,5 mili segundos y el resto en pulso bajo hasta los 20 mili segundos, esto repetidamente por 50 Hz nos dará la posición 90°, también mostrado en la figura.

Y para 180 ° tenemos que aplicar un pulso de 2,2 mili segundos y el resto en pulso bajo hasta los 20 mili segundos, esto repetidamente por 50 Hz nos dará la posición 180°.

Para este caso en particular se uso como centro 90° y se calcularon matemáticamente los pulsos para 66,5° y 112,5° que serán los 3 ángulos usados para que camine nuestra araña.

En el programa en ASM se detallan los tiempos de estos pulsos como asi las rutinas usadas para el movimiento y que están en este link:

Programa Robot.txt

Debo mencionar que para aumentar la rapidez entre servo y servo en ves de repetir 50 veces el movimiento por servo lo disminuí a 8 y para centrarlo a 13 veces.

No pretendo explicar el programa ya que seria muy largo, pero bien resumido el programa analiza los niveles lógicos de los sensores LDR que son 8 para así ejecutar una rutina de movimiento X y así poder llevar los 3 servos en una dirección X, este movimiento esta comprobado y posteriormente será puesto un video con su desempeño.

 

Fig. N°20

Aquí mostramos el ensamble de la parte analógica en un protoboard y que usa el circuito integrado para llevar la información de los LDR a niveles lógicos que el microcontrolador procesara a futuro, también están las LDR los Diodos LED que indicaran cuando se este alumbrando cada LDR.

Fig. N°21

Aquí se encuentra ensamblado el circuito digital de proceso con su microcontrolador y sus accesorios como la pequeña regleta de conexionado donde irán los servos conectados, y la fuente regulada que se encarga de pasar los 9 volt a los 5 volt de trabajo del Microcontrolador y que también será usado para la parte analógica :)

Fig. N°22

Aquí ya esta ensamblado los dos protoboard y unidas las señales de control como las fuentes tal como salían en el esquema del circuito. solo queda ponerlo sobre la base y conectar los servos como se muestra en la siguiente Figura.

Un de talle importante es que la parte que tiene los sensores (LDR), debe ir sobre el servo con la numeración 0.

Fig. N°23

Aquí ya esta ensamblado casi por completo el circuito.

Fig. N°24

Solo nos queda colocar en su posición cada pata de nuestra araña Ver siguiente Figura.

Fig. N°25

Y ya estamos listo :D

Fig. N°26

Fig. N°27

Infaltable su dueño y su proyecto.

 

Ya esta terminada nuestra araña solo queda programar el Microcontrolador con un programador para PIC y ver si responde a nuestro mandato de luz. Espero la disfruten :D.

Para ver un video demostrativo de la araña terminada hacer Clic Aquí.

Mostrando la parte analógica en funcionamiento

Mejorando algunas rutinas, perfeccionando el movimiento y acelerando el tiempo de movilidad entre servo y servo, logre un mejor desempeño en cuanto a su movilidad. Con este nuevo programa mi robot quedo mas ágil y gira con mayor facilidad, Para ver el nuevo programa pinchar Aquí

Programa Robot2.txt

Programa Compilado con distintas velocidades:

HEX3

HEX4

HEX5

Todos los archivos en rar: hex.rar

NOTA: Al grabar el PIC tener en cuenta que el cristal es XT, desactivar el Perro Guardián, y activar el retardo al inicio del programa, todas opciones que aparecen en el programador. De no estar bien configurado, como lo señalo acá, el PIC no funcionara.

Video con su nueva modalidad.

Una observación que se estarán planteando, y es que costo tiene un bicho de estos. Bueno aquí es donde duele el estomago jajaj

Unos $ 54.000 pesos chilenos o unos 84 dólares aproximadamente :) jo jo jo obviamente hay costos que podrían disminuirse pero no superarían los 7 mil pesos u 11 Dólares :P.

Cualquier duda o comentario háganla llegar al correo:

Saludos

Jorge O. Lezana S.

Valdivia-Chile