You are on page 1of 36

UNIVERSIDAD DE COLIMA.

FACULTAD DE INGENIERÍA ELECTROMECÁNICA.


Campus El Naranjo.

ROBOT CARTESIANO PARA CIRCUITOS IMPRESOS.

CARRERA:
INGENIERÍA EN MECATRÓNICA.

GRADO Y GRUOPO:
2° C.

PRESENTAN:
ALCARAZ CARRAZCO MITZI ANDREA.
BARRAGÁN MONTES AYLIN ESTEFANNYA.
CINTA BARAJAS PEDRO ROLANDO.
GARCÍA BARENCA LUIS ALFREDO.
TELLÉZ GONZÁLEZ ERICK.
LEPE FIGUEROA CECILIO ANTONIO.
MARTÍNEZ ARCHUNDIA SAULO ULISES.

Manzanillo, Colima. Miércoles 14 de junio de 2017.


ÍNDICE
1. RESUMEN .................................................................................................................. 6
2. INTRODUCCIÓN. ....................................................................................................... 7
2.1 Antecedentes.......................................................................................................................... 7
2.2 Definición del problema ........................................................................................................ 9
2.3 Justificación .......................................................................................................................... 10
2.4 Objetivos ............................................................................................................................... 10
2.4.1 General. ......................................................................................................................... 10
2.4.2 Particulares.................................................................................................................... 10
2.5 Hipótesis................................................................................................................................ 10
3. MARCO TEÓRICO ...................................................................................................... 12
3.1 Acoples: ................................................................................................................................. 12
3.2 Tornillos: ................................................................................................................................ 12
3.3 Rodamiento lineal de bolas: ............................................................................................... 12
3.4 Eje Acerado: ......................................................................................................................... 12
3.5 Soporte Eje: .......................................................................................................................... 13
3.6 Soporte Dremel: ................................................................................................................... 13
3.7 Sujetador Cama Fresado: .................................................................................................. 13
3.8 Motor de pasos bipolar: ...................................................................................................... 13
3.9 Fuente 12 v: .......................................................................................................................... 13
3.10 Arduino UNO: ..................................................................................................................... 14
3.11 Cables Jumper: .................................................................................................................. 14
4. DESCRIPCIÓN DE PROCEDIMIENTO .................................................................... 15
4.1 Diseño e implementación de la estructura ....................................................................... 15
....................................................................................................................................................... 18
4.2 Programación del control e interfaz. ................................................................................. 19
4.3 Electrónica. ........................................................................................................................... 20
5. RESULTADOS ......................................................................................................... 21
6. ANÁLISIS DE COSTOS............................................................................................ 22
7. CONCLUSIONES ..................................................................................................... 24
8. PERSPECTIVA TECNÓLOGICA .............................................................................. 25
9. BIBLIOGRAFÍAS ...................................................................................................... 26
10. ANEXOS ............................................................................................................... 28
Anexo 1. Trabajo en el taller. ........................................................................................................ 28
Anexo 2. Programación. ................................................................................................................ 31
Índice de figuras.

Figura 1. Primer CNC automatizado…………………………………………………………………………………..8

Figura 2. Acoplamiento flexible………...………………………………………………………………………..…..12

Figura 3. Tornillo de fijador………………………………………………………………………………………………12

Figura 4. Rodamiento lineal de bolas………………………………………………………………………………..12

Figura 5. Eje acerado……………………………………..…………………………………………………………………13

Figura 6. Soporte de eje………...………………………………………………………………………….……………..13

Figura 7. Soporte Dremel………...………………………………………………………………………….……………13

Figura 8. Sujetador cama fresada………...…………………………………………………………………………..13

Figura 9. Motor de pasos bipolar………...………………………………………………………………..….……13

Figura 10. Fuente de 12v. ………...………………………………………………………………………….…….……14

Figura 11. Arduino UNO………...………………………………………………………………………….…………….14

Figura 12. Cables Jumper………...………………………………………………………………………….…………..14

Figura 13 y 14. Lluvia de ideas acerca de la base. ………...………………………………………………….15

Figura 15 y 16. Medidas de la base.………...…………………………….………………………………………..15

Figura 17 y 18. Corte del PTR………...………………………………………………………………………………..16

Figura 19. Base de CNC………...………………………………………………………………………….……………..16

Figura 20. Medidas para camilla…………. ………...……………………………………………………………….16

Figura 21 y 22. Construcción de camilla. …………………………………………………………………………16

Figura 23. Construcción de base del Dremel..………...……………………………………….……………..16

Figura 24. Tornillo 3/16………...………………………………………….…………………………………………….17

Figura 25. Unión del soporte del dremel y base………...…………………………………………………….16

Figura 26. Desgaste de ejes.………………………………………………………….………………………………..17

Figura 27. Camilla………………………………………………………………………….………………………………..17

Figura 28. Dremel… ………...………………………………………………………………………….………………..18

Figura 29. Samblaje del eje Z. …….……………………………………...…………………………………………18

Figura 30. Parte superior de la estructura……..………...…………………………………………………….18

Figura 31. Acople Flexible………......………...……………………………………………………...………………18


Figura 32. Torno………………....………...………………………..…………………………..…….…...…………18

Figura 33. Estructura montada..……………..………………………………………………………..…………..18

Figura 34. Investigación del movimiento de motores………………………………..………………….19

Figura 35. Conexión de Arduino …………….…………………………………………………………………….19

