Brazo

12

Click here to load reader

Transcript of Brazo

Page 1: Brazo

UNIVERSIDAD TECNICA PARTICULAR DE LOJA

La Universidad Católica de Loja

Escuela de Electrónica y Telecomunicaciones

Proyecto de Fin de Curso de Metodología de la Programación

Tema: “Brazo mecánico”

Integrantes:

Luis Gerardo Hidalgo García

José Vicente Jaramillo Valdivieso

Juan Francisco Maldonado Morales

Mauricio Fernando Román Rodríguez

Periodo:

2009 –2010

Page 2: Brazo

1. Objetivos: 1.1. Objetivos generales:

- Construcción de un brazo mecánico con movimiento en los ejes X,Y y Z para recolección de objetos livianos. 1.2. Objetivos específicos:

- Diseñar el programa en lenguaje C y programar los microcontroladores. - Construir la parte mecánica, que incluye el ensamblaje del brazo y los

servomotores. - Ensamblar y conectar la parte mecánica al ordenador.

2. Descripción:

Construcción de brazo mecánico en base de aluminio, movilizado con servomotores, por medio de la programación en C++, con una pinza en el extremo para la recolección de objetos.

Las instrucciones de C++ serán enviadas a través del puerto serial para darle movilidad al brazo, los componentes del brazo se encontrarán en un protoboard o en una placa la cual estará conectada al computador. La energía necesitada para mover el brazo se tomará de una fuente de alimentación la cual será distribuida cables. El brazo tendrá 3 articulaciones y movilidad en los ejes X, Y, Z. Este brazo será capaz de recoger objetos livianos mediante sus pinzas.

3. Herramientas: 3.1. Hardware:

- Servomotores. - Aluminio. - Microcontolador pic12f683. - Pulsantes.

PC Programa en PC

PIC Brazo Mecánico

Page 3: Brazo

- Resistencias. - Transistores. - Protoboard. - Cable DB9. - Fuente de Alimentación. - Cristal de 9 Mhz - Computador con puerto serial.

3.2. Software:

- Programa C++. - Programa Visual Basic.

4. Metodología:

Para la investigación de todo lo concerniente al proyecto utilizamos lluvia de ideas para el diseño del brazo robótico. Para la investigación de los conceptos utilizamos la técnica del mapa mental para realizar un borrador de lo que necesitamos investigar.

Para realizar el programa vamos a utilizar la herramienta de lenguaje de programación C++, ya que es un programa que nos facilita programar vía comunicación serial, también es considerado un programa base para el desarrollo de los demás programas que poseen sus bases en C.

Diagrama del Circuito:

Imagen 1.

Page 4: Brazo

5. Fundamentos Teóricos:

Protoboard: “El dispositivo más básico y grande, que permite conectar los otros fácilmente, es la protoboard. Está hecha para poder comunicar dos elementos conductores (alambres, patas de dispositivos, fuentes de voltaje) sin necesidad de soldarlos, sino simplemente al introducirlos en dos o más agujeros que por debajo están interconectados. No todos los agujeros de la protoboard están comunicados entre sí. Este es un diagrama simple de su funcionamiento, las franjas grises muestran lo que serán líneas de conducción separadas: tiras metálicas dobladas para agarrar los alambres”. [1]

Imagen 2.

Servomotor:

Imagen 3.

“Un servomotor de modelismo —conocido generalmente como servo o servo de modelismo— es un dispositivo actuador que tiene la capacidad de ubicarse en cualquier posición dentro de su rango de operación, y de mantenerse estable en dicha posición. Está formado por un motor de corriente continua, una

caja reductora y un circuito de control, y su margen de funcionamiento generalmente es de menos de una vuelta completa.

Los servos de modelismo se utilizan frecuentemente en sistemas de radiocontrol y en robótica, pero su uso no está limitado a estos”.[2]

Microcontrolador pic12f683:

“Un microcontrolador es un circuito integrado o chip que incluye en su interior las Imagen 4.

Page 5: Brazo

tres unidades funcionales de una computadora: unidad central de procesamiento, memoria y unidades de E/S”.[3]

Cristales de Cuarzo:

Imagen 5.

