“UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO” FACULTAD DE INGENIERIA. REPORTE TÉCNICO PROTOTIPO MECANISMO ESCALADOR “AK-KOALA” SEMESTRE LECTIVO: 2012-1 P R E S E N T A N: GARCIA GALINDO VANESSA M CINEMATICA Y DINAMICA GRUPO. 15 TEL. 5551815635 E-MAIL. [email protected] OSORNIO MARTINEZ JOEL ITAUQUI PRINCIPIOS DE ELECTRICIDAD Y MAGNETISMO GRUPO. 6 TEL. 5534276491 E-MAIL. [email protected] ZAMORA LÓPEZ EDUARDO GABRIEL ECUACIONES DIFERENCIALES GRUPO.20 TEL. 5526877262 E-MAIL. [email protected] México, D. F. octubre del 2011. 1 OBJETIVO. El principal objetivo de este proyecto es el diseño y construcción de un mecanismo autómata escalador de superficies verticales (esencialmente árboles), con presupuesto y complejidad reducidos. Este objetivo plantea esfuerzos de investigación en los siguientes campos: Diseño de estructuras mecánicas articuladas, capaces de posicionar de manera eficiente el sistema del mecanismo (maximización del espacio alcanzable frente a minimización de colisiones entre los elementos). Estudio y búsqueda de sistemas mecánicos de servo control (minimización del tamaño, peso y costo frente a optimización del control en el sentido de fuerza ejercida y reducción del error). Arquitecturas de control (autonomía). Diseño de la electrónica de control y de los interfaces (estructuras digitales para el mantenimiento de las señales de posicionamiento y elección de dispositivos. Sistemas software, estructurados en niveles de abstracción, capaces de movimientos complejos y eficientes del autómata. 2 INTRODUCCIÓN. Autómata, del latín automăta y este del griego automatos (αὐτόματος), espontáneo o con movimiento propio. Según la RAE (Real Academia Española), máquina que imita la figura y los movimientos de un ser animado. Un equivalente tecnológico en la actualidad serían los robots autónomos. En electrónica un autómata es un sistema secuencial, aunque en ocasiones la palabra es utilizada también para referirse a un robot. Puede definirse como un equipo electrónico programable en lenguaje no informático y diseñado para controlar, en tiempo real y en ambiente industrial, procesos secuenciales. En el campo de la robótica móvil existen robots que utilizan ruedas, orugas, patas oninguno de los mencionados para desplazarse. (Dentro de este grupo se encuentran los robots ápodos). Con este punto de partida, podemos mencionar que los primeros autómatas se remotan al Antiguo Egipto donde las estatuas de algunos de sus dioses o reyes despedían fuego de sus ojos, como fue el caso de una estatua de Osiris, otras poseían brazos mecánicos operados por los sacerdotes del templo, y otras, como la de Memon de Etiopía emitían sonidos cuando los rayos del sol los iluminaba consiguiendo, de este modo, causar el temor y el respeto a todo aquel que las contemplara.Esta finalidad religiosa del autómata continuará hasta la Grecia clásica donde existían estatuas con movimiento gracias a las energías hidráulicas. Esos nuevos conocimientos quedan plasmados en el primer libro que trata la figura de los robots Autómata escrita por Herón de Alejandría (10 dC -70 dC) donde explica la creación de mecanismos, muchos basados en los principios de Philon o Arquímedes, realizados fundamentalmente como entretenimiento y que imitaban el movimiento, tales como aves que gorjean, vuelan y beben, estatuas que sirven vino o puertas automáticas todas producidas por el movimiento del agua, la gravedad o sistemas de palancas. Nacido en 1206 en Baviera, teólogo, filósofo y hombre de ciencia Alberto Magno es una de las figuras decisivas del pensamiento medieval. Se le han atribuido a lo largo de la historia multitud de obras tanto de carácter mágico como de creación de seres artificiales. Si hablamos de avances científicos, Auilicos y tecnológicos debemos hablar del mundo árabe y de Al-Jazari (1260) uno de los más grandes ingenieros de la historia. Inventor del cigüeñal y los primeros relojes mecánicos movidos por pesos y agua entre otros muchos inventos de control automático, estuvo también muy interesado en la figura del autómata creando una obra del mismo nombre (también llamada El libro del conocimiento de los ingeniosos mecanismos) y considerada una de las más importantes sobre historia de la 3 tecnología. Leonardo Da Vinci (1452-1519), hombre por excelencia del Renacimiento diseñó al menos dos autómatas de los que se tenga constancia. El primero se considera también uno de los primeros con forma completamente humana, vestido con una armadura medieval. y fue diseñado alrededor del año 1495, aunque como muchos otros inventos de Leonardo no fue construido. Este mecanismo fue reconstruido en la actualidad según los dibujos originales y podía mover los brazos, girar la cabeza y sentarse. El segundo, mucho más ambicioso, se trató de un león mecánico construido a petición de Francis I, Rey de Francia (1515) para facilitar las conversaciones de paz entre el rey francés y el papa León X , el animal, mediante diversos trucos de artificio, anduvo de una habitación a otra donde se encontraba el monarca, abrió su pecho y todos pudieron comprobar que estaba lleno de lirios y otras flores, representado así un antiguo símbolo de Florencia (el león) y la flor de lis que Luis XII regaló a la ciudad como señal de amistad. Nacido un 24 de febrero de 1709, Jacques de Vaucanson, excelente relojero pero con amplios conocimientos de música, anatomía y mecánica, quería demostrar mediante sus autómatas la realización de principios biológicos básicos, tales como la circulación, la digestión o la respiración, sobre esta última función versó su primera creación “El Flautista” , en 1738, crea su segundo autómata llamado “El Tamborilero” . El tercero y más famoso fue “El pato con aparato digestivo” transparente y compuesto por más de cuatrocientas partes móviles y que batía las alas, comía y realizaba completamente la digestión imitando al mínimo detalle el comportamiento natural del ave. Aunque en realidad el pato era un engaño, pues lo que comía no era lo mismo que defecaba, sino que al interior del pato había un compartimento en el que se depositaba el grano que comía y del que salía algo parecido a un excremento. A finales del siglo XIX y comienzos del siglo XX se siguieron creando autómatas de todo tipo, pero la realidad es que no fueron tan elaborados como sus antecesores y estuvieron más guiados al mundo del espectáculo. Entre los más importantes caben destacar “La pareja” de Alexander Nicolas Theroude, los autómatas animales de Blaise Bontems, las figuras que realizaban pequeños trucos de magia o la encantadora de serpientes de Roullet & Decamps, el fumador turco de Leopold Lambert, los escarceos con el mundo de los autómatas de científicos como Nikola Tesla y su robot sumergible con mando a distancia o el autómata caminante de George Moore con forma humana y movido por la fuerza del vapor que podía recorrer distancias a casi 9 millas por hora. Finalmente, con el estallido de la Primera Guerra Mundial la industria de los autómatas desaparece y no renacerá hasta la llegada de los modernos robots. El autómata AK-KOALA, descrito en esta presentación, es un mecanismo desarrollado bajo la perspectiva de los autómatas programables. Está compuesto por cuatro servomotores (sujeción); se desplaza en línea recta, mediante un motor de corriente directa que está a través de su cuerpo desde la cola hasta la cabeza. Para la electrónica se han usado diferentes enfoques. En esta presentación se muestra la más sencilla: control mediante un microcontrolador de 8 bits. AK-KOALA es un prototipo, que está en desarrollo para la investigación de otros sistemas. Se muestran los algoritmos empleados para la locomoción y los que se van a emplear en un futuro. En el desarrollo de un mecanismo escalador deben tenerse en cuenta aspectos tales como la sujeción, coordinación de los movimientos, entre otros. Un sistema que ataque todos los aspectos y resuelva estos problemas resulta de difícil implementación y un estudio muy 4 complejo, por lo cual este documento tratara aspectos muy puntuales tales como, hardware, arquitectura, tipos de motores etc. Se ha llevado a cabo el diseño y construcción de un autómata articulado; controlado por microcontroladores. Se partió de un objetivo primordial: realizar el diseño de un robot experimental con presupuesto y complejidad reducidos. Para el desarrollo de este proyecto, se diseñaron todos los sistemas mecánicos, electrónicos y de software que se consideraron necesarios a partir de la documentación citada en la bibliografía. Se experimentó con diversas estructuras mecánicas, servomecanismos de posicionamiento, electrónica de generación de señales y software jerarquizado y modular. Finalmente, se implantó e integró todo ello, logrando un sistema completo. Este prototipo está destinado a una rápida expansión que estaría limitada únicamente por la capacidad e inventiva que se vuelque en ella y no por la falta de medios. 5 CAPITULO I BASES ROBOTS: Un robot es una entidad virtual o mecánica artificial. En la práctica, esto es por lo general un sistema electromecánico que, por su apariencia o sus movimientos, ofrece la sensación de tener un propósito propio. La palabra robot puede referirse tanto a mecanismos físicos como a sistemas virtuales de software, aunque suele aludirse a los segundos con el término de bots. Un robot es un dispositivo electrónico y generalmente mecánico, que desempeña tareas automáticamente, ya sea de acuerdo a supervisión humana directa o a través de un programa predefinido o siguiendo un conjunto de reglas generales. Un robot también se define como una entidad hecha por el hombre con un cuerpo (anatomía) y una conexión de retroalimentación inteligente entre el sentido y la acción no bajo la acción directa del control humano. Sin embargo, se ha avanzado mucho en el campo de los robots con inteligencia alámbrica. Las acciones de este tipo de robots son generalmente llevadas a cabo por motores o actuadores que mueven extremidades o impulsan al robot. Asimismo, el término robot ha sido utilizado como un término general que define a una máquina mecánica o autómata, que imita a un animal, ya sea real o imaginario, pero se ha venido aplicado a muchas máquinas que reemplazan directamente a un humano o animal en el trabajo o el juego. Esta definición podría implicar que un robot es una forma de biomimetismo. En la robótica existen dos grandes áreas: manipulación y locomoción. La manipulación es la capacidad de actuar sobre los objetos, trasladándolos o modificándolos. Esta área se centra en la construcción de manipuladores y brazos robóticos. La locomoción es la facultad de un robot para poder desplazarse de un lugar a otro. Los robots con capacidad locomotiva se llaman Robots móviles. Uno de los grandes retos en el área de la locomoción es el de desarrollar un robot que sea capaz de moverse por cualquier tipo de entorno, por muy escarpado que sea. Esto tiene especial interés en la exploración de otros planetas, en los que no se sabe qué tipo de terreno nos podemos encontrar. Se llaman extremidades o miembros a los órganos externos, articulados con el tronco, que cumplen funciones de locomoción, vuelo o manipulación de objetos en los animales. En lenguaje vulgar, se les llama «patas» a las extremidades de los animales cuadrúpedos a las inferiores de las aves y a las de los insectos. Tomando en cuenta lo anterior será necesario realizar una compacta clasificación, avances en el ramo; así como disposición de extremidades. 6 ROBOTS ÁPODOS. Son robots apodos los que imitan el comportamiento de serpientes, gusanos, caracoles y otros organismos vivos que emplean su propio tronco central para desplazarse. Hasta 1993, se diseñaban robots para cada tipo de terreno. En 1994 apareció el primer robot basado en los paradigmas de la robótica modular reconfigurable : Polybot. ¿Por qué no trabajar en una nueva línea de investigación en la que no se diseñen robots específicos para cada terreno, sino que el propio robot se adapte al terreno, modificando su forma y su manera de desplazarse. El diseño de robots ápodos se puede abordar desde esta perspectiva. En vez de diseñar un robot ápodo específico, es mejor diseñar un módulo sencillo que se pueda unir formando cadenas. Este mismo módulo también servirá para construir otros robots diferentes. Entre estos, mencionaremos a: POLYPOD POLYBOT Cube Reloaded CUBE: EL GUSANO (V.2.0) ROBOT ROBOTS BIPEDOS. 7 ROBOTS CUADRUPEDOS. En esta clasificación, resulta interesante observar; que las siguientes imágenes corresponden solamente a prototipos robóticos con desplazamiento en terrenos horizontales. En las imágenes siguientes, los prototipos siguen teniendo solamente cuatro extremidades, sin embrago, se encuentran escalando superficies verticales. 8 ROBOTS HEXÁPODOS. 9 CAPITULO II COMPONENTES Y MATERIALES MOTORES: Un motor es una máquina capaz de transformar la energía almacenada, combustibles, baterías u otras fuentes en energía mecánica capaz de realizar un trabajo Existen diversos tipos, siendo común clasificarlos en: motores térmicos, cuando el trabajo se obtiene a partir de algunas diferencias de temperatura. motores eléctricos, cuando el trabajo se obtiene a partir de una corriente eléctrica. motores de combustión interna, cuando el trabajo se obtiene de combustibles fósiles, como el petróleo. En los aerogeneradores, las centrales hidroeléctricas o los reactores nucleares también transforman algún tipo de energía en otro. Sin embargo, la palabra motor se reserva para los casos en los cuales el resultado inmediato es energía mecánica. SERVOMOTORES: Un servomecanismo es un actuador mecánico —generalmente un motor, aunque no exclusivamente—, que posee los suficientes elementos de control como para que se puedan monitorizar los parámetros de su actuación mecánica, como su posición, velocidad, torque, etc. Por la explicación que hemos encontrado en otros sitios parecería que sólo se le llamaría "servo" a aquellos motores con reducción y control de posición que se utilizan extensivamente en modelismo, para efectivizar los movimientos controlados por radio. En realidad se utilizan muchos otros tipos de servos (o servomotores, mejor) en equipos industriales y comerciales, desde una diskettera en nuestra computadora —o en la videocassettera hogareña—, a las unidades de almacenaje y entrada y salida de datos de grandes sistemas de computación (hoy, más que nada, discos magnéticos), y hasta en los ascensores en edificios. El motor de un ascensor, junto con su equipo de control y detectores de posicionamiento, no es ni más ni menos que un servomotor. El mecanismo que saca hacia el exterior una porta-Cd de la lectora de CD de su computadora es un servomotor. 10 Servo analógico para modelismo Estos servomotores se componen, en esencia, de un motor de corriente continua, un juego de engranajes para la reducción de velocidad, un potenciómetro ubicado sobre el eje de salida (que se usa para conocer la posición) y una plaqueta de circuito para el control. Los servo-mecanismos que se usan en modelismo son de este tipo. Como se menciona antes, por lo general poseen un motor de CC, que gira a velocidad alta, una serie de engranajes para producir la reducción de velocidad de giro y acrecentar su capacidad de torque, un potenciómetro conectado al eje de salida y un circuito de control de la alimentación. Estos servos reciben señal por tres cables: alimentación para el motor y la pequeña plaqueta de circuito del control (a través de dos cables, positivo y negativo/masa), y una señal controladora que determina la posición que se requiere. La alimentación de estos servos es, normalmente, de entre 4,8 y 6 voltios El estándar de esta señal controladora para todos los servos de este tipo, elegido para facilitar el uso 11 en radiocontrol, es un pulso de onda cuadrada de 1,5 milisegundos que se repite a un ritmo de entre 10 a 22 ms. Mientras el pulso se mantenga en ese ancho, el servo se ubicará en la posición central de su recorrido. Si el ancho de pulso disminuye, el servo se mueve de manera proporcional hacia un lado. Si el ancho de pulso aumenta, el servo gira hacia el otro lado. Generalmente el rango de giro de un servo de éstos cubre entre 90° y 180° de la circunferencia total, o un poco más, dependiendo la marca y modelo. Suelen estar limitados a 180 grados. Se controlan con una onda; con una serie de pulsos, modulados en su ancho. La anchura (longitud) marca la cantidad de giro, el control de la anchura es crítico, en cambio, la separación de los pulsos no es importante. El servomotor puede incorporar acoplado un reductor de velocidad, de manera que obtenemos un motor con un par de giro bastante potente como para poder hacer mover las patas de nuestro hexápodo. El recorrido de la salida es de 180 grados, pero se puede modificar hasta obtener un giro de 360 grados para actuar como un motor convencional, dependiendo de nuestra aplicación. 12 Servo digital para modelismo Los servos digitales tienen, al igual que los analógicos, un motor de corriente continua, un juego de engranajes reductores, un potenciómetro para la realimentación de posición y una electrónica de control embebida dentro del servo. La diferencia está en la placa de control, en la que han agregado un microprocesador que se hace cargo de analizar la señal, procesarla y controlar el motor. La diferencia más grande de rendimiento está en la velocidad a la que reacciona el servo a un cambio en la señal. En un mismo lapso, el servo digital puede recibir cinco o seis veces más pulsos de control que un analógico. Como resultado la respuesta del servo a un cambio en la orden de posición es mucho más veloz. Este ritmo mayor de pulsos también produce mejoras en el rendimiento electromecánico del motor (mayor velocidad y más fuerza). Esto se debe a que en cualquier servo (de ambos tipos) el motor recibe, para su control, una alimentación conmutada. En los servos analógicos, la señal está conmutada a un ritmo de entre 10 y 22 ms. Si el ajuste que se requiere es muy pequeño (un ángulo pequeño de giro), los pulsos son muy delgados y están muy separados (10 a 22 ms). La integración de estos pulsos es la que da la alimentación de potencia al motor, y en consecuencia la que lo hace mover. Una integración de pulsos delgados y muy separados puede dar resultados erráticos. Suele ocurrir que cuando llega el otro pulso, el motor se ha pasado de la posición y deba reajustarse, algo que ocurre constantemente. En los servos digitales la señal llega mucho más seguido y por esto la integración es más estable y la variación de corriente de control es más firme. En los servos digitales, la señal está separada por unos 3,3 ms. La separación entre pulsos varía en cada marca de servo digital, pero el ritmo de llegada de los pulsos es de al menos 300 veces por segundo versus 50 a 100 en un analógico. La ventaja de los digitales se reduce un poco cuando se habla de consumo (algo muy importante en, por ejemplo, un avión radiocontrolado, pero también en los robots), ya que el consumo del circuito y de los ajustes más continuados produce un gasto mayor de energía, y también un mayor desgaste del motor. Los servos digitales son capaces de memorizar parámetros de programación, que varían de acuerdo a cada fabricante pero en general son: 1 - Se puede programar el sentido de giro como "normal" o "inverso". 2 - Se puede variar la velocidad de respuesta del servo. 3 - Se puede programar una posición central (o posición neutra) diferente, sin afectar los radios de giro. 4 - Se pueden determinar diferentes topes de recorrido para cada lado. 5 - Es posible programar qué debe hacer el servo en caso de sufrir una pérdida de señal. 6 - Es posible programar la resolución, es decir cuánto se mueve el control en el radio sin obtener un movimiento en el servo. Estos valores pueden ser fijados en los servos utilizando aparatos destinados a la programación, que son específicos para cada marca. 13 SERVOMOTOR FORMADO POR: El servomotor elegido para el prototipo . El Hitec HS311 es un servo de dimensiones estándar Conexiones: Amarillo-señal, Rojopositivo y Negro-negativo Los servos hitec se caracterizan por su calidad técnica y sus excelentes características mecánicas y electrónicas hacen que sean los servos mas utilizados en el montaje de robots. 14 MICROCONTROLADORES: Un microcontrolador es un circuito integrado o chip que incluye en su interior las tres unidades funcionales de una computadora: CPU, Memoria y Unidades de E/S, es decir, se trata de un computador completo en un solo circuito integrado. Aunque sus prestaciones son limitadas, además de dicha integración, su característica principal es su alto nivel de especialización. Aunque los hay del tamaño de un sello de correos, lo normal es que sean incluso más pequeños, ya que, lógicamente, forman parte del dispositivo que controlan. PIC’S Los 'PIC' son una familia de microcontroladores tipo RISC fabricados por Microchip Technology Inc. y derivados del PIC1650, originalmente desarrollado por la división de microelectrónica de General Instruments. El nombre actual no es un acrónimo. En realidad, el nombre completo es PICmicro, aunque generalmente se utiliza como Peripheral Interface Controller (Controlador de Interfaz Periférico). CARACTERÍSTICAS: Los PICs actuales vienen con una amplia gama de mejoras al hardware incorporadas: Núcleos de UCP de 8/16 bits con Arquitectura Harvard modificada Memoria Flash y ROM disponible desde 256 bytes a 256 kilobytes Puertos de E/S (típicamente 0 a 5,5 voltios) Temporizadores de 8/16 bits Tecnología Nanowatt para modos de control de energía Periféricos serie síncronos y asíncronos: USART, AUSART, EUSART Conversores analógico/digital de 10-12 bits Comparadores de tensión Módulos de captura y comparación PWM Controladores LCD Periférico MSSP para comunicaciones I²C, SPI, y I²S Memoria EEPROM interna con duración de hasta un millón de ciclos de lectura/escritura Periféricos de control de motores Soporte de interfaz USB Soporte de controlador Ethernet Soporte de controlador CAN Soporte de controlador LIN Soporte de controlador Irda 15 ARQUITECTURA DEL PIC. C I R C U I T E R I A A U X I L IA A R Comunicació n COMPARADORES Manejadores Display (LCD, VF, LED) RF/IR Periféricos Digitales A/D PW M Micros PIC Manejador Potencia Periféricos Comunicaciones P L I C A C I O N E S El PIC elegido para el prototipo “AKKOALA” fue el 16F648A (Fig. 2.3) Fig. 2.3 Pic 16f648a 16 Microchip PIC 16F648A. Características: - DIP 18 pines. - Memoria FLASH para programa: 4,096 palabras. - Memoria RAM para datos: 256 bytes. - Memoria EEPROM para datos: 256 bytes. - Capacidad de Interrupciones. - Stack de 8 niveles. - Modos de direccionamiento directo, indirecto y relativo. - Hasta 16 pines de entrada/salida. - Dos comparadores análogos. - Tres timers/counters (8, 16 y 8 bits). - Módulo CCP (capture, compare y PWM). - Retención de datos en memoria de datos EEPROM mayor a 40 años. - In circuit serial programming (ICSP). - Power On Reset, Power Up Timer, Oscillator Start-up Timer. - Watchdog Timer. - Code protection. - Modo SLEEP para ahorro de energía. ESTRUCUTURA DISEÑO: Características Diseño modular. Construido uniendo 2 placas con un tornillo (esparrago) en su torso; estos placas constituyen dos planos perpendiculares al del desplazamiento. Mecánicamente se puede hacer tan largo como se requiera. En AK-KOALA toda la electrónica se sitúa integrada al prototipo lo que permite experimentar con diferentes tecnologías. El diseño del cuerpo se ha hecho con pvc espumado (Fig.2.8) de 3mm y 6 mm de espesor; se emplea este material ya que es termo-formable, ligero, de fácil manipulación, económico y con la resistencia necesaria para cumplir el propósito. 17 Fig. 2.8 Pieza de pvc espumado de 3mm de espesor. Fig. 2.9 Diseño total 18 CONTROL DE MOTOR DE CORIENTE DIRECTA. Un motor NUNCA se puede conectar directamente a un microcontrolador. Un motor absorbe mucha corriente (normalmente, los usados en robots rastreadores, suelen consumir unos 400mA, 500mA... depende mucho del tamaño del motor). Una patilla de un PIC puede dar en torno a los 25mA: mucho menos que lo que pide un motor. Para poder gobernar motores con un PIC, debemos crear una etapa intermedia, entre la electrónica de control, y los motores. A esta etapa se la llama "etapa de potencia". Observemos la siguiente figura: Se trata de un motor de corriente continua, flanqueado por cuatro interruptores, que a su vez están conectados a 5V por un lado, y a tierra por el otro. Si cerramos los interruptores S1 y S4, dejando S2 y S3 abiertos; el lado izquierdo, el motor estará conectado a 5V, y el lado derecho a tierra (0V). La diferencia de potencial entre los bornes del motor es de 5V (5-0=5), con lo que el motor se pone a girar en un sentido. 19 Si abrimos S1 y S4, cerrando S2 y S3. Ahora al contrario: el lado derecho está a 5V y el izquierdo a 0V. Ahora la diferencia de potencial es -5V (0-5=-5). Esto quiere decir que el motor girará en el sentido contrario a como giraba antes. Lo que se haremos entonces es colocar, en vez de interruptores, transistores. Pensemos en un transistor como un elemento de tres patillas. Dos de ellas funcionan exactamente como un interruptor, si está cerrado pasa corriente, y si no, no pasa. La tercera patilla es la que gobierna al interruptor: si en esa patilla hay un '1' lógico, se cierra el interruptor que forman las otras dos. Si se pone un '0' lógico, se abre el interruptor. Entonces, tendremos 4 transistores flanqueando a un motor. Las patillas que controlan cada uno de los transistores, irán conectadas a nuestro PIC, y así controlaremos por software cuándo se abren y cierran. Controlamos por tanto si giramos el motor en un sentido o en otro. A esta estructura se le llama puente H. Como se puede ver en la figura anterior, los interruptores/transistores, flanquean al motor formando una H. Los puentes H comerciales que usaremos vienen en un circuito integrado, que se llama L293B. Este chip lleva integrados dos puentes H (un para cada motor). Soporta 1A por cada puente H. El patillaje de estos chips, y para qué sirve cada PIN se muestra a continuación: Lo primero que debemos tener en cuenta es que el chip tiene dos partes completamente independientes (en la figura, separadas por la línea roja punteada). Cada una de ellas, gobernará a un motor. Veamos la parte de la izquierda. En primer lugar, tenemos las patillas señaladas con flechas naranjas. La patilla 1A indicará el sentido de giro del motor. Si 1A=0, girará en un sentido (según como hayamos conectado el motor), y si 1A=1, girará en el sentido contrario. A la patilla 2A tiene que llegar justo la inversa de 1A. Esto se puede hacer por 20 software, o por hardware. Es más seguro hacerlo por hardware, haciendo pasar a la señal 1A por un inversor. No lo haremos por software, porque, si se diese el error de poner el mismo valor en 1A que en 2A, se coloca en cortocircuito la alimentación y tierra, con lo que, en el mejor de los casos, se gastarían las pilas rápidamente. Lo normal es que con un cortocircuito se dañe la electrónica. Si el cortocircuito dura mucho tiempo, se puede dañar el prototipo entero. Por eso lo hacemos mejor por hardware, que es más seguro. En nuestra situación consideramos la solución implementada por software a partir del microcontrolador. Las pines azules, son las salidas hacia los motores. A esas patillas deben ir conectados directamente los bornes del motor. La patilla 1,2EN es una entrada de habilitación del chip. Esto quiere decir que si 1,2EN es un '1', el chip funcionará como se ha indicado hasta ahora. Si 1,2EN fuese '0', el motor se para, independientemente del valor que tengan las patillas 1A y 2A (el chip está deshabilitado). 1,2EN 1A 0 0 0 1 2A 1 0 1 0 1 1 1 0 Motor Parado Parado Gira en un sentido Gira en el otro sentido SUJECIÓN. El principio del proyecto se desarrollo la sujeción, con pijas para tabla-roca, las cuales resultaron fallidas, debido a que la sujeción era insuficiente por lo largo de las mismas y falta de punta. Después de una larga investigación, se encontró que varios seres vivos presentan uñas curveadas tanto insectos como felinos. 21 La solución dada fueron agujas curveadas de 2 ½ in, cinco por cada extremidad como las presentes en la imagen, ya que éstas presentan por su curvatura mayor rigidez y por su punta mayor sujeción. 22 CAPITULO III. DESARROLLO DEL PROTOTIPO. FASE DE CONTROL. En este capítulo se describe el aspecto electrónico de control de “AK-KOALA”. Se diseñaron varios prototipos de circuitos capaces de generar y mantener las ondas que los servos aceptan como señales de posicionamiento. Estas ondas, llamadas PWM codifican un dato numérico que indica al servo la posición absoluta a la que debe desplazarse y en la que debe permanecer mientras la onda no cambie. Finalmente se diseñó la llamada tarjeta controladora, que incluye toda la lógica de selección de servos y generación de ondas PWM. En conclusión el prototipo es en parte autónomo. TARJETA CONTROLADORA: La tarjeta controladora, de ”AK-KOALA”, controla al robot mandando órdenes de posicionado individual de servos que transforma en ondas PWM haciendo que el robot sea autónomo. La tarjeta controladora se programa desde el PC, para activar o desactivar las salidas (analógicas o digitales), mover (a derecha o izquierda) los motores y cambiar su velocidad de giro y leer las entradas (analógicas o digitales). En el área de anexos se muestran el diagrama esquemático de la tarjeta controladora y el diseño del circuito impreso de la tarjeta controladora. SOFWARE UTILIZADO: El software PicBasic Pro y PIC C Compiler poseen todos aquellas variantes que necesitábamos para la programación profesional de PICs en lenguaje BASIC, incorporando especialmente los comandos utilizados en las BASIC Stamp II, y utilizando los pines de los PORTA, C, D, E, como así también el PORTB, y la posibilidad de utilizar mas variables y mayor espacio de programa. Siendo el PicBasic un compilador, logramos desarrollar sistemas más rápidos y de mayor longitud. Por default PBP genera ejecutables para ser cargados en un PIC16F648A PicBasic Pro puede ser utilizado con el package Microchip's MPLAB IDE permitiendo la simulación en entorno Windows. A partir de la versión 2.42 soporta los microcontroladores de 12-bit, nuevos comandos y debugeo en BASIC, como se muestra a continuación Permite ejecución más rápida y programas más largos que los interpretes Basic. Acceso directo a cualquier pin o registro Paginado automático para banco mayor a 2K Arreglos con Bit, byte y word. 23 If.Then.Else.End. Expresiones con jerarquías de procesamiento Interrupciones en Basic y assembler Librerías BASIC Stamp I y II Instrucciones Built-in LCD Soporta osciladores desde 3.58MHz a 40MHz Instrucciones de acceso a buses I2C incluyendo memorias EEPROMs serie In-line assembler y soporte Call Compatibilidad MPLAB / MPASM / ICE Se ejecuta en DOS o Windows Soporta todos los microcontroladores Microchip PICmicro Además se utilizó el software WINPIC 800g para cargar el archivo .hex al pic por medio de una interfaz; junto con éste se utilizo EAGLE LAYOUT 5.10 para generar y diseñar el circuito electrónico y el pcb. ARMADO DEL PROTOTIPO 24 CAPITULO IV. CÁLCULOS Mencionaremos los cálculos cinemáticos presentes en la siguiente gráfica, los cuales muestran posición vs. Tiempo. El experimento duró 16 segundos y se tuvo que truncar hasta 6 segundos para un mejor ajuste. Los cálculos se obtuvieron derivando una vez la ecuación de posición, una para la velocidad y dos para la aceleración. Concluyendo que la aceleración es constante; y tanto la velocidad como la aceleración son considerablemente bajas. Se agradece la colaboración del laboratorio de Mecánica por el equipo proporcionado además de asesorías en el manejo del software y equipo. 25 Cálculo de la fuerza de sujeción Donde los cálculos se realizaron sólo en el plano XY ya que el momento se encuentra en el eje Z; el dato proporcionado de MoF se encuentra en el anexo y es dato del servomotor de 3.5 kg cm. Concluyendo que la fuerza de sujeción es por extremidad de 1.108 kg. 26 CONCLUSIONES El prototipo escalador “AK-KOALA” a nivel industrial puede ser usado en investigación y exploración debido a que su funcionamiento no es de gran complejidad y su estructura es muy resistente, además se le pueden incorporar grandes mejoras para un desempeño superior. Como la presentada en la imagen inferior, la cual es un prototipo desarrollado por un grupo de investigación oriental; este prototipo a diferencia de los mencionados tiene un torso flexible que adapta la sujeción de sus extremidades al medio y forma irregular de la superficie trepada. En la implantación de todos estos sistemas se han encontrado los problemas y restricciones enumerados a continuación: -Limitación de tiempo, manufactura -Limitación de presupuesto. -Sujeción -Limitada disponibilidad de materiales y de medios de mecanización de los mismos. -Escasez de documentación sobre los dispositivos de servo control utilizados, y en general, sobre los robots de este tipo realizados en otros departamentos. -Limitación del tiempo y de personal capacitado para el desarrollo del proyecto, debido principalmente a la extensión de los campos abarcados. -Espacio de trabajo reducido (Disponibilidad de laboratorios y personal de los mismos). En general, estos problemas no se han podido obviar. El resultado final se ha adaptado a las restricciones expuestas, consiguiendo pese a ello sus objetivos de manera parcial. Estos objetivos incluyen, aparte del ya mencionado criterio de bajo coste, otros más generales: -Facilidad de reemplazo de componentes. -Modularidad de hardware y software reusable. -Sencillez de diseño. -Preparación para futuras ampliaciones y/o mejoras. Del último punto podemos mencionar la implementación del proyecto para análisis de follaje interno de la copa de un árbol, determinación de la altura y grosor del mismo, condición de salud del árbol (hongos e infecciones). Todo esto por medio de sensores e implementación de cámaras inalámbricas. El estudio de las ramas infectadas de los árboles resulta interesante, ya que a través de la tala de éstas se puede obtener biocombustible por medio de la biomasa que se genere con ellas. 27 ANEXO A contiene las características técnicas del servomotor Hitec HS311 Fig. A.1 Terminales del cableado Fig. A.2 Dimensiones del Servo lateral Fig. A.3 Dimensiones del Servo superior 28 29 ANEXO B contiene set de instrucciones básicas de PIC BASIC PRO El siguiente es un completo listado de los comandos PBASIC para las dos versiones de Stamps . No se incluyen los operadores aritméticos o lógicos. Muchos perfeccionamientos fueron hechos al lenguaje PBASIC para ser usados en la BASIC Stamp II y por lo tanto estos comandos sólo existen en una de las versiones de las BASIC Stamps. Indica instrucción sólo disponible para BASIC Stamp D y BS1-IC. Indica instrucción sólo disponible para BS2-IC y BS2SX-IC. BRANCHING IF . . .THEN Compara y condiciona el ciclo. BRANCH Similar al If...Then pero para varias condiciones. GOTO Ir a una dirección. GOSUB Ir a una dirección que consiste en una subrutina. RETURN Ir al comienzo de la subrutina. LOOPING (SALTO) FOR . . . NEXT Establecimiento de un salto (ciclo). NUMÉRICOS LET Comando para asignar variables, tales como A=5, B=A+2, etc. Las posibles operaciones son suma, resta, multiplicación, división, máx. limit, min. limit, y operaciones lógicas AND, OR, XOR, AND NOT, OR NOT, y XOR NOT. LOOKUP Buscar datos especificados por offset y guardarlos en variable. LOOKDOWN Encuentra número (0-N) y lo almacena en variable. RANDOM Genera un número pseudo-random. E/S DIGITALES INPUT Hacer de un pin una entrada OUTPUT Hacer de un pin una salida REVERSE Si el pin es una salida, dejarlo como entrada. Si el pin es una entrada, 30 dejarlo como una salida. LOW Hacer de un pin una salida de baja. HIGH Hacer de un pin una salida de alta. TOGGLE Hacer de un pin una salida (conmutación reversible). PULSIN Medir un pulso de entrada. PULSOUT Salida en pulso temporizado invirtiendo un pin por algún tiempo. BUTTON Previene alteraciones por causa de apertura o cierre de circuitos. SHIFTIN Cambio por deslocamiento de bits de paralelo a serial. SHIFTOUT Cambio por deslocamiento de bits de serial a paralelo. COUNT Cuenta ciclos de un pin por un tiempo determinado (0 a 125 kHz, assumindo 50/50 duty cycle). XOUT Genera códigos de control X-10 . E/S SÉRIAL SERIN Recibe datos en forma serial. Para la Stamp D y BS1-IC, la cantidad de baudios posibles son de 300, 600, 1200, y 2400 . Para la BS2-IC y BS2SX-IC, cualquier número de baudios (hasta 50k baud) es posible. SEROUT Envía datos en forma serial. Para la Stamp D y la BS1-IC, los datos son enviados a 300, 600, 1200, o 2400 baudios. Para la BS2-IC y BS2SX-IC, los datos se envían a velocidades de hasta 50k baudios. E/S ANÁLOGICOS PWM Salida PWM, luego retorna el pin a entrada. Esto puede ser usado para obtener voltajes análogos (0 a 5 V) usando un condensador y una resistencia. POT Lee potenciómetro (5 a 50K). RCTIME Mide el tiempo de carga/descarga del RC. Puede ser usado para medir potenciómetros (Es más rápido que el comando POT de la Stamp D y la BS1-IC). FREQOUT Genera uno o dos ondas seno de frecuencias específicas (cada una desde 0 a 32767 Hz). DTMFOUT Genera DTMF (tonos telefónicos). SOM 31 SOUND Toca notas. Nota 0 es silencio, notas 1 a 127 son tonos ascendientes, y las notas 128 a 255 son ruidos. ACCESO EN EL EEPROM DATA Almacena datos en EEPROM antes de descargar el programa BASIC (BS2-IC y BS2SX-IC). EEPROM Almacena datos en EEPROM antes de descargar el programa BASIC (Stamp D and BS1-IC) READ Lee un byte EEPROM en variable. WRITE Escribe un byte en la EEPROM TIEMPO PAUSE Ejecuta una pausa de 0 a 65536 milisegundos. CONTROL ENERGIA NAP Ejecutando Nap por períodos cortos. El consumo de energía es reducido. SLEEP Duerme desde 1 a 65535 segundos. El consumo de energía es reducido a 20 µA (Stamp D and BS1-IC) o 50 µA (BS2-IC y BS2SXIC). END Modo Sleep hasta que los ciclos de energía o el PC se conecten. El consumo de energía es el mismo que en el modo sleep. DEBUGGING DEL PROGRAMA DEBUG Envía variables al PC para mostrar por pantalla. 32 ANEXO C contiene el programa realizado en MicroCode Studio- PIC BASIC PRO para el microcontrolador 16f648A. 'PROTOTYPE 0 ALTIUS '******************************************** @ device pic16F648A, INTOSC_OSC_NOCLKOUT, wdt_off, pwrt_on, mclr_on, lvp_off, protect_off, BOD_OFF TRISA = %11111111 ' Configuración el Puerto A TRISB = %00000000 ' Configuración el Puerto B CMCON = 7 VRCON = 0 serv1 var serv2 var serv3 var serv4 var portb.0 portb.1 portb.2 portb.3 pos1 var byte pos2 var byte pos3 var byte pos4 var byte W VAR BYTE x var byte z var byte PORTA = 0 PORTB = 0 Inicio: ' Inicializa el puerto "A", es decir, se ponen todos los pines en cero. ' Inicializa el puerto "B". ' Etiqueta de Inicio del programa GOSUB CENTRADO PAUSE 1000 FOR W =0 TO 9 GOSUB AGARRADO GOSUB ABRIR_INF GOSUB AGARRADO GOSUB ABRIR_SUP GOSUB AGARRADO NEXT W GoTo Inicio End ' Salta a la etiqueta "Inicio" y se repite el proceso. CENTRADO: for x = 0 to 10 pos1 = 150 pos2 = 150 33 pos3 = 150 pos4 = 150 gosub servos next x return AGARRADO: for x = 0 to 10 pos1 = 250 pos2 = 50 pos3 = 250 pos4 = 50 gosub servos next x return ABRIR_SUP: for x = 0 to 50 pos1 = 150 pos2 = 150 pos3 = 250 pos4 = 50 gosub servos next x return ABRIR_INF: for x = 0 to 50 pos1 = 250 pos2 = 50 pos3 = 150 pos4 = 150 gosub servos next x return servos: FOR Z= 0 TO 20 portb = 0 pulsout serv1,pos1 pulsout serv2,pos2 pulsout serv3,pos3 pulsout serv4,pos4 NEXT Z return 34 ANEXO D contiene el programa realizado en MicroCode Studio- PIC BASIC PRO para el microcontrolador 12F629. 'PRUEBA0 FINAL ALTIUS '**************************************************************** @ device PIC12F629, INTRC_OSC_NOCLKOUT, wdt_off, pwrt_on, mclr_on, protect_off, BOD_OFF TRISIO = %000100 ' Configuración el Puerto CMCON = 7 VRCON = 0 Y var byte W var byte Z VAR BYTE GPIO = 0 ' Inicializa el puerto, es decir, se ponen todos los pines en cero. Inicio: ' Etiqueta de Inicio del programa GPIO = 0 PAUSE 5500 FOR Z = 0 TO 9 GOSUB ARRIBA PAUSE 5000 GPIO = 0 PAUSE 3500 GOSUB ABAJO PAUSE 5500 GPIO = 0 PAUSE 5500 NEXT Z GoTo Inicio ' Salta a la etiqueta "Inicio" y se repite el proceso. End ARRIBA: GPIO = %010000 RETURN ABAJO: GPIO = %100000 RETURN 35 ANEXO E contiene el programa realizado en PCW para el microcontrolador 16f648A. #include <16f648a.h> #Fuses HS #Fuses MCLR,NOLVP,INTRC, NOWDT #Fuses NOCPD #use delay (clock=4MHZ) int contador; int servo_1,servo_2,servo_3,servo_4; #INT_TIMER1 void inter_timer1(){ set_timer1(45370); set_timer0(0); output_bit(PIN_B0,1); output_bit(PIN_B1,1); output_bit(PIN_B2,1); output_bit(PIN_B3,1); while(get_timer0()<=160) { contador=get_timer0(); if(contador>=servo_1) output_bit(PIN_B0,0); if(contador>=servo_2) output_bit(PIN_B1,0); if(contador>=servo_3) output_bit(PIN_B2,0); if(contador>=servo_4) output_bit(PIN_B3,0); } } int angulo(int ang) { int inter; inter=0.64*ang+34; return inter; } void centrado() { servo_1=angulo(90); servo_2=angulo(90); servo_3=angulo(90); servo_4=angulo(90); 36 } void agarrado() { servo_1=angulo(180); servo_2=angulo(0); servo_3=angulo(180); servo_4=angulo(0); } void abrir_sup() { servo_1=angulo(90); servo_2=angulo(90); }// void abrir_inf() { servo_3=angulo(90); servo_4=angulo(90); } void main(){ enable_interrupts(GLOBAL); //habilita las interrupciones enable_interrupts(INT_TIMER1); setup_timer_0( RTCC_INTERNAL|RTCC_DIV_16|RTCC_8_BIT); setup_timer_1( T1_INTERNAL | T1_DIV_BY_1); set_timer0(0); set_timer1(45370); centrado(); delay_ms(2000); agarrado(); delay_ms(2000); for(;;) { abrir_sup(); delay_ms(6000); agarrado(); delay_ms(1000); abrir_inf(); delay_ms(6000); agarrado(); delay_ms(1000); } } 37 ANEXO F contiene el programa realizado en PCW para el microcontrolador 12F629. #include <12F629.h> #FUSES NOWDT #FUSES INTRC #FUSES NOCPD #FUSES NOPROTECT #FUSES NOMCLR #FUSES NOPUT #FUSES BROWNOUT //No Watch Dog Timer //Internal RC Osc //No EE protection //Code not protected from reading //Master Clear pin disabled //No Power Up Timer //Reset when brownout detected #use delay(clock=4000000) void main () { set_tris_a(0x00); setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); setup_timer_1(T1_DISABLED); setup_comparator(NC_NC); setup_vref(FALSE); delay_ms(5000); for (;;) { output_bit(PIN_A5,1); output_bit(PIN_A4,0); delay_ms(5000); output_bit(PIN_A5,0); output_bit(PIN_A4,0); delay_ms(2000); output_bit(PIN_A5,0); output_bit(PIN_A4,1); delay_ms(5000); output_bit(PIN_A5,0); output_bit(PIN_A4,0); delay_ms(2000); } } 38 ANEXO G Se muestra el diseño del circuito electrónico de control 39 ANEXO H Puesta en marcha del prototipo y manejo del mismo. Las baterías se encuentran cargadas; la manera de encenderlo es por medio del botón rojo, en el cual el círculo indica que se encuentra apagado, y la línea indica encendido del prototipo. Si es necesario reiniciar la secuencia se debe presionar el botón negro ubicado en la placa de control. (Es necesario esperar que la parte inferior del robot llegue lo mas abajo posible al tornillo sinfín) BOTON DE ENCENDIDO BOTON DE RESET 40 BIBLIOGRAFÍA http://cursoderoboticaii.blogspot.com/2010_08_01_archive.html http://cursoderoboticaii.blogspot.com/2010/08/clasificacion-de-los-robots.html http://es.wikipedia.org/wiki/Leonardo_da_Vinci http://en.wikipedia.org/wiki/Animatronics http://despertarverde.wordpress.com/el-koala/ http://es.wikipedia.org/wiki/Insecta http://www.sugano.mech.waseda.ac.jp/woody/research.htm#WOODY-1 http://publicweb.unimap.edu.my/~hazry/Current%20and%20Recent%20Projects.htm http://hackedgadgets.com/2006/03/11/tree-climbing-robot/ http://gizmodo.com/rise http://www.newscientist.com/blog/technology/2006/03/tree-climbing-robot.html http://arl.mae.cuhk.edu.hk/node/674 http://kodlab.seas.upenn.edu/RiSE/RiSEV1 http://english.sina.com/technology/p/2011/0621/378436.html http://www.technologyreview.com/computing/22635/page2/ http://www.iearobotics.com/personal/juan/conferencias/conf1/ http://www.roboticspot.com/spot/artic.shtml?todo=&block=9&newspage=tiposderobots http://es.wikipedia.org/wiki/Robot http://robots-argentina.com.ar/MotorServo_basico.htm http://es.wikipedia.org/wiki/Servo http://es.wikipedia.org/wiki/Microcontrolador http://www.robodacta.com.mx/activacioncartproducto.asp?CategoriaID=31&ProductoID=4 11&SubCategoriaID=67 http://www.iearobotics.com/personal/juan/doctorado/cube-reloaded/index.html http://www.iearobotics.com/personal/juan/doctorado/cube-revolutions/index.html http://es.wikipedia.org/wiki/Radiofrecuencia 41