Figura 36. Pruebas de programa…………… …………………………………………………………………….19

Figura 37. Prueba de void-loop………………………………………………………………………………………19

Figura 38. Conexión Arduino-Builder…………………………………………………………………………….20

Figura 39. Circuito …………………………………………………..……………….……………………….………….20

Figura 40. Driver……………………………………………………………………………………..…………………….20


1. RESUMEN

En este proyecto se presenta un robot cartesiano de tres ejes para la elaboración


de circuitos impresos, donde el usuario puede elegir la figura a realizar en un menú
mediante una interfaz gráfica en Builder. El sistema implementado demuestra su
funcionamiento siguiendo la trayectoria de tres figuras geométricas, un cuadrado,
triángulo y círculo, en un área de trabajo de 20x20 cm 2, para lo cual se utiliza una
tabla fenólica.
Todo esto se lleva a cabo con una tarjeta programable en código c a través de un
hardware como adquisidor de datos para poder mover los motores en 3 ejes y
cumplir los requerimientos del usuario.
Cabe mencionar que además es amigable para el medio ambiente, ya que al
elaborar los circuitos de manera automatizada no es necesario usar tóxicos, como
lo es el cloruro férrico.
2. INTRODUCCIÓN.

Un robot cartesiano de 3 ejes es un manipulador automático servo-controlado,


reprogramable, polivalente, capaz de posicionar y orientar piezas, útiles o
dispositivos especiales, siguiendo trayectoria variable reprogramables, para la
ejecución de tareas variadas, cuyo posicionamiento en el espacio se lleva a cabo
mediante articulaciones lineales.
La utilización de estos robots trae muchos beneficios, tales como productos
perfectamente maquilados, con alta precisión, ya que trabaja con 3 ejes (x, y, z),
ahorro en herramientas, personal y la capacitación de éstos. Con esto se optimizan
los gastos y recursos en el área de sector industrial; por medio de automatización y
control, ayudando a gastar menos material, a hacer procesos más rápidos que el
trabajo humano y con mejor precisión, usando coordenadas, y dejando atrás la
manera manual.

2.1 Antecedentes

La palabra robot (robota), proveniente de lo que hoy es Republica Checa, es


introducida en la literatura en 1920 por Joseph Capek. La definición oficial de un
robot industrial se proporciona por la Robotics Industries Association (RIA),
anteriormente el Robotics Institute of América. “Un robot industrial es un
manipulador multifuncional reprogramable diseñado para desplazar materiales,
piezas, herramientas o dispositivos especiales, mediante movimientos variables
programados para la ejecución de una diversidad de tareas".
La robótica tiene sus orígenes hace miles de años. Antiguamente los robots eran
conocidos con el nombre de autómatas, y la robótica no era reconocida como
ciencia. Los antiguos egipcios unieron brazos mecánicos a las estatuas de sus
dioses. Estos brazos fueron operados por sacerdotes, quienes clamaban que el
movimiento de estos era inspiración de sus dioses. Los griegos construyeron
estatuas que operaban con sistemas hidráulicas, los cuales se utilizaban para
fascinar a los adoradores de los templos. Durante los siglos XVII y XVIII en Europa
fueron construidos muñecos mecánicos muy ingeniosos que tenían algunas
características de robots.
Según la idea de Craigh (2006), la historia de la automatización industrial está
caracterizada por períodos de constantes innovaciones tecnológicas. Esto se debe
a que las técnicas de automatización están muy ligadas a los sucesos económicos
mundiales. En la actualidad el uso de los robots industriales está concentrado en
operaciones muy simples, como tareas repetitivas que no requieren tanta precisión.
La automatización y la robótica son dos tecnologías estrechamente relacionadas.
En un contexto industrial se puede definir la automatización como una tecnología
que está relacionada con el empleo de sistemas mecánicos-eléctricos basados en
computadoras para la operación y control de la producción. En consecuencia, la
robótica es una forma de automatización industrial.
En tiempos más recientes, el control numérico y la telequeria son dos tecnologías
importantes en el desarrollo de la robótica. El control numérico (NC) se desarrolló
para máquinas herramienta a finales de los años 40 y principios de los 50´s. Como
su nombre lo indica, el control numérico implica el control de acciones de una
máquina-herramienta por medio de números. Está basado en el trabajo original de
Jhon Parsons, que concibió el empleo de tarjetas perforadas, que contienen datos
de posiciones, para controlar los ejes de una máquina-herramienta.

En el 2000, Krajewski y Ritzman explican que las funciones de control se realizaban


mediante programas en la memoria del ordenador de forma que pueden adaptarse
fácilmente con solo modificar el programa. En esta época los ordenadores eran
todavía muy grandes y costosos, la única solución práctica para el CN era disponer
de un ordenador central conectado a varias máquinas-herramientas que
desarrollaban a tiempo compartido todas las funciones de control de las mismas.
(En la Fig. 1 se logra ver lo grande del ordenar de una CNC) Esta tecnología se
conoce con las siglas DNC (Direct Numerical Control – Control Numérico Directo).

Figura 1. Primer CNC automatizado.