“La importancia de los cristales de cuarzo en electrónica es el resultado de su extremadamente alto factor de calidad “Q”, tamaño relativamente pequeño y excelente estabilidad en temperatura. Los cristales de cuarzo están compuestos de dióxido de silicio. Su propiedad es un fenómeno llamado “piezoeléctrico”, que consiste en aplicar stress o tracción mecánica a un cuarzo y este

genera un campo eléctrico directamente proporcional y viceversa.

La aplicación de un campo eléctrico sobre un cristal genera una fuerza en la estructura del cristal, haciendo que este vibre a una frecuencia determinada. Los cristales de cuarzo proveen una fuente fiable de aplicaciones en crono-medición, incluyendo relojes, servo controles, dispositivos analógico digitales y micro procesadores”.[4]

Puerto serial:

Imagen 6. “Un puerto serie o puerto serial es una interfaz de comunicaciones de datos digitales, frecuentemente utilizado por computadoras y periféricos, en donde la información es transmitida bit a bit enviando un solo bit a la vez, en contraste con el puerto paralelo que envía

varios bits simultáneamente. La comparación entre la transmisión en serie y en paralelo se puede explicar usando una analogía con las carreteras. Una carretera tradicional de un sólo carril por sentido sería como la transmisión en serie y una autovía con varios carriles por sentido sería la transmisión en paralelo, siendo los vehículos los bits que circulan por el cable”.[5]

C++: “es un lenguaje de programación diseñado a mediados de los años 1980 por Bjarne Stroustrup. La intención de su creación fue el extender al exitoso lenguaje de programación C con mecanismos que permitan la manipulación de objetos. En

Page 6: Brazo

ese sentido, desde el punto de vista de los lenguajes orientados a objetos, el C++ es un lenguaje híbrido.

Posteriormente se añadieron facilidades de programación genérica, que se sumó a los otros dos paradigmas que ya estaban admitidos (programación estructurada y la programación orientada a objetos). Por esto se suele decir que el C++ es un lenguaje de programación multiparadigma.

Actualmente existe un estándar, denominado ISO C++, al que se han adherido la mayoría de los fabricantes de compiladores más modernos. Existen también algunos intérpretes, tales como ROOT.

Una particularidad del C++ es la posibilidad de redefinir los operadores (sobrecarga de operadores), y de poder crear nuevos tipos que se comporten como tipos fundamentales.

El nombre C++ fue propuesto por Rick Mascitti en el año 1983, cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio científico. Antes se había usado el nombre "C con clases". En C++, la expresión "C++" significa "incremento de C" y se refiere a que C++ es una extensión de C”.[6]

Visual Basic: “(Visual Studio) constituye un IDE (entorno de desarrollo integrado o en inglés Integrated Development Enviroment) que ha sido empaquetado como un programa de aplicación, es decir, consiste en un editor de código (programa donde se escribe el código fuente), un depurador (programa que corrige errores en el código fuente para que pueda ser bien compilado), un compilador (programa que traduce el código fuente a lenguaje de máquina), y un constructor de interfaz gráfica o GUI (es una forma de programar en la que no es necesario escribir el código para la parte gráfica del programa, sino que se puede hacer de forma visual)”.[7]

6. Alcance:

El alcance máximo de nuestro proyecto es lograr movimiento del brazo mecánico en los ejes X, Y y Z para la recolección de objetos livianos y su traslado a un destino diferente.

Resultados esperados:

Una vez terminado el proyecto, se tendrá un brazo mecánico capaz de recolectar objetos livianos por medio de una pinza, posteriormente trasladarlos a su destino final dentro del rango de movimiento del brazo.

Page 7: Brazo

7. Desarrollo de Módulos. 7.1. Hardware:

Los pasos a describir son secuenciales.

1ra Etapa:

Envió de pulsos por el pin 3 hacia el pic para la transformación de las ordenes a código binario.

2da Etapa:

Enviar los pulsos del pic al brazo mecánico.

3ra Etapa:

Recepción de pulsos y transformar código binario a instrucción normal.

7.2. Software:

Los pasos a describir son secuenciales

1ra Etapa:

Implantar objeto de transmisión serial.

2da Etapa:

Implantar puntos de comunicación serial.

