Construcción de brazo mecánico para recolección de objetos
1. 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
2. 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:
PC PIC Brazo Mecánico
Programa en PC
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.
3. - 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.
4. 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.
5. 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
6. 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.
7. 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.
9. 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
10. 9. Flujograma del Microcontrolador:
INICIO
Incluir librería “Modedefs.bas”
Establecer variables
globales arriba, abajo, izq,
der, grad, abrir, cerrar de
tipo char
NO No transmitir
¿Está conectado?
nada
SI
Controlar Servomotor 1
Transmitir izq, der, grad
Controlar Servomotor 2
Transmitir arriba, abajo, grad
Controlar Servomotor 3
Transmitir arriba, abajo, grad
Controlar Servomotor 4
Transmitir abrir, cerrar
SI
¿Continuar?
NO
FIN
11. 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