A principios de los setentas se empezó a aplicar más pequeño y económico
apareciendo así el CNC (Control Numérico Computarizado), que permite que un
mismo control numérico pueda aplicarse a varios tipos de máquinas distintas sin
más que programar las funciones de control para cada máquina en particular. Las
tendencias actuales de automatización total y fabricación flexible se basan en
máquinas de CNC conectadas a un ordenador central con funciones de
programación y almacenamiento de programas y transmisión de los mismos a las
máquinas para su ejecución. La tecnología de control numérico fue la primera
aplicación del auxilio de manufactura computarizada (CAM), la aplicación de
tecnología de procesos de información a la tecnología de automatización industrial.
Tecnología de control fue desarrollada en paralelo con computadoras digitales,
desde tubos de vacío pasando por transistores y circuitos integrados para los más
capaces y confiables minicomputadoras, mini procesadores, basados en control de
unidades los cuales son referidos como computadora de control numérico (CNC).
El control con alambrado fue menos flexible en su habilidad para leer y responder.
En los CNC el alambrado lógico es reemplazado por software ejecutado, el da al
controlador su identidad. En adición provee parte del almacén del programa, ahora
muchos controladores aceptan operaciones de cómputo lógico tales como
variables, ramales, y subrutinas en la parte de instrucción del programa. El
programa de la parte y nuestro programador es de la nueva creación de
trabajadores de información en la nueva revolución industrial de la información.
Como desarrollo del progreso de la tecnología de maquinado y control, se reconoció
una necesidad para un método de programación para manipular y traducir
información de tecnología y manufactura para crear un medio de control para partes
complicadas de 3 dimensiones. Hasta 1971 la AIA (Aerospace Industry Association)
el MIT y el ITRI (Illinois of Technology Research Institute) trabajaron en el desarrollo
del lenguaje APT.El lenguaje APT inicial era suficiente para operaciones de
taladrado, torneado o fresado recto, sin embargo estas no son suficientes para las
operaciones de maquinado.
Cuando en 1976 se aplicó el microprocesador a las computadoras, se dio un
enorme salto en el desarrollo del CNC, haciéndose posible las interpolaciones
rectas y curvas entre ejes (López, 2015).

2.2 Definición del problema

En los distintos tipos de industria de automatización han surgido diversas


problemáticas tales como productos mal maquilados, alta de precisión, gastos
excesivos en herramientas, personal y capacitación por esta razón se han diseñado
diversas maquinas que intenten optimizar esos gastos y recursos en el área de
sector industrial; por medio de automatización y control.
Las CNC (control numérico por computadora) han servido en muchos casos para
ser más eficiente el área industrial, ayudando a gastar menos material, a hacer
procesos más rápidos que el trabajo humano y con mejor precisión, usando
coordenadas dejando atrás la manera manual.
Hoy en día se requieren tales maquinas en toda el área para mejorar su producción
gestionando dispositivos CNC para realización de circuito impresos, mediante el
cual se requiere las máximas calidades del producto en el cual el ser humano no
podría realizar el trabajo con tal precisión.
El sistema consta de muchas funciones cartesianas que sirven para mover una
herramienta (taladro) en tres ejes X, Y, Z para remover el cobre en las placas de
fibra de vidrio (baquelitas) en la cual se podrá realizar un circuito impreso.
Todo esto para la creación de PCB de una manear simple y precisa para hacer
tarjetas electrónicas.

2.3 Justificación

En el sector industrial se ha buscado la manera de simplificar y mejorar los trabajos


a base de la creación de dispositivos las cuales sean capaces de llevar a cabo un
trabajo utilizando un movimiento humanoide. Gracias a esto se eliminan los riesgos
de la mano de obra pesada, y mejorando altamente la eficiencia, con ello, la
productividad de la empresa mejora teniendo una reducción en costos.
Las CNC (Control Numérico por Computadora) es un dispositivo de 3 ejes que sirve
para muchas funciones en un plano cartesiano capaz de realizar el mismo proceso
repetidas veces con la misma precisión, como cortar, taladrar, soldar, imprimir, entre
otras cosas.
Con la incorporación de máquinas CNC, se podrá elaborar circuitos impresos sin
necesidad de realizarlo con trabajo manual, además que las pistas o circuitos no se
borran tan fácilmente, y al realizarlo con la CNC se elimina el uso del ácido férrico
que además ser toxico es un contaminante para el medio ambiente, haciendo de
este un proyecto sustentable.

2.4 Objetivos

2.4.1 General.
Implementar un sistema para elaboración de PCB´s utilizando la computadora.
2.4.2 Particulares.
Programar una interfaz capaz de dibujar y establecer con exactitud los puntos el
plano cartesiano, así como una estructura estática que tenga el soporte adecuado,
y una buena logística dentro del dispositivo.
-Diseñar cada pieza de nuestro prototipo (CNC) en SolidWorks.
-Ensamblar todas las piezas.
-Programar la interfaz gráfica con programación orientada a objetos en C++ Builder.
-Programar los motores de paso mediante pulsos mandados por un
microcontrolador.
-Diseñar el circuito en Proteus, imprimirlo en PCB e insertar los componentes y
soldarlos.

2.5 Hipótesis
La máquina CNC será capaz de diseñar en un plano cartesiano de tres ejes un
circuito impreso (Printed Circuit board). Donde el usuario podrá mediante una
interfaz gráfica a elegir en un menú la figura que desee realizar; ya sea un círculo,
cuadrado y un triángulo en una base creada de fibra de vidrio (baquelita).
Todo esto se llevará a cabo con una tarjeta programable en código c a través del
software Arduino como adquisidor de datos para poder mover los motores en 3 ejes
y cumplir los requerimientos del usuario.
La gestión de este proyecto servirá para facilitar la realización de circuitos impresos
de manera automatizad con un código mejorado para que pueda leer las
coordenadas de una imagen y poder hacer una pista de circuito removiendo el cobre
en la placa además de ser más amigable al ambiente al evitar la necesidad de usar
tóxicos como el ácido férrico.
3. MARCO TEÓRICO

