robot araña

Upload: manuel-cabrera-san-juan

Post on 19-Jul-2015

208 views

Category:

Documents


0 download

TRANSCRIPT

INTRODUCCIN: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 diseo de la parte electrnica y posteriormente de la mecnica, la cual me llev un par de das en decidir como funcionaria mejor y que elementos definitivos tendra 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 fcil) 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 informacin 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 araa seria su forma final, tuve que nada menos que capturar una araa y grabar con una cmara su movimiento y as poder llevar ese movimiento a los 3 servomotores que utilice (cada servomotor mueve 2 patas, 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 seal adecuada quedan en una posicin fija, y si tratas de moverlo el servo hace fuerza contraria para mantener su posicin en que se dejo (gran ventaja en comparacin a los motores DC y Paso a Paso.) la nica desventaja es que originalmente solo trabajan de 0 a 180 pero se pueden modificar fcilmente 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 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 Cermicos 33pf (33 pico faradios). 1 Capacitador Cermico de 104f (104 faradios).

CONSTRUCCIN DEL CHASIS Y LAS PATAS:Si alguien se anima puede mejorarlo, no solo construirlo igual a este. Para comenzar ir explicando por la parte mecnica para dar lugar ms tarde a la parte electrnica analgica y digital. Lo primero de todo son las herramientas necesarias para la construccin del chasis y un instrumento para medir en el caso de la electrnica, algunos de ellos se muestran en la siguiente foto:

Para la base del robot utilice un tubo de PVC estirado, obviamente un terciado delgado servira tambin u otro tipo de plstico no tan grueso, para as no aadir demasiado peso adicional. Corte un pedazo de PVC en forma de rectngulo 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 rectngulo como se muestra en la foto de ms abajo, adems de los orificios que se marcan y distribuyen cuando estos estn listos para ser montados, el detalle de los orificios no esta detallado ya que tienen que posicionarlos de manera uniforme en el rectngulo para mantener un equilibrio y estabilidad a futuro (mas adelante vern como son posicionados dentro de este rectngulo).

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. Tambin hay unos cachos de plstico que soportaran el servo a una altura adecuada de la placa para que todos queden al mismo nivel cuando estn montados, estos son un rectngulo de 2cm por 1cm y como se ve en la figura son 4, adems 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 posicin en horizontal. Los tornillos son de 1.5mm por 1 pulgada. A continuacin mostraremos el servo con su cabezal redondo y el alambre que nos servir de patas para la primera parte, lo podis ver en la siguiente foto:

Como podis ver tenemos un trozo de alambre de unos 25 cm de largo por 1.5mm cuadrado de seccin, 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 rgidas 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 podis 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 posicin 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 estn en otra direccin, este servo es el que se encarga de inclinar todo el cuerpo de la araa 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 plstico pequeos, fjense que el eje de giro se encuentra en la mitad de la base marcado con una lnea:

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 mantendrn el servo en su posicin:

: En la siguiente foto se puede ver el 3 servo que va en forma horizontal con sus amarra cable como sujecin:

En la siguiente foto se observa con mas detalle el posicionamiento de los servos, observe que el servo que tiene el nmero 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 tambin se debe marcar el terminal de conexin del servo con el numero que corresponda, ya que esto nos servir para entender su conexionado posterior y para el que entienda de programacin sepa en el programa de movimiento que servo es el que se debe mover.

LA ALIMENTACIN ELCTRICA:Para mover los servos usaremos 4 pilas AA de 1,5V. cada una y para la parte electrnica analgica y digital una pila de 9V. que limitaremos a 5V. con un regulador de voltaje.

Y no olvidis comprar tambin 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 ms fcilmente en nuestro robot, para sujetar la placa que contendr el circuito yo usar 2 gomas elsticas como podis ver en la foto:

EL CIRCUITO:Como podis ver ms abajo est el esquema electrnico 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 araa en el sentido de la fuente de luz.

DIBUJO DEL CIRCUITO AQU (Pulsa aqu para verlo)En el dibujo de arriba esta detallada cada seccin de todo el conjunto, la parte Analgica que se encarga de enviar la seal al microcontrolador (Control digital) su fuente de alimentacin y regulacin 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 analgica vemos en el costado izquierdo superior que tenemos 3 LDRs que nos darn la posicin 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 algn 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 segn la direccin del rayo de luz. Aqu podemos sacar en conclusin que para los 3 LDRs tenemos 8 posibles combinaciones que nos darn los diferentes estados que sern procesados por el micro-controlador, esta tabla se muestra en la siguiente imagen:

Ya sabemos que el 0 corresponde a un 0 lgico y los 3,3V. a un 1 lgico 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 segn nuestra tabla, se le enviaran las seales al servo que corresponda para hacer un movimiento en particular, y para entender que tipo de seal se le debe enviar, detallare a continuacin 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 modulacin por ancho de pulsos o PWM. Osea este servo que es de la marca FUTABA de Radio-Control, 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 pequeo 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 posicin 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 posicin 90, tambin 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 posicin 180. Para este caso en particular se uso como centro 90 y se calcularon matemticamente los pulsos para 66,5 y 112,5 que sern los 3 ngulos usados para que camine nuestra araa. En el programa en ASM se detallan los tiempos de estos pulsos como asi las rutinas usadas para el movimiento podis 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 lgicos de los sensores LDR que son 8 para as ejecutar una rutina de movimiento X y as poder llevar los 3 servos en una direccin X, este movimiento esta comprobado y posteriormente ser puesto un vdeo con su desempeo.

Aqu mostramos el ensamble de la parte analgica en un protoboard y que usa el circuito integrado para llevar la informacin de los LDR a niveles lgicos que el micro-controlador procesara a futuro, tambin estn las LDR los Diodos LED que indicaran cuando se este alumbrando cada LDR.

Aqu se encuentra ensamblado el circuito digital de proceso con su micro-controlador y sus accesorios como la pequea regleta de conexionado donde irn los servos conectados, y la fuente regulada que se encarga de pasar los 9 volt a los 5 volt de trabajo del Micro-controlador y que tambin ser usado para la parte analgica

Aqu ya esta ensamblado los dos protoboard y unidas las seales de control como las fuentes tal como salan 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 numeracin 0.

Aqu ya esta ensamblado casi por completo el circuito.

Solo nos queda colocar en su posicin cada pata de nuestra araa (Ver siguiente Figura.).

Y ya estamos listos

Ya esta terminada nuestra araa solo queda programar el Micro-controlador con un programador para PIC y ver si responde a nuestro mandato de luz.hola pues hace como un ao aprendi a programar los micros PIC en lenguaje C pero ultimamente no los he retomado ya por lo que voy a empezar a programar de nuevo Y que mejor que publicar todos los programas que pueda en el foro y compartirlo con todos. Asi que comencemos. En primer lugar que es CCS es un software que te permite programar microcontroladores PIC en lenguaje C. para mayor informacion aqui tienen el link www.ccsinfo.com En inicio vamos a poner que herramientas necesitamos para poder trabajar. CCS compiler (el antes mencionado) Proteus (software para poder simular los pics) Winpic800 (programadores de pics muy bueno) epicwin y por supuesto un quemador de pics en el programa winpic800 vienen links de varios quemadores. http://foro.elhacker.net/electronica/introduccion_a_la_programacion_de_pics_en_lenguaje_c_ccst174021.0.html#ixzz1lr1esjcY

NTRODUCCION

Como bien sabemos los MCU han de contener los datos que gestionan todos sus procesos internos, estos datos se le graban gracias a un software que se encarga de transferir la informacin al PIC. Los archivos que contienen dicha informacin son lo que llevan la extensin .HEX, estos archivos son generados por el compilador. Cuando compilamos el cdigo en el programa compilador se generan otros archivos a parte del HEX y el ASM que pueden contener informacin de libreras o simplemente contienen informacin acerca de errores o la metodologa del compilado.

El compilador, segn cual sea, puede ser programado con diferentes lenguajes de programacin, segn nuestra necesidad o conocimiento. Generalmente el lenguaje nativo que proporciona el fabricante del MCU es el mas optimizado y apropiado pero tambin existe la posibilidad de hacerlo con otros lenguajes que probablemente nos conduzcan al mismo resultado con la ventaja de haber escrito menos lneas de cdigo.

A continuacin mostramos un diagrama de los pasos que se siguen para grabar el archivo al MCU.

PROGRAMADOR WINPIC800

El programador WINPIC800 es un software desarrollado por Sisco Benach, y esta diseado para programar microcontroladores y memorias de tipo EEPROM de varias categoras y marcas, entre ellas destacan MICROCHIP, ATMEL, etc.

Es de tipo freeware lo que significa que lo podis bajar y utilizar libremente en vuestros proyectos sin tener que pagar una licencia de uso. Hay otras aplicaciones de este tipo, tambin de tipo freeware, pero he optado por esta porque, bajo mi opinin y experiencia, supera en algunas caractersticas a los otros, entre ellas la que mas destaca es su rapidez a la hora de programar los dispositivos, ya que graba el dispositivo a la vez que verifica los datos grabados.

Este software se actualiza con bastante frecuencia y se le amplan sus caractersticas, as como el incremento del nmero de dispositivos soportados.

Desde este enlace podis descargar el programa winpic800.

Para grabar el MCU vamos a emplear el conocido TE-20 as que necesitaremos el cable serie macho-hembra del tipo DB-9.

Una vez tengamos el programador TE-20 conectado al PC abriremos el software WINPIC800 y accederemos a la seccin de hardware del men Configuracin, para indicarle al software que emplearemos el programador TE-20.

A continuacin seleccionamos el JDM-Programer en el men de la izquierda. Seguidamente le indicaremos en que puerto hemos conectado el cable serie (COM1, COM2 o COM3) en el men desplegable.

Ya tenemos el WINPIC800 configurado para el programador TE-20. A continuacin vamos a efectuar una pequea prueba de funcionamiento, siga estos pasos: Desconecte el cable serie del TE-20 Inserte un PIC16F84A en el zcalo adecuado en el programador (cuidado con la posicin del C.I.) Vuelva a conectar el cable serie

Para verificar que todo funciona correctamente y que WINPIC800 esta bien configurado, pulsaremos el botn al lado del selector de dispositivos. Aparecer la pantalla siguiente:

El WINPIC800 esta detectando el PIC16F84A por medio del TE-20. Una vez hayamos hecho esto ya tendremos configurado el programador WINPIC800 para ser utilizado con el TE-20. FUNCIONES PRINCIPALES

Para no extendernos demasiado en el funcionamiento del WINPIC800 explicaremos solo las funciones y cualidades mas destacadas.

A- Abrir archivos .HEX, si pulsamos sobre la flecha aparecer una lista con los archivos que se han abierto recientemente. B- Guardar el archivo .HEX en caso de haberlo rescatado de un pic. C- Muestra una ventana con las opciones para la configuracin del software. D- Muestra una ventana con las opciones de configuracin del Hardware. E- Lee el programa que contenga dispositivo que hay conectado en el programador hardware. F- Programa los datos en el dispositivo que tengamos insertado (si esta debidamente reconocido). G- Compara los datos que hay en la ventana de datos (cargados de un archivo .HEX) con los que hay contenidos en el programa del dispositivo insertado en el programador y nos indica el resultado. H- Borra el programa contenido en el dispositivo. I- Tipo y marcas de dispositivo. J- Informacin y caractersticas del dispositivo seleccionado. K- Selector del dispositivo que vamos a programar L- Detector automtico de dispositivo

M- Test del hardware (comprueba la comunicacin con el programador). N- Configuracin de los parmetros del dispositivo. - Visualiza los datos de la memoria EEPROM (si la hay). O- Visualiza los datos del programa en hexadecimal.

ENVIAR UN ARCHIVO HEX AL PIC

Para enviar un programa en un archivo HEX al PIC seleccionamos el men abrir o hacemos clic en el botn (A) descrito anteriormente en la barra de botones, seleccionamos el archivo HEX que queramos programar y pulsamos el botn abrir.

La ventana de datos mostrara la informacin del archivo HEX en cada una de las posiciones de memoria.

Para enviar el programa al pic pulsaremos (botn F) de la barra de botones. Aparecer una ventana de progreso y de incidencias de la grabacin del dispositivo, en ella tambin hay un check que indica que se cierre la ventana automticamente al finalizar el proceso de grabacin.

Al terminar esta operacin habremos grabado y verificado los datos en dispositivo. LEER UN DISPOSITIVO

Con este procedimiento podremos copiar un los datos contenidos en un dispositivo al PC y grabarlos en un archivo HEX.

Inserte el dispositivo en el TE-20 pulse (botn E) de la barra de botones y aparecer una ventana de progreso indicando la lectura.

Una vez se haya completado la lectura de los datos podremos guardarlos pulsando (botn B) de la barra de botones. Aparecer un cuadro de dialogo donde podr asignarle el nombre al programa que ha recibido.

Escriba donde pone "Nombre de archivo" el nombre con el que se guardara en el disco duro de su PC. El programa ser guardado en formato HEX y podr ser cargado posteriormente para otras grabaciones en ms dispositivos con el fin de ser duplicado.

No se puede grabar en otro dispositivo que no sea el mismo del que proviene, es decir, si usted lee la informacin contenida en un PIC16F84A no la podr guardar en un PIC16F877, solo servir para dispositivos iguales.

RECUERDE QUE... Para sustituir el dispositivo a programar debe desconectar el TE-20, de lo contrario puede daar el circuito y/o el dispositivo propiamente dicho. El WINPIC800 debe reconocer el dispositivo que ha de programar. Que debe colocar el dispositivo a programar en la posicin adecuada.