diseÑo, construcciÓn - 148.206.53.84148.206.53.84/tesiuami/uami16994.pdf · mucha gente asocia la...

44

Upload: tranmien

Post on 10-Dec-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

PROYECTO DE INGENIERÍA ELECTRÓNICA II.

DISEÑO, CONSTRUCCIÓN Y PROGRAMACIÓN DE

BÍPEDO ROBÓTICO

ABSTRAC.

El propósito de este proyecto es el de abordar el diseño,

realización y control de una plataforma robótica bípeda.

El diseño que se implemento tiene 15 grados de libertad

y consta de dos bloques independientes, torso y piernas,

los cuales pueden ser controlados de forma independiente

por medio de un dispositivo que puede enviar señales

infrarrojas. El diseño que se implementó para la parte

baja del bípedo, bloque de las piernas, tiene 4 grados de

libertad, para cada pierna, y es capaz de realizar

movimientos de avance; Para la parte alta del bípedo,

bloque del torso, se tienen 3 grados de libertad para cada

brazo y 1 grado de libertad para la cadera, con esto el

bloque del torso puede tomar objetos y desplazarlos de

un punto “A” a otro punto “B”.

Objetivos:

• Diseño de piezas que integrarán el bípedo

robótico.

• Elaboración y construcción de piezas.

• Programación y pruebas de micro-

controladores PIC.

• Elaboración de programas de control

• Pruebas de sincronización de servos para

lograr movimientos precisos.

UNIVERSIDAD AUTÓNOMA METROPOLITANAUNIDAD IZTAPALAPA DISEÑO, CONSTRUCCIÓN Y PROGRAMACIÓN DE BÍPEDO ROBÓTICO

PROYECTO DE INGENIERÍA ELECTRÓNICA II. INGENIERÍA ELECTRÓNICA

1

ÍNDICE

I. INTRODUCCIÓN II. INTROCCIÓN AL PROYECTO

A. Modelado Mecánico

B. Materiales, Herramientas e

Instrumentos Utilizados

C. Desarrollo

D. Hardware

E. Software

F. Pruebas de Movimiento

III. CONCLUSIONES.

IV. AYUDA TÉCNICA Y COLABORACIONES

V. BIBLIORAFÍA.

VI. ANEXOS

UNIVERSIDAD AUTÓNOMA METROPOLITANAUNIDAD IZTAPALAPA DISEÑO, CONSTRUCCIÓN Y PROGRAMACIÓN DE BÍPEDO ROBÓTICO

PROYECTO DE INGENIERÍA ELECTRÓNICA II. INGENIERÍA ELECTRÓNICA

2

I.- INTRODUCCIÓN.

La Robótica es la ciencia que se ocupa del diseño, manufactura y aplicaciones de los robots. La robótica combina diversas disciplinas como son: la mecánica, la electrónica, la informática, la inteligencia artificial y la ingeniería de control. Otras áreas importantes en robótica son el álgebra, los autómatas programables y las máquinas de estados. La historia de la robótica ha estado unida a la construcción de "artefactos" con el propósito de facilitar las tareas humanas que con el paso del tiempo y el continuo uso de robots en el sector industrial se logró una automatización industrial, haciendo que los diseños y la tecnología de los robots fuesen cada vez más pequeños y aplicables a varios campos

La cibernética es el estudio de como los sistemas complejos afectan y luego se adaptan a su ambiente externo; en términos técnicos, se centra en funciones de control y comunicación: ambos fenómenos externos e internos del o al sistema. Esta capacidad es natural en los organismos vivos y se ha imitado en máquinas y organizaciones. Especial atención se presta a la retroalimentación y sus conceptos derivados.

Mucha gente asocia la cibernética con la robótica, los robots y el concepto de cyborg debido al uso que se le ha dado en algunas obras de ciencia ficción, pero desde un punto de vista estrictamente científico, la cibernética trata acerca de sistemas de control basados en la retroalimentación.

La cibernética presenta algunas desventajas por ejemplo:

• La creación de máquinas complejas que reemplacen a los trabajadores provocaría un recorte de personal.

• En un futuro ya no se ocuparía personal "viejo" y contratarían técnicos jóvenes para el mantenimiento de las máquinas.

• Es una tecnología muy potente pero su gran limitador es encontrar la relación máquina-sistema nervioso; ya que para esto se debería conocer el sistema nervioso perfectamente.

Algunas ventajas son:

• La reducción de las jornadas laborales, los trabajos complejos o rutinarios pasarían a ser de las máquinas. Además, la cibernética brinda un gran aporte al campo medicinal.

Un robot 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 directa no bajo 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. Así mismo, 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

UNIVERSIDAD AUTÓNOMA METROPOLITANAUNIDAD IZTAPALAPA DISEÑO, CONSTRUCCIÓN Y PROGRAMACIÓN DE BÍPEDO ROBÓTICO

PROYECTO DE INGENIERÍA ELECTRÓNICA II. INGENIERÍA ELECTRÓNICA

3

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, ciencia que estudia las mejores ideas de la naturaleza, imitando sus diseños y procesos para resolver problemas humanos.

Los robots son usados hoy en día para llevar a cabo tareas sucias, peligrosas, difíciles, repetitivas o embotadas para los humanos. Esto usualmente toma la forma de un robot industrial usado en las líneas de producción. Otras aplicaciones incluyen la limpieza de residuos tóxicos, exploración espacial, minería, búsqueda y rescate de personas y localización de minas terrestres. La manufactura continúa siendo el principal mercado donde los robots son utilizados. En particular, robots articulados (similares en capacidad de movimiento a un brazo humano) son los más usados comúnmente. Las aplicaciones incluyen soldado, pintado y carga de maquinaria. La Industria automotriz ha tomado gran ventaja de esta nueva tecnología donde los robots han sido programados para reemplazar el trabajo de los humanos en muchas tareas repetitivas. Existe una gran esperanza, especialmente en Japón, de que el cuidado del hogar para la población de edad avanzada pueda ser llevado a cabo por robots.

Existen diferentes tipos y clases de robots, entre ellos con forma humana, de animales, de plantas o incluso de elementos arquitectónicos pero todos se diferencian por sus capacidades y se clasifican

en 4 formas:

Androides: robots con forma humana. Imitan el comportamiento de las personas, su utilidad en la actualidad es de solo experimentación. La principal limitante de este modelo es la implementación del equilibrio a la hora del desplazamiento, pues es bípedo.

Móviles: se desplazan mediante una plataforma rodante (ruedas); estos robots aseguran el transporte de piezas de un punto a otro.

Zoomórficos: es un sistema de locomoción imitando a los animales. La aplicación de estos robots sirve, sobre todo, para el estudio de volcanes y exploración espacial.

Poliarticulados: mueven sus extremidades con pocos grados de libertad. Su utilidad es principalmente industrial, para desplazar elementos que requieren cuidados.

La Robótica Educativa es un medio de aprendizaje, en el cual participan las personas que tienen motivación por el diseño y construcción de creaciones propias (objetos que poseen características similares a las de la vida humana o animal).Éstas creaciones se dan en primera instancia de forma mental y posteriormente en forma física, las cuales son construidas con diferentes tipos de materiales y controladas por un sistema computacional, los que son llamados prototipos o simulaciones. Para mucha gente la palabra Robótica es conocida, saben sus aplicaciones y el potencial que tiene; sin embargo, la palabra robot no esta tan interiorizada como se cree. El deseo más grande de las personas es crear seres artificiales, los cuales les ayuden en sus tareas diarias, que los acompañen y que realicen tareas que para ellos son muy difíciles de hacer.

UNIVERSIDAD AUTÓNOMA METROPOLITANAUNIDAD IZTAPALAPA DISEÑO, CONSTRUCCIÓN Y PROGRAMACIÓN DE BÍPEDO ROBÓTICO

PROYECTO DE INGENIERÍA ELECTRÓNICA II. INGENIERÍA ELECTRÓNICA

4

