martes, 30 de septiembre de 2008

COMO ARMAR UN ROBOT TIPO ARAÑA

INTRODUCCIÓN:
Por inquietud de un amigo me propuse realizar un robot, ya que comencé a interesarme por el mundo de los microcontroladores de microchip, y viendo el gran rendimiento y versatilidad, vi posible este proyecto. Para comenzar adquirí un poco de material y comencé el diseño de la parte electrónica y posteriormente de la mecánica, la cual me llevó un par de días en decidir como funcionaria mejor y que elementos definitivos tendría que usar, al principio pensé en usar motores DC, para que así en vez 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/automodelismo por lo cual tuve que investigar como funcionan. Al cabo de un tiempo encontré información muy útil que me dio muchas 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 grabar con una cámara su movimiento y así poder llevar ese movimiento a los 3 servomotores que utilice (cada servomotor mueve 2 patas, ósea 6 patas en total).
POR QUE USAMOS 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 se pueden modificar fácilmente para que giren 360º y así se pueden utilizar como motores y se les puede controlar la velocidad y el sentido de giro.
LISTA DE COMPONENTES NECESARIOS:
3 - Resostatos 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 (microcontrolador 84). 1 - Integrado lm324n. 3 - Leds. 3 - Fotoceldas. 3 - Servos FT-S148 o cualquier otro de marca FUTABA con un torque de unos 3Kg. 4 - Pilas AA. 1 - Pila de 9V. 2 - Capasitores Ceramicos 33pf (33 pico faladios). 1 - Capacitor Ceramico de 104f (104 faladios).
CONSTRUCCIÓN DEL CHASIS Y LAS PATAS:
Si alguien se anima puede mejorarlo, no solo construirlo igual a este. Para comenzar iré explicando por la parte mecánica para dar lugar más tarde a la parte electrónica analógica y digital. Lo primero de todo son las herramientas necesarias para la construcción del chasis y un instrumento para medir en el caso de la electrónica, algunos de ellos se muestran en la siguiente foto:
Para la base del robot utilice un tubo de PVC estirado, obviamente un terciado delgado serviría también u 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 puse los servos de tal forma que sus ejes de movimiento estuvieran en linea recta y en la mitad del rectángulo como se muestra en la foto de más abajo, 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 posicionados dentro de este rectángulo).
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. También hay unos cachos 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, lo podéis ver en la siguiente foto:
Como podéis ver tenemos un 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 ya que por el peso de este cuando esta terminado no era capaz 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 siguiente foto:
Como podéis ver en la foto 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:
Aunque no se ve muy bien debo mencionar que el alambre pasa por los dos orificios y sale por la parte delantera del cabezal. En la siguiente foto ya se ve terminado con sus tres alambres por cabezal y envueltos con hincha aisladora para darle rigidez.
En la siguiente foto ya esta montado en el eje con una de sus dos patas terminadas, así deben quedar dos de los 3 servomotores:
El 3° servo los alambres y posición de estos deben quedar como se muestra en la siguiente foto:
Si se fijan bien en la foto de arriba 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 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 se ve en la siguiente foto ya tenemos los tres servos con sus respectivas cabezas y patas terminadas lista para ser montadas al final del proyecto cuando todo este en su sitio:
COMENZAMOS EL MONTAJE:
En la siguiente foto se puede ver el primer servo en su sitio con sus tornillos y soportes 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 siguiente foto tenemos ya montado el segundo servo, que se monta de forma igual al anterior:
En la siguiente foto se ve la parte superior en donde esta anclado el servo con sus tuercas que mantendrán el servo en su posición:
:
En la siguiente foto se puede ver el 3º servo que va en forma horizontal con sus amarra cable como sujeción:
En la siguiente foto se observa con mas detalle el posicionamiento de los servos, observe que el servo que tiene el número 1 su cable de control ha sido pasado por el orificio que esta a un costado:
Aquí es importante que tengan cada servo enumerado como se puede ver en la foto de arriba, 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 servirá para entender su conexionado posterior y para el que entienda de programación sepa en el programa de movimiento que servo es el que se debe mover.
LA ALIMENTACIÓN ELÉCTRICA:
Para mover los servos usaremos 4 pilas AA de 1,5V. cada una y para la parte electrónica analógica y digital una pila de 9V. que limitaremos a 5V. con un regulador de voltaje.
Y no olvidéis comprar también un porta-pilas para 4 pilas AA y un conector para la pila de 9V, como veis en al foto superior, así podremos posicionar dichos elementos más fácilmente en nuestro robot, para sujetar la placa que contendrá el circuito yo usaré 2 gomas elásticas como podéis ver en la foto:
EL CIRCUITO:
Como podéis ver más abajo está 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 encargará de procesar y enviar las ordenes a los servomotores para poder hacer lo que se pretende, que es mover la araña en el sentido de la fuente de luz.
DIBUJO DEL CIRCUITO AQUÍ (Pulsa aquí para verlo)
En el dibujo de arriba esta detallada cada sección de todo el conjunto, la parte Analógica 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. Voy a explicar cada una de ellas para que entiendan como funciona cada parte del circuito. Comenzando con la parte analógica vemos en el costado izquierdo superior que tenemos 3 LDR’s que nos darán la posición de la fuente de luz, y son puestos en un circuito integrado que esta configurado como comprobador de voltaje y que para un LDR entendemos 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 1k ohm cuando este valor es igual a la salida del operacional tenemos un alto (3,3V. aproximadamente) y cuando no existe luz este valor de voltaje es diferente por el cual la salida de ese operacional es de 0 Voltios. 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 1k ohm el valor de luz o mejor dicho la sensibilidad a la 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’s tenemos 8 posibles combinaciones que nos darán los diferentes estados que serán procesados por el microcrontolador, esta tabla se muestra en la siguiente imagen:
Ya sabemos que el 0 corresponde a un 0 lógico y los 3,3V. 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:
Como se muestra en la figura y como mencioné 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 milisegundos, 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 milisegundos, 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 milisegundos, 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 podéis verlos en este documento de texto:
Programa Robot.txt
Debo mencionar que para aumentar la rapidez entre servo y servo en vez 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.
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.
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
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.
Aquí ya esta ensamblado casi por completo el circuito.
Solo nos queda colocar en su posición cada pata de nuestra araña (Ver siguiente Figura.).
Y ya estamos listos
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! Aquí tenéis un vídeo en el que se puede ver como reacciona a la luz:

Mostrando la parte analógica en funcionamiento.
ACTUALIZACIÓN:
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, aquí lo tenéis:
Programa Robot2.txt
Y aquí un vídeo de la araña con el nuevo programa:

domingo, 28 de septiembre de 2008

INTRODUCCIÓN:
Por inquietud de un amigo me propuse realizar un robot, ya que comencé a interesarme por el mundo de los microcontroladores de microchip, y viendo el gran rendimiento y versatilidad, vi posible este proyecto. Para comenzar adquirí un poco de material y comencé el diseño de la parte electrónica y posteriormente de la mecánica, la cual me llevó un par de días en decidir como funcionaria mejor y que elementos definitivos tendría que usar, al principio pensé en usar motores DC, para que así en vez 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/automodelismo por lo cual tuve que investigar como funcionan. Al cabo de un tiempo encontré información muy útil que me dio muchas 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 grabar con una cámara su movimiento y así poder llevar ese movimiento a los 3 servomotores que utilice (cada servomotor mueve 2 patas, ósea 6 patas en total).