3.1 Acoples:

Los acoplamientos o acoples flexibles son utilizados para la


unión de árboles giratorios (Fig. 2). Transmiten el par de
torsión del árbol conductor al conducido, y al mismo tiempo
compensan la desalineación y absorben los movimientos
axiales de los arboles acoplados (Miravete y Larrodé, 2002).

Figura 2. Acoplamiento flexible


3.2 Tornillos:

Elemento mecánico utilizado en la fijación temporal de


piezas entre sí, que está dotado de una caña con rosca
triangular, que, mediante una fuerza de torsión ejercida en
su cabeza con una llave adecuada o con un
destornillador(Fig.3), se puede introducir en un agujero
roscado a su medida o atravesar las piezas y acoplarse a
una tuerca (Bendix, 1973).
Figura 3. Tornillo de fijador

3.3 Rodamiento lineal de bolas:

Los rodamientos dotan de la posibilidad de realizar


movimientos de giro a muy alta velocidad y con
rozamientos mínimos (Fig. 4). Se dispone de guías
lineales debido a la gran cantidad de desplazamientos
lineales a alta velocidad en máquinas industriales
(Comesaña, 2005).

Figura 4. Rodamiento lineal de bolas


3.4 Eje Acerado:

Pieza constructiva que resulta útil a la hora de dirigir el


desplazamiento de rotación de un elemento o de un grupo
de piezas (Fig. 5), como puede ocurrir al trabajar sobre una
rueda o un engranaje (Comesaña, 2005).
Figura 5. Eje acerado
3.5 Soporte Eje:

Se utilizan para soporte de extremo o intermitente donde las


cargas son livianas y un poco de deflexión del eje no representa
un problema, Fig.6 (Comesaña, 2005).

Figura 6. Soporte de eje

3.6 Soporte Dremel:

Combinación de columna de perforar y soporte para


herramientas, para realizar las tareas correspondientes con la
herramienta Dremel en una posición fija, en la Fig.7 se logra
observar el soporte (Montero, 2009).

Figura 7. Soporte Dremel


3.7 Sujetador Cama Fresado:

Los sujetadores para herramientas de fresado de alta velocidad son


apropiados para el corte de alta velocidad y alta precisión, en la
figura 8 de sujetador de cama (Bendix, 1973).

Figura 8. Sujetador cama fresada


3.8 Motor de pasos bipolar:

El modo en que están conectadas las bobinas determina el


tipo de motor paso a paso. Bipolar; sobre las bobinas del
estator se puede hacer pasar una corriente eléctrica que
creará un campo magnético, esto hará que el rotor gire
hasta encontrar una posición de equilibrio (Fig. 10), si las
corrientes cambian, el campo magnético también cambia y
el rotor deberá girar otra vez (Lajara y Peligré. 2011).
Figura 9. Motor de pasos bipolar

3.9 Fuente 12 v:

Dispositivo que convierte la corriente alterna, en una o varias


corrientes continuas, que alimentan los distintos circuitos del
aparato electrónico al que se conecta, Fig. 11 Fuente de 12v
(Montero, 2009).

Figura 10. Fuente de 12v.


3.10 Arduino UNO:

Plataforma de prototipos electrónica de código abierto


basada en hardware y software flexibles y fáciles de usar
(Fig. 11).

Figura 11. Arduino UNO

3.11 Cables Jumper:

Socket rectangular de plástico que a su vez tiene en su interior dos o


más sockets metálicos (Fig. 13), sirven para cerrar el circuito cubriendo
completamente los pines. (Dodd, 2012)
Figura 12. Cables Jumper
4. DESCRIPCIÓN DE PROCEDIMIENTO

4.1 Diseño e implementación de la estructura

Desde un principio se tomó la idea de que, en nuestro proyecto, la base con sus
respectivas chumaceras y motores, fuese móvil. De esta manera, se interpretan los
ejes X e Y. La estructura donde se apoya el Dremel, el eje Z, solo se movería en
sentido superior e inferior. En la Fig. 13 y 14 se logra observar la investigación de
CNC.

Figura 13 y 14. Lluvia de ideas acerca de la base.


Los primeros planos se realizaron en AutoCAD, definiendo en primera estancia las
posiciones de las chumaceras, los baleros y rodamientos. Nuestras medidas, se
logran apreciar en la fig. 15 se observa el plano, y una vista 3D en Solidworks como
se muestra en la figura 16.

Figura 15. Medidas del plano. Figura 16. Diseño en Solid.


Posteriormente, llevando a cabo las ideas expuestas en el plano, se cortó el PTR
en el taller de mecánica en las instalaciones de la facultad. Teniendo como resultado
una estructura cuadrática (Fig. 18 y 19)

Figura 17 y 18. Corte del PTR.

Después, llevando a cabo el diseño, se obtuvo un


resultado favorable (Fig. 19). Se comenzó a construir la
parte superior de la base, donde se montarán los ejes
“X” y “Z”.

Figura 19. Base de CNC