3ra Etapa:

Empezar comunicación serial.

4ta Etapa:

Ingreso de instrucciones por teclado y su almacenamiento en sus respectivas variables.

5ta Etapa:

Transmisión de datos vía comunicación serial.

Page 8: Brazo

6ta Etapa:

Recepción y ejecución de instrucciones.

8. Flujograma del Programa en PC:

Page 9: Brazo

8.1. Algoritmo del programa en PC:

1. Inicio 2. Encender Ordenador 3. Abrir software 4. Conectar el brazo al puerto serial del ordenador 5. Mientras (Programa=Encendido) Entonces 6. Si (Motor 1=Controlado) Entonces 7. Si (Orden= Derecha) 8. Mover a derecha 9. Caso Contrario 10. Mover a izquierda 11. Ingresar Grados 12. Caso Contrario 13. No moverse 14. Si (Motor2=Controlado) Entonces 15. Si (Orden= Arriba) 16. Mover hacia arriba 17. Caso Contrario 18. Mover hacia abajo 19. Ingresar grados 20. Caso Contrario 21. No Moverse 22. Si(Motor3= Controlado) Entonces 23. Si(orden=arriba) 24. Mover hacia arriba 25. Caso Contrario 26. Mover hacia abajo 27. Ingresar Grados 28. Caso Contrario 29. No moverse 30. Si(Motor4= Abierto) 31. Cerrar motor4 32. Caso Contrario 33. Abrir Motor4 34. Ir a instrucción 6 35. Fin mientras 36. Fin

Page 10: Brazo

9. Flujograma del Microcontrolador:

INICIO

Incluir librería “Modedefs.bas”

Establecer variables globales arriba, abajo, izq, der, grad, abrir, cerrar de

tipo char

¿Está conectado?No transmitir

nada

Controlar Servomotor 1Transmitir izq, der, grad

Controlar Servomotor 2Transmitir arriba, abajo, grad

Controlar Servomotor 3Transmitir arriba, abajo, grad

Controlar Servomotor 4Transmitir abrir, cerrar

¿Continuar?

FIN

SI

NO

SI

NO

Page 11: Brazo

9.1. Algoritmo del microcontrolador:

1. Inicio 2. Incluir librería “modedefs.bas” para establecer comunicación con puerto

serial. 3. Establecer variables globales arriba, abajo, izquieda, derecha, grado, abrir y

cerrar de tipo char 4. Si (coneccion=true)Entonces 5. Controlar servomotor 1 por pin 7 6. Transmitir izquierda, derecha, grados. 7. Controlar servomotor 2 por pin 6 8. Transmitir arriba, abajo y grados. 9. Controlar servomotor 3 por pin 5 10. Transmitir arriba, abajo y grados. 11. Controlar servomotor 4 por pin 3 12. Transmitir arriba y cerrar. 13. Caso contrario 14. No transmitir 15. Fin si 16. Fin

10. Referencias:

- Imagen 1 “Diagrama de circuitos”, disponible en: http://www.xbot.es/microplans/servos4.htm

- Imagen 2 y [1] “Protoboard”, disponible en: http://taller.tagabot.org/index.php/Arduino/Armada

- Imagen 3 y [2] “Servomotor”, disponible en: http://es.wikipedia.org/wiki/Servomotor_de_modelismo

- Imagen 4 “Microcontrolador”, disponible en: http://parts.digikey.com/1/parts/557513-ic-mcu-flash-2kx14-8soic-pic12f683-i-sn.html

- [3] “Microcontrolador”, disponible en: http://es.wikipedia.org/wiki/Microcontrolador

- Imagen 5 y [4] “Cristal de cuarzo”, disponible en: http://www.endrich.com/es/site.php/4533

- Imagen 6 “Puerto serial”, disponible en: http://es.wikipedia.org/wiki/Archivo:SerialPort_ATX.jpg

Page 12: Brazo

- [5] “Puerto serial”, disponible en: http://es.wikipedia.org/wiki/Puerto_serie

- [6] “C++”, disponible en: http://es.wikipedia.org/wiki/C%2B%2B

- [7] “Visual Basic”, disponible en: http://es.wikipedia.org/wiki/Microsoft_Visual_Basic