La Robótica Evolutiva (RE) es un área de la Robótica Autónoma en la que se desarrollan los controladores de los robots mediante la evolución al usar Algoritmos Genéticos. Habitualmente se evolucionan Redes Neuronales ya que se sigue el referente biológico y simplifica el diseño y la representación en el algoritmo genético. Tiene varios objetivos, a menudo simultáneos. El punto de vista de la ingeniería crea controladores de robots para realizar tareas útiles en el mundo real. La Biología y otras ciencias de lo vivo obtienen simulaciones que reproducen fenómenos desde fisiológicos hasta ecológicos. La Filosofía de la Ciencia puede analizar sistemas con valor epistémico.

La Robótica Autónoma es el área de la Robótica que desarrolla robots capaces de desplazarse y actuar sin intervención humana. Para ello el robot debe percibir su entorno y actuar de forma adecuada, además de llevar a cabo su tarea.

La Robótica ha tenido grandes avances en entornos estructurados, en los que el controlador del robot puede tener un mapa detallado de su entorno.

Conforme decrece el grado de estructuración del entorno las tareas se tornan más complejas. Esto ocurre cuando el robot es móvil y debe tener información de su posición en el mapa interno.

Los mecanismos pueden ser absolutos o relativos, por ejemplo, usando GPS y odometría, que resulta ser el estudio de la estimación de la posición de vehículos con ruedas durante la navegación, respectivamente.

En entornos no estructurados la solución a través de mapa no es viable, por lo que se toman caminos en los que no se usa la Inteligencia Artificial clásica, con un control centralizado, sino la Inteligencia Artificial basada en multi-agentes o en planteamientos conexionistas usando redes neuronales.

Se denomina inteligencia artificial a la rama de la ciencia informática dedicada al desarrollo de agentes racionales no vivos, es la disciplina que se encarga de construir procesos que al ser ejecutados sobre una arquitectura física producen acciones o resultados que maximizan una medida de rendimiento determinada, basándose en la secuencia de entradas percibidas y en el conocimiento almacenado en tal arquitectura.

Existen distintos tipos de conocimiento y medios de representación del conocimiento. El cual puede ser cargado en el agente por su diseñador o puede ser aprendido por el mismo agente utilizando técnicas de aprendizaje.

También se distinguen varios tipos de procesos válidos para obtener resultados racionales, que determinan el tipo de agente inteligente. De más simples a más complejos, los cinco principales tipos de procesos son:

• Ejecución de una respuesta predeterminada por cada entrada (análogas a actos reflejos en seres vivos).

• Búsqueda del estado requerido en el conjunto de los estados producidos por las acciones posibles.

UNIVERSIDAD AUTÓNOMA METROPOLITANAUNIDAD IZTAPALAPA DISEÑO, CONSTRUCCIÓN Y PROGRAMACIÓN DE BÍPEDO ROBÓTICO

PROYECTO DE INGENIERÍA ELECTRÓNICA II. INGENIERÍA ELECTRÓNICA

5

• Algoritmos genéticos (Análogo al proceso de evolución de las cadenas de ADN).

• Redes neuronales artificiales (Análogo al funcionamiento físico del cerebro de animales y humanos).

• Razonamiento mediante una Lógica formal (Análogo al pensamiento abstracto humano).

También existen distintos tipos de percepciones y acciones, pueden ser obtenidas y producidas, respectivamente por sensores físicos y sensores mecánicos en máquinas, pulsos eléctricos u ópticos en computadoras, tanto como por entradas y salidas de bits de un software y su entorno software.

Varios ejemplos se encuentran en el área de control de sistemas, planificación automática, la habilidad de responder a diagnósticos y a consultas de los consumidores, reconocimiento de escritura, reconocimiento del habla y reconocimiento de patrones. Los sistemas de IA actualmente son parte de la rutina en campos como economía, medicina, ingeniería y la milicia, y se ha usado en gran variedad de aplicaciones de software, juegos de estrategia como ajedrez de computador y otros videojuegos.

La investigación de los robots humanoides constituye uno de los tópicos más apasionantes de la robótica. “Actualmente en el mundo existen cerca de 20 millones de máquinas bípedas caminantes e incluso capaces de correr”; El ser humano está tan acostumbrado a su forma de

caminar, que desde temprana edad pierde conciencia sobre el proceso de esta actividad, es por ello que al realizar una plataforma bípeda se tienen que considerar aspectos en cuanto a diseño e implementación de este, pero gracias al desarrollo de tecnología y de máquinas, los investigadores han ganado conocimiento sobre la biomecánica de caminar y los patrones de movimientos de los músculos. Para lograr que un prototipo robótico bípedo consiguiera desplazarse, se concederán diversos eventos como son:

1. Comprender cómo el ser humano camina, con la ayuda de una descripción detallada esta actividad.

2. Conceptos básicos sobre robótica, para comprender cómo se representaron las dos piernas y grados de libertad cada una.

3. Se describen algunos conceptos físicos

como; torques, fuerzas, equilibrio dinámico, entre otros.

UNIVERSIDAD AUTÓNOMA METROPOLITANAUNIDAD IZTAPALAPA DISEÑO, CONSTRUCCIÓN Y PROGRAMACIÓN DE BÍPEDO ROBÓTICO

PROYECTO DE INGENIERÍA ELECTRÓNICA II. INGENIERÍA ELECTRÓNICA

6

II.-INTROCCIÓN AL PROYECTO

Este proyecto terminal se diseñó, construyo y programo un bípedo robótico. Inicialmente se investigaron los materiales y estructuras que existen, esto con el fin de contar con una plataforma bípeda base. Una vez contando con el material se diseñaron las piezas con base en los motores que realizarían los movimientos de las estructuras y posteriormente se realizó la parte de su programación.

El objetivo consistió en que el bípedo robótico pudiera ser capaz de que realizará movimientos sincronizados que le permitieran desplazarse de un lugar a otro, en el diseño que se implementó para este bípedo se lograron 4 grados de libertad para cada pierna, cabe mencionar que el tiempo en que se desarrolló este proyecto fue aproximadamente de 3 trimestres. Dividiremos el proceso y lo que fue necesario para su construcción en:

A. Modelado mecánico.

B. Material, Herramientas e Instrumentos Utilizados.

C. Desarrollo de las piezas.

D. Hardware.

E. Software.

F. Pruebas.

A.- Modelado Mecánico. Para el bloque de las piernas, se analizaron los movimientos que una persona realiza para poder desplazarse y con base a las características de estos tipos de movimientos se determinaron las articulaciones y rutinas son necesarias para que el bípedo pueda mantenerse en una posición recta y pueda desplazarse de un punto a otro. Esto condujo a diseñar e implementar que cada pierna tuviera cuatro grados de libertad.

En lo que refiere al bloque del torso, solo se caracterizaron los movimientos más esenciales que una persona lleva acabo para tomar un objeto y poder desplazarlos a otro punto. Para esto se determinó que el torso se montaría sobre una caja, que llevara la circuitería, y que cada brazo tendría tres grados de libertad y un grado más para poder rotar hacia los lados

UNIVERSIDAD AUTÓNOMA METROPOLITANAUNIDAD IZTAPALAPA DISEÑO, CONSTRUCCIÓN Y PROGRAMACIÓN DE BÍPEDO ROBÓTICO

PROYECTO DE INGENIERÍA ELECTRÓNICA II. INGENIERÍA ELECTRÓNICA

7

B.- Materiales, Herramientas e Instrumentos Utilizados.

Para la construcción se optó por utiliza

lamina de un grosor de “00”, esto debido a que se necesita una estructura densa que sea resistente además de que los dispositivos que realizaran los movimientos de las articulaciones necesitan una base sólida para poder ser montados.

• Lámina Galvanizada.

• Barra de Nylon.

• Tornillos de 1/8 c/tuercas.

• Primer en Aerosol.

• Pintura en Aerosol (Amarilla).

• Servomotores estándar Vigor VS-2.

• Calibrador vernier.

• Cortadora de Metal.

• Dobladora.

• Taladradora.

• Torno.

• Pinzas para cortar lámina.

• Broca de 1/8.

• Fuente de Alimentación.

• Osciloscopio.

• Generador de Funciones.

• Multímetro

C.- Desarrollo.