Posteriormente, se construyó la camilla de la baquelita, el


cuadrado de lámina fue cortado con una caladora, lijados
y perforados con un taladro. Así mismo las medidas fueron
centradas con ayuda de una escuadra. (Fig. 20)

Figura 20. Medidas para la


camilla.
Figura 21 y 22. Construcción de camilla. Figura 23. Construcción de base del Dremel.

Para montar las chumaceras (12mm) en el eje “Y”, fue


necesario revivir la rosca con un machuelo de 3-16
milimétrico para que de esta manera queden fijas y reducir el
movimiento como el desgaste del tornillo, los cuales son
acompañados de tuercas.
Figura 24. Tornillos 3-16.
Posteriormente, se construyeron adaptaron
soportes para los ejes de la camilla de abajo (12mm).
Así mismo, al balero se le adjudico un soporte tipo
omega de una pulgada agarrado de la estructura con
dos tornillos, a la que se le modificó sus orificios
originales para un mayor ajuste. A todas estas
perforaciones dentro de la estructura se les aplico los
debidos pasos; centrar, perforar, pintar (no todos),
crear rosca la rosca y atornillar (3-16 32 NS).
La estructura fue cubierta con un polímero color ocre Figura 26. Desgaste de eje
Figura 25. Unión de
soporte
para evitar la corrosión como se muestra en la figura
número 27.

Figura 27. Camilla


Para la estructura de los ejes “X” y “Z”, se necesitaron dos rectángulos de lámina,
cuatro soportes de aluminio de 8mm y dos fragmentos de varilla lisa de 8mm. Así
como cuatro chumaceras, dos para mover el dremel (eje “Z”) y dos para el eje “X”.
Como se muestra en la figura 28, las chumaceras correspondientes el movimiento
del eje “Z” tiene una relación de posición centrada con respecto con los
fragmentos de varilla lisa –medidas--, Y en el otro par de chumaceras, el eje “Y” se
mueve de lado al lado de la estructura con ayuda de dos varillas lisas(8mm) y una
roscada de media pulgada.

Figura 28.
Dremel. Figura 30. Parte
Figura 29. superior de la
Ensamble del estructura.
je “Z.
Para unir la varilla roscada a la lámina se utilizó una tuerca de doble
paso, la cual está sujeta con un soporte
en forma de omega de media pulgada,
anivelada con arandelas y atornillada a
la misma lámina. Posteriormente, se
construyeron 2 acoples de aluminio,
para unir la varilla roscada al motor.
Figura 31.
Acople Figura 32.
Torno

Finalmente, la estructura quedó lista con sus tres ejes, “X”, “Y”,
y “Z”. Finalmente, la estructura quedó lista con sus tres ejes,
“X”, “Y”, y “Z”.

Figura 31. Ejes montados


4.2 Programación del control e interfaz.

Se tiene una interfaz de C++ con Arduino, en la cual se


mandan órdenes para que cada motor efectué su
movimiento y de esta manera el mecanismo haga su debida
función.

Figura 36. Investigación del


movimiento de motores.

Para la programación en Arduino, se declararon las


variables correspondientes a los motores (steppinz,
dirpinz) para el eje “Z”, (steppinx, dirpinx) para el eje “X”,
y por ultimo (steppiny, dirpiny) para el eje “Y”.

Figura 37. Conexión de Arduino


Se realizaron pruebas con los motores para saber el número
de pasos y milímetros que se moverían, así mismo, se fueron
implementando otros componentes electrónicos para el
funcionamiento requerido.
Figura 38. Pruebas de
programación.

Por void-loop se declaró 2 condiciones


para cada eje, las condiciones eran para
que girara en sentido de las manecillas del
reloj y al contrario de él. (Fig. 39)

Figura 39. Pruebas del void-loop.


Ya que los motores son a 200 pasos, se llevó a cabo un ciclo for
por eje, en sus dos respectivas direcciones. Por último, se en lazo
el Builder-Arduino-motor para ver si logro gira con éxito (Fig.40)

Figura 40. Conexión Arduino-Builder

4.3 Electrónica.

Para la manipulación de los motores, se


implementaron drivers.

Figura 41. Circuito.

Figura 42. Driver.


Los componentes utilizados para el circuito fueron: Pines de conexión machos y
hembra, borneras de Conexión 2 entradas, 3 Driver y Motores a Pasos Nema 17.
5. RESULTADOS

En el proceso manufacturado de la CNC, que fue concebido inicialmente con ideas


grupales que se desarrollaron a partir de prueba y error, se obtuvo una estructura
metálica equilibrada, y poco a poco cada componente fue montado con cuidado y
con las medidas necesarias para su debido funcionamiento.
También, se obtuvo un desarrollo grupal satisfactorio, ya que el proceso de las
pruebas, los cambios y los atracos, el equipo se mantuvo enfocado y persistente en
lo que ahora es.
Como finalidad al desarrollo, la programación correspondiente a los motores de
paso utilizados para cada eje. Teniendo un resultado de una vuelta por 4milimetros
y cada figura solicitada hecha, en una escala de tiempo de 30 segundos a minuto y
medio.
6. ANÁLISIS DE COSTOS

Cantidad Materiales C/U Precio Total