Como primera parte del desarrollo de nuestro robot bípedo se tuvieron que diseñar el tipo de piezas que formarían parte de su ensamblaje. Las referencias de diseño fueron tomadas de páginas como son LynxMotion y Robodacta. Sin embargo la cantidad de información sobre las medidas de las piezas no son especificadas, por obvias razones, por lo que en base al tipo de servos que se adquirieron, servomotores estándar Vigor VS-2, se calcularon la medidas.

Una vez que se investigó el tipo de piezas con el cual son elaborados la mayoría de los proyectos de robótica se tuvo que decidir entre los tipos de piezas de los ya conocidos proyectos de lego o los proyectos de LynxMotion. En nuestro caso se decidió por las piezas que distribuye LynxMotion que tienen una arquitectura mucho más agradable y que cuentan con la capacidad de ser más adaptables al diseño que se requiera realizar.

También se tuvo que tomar en cuenta la manera de armar, es decir, la colocación de los servomotores para lograr la mayor estabilidad posible que pudiéramos conseguir, en el caso en que el bípedo se encuentre sin energía, con el fin de obtener una estructura estable. Obviamente esta estructura será la base para lograr el punto

UNIVERSIDAD AUTÓNOMA METROPOLITANAUNIDAD IZTAPALAPA DISEÑO, CONSTRUCCIÓN Y PROGRAMACIÓN DE BÍPEDO ROBÓTICO

PROYECTO DE INGENIERÍA ELECTRÓNICA II. INGENIERÍA ELECTRÓNICA

8

de equilibrio, la cual se podría mejorar con la utilización de sensores de inclinación.

Como segundo paso se pensó en la utilización de aluminio para la elaboración de las piezas, esto debido al poco peso que tiene, además por la característica de que es difícil que se imante debido a los campos magnéticos producidos por los servomotores, sin embargo, al momento de realizar la piezas se necesitaban dobleces de 90°, por lo cual debido al grosor de la lámina de aluminio (2mm) era imposible sin que se rompiera la lámina. Una solución posible era utilizar lámina más delgada, sin embargo, el mismo grosor, haría que nuestras piezas se volvieran más delicadas y se doblaran muy fácilmente. Otra limitante fue que no se podía soldar con la Punteadora eléctrica, lo cual era una de los intereses deseados para eliminar barrenos y tornillos de diseño.

Finalmente se decidió utilizar la lámina galvanizada ya que se lograban los dobleces de 90° que requeríamos para elaborar las piezas con un grosos deseado de 2mm para que las estas no fueran tan delicadas y también porque es posible utilizar la punteadora eléctrica para fijar algunas piezas. La única desventaja seria que se puede llegar a imantar por los campos magnéticos, sin embargo, los campos magnéticos producidos por los servomotores son tan pequeños que en realidad no nos afectaran en ningún momento.

Una vez seleccionado el material de las piezas se seleccionó el dispositivo más importante que se utilizó para este proyecto que es el servo motor, debido a este dispositivo cuenta con una gran torsión, que es capaz de soportar todo el peso de este bloque al momento de realizar los

movimientos, y puede ser llevado a posiciones angulares específicas, por ello se seleccionó el siguiente servomotor:

Servo Estándar Vigor VS-2.

Operating Voltage: 4.8-6.0V. PWM Input Range: Pulse Cycle 20ms, Positive Pulse 1~2ms. STD Direction: Counter Clockwise / Pulse Traveling 1500 to 1900µsec. Stall Torque: 3.2 kgf.cm (49 oz/in) at 4.8V, 3.5 kgf.cm (53.6 oz/in) at 6V. Operating Speed: 0.19 sec/ 60 at no load at 4.8V, 0.17 sec/ 60 at no load at 6V. Weight:39.2g (1.37 oz) Size: 40.6 x 20.0 x 38.9 mm Plug Available: FUT, JR Special Feature: Standard Type (For All Purpose)

Una vez seleccionados los servos, se procedió a tomar y definir las medidas de las bases para o abrazaderas que sujetaran los servomotores. Y con las medidas definidas se procedió a doblar las piezas en los puntos indicados y a realizar los barrenos donde se sujetaran los servomotores con sus respectivos tornillos y tuercas. De manera que las abrazaderas que se realizaron quedaron como se muestra en la figura siguiente.

UNIVERSIDAD AUTÓNOMA METROPOLITANAUNIDAD IZTAPALAPA DISEÑO, CONSTRUCCIÓN Y PROGRAMACIÓN DE BÍPEDO ROBÓTICO

PROYECTO DE INGENIERÍA ELECTRÓNICA II. INGENIERÍA ELECTRÓNICA

9

Ya realizadas todas las abrazaderas que sujetaran los servomotores se procedió a realizar las bases para los pies de acuerdo a las medidas ya especificadas. Una vez cortadas y dobladas las piezas se soldaron por medio de la punteadora eléctrica 2 piezas cada base y posteriormente se les soldó una calza para evitar que al momento de girar el servomotor rosara con la base del pie de manera que las piezas resultaron de la siguiente forma:

Una vez terminadas las piezas fueron lijadas, se les aplico primer y se pintaron:

Posteriormente se elaboraron los soportes (en forma de U) que se encargarían de conectar las abrazaderas en conjunto con pernos elaborados para que las piezas tuvieran la facilidad de realizar los movimientos requeridos cuando el servomotor esté en funcionamiento.

Se elaboraron más piezas metálicas (en forma de L) con el fin de unirlas a una abrazadera para conformar lo que sería la 1ª parte de la rodilla y que uniría también al tobillo de nuestras piernas bípedas. Ya fabricadas, se soldó cada L a las abrazaderas de manera que conformaran una pared a uno de sus costados, esto con el fin de posteriormente soldar un soporte que uniría lo que sería la parte del tobillo de nuestras piernas robóticas con lo que conformaría la 1ª parte de la rodilla. Se barrenaron, lijaron, se aplicó primer y se pintaron.

UNIVERSIDAD AUTÓNOMA METROPOLITANAUNIDAD IZTAPALAPA DISEÑO, CONSTRUCCIÓN Y PROGRAMACIÓN DE BÍPEDO ROBÓTICO

PROYECTO DE INGENIERÍA ELECTRÓNICA II. INGENIERÍA ELECTRÓNICA

10

Se barrenaron y soldaron, con ayuda la punteadora eléctrica, dos soportes de forma contrapuesta para formar la 2ª parte de lo que serían las rodillas de nuestro bípedo, se barrenaron, lijaron, se aplicó primer y se pintaron las piezas, esto para ambas piernas.

Una vez compuesta por completo la parte de la rodilla para ambas piernas, se procedió a conformar la pieza que formaría la parte de la cadera, esto mediante la unión mediante la punteadora eléctrica. En esta parte de la cadera se pretende tener movimiento de las piernas hacia atrás, hacia adelante y hacia ambos lados, una vez soldada y barrenada cada pieza, se lijaron, se aplicó primer y se pintaron.

La siguiente pieza elaborada, fue la unión de una pierna con otra, para esto se elaboró una pieza con forma de soporte que se soldaría a ambas piezas fabricadas para la cadera, de esta manera tendremos el soporte necesario para poder

realizar los movimientos que deseamos llevar a cabo y que ejecutaran nuestras piernas robóticas.

Una vez elaboradas todas las piezas de nuestro bípedo robótico, se elaboraron los pernos con el fin de que las piezas tuvieran la facilidad de realizar los movimientos requeridos cuando el servomotor esté en funcionamiento. Se elaboraron de nylon debido a su bajo coeficiente de fricción y a que en simplicidad eran una mejor opción que la utilización e incluso la elaboración de los bujes que se tenía pretendido utilizar.

Por último se procedió a barrenar los engranes que sujetarían el servomotor con cada pieza fabricada de manera que se lograra el correcto ensamble de las piezas. Ya con todas las piezas elaboradas (abrazaderas para servomotores, soportes en U, L metálicos y pernos) y el material que se requiere (Tornillos, tuercas, engranes y servomotores) se procedió a ensamblar nuestro bípedo robótico:

UNIVERSIDAD AUTÓNOMA METROPOLITANAUNIDAD IZTAPALAPA DISEÑO, CONSTRUCCIÓN Y PROGRAMACIÓN DE BÍPEDO ROBÓTICO

PROYECTO DE INGENIERÍA ELECTRÓNICA II. INGENIERÍA ELECTRÓNICA

11

Ensamblado de piernas:

Armado de los tobillo (primera parte).

Armado de tobillos (segunda parte).

Armado de tobillos con rodillas.

Armado de tobillos, rodillas y cadera.

D.- Hardware. Para el sistema de control del bípedo, se implementaron dos centros de mando debido a que está compuesto de dos bloques (piernas y torso), cada bloque funciona por separado y son controlados por medio de un dispositivo generador de señales infrarrojas (control remoto), en este reporte se abordará el bloque de las piernas.

MICROCONTROLADOR

• El modulo que contiene las

instrucciones que se deben

realizar segun lo que indique

con el control remoto.

SERVO MOTOR

• Encardo de realizar los

movimienos de las

articulaciones para su

desplazamiento.

CONTROL REMOTO

• Unidad con la cual se indican

las instruciones a realizar.

UNIVERSIDAD AUTÓNOMA METROPOLITANAUNIDAD IZTAPALAPA DISEÑO, CONSTRUCCIÓN Y PROGRAMACIÓN DE BÍPEDO ROBÓTICO

PROYECTO DE INGENIERÍA ELECTRÓNICA II. INGENIERÍA ELECTRÓNICA

12

En el bloque de las piernas se decidió utilizar un PIC16F877A, debido a que tiene 256 bytes de memoria EEPRO, 8 canales de 10 bits de analógico-digital, funciones PWM, una frecuencia de operación de 20 MHz, 4 fuentes de interrupción, puede reconocer señales un poco distorsionadas y llevarles a niveles lógicos (de 0 a 5 volts), tener un modo de bajo nivel de consumo de energía, además los pines de entrada/salida con que cuenta están organizados en cinco puertos, el puerto A con 6 líneas, el puerto B con 8 líneas, el puerto C con 8 líneas, el puerto D con 8 líneas y el puerto E con 3 líneas. Cada pin de esos puertos se puede configurar como entrada o como salida independiente, solo por mencionar algunas características.

Con las características de este micro controlador se pueden dar ocho grados de libertad al bloque de las piernas, para lograr los movimientos de las piezas se utilizaron ocho servomotores hi-tec, uno en cada tobillo, dos para cada rodilla y uno en cada lado de la cadera. Un punto importante para la elección de los servos motores fue el torque con que cuenta ya que como se describió anteriormente en la sección de III de este reporte las piezas que conformarían

el bípedo son de lámina galvanizada, así mismo se meditó el tiempo de entrega, el costo, dimensiones y voltaje de alimentación, las características que se muestran en la siguiente tabla.

Un inconveniente que se encontró en los servo motores es que cuentan con un tope que limita su rango de giro y para poder utilizar a los servo motores fue necesario abrir los servos motores y quitar el tope de giro que tienen (consiste en un tope de plástico que detiene los engranes al momento de girar), estos con el fin de logra un mayor rango de movimiento, debido a que los servos motores con que cuenta la pierna derecha comienzan en una posición intermedia (180°) para que gire en el sentido de las manecillas del reloj mientras que los servos motores de la pierna izquierda realizan los giros en sentido opuesto, esto nos permite tener los movimientos necesarios para lograr y mantener posiciones de estabilidad y lograr imitar los movimientos que se realizan al caminar en tobillos (movimientos laterales), rodillas (movimientos hacia el frente y atrás), cadera (movimientos laterales). Cada servo motor es controlado por medio de cada una de las salidas con que cuenta el puerto C del microcontrolador, esto para poder realizar posteriormente una placa que ocupe un mínimo de espacio en el bípedo robótico.

UNIVERSIDAD AUTÓNOMA METROPOLITANAUNIDAD IZTAPALAPA DISEÑO, CONSTRUCCIÓN Y PROGRAMACIÓN DE BÍPEDO ROBÓTICO

PROYECTO DE INGENIERÍA ELECTRÓNICA II. INGENIERÍA ELECTRÓNICA

13

Para el control de estos movimientos se utilizó un control remoto de tv, con el cual se podía avanzar utilizando los botones de destinas al volumen esto para avanzaren un ritmo lento y los botones de cambio de canal para que iniciara a caminar a un ritmo más rápido.

La forma en la cual se reconocieron los códigos que generaban los botones utilizados fue de la siguiente forma.

� Implementar un circuito receptor de infrarrojo.

� Conectar la salida del circuito receptor a un osciloscopio para visualizar los pulsos generados.

� Una vez obtenidos los códigos se replicaron y programo un circuito solo con led’s para su comprobación.

� Teniendo seguridad en los tipos códigos

que genera el control infrarrojo se programaron en el microcontrolador para las instrucciones que llevarían a cabo los servos motores.

En cuestión a las conexiones se determinó usar todos los pines que le corresponden al “puerto C” del microcontrolador seleccionado, esto para tener un diseño de conexiones y programación más eficientes y claras de comprender, así mismo esto ayuda a lograr modificaciones para actualizar los componentes del bípedo y/o la programación de movimientos que se requieran realizar.

Al ensamblar el circuito y observar el funcionamiento del sistema se presentaron algunos contratiempos.

� Genera una placa con el circuito para ahorrar espacio.

� Adquirir una batería de 12 volts a 6 amp, esto debido a que en los movimientos que realiza el bípedo se necesita la interacción simultanea de los servos motores.

E.- Software. La programación del robot se realizó en C++, debido a que el lenguaje permite programar fácilmente en modulador PWM (modulación por ancho de pulso) cada instrucción que debe

UNIVERSIDAD AUTÓNOMA METROPOLITANAUNIDAD IZTAPALAPA DISEÑO, CONSTRUCCIÓN Y PROGRAMACIÓN DE BÍPEDO ROBÓTICO

PROYECTO DE INGENIERÍA ELECTRÓNICA II. INGENIERÍA ELECTRÓNICA

14

realizar el bloque de las piernas para avanzar de un punto a otro. La programación en el modo de modulación PWM nos permitió generar una señal periódica en la cual se puede modificar el ciclo de trabajo para cada pin del microprocesador de este modo la tensión aplicada es proporcional al Ton.

El periodo de la señal PWM se obtiene configurando el timer2 y el registro PR2, el timer2 es un temporizador de 8 bits que dispone de un prescaler y unpostscaler, además, puede ser usado como la base de tiempo para el módulo CCP en modo PWM. El registro TMR2 es un registro de lectura y escritura.

Para modular las señales y determinar los anchos de pulso fue necesario adquirir los grados en los que los servos motores pueden girar.

A continuación describiremos la secuencia de

instrucciones que realiza el bípedo para desplazarse.

Las etapas programadas para que comience a avanzar el robot son: � De pie � Comienza a caminar

• Levanta pie derecho-continua • Levanta pie derecho-fija

• Adelantar pie derecho-rodilla • Dobla rodilla izquierda • Baja pie derecho • Repetir para pie izquierdo