4 Motor Pasos Bipolar Nema17 / 12v / 0,4a / 1,8*Paso $150 $600
3 Tornillos D12mm- L30cm/ 12mm*Giro + $100 $300
Tuerca+Camisa+M3
6 Rodamiento Lineal De Bolas 8mm $50 $300
4 Rodamiento Lineal De Bolas 12mm $50 $200
4 Eje Acerado 8mm 40cm $200 $800
8 Soporte Eje 8mm $40 $320
3 Driver A4988 $75 $225
40 Tornillos $50 $50
1 6 metros PTR $600 $600
1 Arduino Mega $450 $450
1 Broca de Dremel $150 $150
6 Valeros ½ pulgada $50 $300
15 Cables Jumper Hembra-Macho $3.3 $50
25 Electrodos $14 $14

3 metros Varilla roscada $250 $250

1 metros Aluminio $300 $300

1 $250 $250
Pantalla.

60x30 Acrílico. $60 $60


cm
20x20 Baquelita. $50 $50

Total $5269
7. CONCLUSIONES
Por culminación tenemos un resultado satisfactorio, ya que se ha mostrado con
hechos y resultados, un robot capaz de dibujar implementando el movimiento en los
tres ejes requeridos en el protocolo, así como, una interfaz en C++ con Arduino.
Todo este trabajo hecho por el equipo, que ha demostrado todo lo que se logra con
motivación y disciplina, a pesar de todo lo gastado y desperdiciado al pasar por las
pruebas y errores, al final el conocimiento y habilidades obtenidas grupal e
individualmente tienen un valor mayor, y esto se refleja en el trabajo realizado.
8. PERSPECTIVA TECNÓLOGICA
El avance de la ciencia y la técnica en la fabricación de nuevos artefactos y circuitos
electrónicos en los equipos que se usa en nuestro vivir diario, hace necesario
disponer de una tecnología que ayude en el ensamblaje y montaje de los
componentes electrónicos en una sola plataforma de conexión, en un circuito
impreso. Esto es una realidad común en países desarrollados.

El desarrollo de PCBs es utilizado en las universidades, empresas y grupos de


investigación para fabricación y/o modificación de equipos o prototipos con
funciones específicas por ejemplo de instrumentación, control y automatización.
Estas tienen como principal objetivo tener una rapidez y eficacia en un circuito, sin
la necesidad de usar químicos.

En sus inicios este tipo de tecnología era muy escaso de conseguir, ya que sus
únicos modelos existentes eran espaciosos, su precio altamente elevado, sin
embargo, en la actualidad, este sistema

En el sector industrial se ha buscado la manera de simplificar y mejorar los trabajos


a base de la creación de dispositivos las cuales sean capaces de llevar a cabo un
trabajo utilizando un movimiento humanoide. Gracias a esto se eliminan los riesgos
de la mano de obra pesada, y mejorando altamente la eficiencia, con ello, la
productividad de la empresa mejora teniendo una reducción en costos.
Las CNC (Control Numérico por Computadora) es un dispositivo de 3 ejes que sirve
para muchas funciones en un plano cartesiano capaz de realizar el mismo proceso
repetidas veces con la misma precisión, como cortar, taladrar, soldar, imprimir, entre
otras cosas.
Con la incorporación de máquinas CNC, podemos elaborar circuitos impresos sin
necesidad de realizarlo con trabajo manual, además que las pistas o circuitos no se
borran tan fácilmente, y al realizarlo con la CNC se elimina el uso del ácido férrico
que además ser toxico es un contaminante para el medio ambiente, haciendo de
este un proyecto sustentable.
9. BIBLIOGRAFÍAS
Bedford, A. & Fowler, W. (1996). Estática, Mecánica para Ingeniería. Ed.
Addison Wesley Iberoamericana,

Beer, P., Johnston E. & Russell Jr. (1997) Mecánica vectorial para
ingenieros, Estática. (5ª edición). Ed. Mc. Graw Hill Interamericana editores
de México S.A. de C.V.

Capper, D. M. (1994). Introducing C++ for scientists, engineers and


mathematicians. UK: Springer-Verlag.

Chris. H. Pappas & William H. Murray III. (1997). Manual de Borland C++.
México: McGraw – Hill.

Craigh, J. J. (2006). Robótica. Ed. 3. Prentice Hall México.

Deitel, H. M. (1995). Cómo programar en C. México: Prentice may.

Gary J. B. (2000). C++ para ingeniería y ciencias. USA: International


Thomson.

Hibbeler, R. C. (1996) Ingeniería Mecánica, Estática. Ed. Prentice Hall


Hispanoamericana, S. A.

Krajewski, L. & Ritzman L. P. (2000). Administración de operaciones:


estrategia y análisis. Pearson Educación.

Liberty, J. (2000). C++ para principiantes. México: Prentice Hall.

Liskin, M. (1991). Programación estructurada en C. México: McGraw – Hill.

Pardo, J. L. (2013) Montaje y puesta en marcha de sistemas robóticos y


sistemas de visión, en bienes de equipo y maquinaria industrial. IC Editorial.
Sharam, K. (1992). Guía para programadores en C. México: Prentice Hall.
Universidad de Castilla La Mancha (2001) Modelado dinámico y control de
un robot flexible de tres grados de libertad.
10. ANEXOS

Anexo 1. Trabajo en el taller.


Anexo 2. Programación.

Código de programación en Builder