En pie, esta instrucción permite que el bloque permanezca en una posición de 90°. void firmes(long int *frms) long int inicio; inicio=0; while(inicio<=frms){ output_d(0xFF); delay_us(1215); output_d(0x00); delay_ms(20); inicio++; Comienza a caminar, es la instrucción con la cual

inclina tobillo

derecho

• se

inclina

hacia

fuera

para

estabil

izar

los la

estruc

tura

del

biped

o en

los

siguie

ntes

movim

ientos

levanta rodila

izquierda

levanta pierna

izquierda

• con estos

movimie

ntos se

prepara

el primer

pasoinclina hacia

atras

rodilla

derecha

• este movimiento

ayuda a bajar la

estructura del

bipedo seguir con

el equilibrio

baja pierna

izquierda

• con este

movimiento se

ha avanzado la

pierna

izquierda y se

comienza

nuevamente

con los pasos,

pero en esta

vez cambiando

de lado

inclina tobillo

izquierdo

levanta pierna

derecha

levanta rodila

derecha

UNIVERSIDAD AUTÓNOMA METROPOLITANAUNIDAD IZTAPALAPA DISEÑO, CONSTRUCCIÓN Y PROGRAMACIÓN DE BÍPEDO ROBÓTICO

PROYECTO DE INGENIERÍA ELECTRÓNICA II. INGENIERÍA ELECTRÓNICA

15

comienza el ciclo para mover las piernas y está programada para cada pierna. void caminar(long int *pos){ long int inicio,pwm; /////LEVANTAR PIE DERECHOFORMA CONTINUA ///// for(pwm=300;pwm>=1;pwm=pwm-10){ output_d(0xFF); delay_us(1200); output_d(0b00000001); delay_us(300-pwm); output_d(0x00); delay_ms(20); } /////POSICIÓN LEVARTAR PIE DERECHO POSICION FIJA ///// inicio=pos/2; while(inicio<=pos){ output_d(0xFF); delay_us(1200); output_d(0b11111001); delay_us(50); output_d(0b11101001); delay_us(50); output_d(0b01100001); delay_us(200); output_d(0b00100000); delay_us(150); output_d(0x00); delay_ms(20); inicio++; } Y para el pie izquierdo se repiten las instrucciones, solo que a diferencia de la derecha se tienen que reflejar los grados necesarios ya que los servo motores están colocados en espejo con respecto al lado derecho. El avance del robot puede ser detenido con ayuda de una interrupción, el programa completo se muestra al final.

F.- Pruebas de Movimiento.

Por último, se realizaron las pruebas de movimiento y funcionamiento de los servomotores, esto con el fin de verificar que se podían realizar los movimientos que se tenían predeterminados realizar, mediante la construcción específica de bípedo robótico. Se corroboraron las siguientes especificaciones de los servomotores:

Operating Voltage: 4.8-6.0V. Stall Torque: 3.2 kgf.cm (49 oz/in) at 4.8V, 3.5 kgf.cm (53.6 oz/in) at 6V. PWM Input Range: Pulse Cycle 20ms, Positive Pulse 1~2ms.

Se alimentaron todos los servomotores y se les aplico señal mediante el generador de funciones la señal simulada PWM que es necesaria para indicarles a los servomotores la castidad de grados a girar.

Señal para girar servomotor a 0°:

UNIVERSIDAD AUTÓNOMA METROPOLITANAUNIDAD IZTAPALAPA DISEÑO, CONSTRUCCIÓN Y PROGRAMACIÓN DE BÍPEDO ROBÓTICO

PROYECTO DE INGENIERÍA ELECTRÓNICA II. INGENIERÍA ELECTRÓNICA

16

Señal para girar servomotor a 180°:

Con esto se finalizaron las primeras pruebas y se cumplió con el objetivo fijado para el bloque de las piernas de este Proyecto de Ingeniería Electrónica En el este proyecto se aborda las pruebas del funcionamiento de los servomotores y del bloque de control para el bípedo robótico, debido a que se considera que es la base para lograr comprender el diseño de esté, así mismo se anexan videos de pruebas del funcionamiento del Bípedo y fotografías de la evolución y movimientos que este puede realizar. III.- CONCLUSIONES. Después de haber observado el funcionamiento y la estructura del bípedo final que se logró realizar se determinó que el diseño tiene ciertos factores que se podrían mejorar, estos factores son:

En cuestiones de desarrollo de piezas:

Para evitar colocar piezas que interferirían con lo que consideramos el correcto funcionamiento del

bípedo es necesario requerir de la soldadura eléctrica.

Otra consideración de las propiedades físicas que se debe de tomar en cuanta es su peso y maleabilidad, en nuestro caso también fue importante si la lámina se podía soldar ya que para evitar colocar piezas que interferirían con lo que consideramos el correcto funcionamiento del bípedo era necesario requerir de la soldadura eléctrica.

También se corroboro que el tipo de material seleccionado para la elaboración de las piezas fue adecuado ya que el torque ofrecido por los servomotores mueve la estructura sin ningún problema y esto a su vez nos proporcionó una estructura estable en estado de reposo o en espera de instrucciones.

En cuestiones de hardware:

Es importante tener en cuenta los servos que se utilizaran ya que dependiendo de las marcas lo más probable es que exista un cambio en las medidas.

Implementar una pila de 12 volts a 5 amp. Para evitar tener que utilizar fuentes de alimentación.

También las especificaciones de voltaje de operación y torque que proporcionan los servomotores son muy importantes ya que de esto dependerá si se tendrá la fuerza suficiente para poder levantar o mover la estructura metálica.

En cuestiones de software:

Diseñar un control con funciones específicas para tener movimientos en memoria para pruebas. Tener en cuenta que movimientos se desean realizar y seleccionar un microcontrolador

UNIVERSIDAD AUTÓNOMA METROPOLITANAUNIDAD IZTAPALAPA DISEÑO, CONSTRUCCIÓN Y PROGRAMACIÓN DE BÍPEDO ROBÓTICO

PROYECTO DE INGENIERÍA ELECTRÓNICA II. INGENIERÍA ELECTRÓNICA

17

adecuado para poder realizarlas. Para mejora el proyecto: Diseñar una pieza para unificar el módulo de las piernas con el del torso. Si se desean mas grados de libertad sería necesario el diseño de una nueva estructura, debido al número de servomotores que sean necesarios para resultado.

IV.- AYUDA TÉCNICA Y COLABORACIONES:

Los materiales instrumentos con que se realizó este proyecto fueron proporcionados por el Ing. Joel Jiménez.

Las piezas con que está elaborado el robot fueron fabricadas en el Taller de Instrumentación con que cuenta la universidad por los técnicos: Javier Arias e Isidoro Antúnez.

V.- BIBLIORAFÍA.

En este proyecto se investigó principalmente en internet debido a que la información y diseño sobre este tipo de proyectos no es muy común, así mismo se anexa un cd con toda la información generada de este proyecto, así como la bibliografía consultada.

[1]ROBODACTA, consulta en línea: http://www.robodacta.com.mx/

[2] LYNXMOTION, consulta en línea: http://www.lynxmotion.com/

[3] ROBOTICA &µCONTROLADORES PIC, consulta en línea: http://www.x-robotics.com/

[4] ROBÓTICA EDUCATIVA DE MÉXICO, consulta en línea: http://roboticaeducativa.com.mx/

[5]PWM CON PIC, consulta en línea:http://www.slideshare.net/wahyohenriquez/pwm-con-pic16f877a-modulos-y-registros-involucrados

[6] PWM, consulta en línea: http://www.slideshare.net/diego45ac/pwm-28775256

[7] MODULACIÓN PWM, consulta en línea: http://picfernalia.blogspot.mx/2012/06/modulacion-pwm-pulse-width-modulation.html

UNIVERSIDAD AUTÓNOMA METROPOLITANAUNIDAD IZTAPALAPA DISEÑO, CONSTRUCCIÓN Y PROGRAMACIÓN DE BIPEDO ROBÓTICO

PROYECTO DE INGENIERÍA ELECTRÓNICA II. INGENIERÍA ELECTRÓNICA

18

VI.- ANEXOS

UNIVERSIDAD AUTÓNOMA METROPOLITANAUNIDAD IZTAPALAPA DISEÑO, CONSTRUCCIÓN Y PROGRAMACIÓN DE BIPEDO ROBÓTICO

PROYECTO DE INGENIERÍA ELECTRÓNICA II.

INGENIERÍA ELECTRÓNICA

19

Diagrama de Bloques.

Este sencillo diagrama muestra los módulos esenciales con los que funcia el bípedo robótico.

CODIGO DE PROGRAMACIÓN DEL ROBÓT.

//////ESTE PROGRAMA RECIBE LAS INTERRUPCIONES DEL RECEPTOR INFRARROJO/////////

//////DEL PIC ESCLAVO AL CUAL SE MANDARAN LAS INSTRUCCIONES UNA VEZ////////////

////SOLICATADA POR ESTE MISMO Y REALIZA EL MUESTREO DEL CONTROL REMOTO/////////

#INCLUDE <18f2550.h>

#FUSES XT,NOWDT,NOPROTECT //Configuración de Fusibles

#USE delay (clock=4000000) //Reloj de 4Mhz

#USE fast_io(B)

int dato1,dato2,guarda;

#INT_EXT

Activar Robot

•Los servos motores comienzan en posición de equilibrio, sin desplazar.

Se esperara señal con instrucción

•Se espera el código que inicia el desplazamiento del robot.

Comienza el desplazamiento

•El desplazamiento comienza con los movimientos de la pierna izquierda.

Continua desplazamiento

•El desplazamiento del robot solo es interrumpido por la activación de una nueva instrucción .

UNIVERSIDAD AUTÓNOMA METROPOLITANAUNIDAD IZTAPALAPA DISEÑO, CONSTRUCCIÓN Y PROGRAMACIÓN DE BIPEDO ROBÓTICO

PROYECTO DE INGENIERÍA ELECTRÓNICA II.

INGENIERÍA ELECTRÓNICA

20

interrupcion_RB0 (){ // Función de atención a la interrupción RB0

int j;

dato1=0x00;

dato2=0x00;

guarda=0x00;

disable_interrupts(GLOBAL);

disable_interrupts(INT_EXT);

disable_interrupts(INT_EXT1);

delay_us(9400);

j=0;

for(j=0;j<=7;++j){

delay_us(50);

if( input(PIN_b0)){

guarda=0x01;

}else{

guarda=0x00;

}

rotate_left( &dato1, 1);

dato1=guarda+dato1;

delay_us(825);

}

for(j=8;j<=15;++j){

delay_us(50);

if( input(PIN_b0)){

guarda=0x01;

}else{

guarda=0x00;

}

UNIVERSIDAD AUTÓNOMA METROPOLITANAUNIDAD IZTAPALAPA DISEÑO, CONSTRUCCIÓN Y PROGRAMACIÓN DE BIPEDO ROBÓTICO

PROYECTO DE INGENIERÍA ELECTRÓNICA II.

INGENIERÍA ELECTRÓNICA

21

rotate_left( &dato2, 1);

dato2=guarda+dato2;

delay_us(825);

}

}

#INT_EXT1

interrupcion_RB1(){ // Función de atención a la interrupción RB1

disable_interrupts(GLOBAL);

disable_interrupts(INT_EXT);

disable_interrupts(INT_EXT1);

delay_ms(1);

//*********Instruccion1()************************************************

if(dato1==0x59 && dato2==0x55){ //tecla_CH+_ motor 5 +++++++

output_a(0b00000001);

delay_ms(1);

output_a(0b00000000);

delay_ms(1);

output_a(0b00000000);

delay_ms(1);

output_a(0b00000000);

delay_ms(1);

}

//*********Instruccion2()************************************************

if(dato1==0x59 && dato2==0xA9){ //tecla_Menu_ motor 5 +++++++

output_a(0b00000001);

delay_ms(1);

output_a(0b00000000);

UNIVERSIDAD AUTÓNOMA METROPOLITANAUNIDAD IZTAPALAPA DISEÑO, CONSTRUCCIÓN Y PROGRAMACIÓN DE BIPEDO ROBÓTICO

PROYECTO DE INGENIERÍA ELECTRÓNICA II.

INGENIERÍA ELECTRÓNICA

22

delay_ms(1);

output_a(0b00000000);

delay_ms(1);

output_a(0b00000001);

delay_ms(1);

}

//*********Instruccion3()************************************************

if(dato1==0x59 && dato2==0x56){ //tecla_CH-_ motor 5 +++++++

output_a(0b00000001);

delay_ms(1);

output_a(0b00000000);

delay_ms(1);

output_a(0b00000001);

delay_ms(1);

output_a(0b00000000);

delay_ms(1);

}

//*********Instruccion4()************************************************

if(dato1==0x56 && dato2==0x55){ //tecla_Vol+_ motor 5 +++++++

output_a(0b00000001);

delay_ms(1);

output_a(0b00000000);

delay_ms(1);

output_a(0b00000001);

delay_ms(1);

output_a(0b00000001);

delay_ms(1);

}

UNIVERSIDAD AUTÓNOMA METROPOLITANAUNIDAD IZTAPALAPA DISEÑO, CONSTRUCCIÓN Y PROGRAMACIÓN DE BIPEDO ROBÓTICO

PROYECTO DE INGENIERÍA ELECTRÓNICA II.

INGENIERÍA ELECTRÓNICA

23

//*********Instruccion5()************************************************

if(dato1==0x56 && dato2==0x56){ //tecla_Vol-_ motor 5 +++++++

output_a(0b00000001);

delay_ms(1);

output_a(0b00000001);

delay_ms(1);

output_a(0b00000000);

delay_ms(1);

output_a(0b00000000);

delay_ms(1);

}

}

//////////////////////////PROGRAMA PRINCIPAL///////////////////////////////////

void main(){

dato1=0x00;

dato2=0x00;

guarda=0x00;

set_tris_a(0); //se define el puerto a como de salida

output_a(0x00);

while(TRUE) {

enable_interrupts(INT_EXT1);

enable_interrupts(INT_EXT);

enable_interrupts(GLOBAL);

output_a(0x00);

}

}

///////////////////PROGRAMA PINCIPAL PARA BIPEDO ROBOTICO/// //////////////////

#INCLUDE <16F877A.h>

UNIVERSIDAD AUTÓNOMA METROPOLITANAUNIDAD IZTAPALAPA DISEÑO, CONSTRUCCIÓN Y PROGRAMACIÓN DE BIPEDO ROBÓTICO

PROYECTO DE INGENIERÍA ELECTRÓNICA II.

INGENIERÍA ELECTRÓNICA

24

#FUSES XT,NOWDT,NOPROTECT

#USE delay (clock=4000000)

#USE fast_io(A)

#USE fast_io(B)

#USE fast_io(C)

#USE fast_io(D)

int dato,guarda;

#INT_EXT

interrupcion_RB0() // Función de atención a la interrupción

{

int j;

dato=0x00;

guarda=0x00;

disable_interrupts(GLOBAL);

disable_interrupts(INT_EXT);

delay_us(500);

j=0;

for(j=0;j<=3;++j)

{

if( input(PIN_b0) )

{

guarda=0x01;

}

else

{

guarda=0x00;

}

rotate_left( &dato, 1);

UNIVERSIDAD AUTÓNOMA METROPOLITANAUNIDAD IZTAPALAPA DISEÑO, CONSTRUCCIÓN Y PROGRAMACIÓN DE BIPEDO ROBÓTICO

PROYECTO DE INGENIERÍA ELECTRÓNICA II.

INGENIERÍA ELECTRÓNICA

25

dato=guarda+dato;

delay_us(825);

}

}

//CONSTANTES GLOBALES

#define tpos 100

//DECLARACIÓN DE FUNCIONES

void firmes(long int *frms);

void caminar(long int *pos);

//////////////////////////PROGRAMA PRINCIPAL///////////////////////////////////

void main(){

set_tris_a(0x00); //Configuramos el Puerto A salida.

set_tris_b(0xFF); //Configuramos el Puerto B como entrada.

set_tris_c(0x00); //Configuramos el Puerto C como salida.

set_tris_d(0x00); //Configuramos el Puerto D como salida.

output_a(0x00); //Inicializamos Puerto A

output_c(0x01); //Inicializamos Puerto C

output_d(0x00); //Inicializamos Puerto D

dato=0x00; //Limpiamos el registro del dato a recibir.

guarda=0x00; //Almacenaje momentaneo del Dato recibido.

while(true){

enable_interrupts(GLOBAL); //Habilitamos Interrupciones Globales

enable_interrupts(INT_EXT); //Habilitamos Interrupciones Externas

switch(dato){

case 0x08:

caminar(tpos);

break;

UNIVERSIDAD AUTÓNOMA METROPOLITANAUNIDAD IZTAPALAPA DISEÑO, CONSTRUCCIÓN Y PROGRAMACIÓN DE BIPEDO ROBÓTICO

PROYECTO DE INGENIERÍA ELECTRÓNICA II.

INGENIERÍA ELECTRÓNICA

26

default:

firmes(tpos);

output_a(0x01);//pulso para activar la int_ext del 18f2550çç

delay_ms(1);

output_a(0x00);

break;

}

}

}

//////////////////////////////FUNCIONES////////////////////////////////////////

/////////////////////////MANTENERSE FIRMES/////////////////////////////////////

void firmes(long int *frms){

long int inicio;

inicio=0;

while(inicio<=frms){

output_d(0xFF);

delay_us(1215);

output_d(0x00);

delay_ms(20);

inicio++;

}

}

/////////////////////////////////CAMINAR///////////////////////////////////////

void caminar(long int *pos){

long int inicio,pwm;

////////////1a. POSICIÓN - LEVANTAR PIE DERECHO - FORMA CONTINUA///////////////

for(pwm=300;pwm>=1;pwm=pwm-10){

output_d(0xFF);

UNIVERSIDAD AUTÓNOMA METROPOLITANAUNIDAD IZTAPALAPA DISEÑO, CONSTRUCCIÓN Y PROGRAMACIÓN DE BIPEDO ROBÓTICO

PROYECTO DE INGENIERÍA ELECTRÓNICA II.

INGENIERÍA ELECTRÓNICA

27

delay_us(1200);

output_d(0b00000001);

delay_us(300-pwm);

output_d(0x00);

delay_ms(20);

}

///////2a. POSICIÓN LEVARTAR PIE DERECHO - POSICION FIJA //////////////////////

inicio=pos/2;

while(inicio<=pos){

output_d(0xFF);

delay_us(1200); //1200

output_d(0b11111001);

delay_us(50); //1250

output_d(0b11101001);

delay_us(50); //1300

output_d(0b01100001);

delay_us(200); //1500

output_d(0b00100000);

delay_us(150); //1650

output_d(0x00);

delay_ms(20);

inicio++;

}

/////////////INICIO DE BUCLE CON CONDICION PARA SEGUIR CAMINANDO///////////////

do{

enable_interrupts(GLOBAL); //Habilitamos Interrupciones Globales

enable_interrupts(INT_EXT); //Habilitamos Interrupciones Externas

////3a. POSICIÓN - ADELANTAR PIE DERECHO - POSICION FIJA & RODILLA IZQUIERDA///

UNIVERSIDAD AUTÓNOMA METROPOLITANAUNIDAD IZTAPALAPA DISEÑO, CONSTRUCCIÓN Y PROGRAMACIÓN DE BIPEDO ROBÓTICO

PROYECTO DE INGENIERÍA ELECTRÓNICA II.

INGENIERÍA ELECTRÓNICA

28

inicio=pos/2;

while(inicio<=pos){

output_d(0xFF);

delay_us(1150); //1100

output_d(0b11101111);

delay_us(150); //1300

output_d(0b01100111);

delay_us(100); //1400

output_d(0b01100001);

delay_us(100); //1500

output_d(0b00100000);

delay_us(150); //1650

output_d(0x00);

delay_ms(20);

inicio++;

}

/////4a POSICIÓN - BAJAR PIE DERECHO - FORMA CONTINUA C/ RODILLA IZQ ATRAS/////

pwm=300;

for(pwm=300;pwm>0;pwm=pwm-10){

output_d(0xFF);

delay_us(1200); //1100

output_d(0b01111111);

if(pwm>200){

delay_us(50); //1250

output_d(0b01101111);

delay_us(50); //1300

output_d(0b01100111);

delay_us(100); //1400

UNIVERSIDAD AUTÓNOMA METROPOLITANAUNIDAD IZTAPALAPA DISEÑO, CONSTRUCCIÓN Y PROGRAMACIÓN DE BIPEDO ROBÓTICO

PROYECTO DE INGENIERÍA ELECTRÓNICA II.

INGENIERÍA ELECTRÓNICA

29

output_d(0b01100001);

delay_us(pwm-200); //1500 a 1400

output_d(0b01100000);

delay_us(300-pwm); //1500

output_d(0b00100000);

delay_us(150); //1650

}

if((pwm<=200)&&(pwm>100)){

delay_us(50); //1250

output_d(0b01101111);

delay_us(50); //1300

output_d(0b01100111);

delay_us(pwm-100); //1400 a 1300

output_d(0b01100110);

delay_us(200-pwm); //1400

output_d(0b01100000);

delay_us(100); //1500

output_d(0b00100000);

delay_us(150); //1650

}

if((pwm<=100)&&(pwm>50)){

delay_us(50); //1250

output_d(0b01101111);

delay_us(pwm-50); //1300 a 1250

output_d(0b01101110);

delay_us(100-pwm); //1300

output_d(0b01100110);

delay_us(100); //1400

UNIVERSIDAD AUTÓNOMA METROPOLITANAUNIDAD IZTAPALAPA DISEÑO, CONSTRUCCIÓN Y PROGRAMACIÓN DE BIPEDO ROBÓTICO

PROYECTO DE INGENIERÍA ELECTRÓNICA II.

INGENIERÍA ELECTRÓNICA

30

output_d(0b01100000);

delay_us(100); //1500

output_d(0b00100000);

delay_us(150); //1650

}

if(pwm<=50){

delay_us(pwm); //1250 a 1200

output_d(0b01111110);

delay_us(50-pwm); //1250

output_d(0b01101110);

delay_us(50); //1300

output_d(0b01100110);

delay_us(100); //1400

output_d(0b01100000);

delay_us(100); //1500

output_d(0b00100000);

delay_us(150); //1650

}

output_d(0x00);

delay_ms(20);

}

/////5a POSICIÓN - BAJAR PIE DERECHO - POSICIÓN FIJA C/ RODILLA IZQ ATRAS//////

inicio=pos/2;

while(inicio<=pos){

output_d(0xFF);

delay_us(1100); //1100

output_d(0b01111111);

delay_us(100); //1200

UNIVERSIDAD AUTÓNOMA METROPOLITANAUNIDAD IZTAPALAPA DISEÑO, CONSTRUCCIÓN Y PROGRAMACIÓN DE BIPEDO ROBÓTICO

PROYECTO DE INGENIERÍA ELECTRÓNICA II.

INGENIERÍA ELECTRÓNICA

31

output_d(0b01101110);

delay_us(50); //1250

output_d(0b01100110);

delay_us(150); //1400

output_d(0b01100000);

delay_us(100); //1500

output_d(0x00);

delay_ms(20);

inicio++;

}

/////6a POSICIÓN - ALZAR PIE IZQUIERO - FORMA CONTINUA C/RODILLAS ATRAS////////

pwm=300;

for(pwm=300;pwm>0;pwm=pwm-10){

output_d(0xFF);

delay_us(1000); //1000

output_d(0b01111111);

delay_us(100); //1100

output_d(0b01101110);

if(pwm>250){

delay_us(100); //1200

output_d(0b01100110);

delay_us(250); //1450

output_d(0b01100000);

delay_us(pwm-250); //1500 a 1450

}

if(pwm<=250){

delay_us(100); //1200

output_d(0b01100110);

UNIVERSIDAD AUTÓNOMA METROPOLITANAUNIDAD IZTAPALAPA DISEÑO, CONSTRUCCIÓN Y PROGRAMACIÓN DE BIPEDO ROBÓTICO

PROYECTO DE INGENIERÍA ELECTRÓNICA II.

INGENIERÍA ELECTRÓNICA

32

delay_us(pwm); //1450 a 1200

output_d(0b00000110);

delay_us(250-pwm); //1450

}

output_d(0x00);

delay_ms(20);

}

/////7a POCISION - LEVANTAR PIE IZQUIERDO - POSICIÓN FIJA C/RODILLAS ATRAS/////

inicio=pos/2;

while(inicio<=pos){

output_d(0xFF);

delay_us(1000); //1000

output_d(0b01111111);

delay_us(100); //1100

output_d(0b00101110);

delay_us(100); //1200

output_d(0b00000110);

delay_us(250); //1450

output_d(0x00);

delay_ms(20);

inicio++;

}

/////8a POCISION - ADELANTAR PIE IZQUIERDO - POSICIÓN FIJA ////////////////////

inicio=pos/2;

while(inicio<=pos){

output_d(0xFF);

delay_us(900); //900

output_d(0b11111011);

UNIVERSIDAD AUTÓNOMA METROPOLITANAUNIDAD IZTAPALAPA DISEÑO, CONSTRUCCIÓN Y PROGRAMACIÓN DE BIPEDO ROBÓTICO

PROYECTO DE INGENIERÍA ELECTRÓNICA II.

INGENIERÍA ELECTRÓNICA

33

delay_us(100); //1000

output_d(0b01111001);

delay_us(100); //1100

output_d(0b00101000);

delay_us(100); //1200

output_d(0x00);

delay_ms(20);

inicio++;

}

/////9a POCISION - BAJAR PIE IZQUIERDO - POSICIÓN FIJA ////////////////////

inicio=pos/2;

while(inicio<=pos){

output_d(0xFF);

delay_us(900); //900

output_d(0b11111011);

delay_us(100); //1000

output_d(0b00011001);

delay_us(100); //1100

output_d(0b00001000);

delay_us(100); //1200

output_d(0x00);

delay_ms(20);

inicio++;

}

/////10a POCISION - BAJAR PIE IZQUIERDO - POSICIÓN FIJA //////////////////////

inicio=pos/2;

while(inicio<=pos){

output_d(0xFF);

UNIVERSIDAD AUTÓNOMA METROPOLITANAUNIDAD IZTAPALAPA DISEÑO, CONSTRUCCIÓN Y PROGRAMACIÓN DE BIPEDO ROBÓTICO

PROYECTO DE INGENIERÍA ELECTRÓNICA II.

INGENIERÍA ELECTRÓNICA

34

delay_us(900); //900

output_d(0b11111011);

delay_us(100); //1000

output_d(0b10011001);

delay_us(100); //1100

output_d(0b10001001);

delay_us(100); //1200

output_d(0b00000001);

delay_us(50); //1250

output_d(0x00);

delay_ms(20);

inicio++;

}

/////11a POCISION - LEVANTAR PIE DERECHO - POSICIÓN CONTINUA //////////////////

pwm=0;

for(pwm=0;pwm<=200;pwm=pwm+5){

output_d(0xFF);

delay_us(900); //900

output_d(0b11111011);

delay_us(100); //1000

output_d(0b10011001);

delay_us(100); //1100

output_d(0b10001001);

delay_us(100); //1200

output_d(0b00000001);

delay_us(pwm); //1250

output_d(0x00);

delay_ms(20);

UNIVERSIDAD AUTÓNOMA METROPOLITANAUNIDAD IZTAPALAPA DISEÑO, CONSTRUCCIÓN Y PROGRAMACIÓN DE BIPEDO ROBÓTICO

PROYECTO DE INGENIERÍA ELECTRÓNICA II.

INGENIERÍA ELECTRÓNICA

35

inicio++;

}

/////12a POSICION - LEVANTAR PIE DERECHO Y ADELANTAR - POSICIÓN CONTINUA //////

pwm=0;

for(pwm=0;pwm<=200;pwm=pwm+5){

output_d(0xFF);

delay_us(1000); //1000

output_d(0b10011111);

if(pwm<=100){

delay_us(pwm); //1000 a 1100

output_d(0b10011001);

delay_us(100-pwm); //1100

output_d(0b10011001);

delay_us(100); //1200

output_d(0b00001001);

delay_us(50); //1250

output_d(0b00001001);

delay_us(50); //1300

output_d(0b00000001);

delay_us(150); //1450

}

if(pwm>100){

delay_us(100); //1100

output_d(0b10011111);

delay_us(pwm-100); //1100 a 1200

output_d(0b10011001);

delay_us(200-pwm); //1200

output_d(0b00001001);

UNIVERSIDAD AUTÓNOMA METROPOLITANAUNIDAD IZTAPALAPA DISEÑO, CONSTRUCCIÓN Y PROGRAMACIÓN DE BIPEDO ROBÓTICO

PROYECTO DE INGENIERÍA ELECTRÓNICA II.

INGENIERÍA ELECTRÓNICA

36

delay_us(50); //1250

output_d(0b00001001);

delay_us(100); //1300

output_d(0b00000001);

delay_us(1450); //1450

}

output_d(0x00);

delay_ms(20);

}

/////13a POSICION - LEVANTAR PIE DERECHO Y ADELANTAR - POSICIÓN FIJA///////////

inicio=pos/2;

while(inicio<=pos){

output_d(0xFF);

delay_us(1100); //1100

output_d(0b10011111);

delay_us(100); //1200

output_d(0b00011011);

delay_us(50); //1250

output_d(0b00001011);

delay_us(100); //1300

output_d(0b00000001);

delay_us(150); //1450

output_d(0x00);

delay_ms(20);

inicio++;

}

///////14a. POSICIÓN LEVARTAR PIE DERECHO Y ADELANTAR - POSICION FIJA /////////

inicio=pos/2;

UNIVERSIDAD AUTÓNOMA METROPOLITANAUNIDAD IZTAPALAPA DISEÑO, CONSTRUCCIÓN Y PROGRAMACIÓN DE BIPEDO ROBÓTICO

PROYECTO DE INGENIERÍA ELECTRÓNICA II.

INGENIERÍA ELECTRÓNICA

37

while(inicio<=pos){

output_d(0b11111111);

delay_us(1200); //1200

output_d(0b00011011);

delay_us(50); //1250

output_d(0b00001011);

delay_us(100); //1300

output_d(0b00000001);

delay_us(150); //1450

output_d(0x00);

delay_ms(20);

inicio++;

}

/////////////////////////CONDICION PARA SEGUIR CAMINANDO///////////////////////

output_a(0x01); //Activar Pulso para int_ext del PIC18f2550

delay_ms(1);

output_a(0x00); //Desactivar Pulso para int_ext del PIC18f2550

}while(dato==0x08);

}

UNIVERSIDAD AUTÓNOMA METROPOLITANAUNIDAD IZTAPALAPA DISEÑO, CONSTRUCCIÓN Y PROGRAMACIÓN DE BIPEDO ROBÓTICO

PROYECTO DE INGENIERÍA ELECTRÓNICA II.

INGENIERÍA ELECTRÓNICA

38

inclina tobillo derecho

• se inclina hacia fuera para estabilizar los la estructura del bipedo en los siguientes movimientos

levanta rodila izquierda

levanta pierna

izquierda

• con estos movimientos se prepara el primer paso

inclina hacia atras rodilla

derecha

• este movimiento ayuda a bajar la estructura del bipedo seguir con el equilibrio

baja pierna izquierda

• con este movimiento se ha avanzado la pierna izquierda y se comienza nuevamente con los pasos, pero en esta vez cambiando de lado

inclina tobillo izquierdo

levanta pierna

derecha

levanta rodila derecha

UNIVERSIDAD AUTÓNOMA METROPOLITANAUNIDAD IZTAPALAPA DISEÑO, CONSTRUCCIÓN Y PROGRAMACIÓN DE BIPEDO ROBÓTICO

PROYECTO DE INGENIERÍA ELECTRÓNICA II.

INGENIERÍA ELECTRÓNICA

39

DIAGRAMA DEL CIRCUITO.

UNIVERSIDAD AUTÓNOMA METROPOLITANAUNIDAD IZTAPALAPA DISEÑO, CONSTRUCCIÓN Y PROGRAMACIÓN DE BIPEDO ROBÓTICO

PROYECTO DE INGENIERÍA ELECTRÓNICA II.

INGENIERÍA ELECTRÓNICA

40

PIEZAS DEL BIPEDO.

UNIVERSIDAD AUTÓNOMA METROPOLITANAUNIDAD IZTAPALAPA DISEÑO, CONSTRUCCIÓN Y PROGRAMACIÓN DE BIPEDO ROBÓTICO

PROYECTO DE INGENIERÍA ELECTRÓNICA II.

INGENIERÍA ELECTRÓNICA

41

UNIVERSIDAD AUTÓNOMA METROPOLITANAUNIDAD IZTAPALAPA DISEÑO, CONSTRUCCIÓN Y PROGRAMACIÓN DE BIPEDO ROBÓTICO

PROYECTO DE INGENIERÍA ELECTRÓNICA II.

INGENIERÍA ELECTRÓNICA

42