#include <vcl.h> #pragma hdrstop #include "Unit1.h" //---------------------------------------------------------
------------------ #pragma package(smart_init) #pragma link "ComPort" #pragma resource "*.dfm"
TForm1 *Form1; double p; //--------------------------------------------------------------------------- __fastcall
TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //-------------------------------------------------
-------------------------- void __fastcall TForm1::Button3Click(TObject *Sender) { //LA VARIABLE SE
TIENE QUE IGUALAR A EDIT Y EL EL TEXTO DEL EDIDT A DOUBLE/FLOTANTE O ENTERO p=Edit3-
>Text.ToDouble(); //DISTANCIA POSITIVA if(p==1){ ComPort1->WriteString("1"); //1 ditancia }
if(p==2){ ComPort1->WriteString("1"); //2 distancia ComPort1->WriteString("1"); } if(p==3){
ComPort1->WriteString("1"); //3 distancia ComPort1->WriteString("1"); ComPort1-
>WriteString("1"); } if(p==4){ ComPort1->WriteString("1"); ComPort1->WriteString("1"); //4
distancia ComPort1->WriteString("1"); ComPort1->WriteString("1"); } if(p==5){ ComPort1-
>WriteString("1"); ComPort1->WriteString("1"); ComPort1->WriteString("1"); //5 distacia
ComPort1->WriteString("1"); ComPort1->WriteString("1"); } if(p==6){ ComPort1->WriteString("1");
ComPort1->WriteString("1"); ComPort1->WriteString("1"); //6 distacia ComPort1-
>WriteString("1"); ComPort1->WriteString("1"); ComPort1->WriteString("1"); } if(p==7){
ComPort1->WriteString("1"); ComPort1->WriteString("1"); ComPort1->WriteString("1"); //7
distacia ComPort1->WriteString("1"); ComPort1->WriteString("1"); ComPort1->WriteString("1");
ComPort1->WriteString("1"); } if(p==8){ ComPort1->WriteString("1"); ComPort1->WriteString("1");
ComPort1->WriteString("1"); //8 distacia ComPort1->WriteString("1"); ComPort1-
>WriteString("1"); ComPort1->WriteString("1"); ComPort1->WriteString("1"); ComPort1-
>WriteString("1"); } if(p==9){ ComPort1->WriteString("1"); ComPort1->WriteString("1");
ComPort1->WriteString("1"); //9 distacia ComPort1->WriteString("1"); ComPort1-
>WriteString("1"); ComPort1->WriteString("1"); ComPort1->WriteString("1"); ComPort1-
>WriteString("1"); ComPort1->WriteString("1"); } if(p==10){ ComPort1->WriteString("1");
ComPort1->WriteString("1"); ComPort1->WriteString("1"); //10 distacia ComPort1-
>WriteString("1"); ComPort1->WriteString("1"); ComPort1->WriteString("1"); ComPort1-
>WriteString("1"); ComPort1->WriteString("1"); ComPort1->WriteString("1"); ComPort1-
>WriteString("1"); } //DISTANCIA NEGATIVA if(p==-1){ ComPort1->WriteString("a"); //-1 ditancia }
if(p==-2){ ComPort1->WriteString("a"); //-2 distancia ComPort1->WriteString("a"); } if(p==-3){
ComPort1->WriteString("a"); //-3 distancia ComPort1->WriteString("a"); ComPort1-
>WriteString("a"); } if(p==-4){ ComPort1->WriteString("a"); ComPort1->WriteString("a"); //-4
distancia ComPort1->WriteString("a"); ComPort1->WriteString("a"); } if(p==-5){ ComPort1-
>WriteString("a"); ComPort1->WriteString("a"); ComPort1->WriteString("a"); //-5 distacia
ComPort1->WriteString("a"); ComPort1->WriteString("a"); } if(p==-6){ ComPort1-
>WriteString("a"); ComPort1->WriteString("a"); ComPort1->WriteString("a"); //-6 distacia
ComPort1->WriteString("a"); ComPort1->WriteString("a"); ComPort1->WriteString("a"); } if(p==-
7){ ComPort1->WriteString("a"); ComPort1->WriteString("a"); ComPort1->WriteString("a"); //7
distacia ComPort1->WriteString("a"); ComPort1->WriteString("a"); ComPort1->WriteString("a");
ComPort1->WriteString("a"); } if(p==-8){ ComPort1->WriteString("a"); ComPort1-
>WriteString("a"); ComPort1->WriteString("a"); //-8 distacia ComPort1->WriteString("a");
ComPort1->WriteString("a"); ComPort1->WriteString("a"); ComPort1->WriteString("a");
ComPort1->WriteString("a"); } if(p==-9){ ComPort1->WriteString("a"); ComPort1-
>WriteString("a"); ComPort1->WriteString("a"); //-9 distacia ComPort1->WriteString("a");
ComPort1->WriteString("a"); ComPort1->WriteString("a"); ComPort1->WriteString("a");
ComPort1->WriteString("a"); ComPort1->WriteString("a"); } if(p==-10){ ComPort1-
>WriteString("a"); ComPort1->WriteString("a"); ComPort1->WriteString("a"); //-10 distacia
ComPort1->WriteString("a"); ComPort1->WriteString("a"); ComPort1->WriteString("a");
ComPort1->WriteString("a"); ComPort1->WriteString("a"); ComPort1->WriteString("a");
ComPort1->WriteString("a"); } } //--------------------------------------------------------------------------- void
__fastcall TForm1::FormActivate(TObject *Sender) { ComPort1->DeviceName ="COM3";
ComPort1->BaudRate=br9600; ComPort1->DataBits=db8; ComPort1->Parity=paNone; ComPort1-
>StopBits=sb1; ComPort1->FlowControl; ComPort1->Active = !ComPort1->Active; } //------------------
---------------------------------------------------------

int tiempo =5; // declaramos la variable tiempo como (5 milisegundos)


int led =13;
//eje z
int steppinz = 9; // declaramos el pin 10 del arduino como step
int dirpinz = 6; // declaramos el pin 12 del arduino con dir

//eje x
int steppinx = 10;
int dirpinx = 7;

//eje y
int steppiny = 11;
int dirpiny = 8;

void setup()
{
Serial.begin(9600);
pinMode(led,OUTPUT);

//EJE Z
pinMode(steppinz,OUTPUT);
pinMode(dirpinz,OUTPUT);

//EJE X
pinMode(steppinx,OUTPUT);
pinMode(dirpinx,OUTPUT);

//EJE Y
pinMode(steppiny,OUTPUT);
pinMode(dirpiny,OUTPUT);

//EJE Z
void motor_pasos1z(){

digitalWrite(dirpinz,1); // ponemos en alto o 1 logico a pin dir para que gire hacia un
sentido

for(int x = 0; x < 200; x++){ // creamos un lazo for , en nuetro caso el motor es de
200 paso, para dar una vuelta !
digitalWrite(steppinz,HIGH); // las intrucciones que se encuntran dentro del lazo
delay(tiempo); // son las que aran que nuestro motor se mueva ,es la parte donde
van los pulsos
digitalWrite(steppinz,LOW); // necesarios para que el motor se mueva
delay(tiempo);
}
}

void motor_pasos2z(){
digitalWrite(dirpinz,0); // pones en bajo , o en 0 logico para que gire el el sentido
opuesto

for(int x = 0; x < 200; x++) // entramos a un nuevo lazo pero ahora la unica
diferencia es que
{ // que dara 200 pasos o 1 vueltas de 360 grados, 200=1mmsegun mis calclos
estequiometricos :v
digitalWrite(steppinz,HIGH);
delay(tiempo);
digitalWrite(steppinz,LOW);
delay(tiempo);
}
}

//EJE x
void motor_pasos1x(){

digitalWrite(dirpinx,1); // ponemos en alto o 1 logico a pin dir para que gire hacia un
sentido
for(int x = 0; x < 200; x++){ // creamos un lazo for , en nuetro caso el motor es de
200 paso, para dar una vuelta !
digitalWrite(steppinx,HIGH); // las intrucciones que se encuntran dentro del lazo
delay(tiempo); // son las que aran que nuestro motor se mueva ,es la parte donde
van los pulsos
digitalWrite(steppinx,LOW); // necesarios para que el motor se mueva
delay(tiempo);
}
}

void motor_pasos2x(){
digitalWrite(dirpinx,0); // pones en bajo , o en 0 logico para que gire el el sentido
opuesto

for(int x = 0; x < 200; x++) // entramos a un nuevo lazo pero ahora la unica
diferencia es que
{ // que dara 200 pasos o 1 vueltas de 360 grados, 200=1mmsegun mis calclos
estequiometricos :v
digitalWrite(steppinx,HIGH);
delay(tiempo);
digitalWrite(steppinx,LOW);
delay(tiempo);
}
}

//EJE Y
void motor_pasos1y(){

digitalWrite(dirpiny,1); // ponemos en alto o 1 logico a pin dir para que gire hacia un
sentido

for(int x = 0; x < 200; x++){ // creamos un lazo for , en nuetro caso el motor es de
200 paso, para dar una vuelta !
digitalWrite(steppiny,HIGH); // las intrucciones que se encuntran dentro del lazo
delay(tiempo); // son las que aran que nuestro motor se mueva ,es la parte donde
van los pulsos
digitalWrite(steppiny,LOW); // necesarios para que el motor se mueva
delay(tiempo);
}
}

void motor_pasos2y(){
digitalWrite(dirpiny,0); // pones en bajo , o en 0 logico para que gire el el sentido
opuesto

for(int x = 0; x < 200; x++) // entramos a un nuevo lazo pero ahora la unica
diferencia es que
{ // que dara 200 pasos o 1 vueltas de 360 grados, 200=1mmsegun mis calclos
estequiometricos :v
digitalWrite(steppiny,HIGH);
delay(tiempo);
digitalWrite(steppiny,LOW);
delay(tiempo);
}
}

void loop()
{

if(Serial.available())
{
char c=Serial.read();

//EJE Z

if(c=='1'){
Serial.println("giro Z");
motor_pasos1z();
digitalWrite(led,HIGH);
}

if(c=='a'){
Serial.println("giro otro lado Z");
motor_pasos2z();
digitalWrite(led,LOW);
}

//EJE X

if(c=='2'){
Serial.println("giro X");
motor_pasos1x();
digitalWrite(led,HIGH);
}
if(c=='b'){
Serial.println("giro otro lado X");
motor_pasos2x();
digitalWrite(led,LOW);
}

//EJE Y

if(c=='3'){
Serial.println("giro Y");
motor_pasos1y();
digitalWrite(led,HIGH);
}
if(c=='c'){
Serial.println("giro otro lado Y");
motor_pasos2y();
digitalWrite(led,LOW);
}
}
}

You might also like