INSTITUTO POLITÉCNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y
ELÉCTRICA UNIDAD ZACATENCO
DISEÑO Y CONSTRUCCIÓN DE UN SISTEMA DE GRABADO PARA PCB
UTILIZANDO LÁSER DE DIODO AZUL
T É S I S
QUE PARA OBTENER EL TÍTULO DE INGENIERO EN CONTROL Y AUTOMATIZACIÓN
P R E S E N T A N LÓPEZ ACOSTA SANTIAGO OLIVARES ARCE KEVIN TAVIRA DÍAZ MIGUEL
ASESORES: ING. JOSÉ ÁNGEL MEJÍA DOMÍNGUEZ
DR. ALEXANDRE MICHTCHENKO
MÉXICO D.F. NOVIEMBRE DE 2013
INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELECTRICA
UNIDAD PROFESIONAL "ADOLFO LÓPEZ MATEOS"
TEMA DE TESIS
QUE PARA OBTENER EL TITULO DE INGENIERO EN CONTROL Y AUTOMATIZACIÓN
POR LA OPCIÓN DE TITULACIÓN TESIS COLECTIVA Y EXAMEN ORAL INDIVIDUAL
DEBERA(N) DESARROLLAR C. SANTIAGO LÓPEZ ACOSTA C. KEVIN OLIVARES ARCE C. MIGUEL TA VIRA DÍAZ
"DISEÑO Y CONSTRUCCIÓN DE UN SISTEMA DE GRABADO PARA PCB UTILIZANDO LÁSER DE DIODO AZUL"
IMPLEMENTAR EL LÁSER DE DIODO PARA GRABADO DE PCB y ASÍ EVITAR PROCESOS RUDIMENTARIOS EN ' LA ELABORACIÓN DE CIRCUITOS IMPRESOS, AHORRANDO CON ELLO TIEMPO Y ESFUERZO, ADEMÁS DE
APLICAR LOS CONOCIMIENTOS ADQUIRIDOS EN EL TÓPICO SELECTO LLAMADO "TÉCNICAS DE APLICACIÓN DEL LÁSER EN LA MANUFACTURA" ASÍ COMO LOS CONOCIEMIENTOS DE LAS ASIGNATURAS DEL PLAN DE
ESTUDIOS VIGENTE DE LA CARRERA.
~ GENERALIDADES.
MÉXICO D. F., A 27 DE SEPTIEMBRE DE 2013.
DR. ALEXANDRE MICHTCHENKO
~ MARCO TEÓRICO. ~ DESARROLLO Y CONSTRUCCIÓN. ~ DESARROLLO DE LA PROGRAMACIÓN. ~ COTIZACIÓN, CONCLUSIONES Y PROPUESTAS DE MEJORA.
eQ \ ,.,tNU¡f" h fA. ~. ~\. \\",005 AtE."" .. l~~ ~# ~~
6.,¡ R '(~ ~ DRA:. BLANCA MkRITA OCHO~ ~~::¡ g ~ JEFA DEL DEPARTAMENTO ACADEMICO ~
,:'9
INGENIERÍA EN CONTROL Y AUTOMATIZA ' , ¡so.
i
ÍNDICE
ÍNDICE ...................................................................................................................................... i
ÍNDICE DE FIGURAS................................................................................................................ iv
ÍNDICE DE TABLAS................................................................................................................ viii
CAPITULO 1. GENERALIDADES. ............................................................................................... 1
1.1 Antecedentes. ............................................................................................................... 2
1.2 Planteamiento Del Problema. ....................................................................................... 4
1.3 Objetivo General. .......................................................................................................... 4
1.4 Objetivos Particulares. .................................................................................................. 4
1.5 Justificación. .................................................................................................................. 5
CAPÍTULO 2. MARCO TEÓRICO. .............................................................................................. 7
2.1 Introducción A Los Láseres De Diodo. .......................................................................... 8
2.2 Fotoluminiscencia. ........................................................................................................ 8
2.3 El Proceso En Un Láser De Semiconductor. ................................................................ 11
2.4 Emisión Espontánea Y Emisión Estimulada. ............................................................... 13
2.5 Propiedades Básicas Del Láser. ................................................................................... 15
2.6 La Construcción De Un Diodo Láser. ........................................................................... 16
2.7 Curva I-V (Corriente - Voltaje) De Un Diodo Láser...................................................... 18
2.8 Circuitos De Activación Para Diodo Laser (Drivers). ................................................... 19
2.9 Microcontroladores. ................................................................................................... 21
2.10 Microcontroladores Pic. ............................................................................................ 23
2.11 Generalidades Acerca De Matlab. ............................................................................ 27
2.12 Circuitos Impresos. ................................................................................................... 30
2.13 La Comunicación. ...................................................................................................... 31
ii
CAPÍTULO 3. DESARROLLO Y CONSTRUCCIÓN. .................................................................... 34
3.1 El Driver Del Láser. ...................................................................................................... 36
3.2 Láser ............................................................................................................................ 42
3.3 Mesa De Coordenadas. ............................................................................................... 50
3.4 Cicuito de Control ....................................................................................................... 68
CAPÍTULO 4. DESARROLLO DE LA PROGRAMACIÓN ............................................................ 70
4.1 Desarrollo .................................................................................................................... 71
4.2 El Compilador .............................................................................................................. 75
4.3 Instalación De Drivers Adicionales .............................................................................. 83
4.4 Driver Para Puerto Virtual En Proteus ........................................................................ 85
4.5 Conexión Virtual A Pc Mediante Proteus.................................................................... 86
4.6 Instalación De Software Y Prueba Con Hyperterminal ............................................... 94
4.7 Representación De Imágenes En Matlab .................................................................. 102
4.8 Leer Y Escribir Imágenes En Matlab .......................................................................... 103
4.9 Preparando Matlab Para El Procesamiento .............................................................. 104
4.10 Diseño De Pcb A Imagen ......................................................................................... 106
4.11 Procesando La Imagen ............................................................................................ 108
4.12 Envío De Información A Través De Puerto Serie Con Matlab ................................. 110
CAPÍTULO 5. COTIZACIÓN CONCLUSIONES Y PROPUESTAS DE MEJORA ........................... 112
5.1 Cotización. ................................................................................................................. 113
5.2 Conclusiones ............................................................................................................. 114
5.3 Propuestas De Mejora: ............................................................................................. 115
Referencias...................................................................................................................... 117
Anexos ............................................................................................................................. 120
Anexo A: Diodo Láser Nbd7412t ..................................................................................... 120
Anexo B: Itr8102 ............................................................................................................. 121
iii
Anexo C: L293c ................................................................................................................ 123
Anexo D: L7805 ............................................................................................................... 126
Anexo E: Irf610 ................................................................................................................ 128
Anexo F: Ir2110 ............................................................................................................... 130
Anexo G: Pic18f4550 ....................................................................................................... 133
Anexo H: Código de Procesamiento de Imagen en MATLAB. ......................................... 136
Anexo I: Código de Propuesta de activación de Puerto Serie en MATLAB ..................... 137
Anexo J: Código de programación del Microcontrolador PIC para la gestión del sistema
de grabado. ..................................................................................................................... 138
Anexo K: Código de programación que liga el control de los motores. ......................... 140
iv
ÍNDICE DE FIGURAS
Figura 2.1 Momentos de la irradiación. [6] ............................................................................ 9
Figura 2.2 Niveles energéticos. [6] ....................................................................................... 10
Figura 2.3 Esquema de un diodo láser. [7] ........................................................................... 11
Figura 2.4 Bandas de energía de una unión p-n cuando se le aplica un voltaje positivo. .... 12
Figura 2.5 Estructura básica de un láser de diodo. .............................................................. 17
Figura 2.6 Perfil de la radiación láser emitida por un diodo láser simple. ........................... 17
Figura 2.7 Potencia de emisión de un diodo láser en función de la corriente aplicada.[10] 18
Figura 2.8 Circuito de activación para un diodo láser. [12] .................................................. 20
Figura 2.9 Circuito de modulación para un diodo láser. [12] ............................................... 21
Figura 2.10 Visualización del puerto virtual en el Administrador de Dispositivos de
Windows ............................................................................................................................... 32
Figura 2.11 Configuración interna del PLL de la familia PIC18F [14] ................................... 33
Figura 3.1 Circuito RLC .......................................................................................................... 37
Figura 3.2 Circuito Buck con valores propuestos, donde D1 representa el láser.................. 39
Figura 3.3 Simulación del Circuito Buck ................................................................................ 39
Figura 3.4 Armado del driver completo ................................................................................ 40
Figura 3.5: Conexión típica del IR2110 para dos MOSFET [15] ............................................ 41
Figura 3.6 Simulación habiendo añadido el generador de funciones .................................. 41
Figura 3.7 Visualización del funcionamiento del driver ante una señal cuadrada.
b)Parámetros asignados ....................................................................................................... 42
Figura 3.8 Circuito propuesto integrando el IR2210 y el IRF610 .......................................... 42
Figura 3.9 a) Láser de diodo NBD7412T b) Lente incluido para colimar la luz .................... 44
Figura 3.10 Dispersión de la luz en un láser de diodo .......................................................... 45
Figura 3.11 Tratando la luz ................................................................................................... 45
Figura 3.12 Se muestra el punto en donde es posible vaporizar. ......................................... 46
Figura 3.13: Haz de luz apuntado hacia un vaso de vidrio con agua. .................................. 46
Figura 3.14 Macho del apuntador ........................................................................................ 47
v
Figura 3.15 Hembra del apuntador ...................................................................................... 48
Figura 3.16 Elementos ensamblados a) Lente b)Láser de diodo .......................................... 48
Figura 3.17 Equipo láser operando a 500mA sin lente ......................................................... 49
Figura 3.18 Equipo láser operando a 500mA con lente ....................................................... 49
Figura 3.19 Motorreductor ................................................................................................... 51
Figura 3.20 Esparrago de ½ “ UNC ....................................................................................... 53
Figura 3.21: Placa donde se montará el husillo, con un barreno de 7/8” en el centro ........ 53
Figura 3.22 Rodamiento No. 608 .......................................................................................... 54
Figura 3.23 Cople para unión entre el husillo y el motorreductor ........................................ 56
Figura 3.24 Optointerruptor ................................................................................................. 57
Figura 3.25 Encoder ciego (sin barrenos) ............................................................................. 57
Figura 3.26 Acrílico de 2mm de espesor ............................................................................... 58
Figura 3.27 Husillo con baleros y encoder montados ........................................................... 58
Figura 3.28 Optointerruptor acoplado al husillo .................................................................. 59
Figura 3.29 Motorreductor y husillo acoplados. .................................................................. 59
Figura 3.30 Soporte con rodamiento. ................................................................................... 60
Figura 3.31 Fijación de motor. .............................................................................................. 60
Figura 3.32 Vista superior de la fijación del motor. ............................................................. 61
Figura 3.33 Ensamblado final de un eje ............................................................................... 62
Figura 3.34 Vista isométrica de la ubicación de la posición HOME...................................... 63
Figura 3.35 Vista superior de la posición HOME .................................................................. 63
Figura 3.36 Circuito propuesto para el encoder, teniendo un cero lógico. .......................... 64
Figura 3.37 Circuito implementado ...................................................................................... 65
Figura 3.38 Circuito que representa la conexión de los 2 encoder, y en ambos se muestra
que se envía un cero lógico al microcontrolador. ................................................................. 66
Figura 3.39 Los encoders de ambos ejes se encuentran enviando un 1 lógico al
microcontrolador. ................................................................................................................. 66
Figura 3.40 Disposición de terminales del L293C ................................................................. 67
Figura 3.41 Conexión típica del L293C .................................................................................. 67
Figura 3.42 Conexión de los motores al L293C ..................................................................... 68
vi
Figura 3.43 Disposición de los pines del PIC18F4550 [14] .................................................... 69
Figura 4.1 Diagrama de flujo de la programación del Microcontrolador PIC ...................... 72
Figura 4.2 Diagrama de flujo de la programación en MATLAB. ........................................... 74
Figura 4.3 Ícono de acceso a CCS Compiler. ......................................................................... 75
Figura 4.4 Entorno de trabajo de CCS Compiler ................................................................... 76
Figura 4.5 Generando un nuevo proyecto de programación PIC ......................................... 77
Figura 4.6 Asignando un nombre y ubicación al proyecto. .................................................. 77
Figura 4.7 Mostrando ubicación de las opciones del proyecto. ........................................... 78
Figura 4.8 Opciones que se ofrecen para modificar el proyecto .......................................... 79
Figura 4.9 Designando al programa el PIC a usar ................................................................ 80
Figura 4.10 Corroborando que las rutas de los archivos a usar se encuentren incluidas en el
proyecto ................................................................................................................................ 81
Figura 4.11 Ubicación de las carpetas que se deben incluir en el proyecto ......................... 81
Figura 4.12 Desplegando la opción de compilar. ................................................................. 82
Figura 4.13 Compilación del programa completa, generando ficheros para el PIC. ............ 83
Figura 4.14 Archivo MCHPCDC.inf ........................................................................................ 83
Figura 4.15 Instalando el fichero en la PC ............................................................................ 84
Figura 4.16 Archivo MCHFSUSB_Setup.exe .......................................................................... 84
Figura 4.17 Ventana del instalador donde solicita “Aceptar Términos de Uso” .................. 85
Figura 4.18 Ruta de acceso para instalar controlador de USB Virtual ................................. 85
Figura 4.19 Instalación de drivers completa ........................................................................ 86
Figura 4.20 Ubicación del ISIS Proteus ................................................................................. 87
Figura 4.21 Entorno de trabajo de ISIS ................................................................................. 87
Figura 4.22 Iniciando la librería ............................................................................................ 88
Figura 4.23 Desplegando el componente y características .................................................. 89
Figura 4.24 Conector virtual USBCONN ................................................................................ 90
Figura 4.25 Lista de componentes añadidos desde la librería ............................................. 90
Figura 4.26 Circuito de prueba ............................................................................................. 91
Figura 4.27 Opciones del PIC18F4550 .................................................................................. 92
vii
Figura 4.28 Seleccionando el fichero a cargar en el PIC ....................................................... 93
Figura 4.29 Fichero usb.hex añadido al PIC .......................................................................... 93
Figura 4.30 Botones de animación de Proteus ..................................................................... 94
Figura 4.31 Primera vez que se conecta el puerto a la PC .................................................... 95
Figura 4.32 Asistente para instalación de hardware nuevo ................................................. 95
Figura 4.33 Instalación en progreso ..................................................................................... 96
Figura 4.34 Advertencia de controlador obsoleto ................................................................ 96
Figura 4.35 Instalación de hardware exitosa y completa..................................................... 97
Figura 4.36 Puerto virtual registrado como dispositivo activo en el Administrador de
dispositivos de Microsoft Windows. ..................................................................................... 97
Figura 4.37 Iniciando HyperTerminal ................................................................................... 99
Figura 4.38 Seleccionando puerto de conexión .................................................................... 99
Figura 4.39 Configuración de los parámetros de conexión serie ....................................... 100
Figura 4.40 HyperTerminal listo, interactuando con Proteus............................................. 101
Figura 4.41 Envío de dato exitoso, LED conectado en RB3 encendido ............................... 102
Figura 4.42 Creando un nuevo M-File ................................................................................ 105
Figura 4.43 Nuevo M-File listo para ser escrito .................................................................. 105
Figura 4.44 Programa escrito en MATLAB ......................................................................... 106
Figura 4.45 Diseñando la PCB en el programa ................................................................... 107
Figura 4.46 a) Guardando el diseño como imagen con PDFCreator b) Diseño en formato
.jpg ...................................................................................................................................... 107
Figura 4.47 Botón de PLAY en MATLAB para la ejecución del programa ........................... 108
Figura 4.48 Visualización de la imagen convertida en matriz en escala de grises ............. 109
Figura 4.49 Visualización de imágenes a) Imagen original b)Resultado de la simulación 110
Figura 4.50 M-File para la activación del puerto serie ....................................................... 111
Figura 5.1 Mesa de coordenadas completamente ensamblada. ....................................... 114
viii
ÍNDICE DE TABLAS
Tabla 3.1 Características del NBD7412T ........................................................................................... 44
Tabla 3.2 Rosca exterior, ángulo de flanco 60 ° ................................................................................ 52
Tabla 3.3 Rodamiento de la serie 600, NSK ....................................................................................... 55
Tabla 5.1 Cotización de acuerdo al material propuesto para el desarrollo del sistema de grabado
......................................................................................................................................................... 113
CAPITULO 1. GENERALIDADES.
En este capítulo se define y plantea el problema a resolver con el presente
proyecto se tesis, así como el objetivo general y objetivos particulares, además de
justificar el proyecto.
2
1.1 Antecedentes.
El grabado de materiales fue una de las primeras expresiones artísticas del ser
humano y se remonta al grabado en cuevas (arte parietal) y huesos en el periodo
paleolítico. El duplicado de imágenes grabadas se presentó con los sumerios hace 3000
años quienes grabaron sellos cilíndricos de piedra. El grabado de metal comenzó siendo
una técnica decorativa en el siglo V AC y era realizada con cinceles y martillos, o a mano
usando una herramienta filosa y resistente que producía líneas más finas, siendo un
método popular en Grecia en los siglos IV y III AC. En Egipto y Babilonia se usaron sellos
de madera para marcar tabiques. Los romanos grababan madera y metal para ser usados
como negativos sobre vasijas y otros utensilios. Los japoneses hicieron las primeras
impresiones autentificadas, grabando en bloques de madera tablas budistas en el siglo
VIII. En los primeros cuatro siglos de nuestra era fue cuando se comenzó a realizar
grabado en cristal. [1]
El trabajo artístico sobre madera y otros materiales tuvo un nuevo auge en el siglo
XV en Europa y era principalmente usado para decoraciones religiosas. En el siglo XVI se
difundió con más fuerza el uso del grabado de cristal usando martillo y cincel con punta de
diamante. Posteriormente, el grabado en madera y metales se usó en el desarrollo de la
imprenta y para hacer portadas y dibujos en libros. Se desarrolló al mismo tiempo el
grabado con chorro de arena (sand blast) que consiste en poner una máscara sobre el
material y dejar caer un chorro de arena hasta lograr la profundidad deseada de grabado,
obteniendo resultados altamente estéticos en metales, cristal y madera. Hasta este punto
en la historia, todos los métodos de grabado estaban basados en la acción de golpear o
raspar el material con herramientas hechas de algún material más duro que el que se
deseaba grabar. [2]
Los métodos fotográficos de grabado (fotogalvanografía), comenzaron a
desarrollarse a principios del siglo XIX por Niépce y se basaban fundamentalmente en el
3
uso de sustancias químicas que reaccionaban al contacto con la luz para afectar las zonas
deseadas del grabado, siendo usado principalmente en metales para fines de impresión.
Los métodos electrolíticos de grabado (electro erosión) se presentaron a mediados
del siglo XIX con Walker como principal recopilador de información, dichos métodos se
basaban en la inmersión de una placa de cobre cubierta por alguna solución metálica en
un electrolito y el uso de una corriente eléctrica para fijar los materiales.
El rotograbado fue usado por primera vez a finales del siglo XIX por Klic siendo el
primer método de grabado hecho con máquina y fue igualmente usado para imprentas. A
partir del siglo XIX se comenzó a usar el ataque con ácido en metales, piedras y vidrio. [3]
En el siglo XX se desarrollaron mejoras en la mayoría de métodos convencionales,
siendo auxiliados por el uso de máquinas y control eléctrico. Con el desarrollo de nuevos
materiales industriales, como plásticos y nuevas aleaciones, algunos métodos
convencionales comenzaron a presentar deficiencias en el trabajo de los mismos.
El uso de láser para realizar trabajo sobre materiales comenzó en la década de los
70s y cambió la manera en que varios procesos se realizaban, además permitió el grabado
sobre algunos de los materiales industriales más difíciles de trabajar como el titanio.
Se han desarrollado no solo mejoras en la técnica de grabado, sino que también se
han producido materiales especiales para ser trabajados con láser que dan resultados
asombrosos en contraste y precisión.
Actualmente, el grabado con láser no se usa únicamente en la industria para
realizar marcaje de piezas y decoración de las mismas de forma rápida y precisa, sino que
también es utilizado por artistas y diseñadores gráficos para dar vida a sus obras.
Hoy en día existe un gran número de compañías a nivel mundial enfocadas en el
desarrollo de sistemas integrales de grabado con láser, ofreciendo una amplia gama de
posibilidades para la industria, tanto en precio como en características de operación,
impulsando ampliamente el uso de esta tecnología.
4
1.2 Planteamiento Del Problema.
El problema que se aborda en este trabajo es la integración de elementos
mecánicos, electrónicos, ópticos y computacionales en un sistema de grabado con láser
que permita reducir el tiempo de elaboración de un circuito impreso.
Dado al tiempo que se emplea con los métodos tradicionales, lo que se busca es
reducir dicho tiempo y de esta manera optimizar recursos que faciliten su elaboración,
logrando así así eficacia y reducción de lapsos en el proceso de diseño.
1.3 Objetivo General.
El objetivo general de la tesis es el de diseñar e implementar un sistema capaz de
grabar PCB (acrónimo en inglés de "Printed Circuit Board") usando una luz láser como
herramienta de trabajo y así evitar procesos rudimentarios en la elaboración de circuitos
impresos, ahorrando con ello tiempo y esfuerzo, además de aplicar los conocimientos
adquiridos en el tópico selecto llamado "Técnicas de Aplicación del Láser en la
Manufactura" así como los conocimientos de las asignaturas del plan de estudios vigente
de la carrera de Ingeniería en Control y Automatización
1.4 Objetivos Particulares.
1.- Seleccionar el circuito de control y el láser de diodo azul que permitan el correcto
funcionamiento del sistema de grabado para PCB (acrónimo en inglés de "Printed Circuit
Board").
2.- Investigar y conocer la importancia de utilizar el láser en industrias de diversos rubros
en la actualidad.
5
3.- Investigar y analizar las diferentes técnicas de grabado que existen en la actualidad
4.- Desarrollar el código de programación necesario utilizando un PIC 18F4550
5.- Diseñar el prototipo de sistema de grabado de tarjetas PCB
1.5 Justificación.
Dentro de las materias teórico - prácticas incluidas en el plan de estudios vigente
de la carrera de Ingeniería en Control y Automatización, se contempla la realización de
diversos circuitos electrónicos ya sea para prácticas, proyectos o participaciones en
diversos eventos por parte de los alumnos.
En gran parte de los casos en las actividades antes mencionadas, es necesario
elaborar circuitos impresos o PCB (acrónimo en inglés de "Printed Circuit Board") para dar
mayor presentación a un trabajo.
Como se mencionó en párrafos anteriores el proceso convencional de elaboración
de circuitos impresos, específicamente las actividades que permiten plasmar el circuito
eléctrico en una tablilla fenólica, representan una gran pérdida de tiempo. Es por ello que
se optó por desarrollar un sistema que permita reducir tiempo en la elaboración de
circuitos impresos utilizando una herramienta muy importante durante los últimos años:
el láser.
El grabado con láser ha venido a sustituir métodos convencionales por su
versatilidad, precisión, y velocidad en el trabajo, entre otros factores, dando como
resultado un ahorro no solo económico, sino también en tiempo.
6
La gran facilidad que proporciona el uso de un sistema automático controlado por
una computadora, que si bien no es exclusivo del grabado con láser, permite que
cualquier persona con conocimientos básicos de computación desarrolle trabajos
rápidamente, ya que su uso es como el de una impresora común.
Con todo esto se justifica plenamente el desarrollo de este tipo de tecnología en el
presente proyecto de tesis, tecnología que aún no ha mostrado su máximo potencial.
7
CAPÍTULO 2. MARCO TEÓRICO.
En el presente capítulo se da a conocer la teoría que permita realizar los
experimentos correspondientes previos al diseño del prototipo.
Se habla de manera general de los láseres, drivers y electrónica que permita la
correcta selección del equipo y componentes que se adecúen a las necesidades del
proyecto.
8
2.1 Introducción A Los Láseres De Diodo.
La palabra Laser es un acrónimo de Light Amplification by stimulated emission of
radiation, que en español quiere decir “amplificación de luz por emisión estimulada de
radiación”. [4]
El primer diodo láser operacional consistió en un cristal de arseniuro de galio
(GaAs), impurificado para formar una unión pn, y un potencial directo aplicado. Se eligió el
arseniuro de galio en lugar de silicio debido a su banda directa. En materiales de banda
directa, los electrones de conducción pueden perder energía directamente por emisión de
fotones. En materiales de banda indirecta, los electrones deben perder primero el exceso
en cantidad de movimiento antes de emitir un fotón. Por consiguiente, los materiales de
banda directa son más eficientes para la producción de luz. [5]
2.2 Fotoluminiscencia.
En el año de 1916 se estableció teóricamente que con la ayuda de la luz es posible
llevar ciertos átomos a un estado de excitación y que estos empiecen a irradiar ondas
luminosas con otra frecuencia.[5]
La luz observada irradiando del diodo laser son cuantos de radiación
electromagnética llamados fotones, el desprendimiento de fotones de un átomo excitado
se provoca mediante la acción de un cuanto de energía aplicado hacia dicho átomo, como
resultado de esta interacción el átomo pasa a su estado base emitiendo un fotón que
tiene las mismas características de dirección y de fase que el fotón inicial, dicho proceso
tiene lugar dentro de una cavidad con dos espejos en paralelo donde existe un medio
emisor de luz.[5]
9
Brevemente, si el átomo absorbe un fotón, la energía del átomo se incrementa,
uno de sus electrones pasa de la órbita normal (llamada también estado base o tierra) en
la cual poseía una energía E0, a una órbita de energía superior E2. Aquí el estado de
excitación es inestable, a diferencia del estado de estabilidad del nivel E0. Pero este
electrón pasa fácilmente del nivel E2 a otro menos inestable, al nivel E1, y es entonces
cuando el átomo emite un fotón. Si se toma en cuenta que en la realidad este proceso se
produce no en un átomo solo sino en un inmenso volumen de ellos, el efecto final del
proceso es un flujo de energía electromagnética constituido por la suma de los fotones
emitidos.
La irradiación se prolonga hasta que todos los electrones abandonen el nivel E2, o
sea, hasta que bajen del nivel E2 al nivel E1:
Figura 2.1 Momentos de la irradiación. [6]
Energía / fotón = E2 – E1 (2.1)
La excitación obligará a los electrones a pasar de nuevo al nivel E2 y con ello se
producirá un pulso de luz. La frecuencia del rayo de luz emitido depende, también, de la
anterior diferencia de energías, puesto que:
H ʋ = E2 – E1 (2.2)
10
Donde E2 es la energía del nivel energético superior, E1 es la energía del nivel
energético inferior, ʋ es frecuencia y h = 6.6262 x 10 -54 conocida como la constante de
Planck
En un material semiconductor "puro", la estructura de las bandas y la brecha de
energía están determinadas por el propio material. Añadiendo otro material con
portadores de carga, aparecen niveles de energía adicionales dentro de la brecha ( ver
Figura 2.1).
Si la impureza contiene más electrones que el propio material semiconductor puro,
los portadores de carga añadidos son negativos (electrones), y el material se denomina
"semiconductor de tipo n". En este tipo de materiales aparecen niveles energéticos
adicionales muy cercanos a la banda de conducción, con lo que es suficiente con un
aporte pequeño de energía para hacerlos saltar a la banda de conducción, de modo que
tenemos más portadores de carga libres para conducir la electricidad.
Si la impureza contiene menos electrones que el material semiconductor, los
niveles energéticos extras aparecen cerca de la banda de valencia. Los electrones de la
banda de valencia pueden saltar a estos niveles fácilmente, dejando atrás "agujeros
positivos". Este tipo de material se denomina "semiconductor de tipo p".
En la figura 2.2 se describe la influencia de la adición de impurezas en la anchura
de las bandas de energía.
Figura 2.2 Niveles energéticos. [6]
11
2.3 El Proceso En Un Láser De Semiconductor.
Cuando se une un semiconductor tipo "p" a otro tipo "n", se obtiene una "unión p-
n". Esta unión p-n conduce la electricidad en una dirección preferente (hacia adelante).
Este aumento direccional de la conductividad es un mecanismo común en todos los
diodos y transistores utilizados en la electrónica. Y es la base del proceso láser que tiene
lugar entre las bandas de energía de la unión.
La Figura 2.3 muestra el esquema de un diodo láser con los materiales P y N como
se indica anteriormente.
Figura 2.3 Esquema de un diodo láser. [7]
El nivel máximo de energía ocupado por electrones se denomina Nivel de
Fermi. Cuando se conecta el polo positivo de un voltaje a la cara p de la unión p-n , y el
negativo a la cara n , se establece un flujo de corriente a través de la unión p-n . Esta
conexión se denomina Voltaje dirigido hacia adelante o positivo. Si se conecta con la
polaridad inversa (polo + a la cara "n" y polo - a la cara "p") se denomina Voltaje dirigido
12
hacia atrás o negativo; éste causa un aumento de la barrera de potencial existente entre
las partes p y n , con lo que evita el paso de la corriente a través de la unión.
Cuando se aplica un voltaje a través de una unión p-n , la población de las bandas
de energía cambia.
El voltaje puede ser aplicado de dos formas o configuraciones posibles:
a) Voltaje positivo o hacia adelante - significa que el polo negativo del voltaje es
aplicado a la cara "n" de la unión , y el polo positivo a la cara "p" , como se
muestra en la figura 3:
Figura 2.4 Bandas de energía de una unión p-n cuando se le aplica un voltaje positivo.
El voltaje hacia adelante o positivo crea portadores extra en la unión, reduciendo la
barrera de potencial, y origina la inyección de portadores de carga, a través de la unión, al
otro lado.
Cuando un electrón de la banda de conducción en el lado "n" es inyectado a través
de la unión a un " agujero " vacío en la banda de valencia del lado "p", tiene lugar un
proceso de recombinación (electrón + agujero), y se libera energía.
13
En los diodos láser, nuestro interés se concentra en los casos específicos en que la
energía es liberada en forma de radiación láser. Se produce un fuerte aumento de la
conductividad cuando el voltaje positivo es aproximadamente igual a la brecha de energía
del semiconductor.
b) Voltaje negativo o hacia atrás - causa un aumento de la barrera de potencial,
disminuyendo la posibilidad de que los electrones salten al otro lado.
Aumentando el voltaje negativo a valores altos (décimas de volt), se puede
obtener un colapso del voltaje de la unión.
2.4 Emisión Espontánea Y Emisión Estimulada.
El diodo láser se utiliza igual que un diodo LED, es decir, como un diodo p-n
polarizado directamente. Sin embargo, aunque su estructura parece similar a la de un LED
en lo que respecta a electrones y huecos, no lo es en lo referente a los fotones.
Como en el caso del LED, inyectamos electrones en la zona activa polarizando
directamente el diodo láser. Para bajos niveles de inyección, estos electrones y huecos se
recombinan de forma radiante mediante el proceso de emisión espontánea, emitiendo
fotones. La emisión estimulada permite obtener una alta pureza espectral de la señal,
fotones coherentes y una alta velocidad de respuesta. La diferencia fundamental es pues
la emisión espontánea en el LED y estimulada en el diodo láser.
Supongamos un electrón con un vector de onda k y un hueco con un vector de
onda k en las bandas de conducción y de valencia del semiconductor respectivamente. Si
no hay fotones en el semiconductor, el electrón y el hueco se recombinan emitiendo un
fotón, esto sería una emisión espontánea.
14
Si existen fotones en el semiconductor y éstos tienen la misma energía hω que la
diferencia de energía entre electrón y hueco, además de la emisión espontánea se
produce otro tipo de proceso de emisión llamado emisión estimulada. El proceso de
emisión estimulada es proporcional a la concentración de fotones (de fotones con la
energía adecuada para causar la transición electrón-hueco). Los fotones emitidos tendrán
la misma fase que los fotones incidentes causantes de la emisión, es decir, tendrán la
misma energía y vector de onda.
La frecuencia de generación de fotones de forma estimulada viene dictada por la
velocidad de recombinación en este tipo de proceso: [8]
Wstem(hω) = Wem(hω) * nph(hω) (2.3)
Donde nph(hω) es la concentración de fotones y Wem es la velocidad de
recombinación en el proceso de emisión espontánea. En el LED, cuando los fotones son
emitidos de forma espontánea, éstos son perdidos bien por reabsorción o bien porque
simplemente abandonan la estructura. Por tanto, nph(hω) permanece en un valor muy
pequeño y no puede iniciarse un proceso de emisión estimulada.
Vamos a considerar ahora la posibilidad de que los fotones sean emitidos de forma
espontánea y que seamos capaces de diseñar una cavidad óptica tal que los fotones que
posean una energía bien definida sean confinados de forma selectiva en la estructura del
semiconductor. Esto aumentaría nph(hω) y a su vez la emisión estimulada. El resultado
sería una señal de salida con un espectro de emisión muy estrecho y que podría ser
modulada a altas velocidades.
15
2.5 Propiedades Básicas Del Láser.
La luz es básicamente energía, y, como toda clase de energía, puede ser
transformada en calor; de aquí que pueda ser utilizada como herramienta industrial.
Las tres propiedades básicas de un rayo láser son:
a) Coherencia: Relaciona la fase entre un frente de onda emitido y el que le sigue;
esta coherencia es temporal y espacial. La luz emitida por una maquina láser es
coherente por naturaleza.
b) Monocromático: La luz blanca está compuesta de todos los colores básicos,
esto limita su uso industrial, puesto que presenta aberraciones como
dispersión, etc. La luz de u laser, en cambio, es por naturaleza monocromática,
es decir, de un solo color.
c) Polarización: La luz de una fuente incandescente no es polarizada; para lograr
polarizarla se requieren de dos filtros cuando menos para obtener el haz de luz
cortado. La luz láser es polarizada dada la necesidad de tener las ventanas de
Brewster que forman parte de toda máquina láser.
A continuación se menciona la ley de Brewster para la polarización de la luz.
“Para obtener luz con polarización se emplea el fenómeno de la reflexión. Cuando
una superficie refleja un haz de luz, se encuentra que la componente de E (vector de
campo eléctrico) paralela a la superficie, se refleja más intensamente que otra.”
16
De hecho, a un ángulo particular de incidencia sobre un dieléctrico (el ángulo de
Brewster) el haz reflejado consta completamente de la luz cuyo vector eléctrico es
paralelo a la superficie. Resulta que el ángulo de polarización (ó ángulo de Brewster) es tal
que los rayos reflejados y refractados se encuentran entre sí a un ángulo de 90°.
Para encontrar la relación entre el ángulo de polarización y el índice de refracción
de la sustancia reflectora, se aplica la ley de Snell. Se tiene:
µ = sen i / sen r (2.4)
Donde i es el ángulo de incidencia y r el ángulo de refracción. En el ángulo de
polarización, i = Өp, y a partir de lo anterior se tiene que:
Өp + 90° r = 180° (2.5)
Por lo tanto:
sen (r) = cos Өp (2.6)
Resultando que
µ = tan Өp (2.7)
Esta relación se llama ley de Brewster.
2.6 La Construcción De Un Diodo Láser.
Las capas de los materiales semiconductores están dispuestas de modo que se crea
una región activa en la unión p-n, y en la que aparecen fotones como consecuencia del
proceso de recombinación. Una capa metálica superpuesta a las caras superior e inferior
17
permite aplicar un voltaje externo al láser. Las caras del semiconductor cristalino están
cortadas de forma que se comportan como espejos de la cavidad óptica resonante.
Figura 2.5 Estructura básica de un láser de diodo.
La Figura 2.6 describe la forma en que la radiación láser electromagnética es
emitida para un láser simple de diodo. La radiación láser tiene forma rectangular y se
difunde a diferentes ángulos en dos direcciones.
Figura 2.6 Perfil de la radiación láser emitida por un diodo láser simple.
18
2.7 Curva I-V (Corriente - Voltaje) De Un Diodo Láser.
Si la condición requerida para la acción láser de inversión de población no existe,
los fotones serán emitidos por emisión espontánea. Los fotones serán emitidos
aleatoriamente en todas las direcciones, siendo ésta la base de los LED - diodo emisor de
luz .
La inversión de población sólo se consigue con un bombeo externo. Aumentando la
intensidad de la corriente aplicada a la unión p-n, se alcanza el umbral de corriente
necesario para conseguir la inversión de población.[9]
En la figura 2.7 se muestra un ejemplo de la potencia emitida por un diodo láser en
función de la corriente aplicada. Se aprecia enseguida que la pendiente correspondiente a la
acción láser es mucho mayor que la correspondiente a un LED.
Figura 2.7 Potencia de emisión de un diodo láser en función de la corriente aplicada.[10]
El umbral e corriente para el efecto láser viene determinado por la intersección de la
tangente de la curva con el eje X que indica la corriente (esta es una buena aproximación)
19
Cuando el umbral de corriente es bajo, se disipa menos energía en forma de calor, con lo
que la eficiencia del láser aumenta. En la práctica, el parámetro importante es la densidad
de corriente, medida en A/cm2, de la sección transversal de la unión p-n.
2.8 Circuitos De Activación Para Diodo Laser (Drivers).
Al diseñar circuitos de activación para diodos láser debe tomarse en cuenta la baja
resistencia del diodo cuando se opera con un voltaje directo a través de él. Aquí la
implicación es que los diodos deben alimentares con una fuente de corriente, es decir, con
una fuente que tenga alta resistencia interna. Tales condiciones pueden lograrse mediante
la sustitución del resistor de carga en un circuito de emisor común completamente
estabilizado por el diodo láser (figura 2.8). [11] La corriente constante se obtiene al
sustituir un diodo Zener en lugar de la resistencia, normalmente entre la base y tierra. La
corriente a través del diodo láser está dada por:
ID
= (VZ
-VBE
) / RE (2.8)
En donde Vz es el voltaje de ruptura del diodo Zener, VBE
es el voltaje base-emisor y
RE
es la resistencia del emisor. Una disposición alternativa es colocar el diodo en el emisor
del circuito. Debido a que la corriente del emisor es determinada por el voltaje de la base,
y por ello el voltaje Zener, esta disposición ayuda a asegurarse en contra de variaciones
del voltaje suministrado.
20
Figura 2.8 Circuito de activación para un diodo láser. [12]
El circuito de emisor común completamente estabilizado también representa un
punto de inicio idóneo en caso de que el diodo vaya a ser activado en el modo por pulsos
con la señal de modulación acoplada capacitivamente a la base. El punto de operación es
determinado por la resistencia de emisor y por la cadena de polarización del
potenciómetro, R1 y R2 (figura 2.9) y debe elegirse alrededor del punto medio de la
característica de salida potencia-corriente. En caso de que no se disponga de esta
información, el punto de operación debe elegirse a la mitad de la corriente umbral y la
corriente directa pico.
21
Figura 2.9 Circuito de modulación para un diodo láser. [12]
2.9 Microcontroladores.
Un microcontrolador (abreviado μC, UC o MCU) es un circuito integrado
programable, capaz de ejecutar las órdenes grabadas en su memoria. Está compuesto de
varios bloques funcionales, los cuales cumplen una tarea específica. Un microcontrolador
incluye en su interior las tres principales unidades funcionales de una computadora:
unidad central de procesamiento, memoria y periféricos de entrada/salida.
Algunos microcontroladores pueden utilizar palabras de cuatro bits y funcionan a
velocidad de reloj con frecuencias tan bajas como 4 kHz, con un consumo de baja potencia
(mW o microwatts). Por lo general, tendrá la capacidad para mantener la funcionalidad a
la espera de un evento como pulsar un botón o de otra interrupción, el consumo de
energía durante el sueño (reloj de la CPU y los periféricos de la mayoría) puede ser sólo
22
nanowatts, lo que hace que muchos de ellos muy adecuados para aplicaciones con batería
de larga duración.
Los microcontroladores son diseñados para reducir el costo económico y el
consumo de energía de un sistema en particular. Por eso el tamaño de la unidad central
de procesamiento, la cantidad de memoria y los periféricos incluidos dependerán de la
aplicación. Representan la inmensa mayoría de los chips de computadoras vendidos,
sobre un 50% son controladores "simples" y el restante corresponde a DSP más
especializados. Pueden encontrarse en casi cualquier dispositivo electrónico como
automóviles, lavadoras, hornos microondas, teléfonos, etc.
Un microcontrolador típico tendrá un generador de reloj integrado y una pequeña
cantidad de memoria de acceso aleatorio y/o ROM/EPROM/EEPROM/flash, con lo que
para hacerlo funcionar todo lo que se necesita son unos pocos programas de control y un
cristal de sincronización. Los microcontroladores disponen generalmente también de una
gran variedad de dispositivos de entrada/salida, como convertidor analógico digital,
temporizadores, UARTs y buses de interfaz serie especializados, como I2C y CAN.
Frecuentemente, estos dispositivos integrados pueden ser controlados por instrucciones
de procesadores especializados. Los modernos microcontroladores frecuentemente
incluyen un lenguaje de programación integrado, como el lenguaje de programación
BASIC que se utiliza bastante con este propósito.
Un microcontrolador, posee los siguientesperiféricos:
Entradas y salidas: También conocidos como puertos de E/S, generalmente
agrupadas en puertos de 8 bits de longitud, permiten leer datos del exterior o
escribir en ellos desde el interior del microcontrolador, el destino habitual es el
23
trabajo con dispositivos simples como relés, LED, o cualquier otra cosa que se
le ocurra al programador.
Temporizadores y Contadores: Son circuitos sincrónicos para el conteo de los
pulsos que llegan a su poder para conseguir la entrada de reloj. Si la fuente de
un gran conteo es el oscilador interno del microcontrolador es común que no
tengan un pin asociado, y en este caso trabajan como temporizadores. Por otra
parte, cuando la fuente de conteo es externa, entonces tienen asociado un pin
configurado como entrada, este es el modo contador.
Conversor analógico-digital: Como es muy frecuente el trabajo con señales
analógicas, éstas deben ser convertidas a digital y por ello muchos
microcontroladores incorporan un conversor analógico-digital, el cual se utiliza
para tomar datos de varias entradas diferentes que se seleccionan mediante un
multiplexor.
Modulador de Ancho de Pulsos: Los PWM (Pulse Width Modulator) son
periféricos muy útiles sobre todo para el control de motores, sin embargo hay
un grupo de aplicaciones que pueden realizarse con este periférico, dentro de
las cuales podemos citar: inversión DC/AC para UPS, conversión digital
analógica D/A, control regulado de luz (dimming) entre otras.
2.10 Microcontroladores Pic.
Los PIC son una familia de microcontroladores tipo RISC fabricados por Microchip
Technology Inc. y derivados del PIC1650, originalmente desarrollado por la división de
microelectrónica de General Instrument.
24
El PIC original se diseñó para ser usado con la nueva CPU de 16 bits CP16000.
Siendo en general una buena CPU, ésta tenía malas prestaciones de entrada y salida, y el
PIC de 8 bits se desarrolló en 1975 para mejorar el rendimiento del sistema quitando peso
de E/S a la CPU. El PIC utilizaba microcódigo simple almacenado en ROM para realizar
estas tareas; y aunque el término no se usaba por aquel entonces, se trata de un diseño
RISC que ejecuta una instrucción cada 4 ciclos del oscilador.
En 1985 la división de microelectrónica de General Instrument se separa como
compañía independiente que es incorporada como filial (el 14 de diciembre de 1987
cambia el nombre a Microchip Technology y en 1989 es adquirida por un grupo de
inversores) y el nuevo propietario canceló casi todos los desarrollos, que para esas fechas
la mayoría estaban obsoletos. El PIC, sin embargo, se mejoró con EPROM para conseguir
un controlador de canal programable. Hoy en día multitud de PICs vienen con varios
periféricos incluidos (módulos de comunicación serie, UARTs, núcleos de control de
motores, etc.) y con memoria de programa desde 512 a 32.000 palabras (una palabra
corresponde a una instrucción en lenguaje ensamblador, y puede ser de 12, 14, 16 ó 32
bits, dependiendo de la familia específica de PICmicro).
El PIC usa un juego de instrucciones tipo RISC, cuyo número puede variar desde 35
para PICs de gama baja a 70 para los de gama alta. Las instrucciones se clasifican entre las
que realizan operaciones entre el acumulador y una constante, entre el acumulador y una
posición de memoria, instrucciones de condicionamiento y de salto/retorno,
implementación de interrupciones y una para pasar a modo de bajo consumo llamada
sleep.
Microchip proporciona un entorno de desarrollo freeware llamado MPLAB que
incluye un simulador software y un ensamblador. Otras empresas desarrollan
compiladores C y BASIC. Microchip también vende compiladores para los PICs de gama
25
alta ("C18" para la serie F18 y "C30" para los dsPICs) y se puede descargar una edición
para estudiantes del C18 que inhabilita algunas opciones después de un tiempo de
evaluación.
La arquitectura del PIC es sumamente minimalista. Está caracterizada por las
siguientes prestaciones:
Área de código y de datos separadas (Arquitectura Harvard).
Un reducido número de instrucciones de longitud fija.
Implementa segmentación.
Un solo acumulador (W), cuyo uso (como operador de origen) es implícito (no
está especificado en la instrucción).
Todas las posiciones de la RAM funcionan como registros de origen y/o de
destino de operaciones matemáticas y otras funciones.1
Una pila de hardware para almacenar instrucciones de regreso de funciones.
Una relativamente pequeña cantidad de espacio de datos direccionable
(típicamente, 256 bytes), extensible a través de manipulación de bancos de
memoria.
El espacio de datos está relacionado con el CPU, puertos, y los registros de los
periféricos.
El contador de programa está también relacionado dentro del espacio de
datos, y es posible escribir en él (permitiendo saltos indirectos).
A diferencia de la mayoría de otros CPU, no hay distinción entre los espacios de
memoria y los espacios de registros, ya que la RAM cumple ambas funciones, y esta es
normalmente referida como "archivo de registros" o simplemente, registros.
26
Características:
Los PICs actuales vienen con una amplia gama de mejoras hardware incorporados:
Núcleos de CPU de 8/16 bits con Arquitectura Harvard modificada
Memoria Flash y ROM disponible desde 256 bytes a 256 kilobytes
Puertos de E/S (típicamente 0 a 5,5 voltios)
Temporizadores de 8/16/32 bits
Tecnología Nanowatt para modos de control de energía
Periféricos serie síncronos y asíncronos: USART, AUSART, EUSART
Conversores analógico/digital de 8-10-12 bits
Comparadores de tensión
Módulos de captura y comparación PWM
Controladores LCD
Periférico MSSP para comunicaciones I²C, SPI, y I²S
Memoria EEPROM interna con duración de hasta un millón de ciclos de
lectura/escritura
Periféricos de control de motores
Soporte de interfaz USB
Soporte de controlador Ethernet
Soporte de controlador CAN
Soporte de controlador LIN
Soporte de controlador Irda
27
2.11 Generalidades Acerca De Matlab.
MATLAB es un lenguaje de alto nivel y un entorno interactivo para el cálculo
numérico, la visualización y la programación. Mediante MATLAB, es posible analizar datos,
desarrollar algoritmos y crear modelos o aplicaciones. El lenguaje, las herramientas y las
funciones matemáticas incorporadas permiten explorar diversos enfoques y llegar a una
solución antes que con hojas de cálculo o lenguajes de programación tradicionales, como
pueden ser C/C++ o Java.
MATLAB se puede utilizar en una gran variedad de aplicaciones, tales como
procesamiento de señales y comunicaciones, procesamiento de imagen y vídeo, sistemas
de control, pruebas y medidas, finanzas computacionales y biología computacional. Más
de un millón de ingenieros y científicos de la industria y la educación utilizan MATLAB, el
lenguaje del cálculo técnico.
Es importante resaltar los siguientes toolboxes, ya que serán necesarios para la
realización del proyecto.
Image Processing Toolbox
Proporciona un conjunto completo de los algoritmos de referencia estándar,
funciones y aplicaciones de procesamiento de imágenes, análisis, visualización y desarrollo
de algoritmos. Puede llevar a cabo la mejora de imagen, deblurring de imagen, detección
de accidentes, reducción de ruido, segmentación de imágenes, transformaciones
geométricas y registro de imágenes. Muchas funciones del Toolbox son multiproceso para
aprovechar multinúcleo y ordenadores con varios procesadores. [18]
28
Image Processing Toolbox soporta un conjunto diverso de tipos de imágenes,
incluyendo alto rango dinámico, resolución gigapixel, incrustado perfil ICC y tomográfico.
Las funciones de visualización le permiten explorar una imagen, examinar una región de
píxeles, ajustar el contraste, crear contornos o histogramas y manipular regiones de
interés (ROI). Con los algoritmos del Toolbox se puede restaurar imágenes degradadas,
detectar y medir características, analizar formas y texturas, y ajustar el balance de color.
[18]
Las herramientas principales que ofrece Image Processing Toolobox son:
• Importación y exportación de imágenes
• Visualización y exploración de imágenes
• Preprocesamiento y postprocesamiento de imágenes
• Análisis de imágenes
• Transformación geométrica y registro de imagen
• Trabajo con imágenes largas
29
Instrument Control Toolbox
Muchos dispositivos e instrumentos se conectan a un ordenador a través de una
interfaz en serie. Cualquier dispositivo o instrumento que tiene una interfaz serial puede
comunicarse directamente desde MATLAB y Simulink con Instrument Control Toolbox.
El toolbox proporciona las herramientas que le permiten comunicarse, configurar y
transferir datos hacia o desde su dispositivo serie sin necesidad de escribir código. Puede
generar código MATLAB para su dispositivo serie que se puede reutilizar después de
comunicarse con el dispositivo o el desarrollo de aplicaciones gráficas. También puede
comunicarse con el dispositivo serie utilizando scripts de MATLAB o crear sus propios
controladores de software y encapsular los comandos en serie de bajo nivel en comandos
de alto nivel que son más fáciles de acceder. [19]
Instrument Control Toolbox le permite conectar MATLAB directamente a
instrumentos tales como osciloscopios, generadores de funciones, analizadores de
señales, fuentes de alimentación y los instrumentos analíticos. El toolbox se conecta con
sus instrumentos a través de los controladores de instrumentos tales como IVI y VXIplug &
play, o vía SCPI comandos basados en texto a través de protocolos de comunicación más
utilizados, como GPIB, VISA, TCP / IP y UDP. También puede controlar y adquirir datos
desde el equipo de prueba sin necesidad de escribir código. [19]
Con Instrument Control Toolbox, puede generar datos en MATLAB para enviar a un
instrumento, o leer datos en MATLAB para el análisis y visualización. Puede automatizar
las pruebas, verificar diseños de hardware, y construir sistemas de prueba basados en
estándares AXIe LXI, PXI. [19]
Para la comunicación a distancia con otros equipos y dispositivos de MATLAB, el
toolbox proporciona soporte integrado para TCP / IP, UDP, I2C, SPI y protocolos de serie
Bluetooth.
30
2.12 Circuitos Impresos.
En electrónica, un circuito impreso, tarjeta de circuito impreso o PCB (del inglés
printed circuit board), es una superficie constituida por caminos o pistas de material
conductor laminadas sobre una base no conductora. El circuito impreso se utiliza para
conectar eléctricamente - a través de los caminos conductores, y sostener mecánicamente
- por medio de la base, un conjunto de componentes electrónicos. Los caminos son
generalmente de cobre mientras que la base se fabrica de resinas de fibra de vidrio
reforzada (la más conocida es la FR4), cerámica, plástico, teflón o polímeros como la
baquelita.
La producción de los PCB y el montaje de los componentes puede ser
automatizada. Esto permite que en ambientes de producción en masa, sean más
económicos y confiables que otras alternativas de montaje- por ejemplo el punto a punto.
En otros contextos, como la construcción de prototipos basada en ensamble manual, la
escasa capacidad de modificación una vez construidos y el esfuerzo que implica la
soldadura de los componentes2 hace que los PCB no sean una alternativa óptima. Antes
que los circuitos impresos (y por un tiempo después de su invención), la conexión punto a
punto era la más usada. Para prototipos, o producción de pequeñas cantidades, el método
“wire wrap” puede considerarse más eficiente.
Originalmente, cada componente electrónico tenía pines de cobre o latón de
varios milímetros de longitud, y el circuito impreso tenía orificios taladrados para cada pin
del componente. Los pines de los componentes atravesaban los orificios y eran soldados a
las pistas del circuito impreso. Este método de ensamblaje es llamado through-hole ("a
través del orificio", por su nombre en inglés). En 1949, Moe Abramson y Stanilus F. Danko,
de la United States Army Signal Corps desarrollaron el proceso de autoensamblaje, en
31
donde las pines de los componentes eran insertadas en una lámina de cobre con el patrón
de interconexión, y luego eran soldadas. Con el desarrollo de la laminación de tarjetas y
técnicas de grabados, este concepto evolucionó en el proceso estándar de fabricación de
circuitos impresos usado en la actualidad. La soldadura se puede hacer automáticamente
pasando la tarjeta sobre un flujo de soldadura derretida, en una máquina de soldadura
por ola.
La mayoría de los circuitos impresos están compuestos por entre una a dieciséis
capas conductoras, separadas y soportadas por capas de material aislante (sustrato)
laminadas (pegadas) entre sí.
Las capas pueden conectarse a través de orificios, llamados vías. Los orificios
pueden ser electorecubiertos, o se pueden utilizar pequeños remaches. Los circuitos
impresos de alta densidad pueden tener vías ciegas, que son visibles en sólo un lado de la
tarjeta, o vías enterradas, que no son visibles en el exterior de la tarjeta.
2.13 La Comunicación.
El USB CDC (Communication Device Class) es una clase de dispositivos compuestos
de USB. La clase puede incluir más de una interfaz, como una interfaz de control
personalizada, interfaz de datos, audio o almacenamiento masivo. [13]
El CDC es usado principalmente para módems, pero también para ISDN, máquinas
de faz y aplicaciones de telefonía para realizar regularmente llamadas de voz. [13]
Esta clase de dispositivos es también para enlazar dispositivos de red conectados a
una tarjeta de red, la cual provee una interfaz para transmitir Ethernet o ATMframes en
otro medio físico.
32
Esta clase puede ser usada para equipo industrial como maquinaria CNC para
permitir actualizar de controladores y robots con interfaz RS-232 y permitir que el
software siga siendo compartible. [13]
El dispositivo se conecta a una línea de comunicaciones RS-232 y el sistema
operativo en el lado USB hace que el dispositivo USB aparece como un puerto RS-232
tradicional. Los fabricantes de chips como FTDI, Microchip y Atmel proporcionan
facilidades para que sea fácil el desarrollo de dispositivos RS-232 USB.
Los dispositivos de esta clase, también se aplican en los sistemas integrados tales
como los teléfonos móviles de manera que un teléfono puede ser utilizado como un
puerto de módem, fax o de red. Las interfaces de datos se utilizan generalmente para
realizar la transferencia de datos mayor.
Para poder usar el CDC en un microcontrolador PIC son necesarios ciertos
requerimientos:
Instalar un driver con el fin de que el Firmware del PIC sea reconocido por
Windows como un dispositivo Serie estándar y sea registrado como un
puerto COM Virtual. Dicho driver es provisto por Microchip.
Figura 2.10 Visualización del puerto virtual en el Administrador de Dispositivos de Windows
33
La frecuencia de oscilación necesaria para el USB 2.0 es de 48 Mhz aunque a nivel
hardware se está usando un cristal de cuarzo de 20 Mhz. Para alcanzar dicha frecuencia es
necesario hacer uso del módulo PLL interno del PIC. Para ello se indica fuse HSPLL. El
módulo PLL requiere una oscilación de entrada de 4 Mhz se utilizar el divisor 1:5 indicado
con el fuse PLL5 para obtener los 20:5 = 4 Mhz requeridos.
Figura 2.11 Configuración interna del PLL de la familia PIC18F [14]
34
CAPÍTULO 3. DESARROLLO Y CONSTRUCCIÓN.
En este capítulo se habla de las consideraciones generales que se tomaron en
cuenta para hacer el sistema de grabado.
El sistema cuenta con 5 etapas, las cuales son:
El driver del láser.
El láser.
La mesa de coordenadas.
Circuito de control.
Interacción con diversos entornos en la PC.
35
El diagrama general del sistema de grabado queda de la siguiente manera:
- El primer bloque representa el driver que se diseñó para manejar el
láser de diodo azul.
- El segundo bloque representa el diodo láser seleccionado para lograr el
propósito.
- Seguidamente, la etapa mecánica representada por la mesa de
coordenadas.
- Como cuarta etapa, el PIC representa el circuito de control para
gestionar la comunicación entre el prototipo y la PC.
- Finalmente, el último bloque representa el software utilizado para el
diseño de circuitos y la manipulación de la PCB.
Retomando los pasos 3 y 4 del planteamiento del problema, el sólo hecho
de utilizar plancha casera para adherir las pistas del circuito previamente diseñado
en la placa, toma un tiempo considerable, por lo que se busca evitar este proceso
para hacerlo más rápido.
36
La solución propuesta es cubrir en su totalidad con pintura en aerosol la
cara de la tablilla fenólica que contiene el cobre para posteriormente remover el
sobrante con el sistema de grabado.
3.1 El Driver Del Láser.
En general, para gestionar la potencia óptica de salida del diodo láser, se hace en
función de su corriente. Regularmente existen “drivers” en el mercado para cierto tipo de
diodos láser en los cuales se entrega una potencia óptica predefinida, pero son potencias
de no más de 1000mW y de tipo ON-OFF porque su aplicación más frecuente es de
apuntador.
Esto presenta una desventaja hacia el tiempo de vida útil del láser. El encenderlo a
su capacidad máxima representa una caída de corriente y de tensión muy elevada, lo que
hace que con el tiempo su potencia óptica se vea disminuida.
Por ello, se armó un driver que será explicado a continuación. Este driver tiene 2
objetivos: el primero es obtener las características deseadas para que el láser opere a su
potencia óptica máxima (1500mW,) por lo que se requiere una corriente de al menos 1.2
A. El segundo es poder gestionar el encendido y apagado del láser, es decir, hacer pasar de
la emisión espontanea a la emisión estimulada de un modo más “suave”.
El láser será alimentado y gestionado por medio de un convertidor CD-CD tipo
macho (Buck).
37
Mediante un circuito RLC, se puede calcular los parámetros adecuados que
permitan obtener un encendido suave y de esta manera alcanzar un punto máximo en un
tiempo deseado en el diodo láser.
En un convertidor Buck, generalmente se sustituye el switch por algún interruptor
semiconductor. Se ha decidido usar el IRF610, ya que este es un MOSFET de 200V con
capacidad de 2 A, y también tiene una velocidad rápida de conmutación, sin mencionar
que la corriente se puede gestionar con una Modulación de Ancho de Pulso (PWM).
Para ello, se propone el siguiente circuito:
Figura 3.1 Circuito RLC
Los parámetros deseados es que sea alimentado por una fuente de 12V, con una
corriente de salida de 1.2 A. La caída de tensión del láser es de 5V, la caída de tensión del
diodo es de 0.7V, y la caída de tensión del MOSFET es de 0.3V. La gestión de este será a
través de un PWM de 1 KHz.
Esto quiere decir que se obtendrá una señal de 1ms, obteniendo un tiempo de
pulso alto de 500µs y otro de pulso bajo de 500µs.
Analizando la tensión en el punto A:
38
(3.1)
(3.2)
(3.3)
Para calcular la capacitancia del circuito Buck, es necesario tomar en consideración
la tensión de rizo. Está expresada como ΔVo, y consiste en el incremento y decremento de
la señal entre la conmutación del interruptor. Entre menor sea el rizo, mayor será la
capacitancia.
Proponiendo un rizo de 0.2V:
( )
(3.4)
( )
( )( )
(3.5)
( )( )
Por lo que el circuito queda de esta manera:
39
Figura 3.2 Circuito Buck con valores propuestos, donde D1 representa el láser
A continuación se muestra la simulación del circuito Buck.
Figura 3.3 Simulación del Circuito Buck
Puede notarse en la Figura anterior que el valor de corriente que alimenta al láser
es el deseado, y que la tensión en el láser se encuentra dentro de los valores tolerados. Si
se desea mayor corriente con las mismas características de conmutación, es
recomendable utilizar una fuente con mayor tensión.
40
El siguiente paso, es la conexión del MOSFET al driver, el cual va a convertir la señal
de PWM a la tensión necesaria para gestionarlo.
La conexión del IR2110 es como la que se muestra:
Figura 3.4 Armado del driver completo
Por lo general, cuando se usa un MOSFET, se tiene que hacer un acoplamiento de
señal para poder activar al mismo, ya que este es activado por tensión. Para efectos
prácticos se usará el IR2110.
El IR2110 es un driver para MOSFET, el cual acopla la etapa de control o de señales
y la envía a la compuerta del MOSFET. Este driver tiene capacidad para conectar 2
MOSFET.
Esta es la conexión típica del IR2110 para 2 MOSFET:
41
Figura 3.5: Conexión típica del IR2110 para dos MOSFET [15]
Mediante el uso del HIN y del LIN, puede conectarse la señal de PWM al circuito
Buck, y obtener a la salida la señal de PWM y la tensión necesaria para activar el MOSFET.
Se puede observar que solo se usará una entrada del IR2110, por lo que el resto de
los pines son enviados a tierra. Para fines de prueba, se ha colocado un generador de
funciones emulando así una señal cuadrada.
Figura 3.6 Simulación habiendo añadido el generador de funciones
42
Figura 3.7 Visualización del funcionamiento del driver ante una señal cuadrada. b)Parámetros
asignados
Por lo que el circuito propuesto, es el que sigue:
Figura 3.8 Circuito propuesto integrando el IR2210 y el IRF610
3.2 Láser
La función del diodo láser en el sistema de grabado es la de remover la pintura que
cubre el cobre que no se va a utilizar, para que una vez vertida la placa en el cloruro
férrico este actúe sobre el conductor y deje solamente la pintura deseada que
43
corresponde a las pistas que han de conectar el circuito eléctrico. En primera instancia, el
asesor propuso utilizar un láser de diodo rojo con una potencia de salida de 200mW y una
longitud de onda de 609nm. No obstante, las características de este láser de diodo no son
suficientes para la aplicación que se propone, ya que tiene una potencia óptica máxima de
500mW, por lo que no es posible que vaporice en su totalidad la cubierta deseada,
entonces se propuso que fuera un láser de diodo de mayor potencia, decidiendo utilizar
un láser de diodo azul con una potencia óptica de hasta 1500mW. La potencia de salida
aunado a que el color azul tiene un mayor grado de absorción en el color negro, que es el
color de pintura en aerosol a utilizar para cubrir la placa, hacen que sea el recurso ideal
para implementarlo y que teóricamente podría lograr remover el sobrante de la pintura
negra para las pistas del circuito impreso.
Haciendo un poco de investigación, se logró encontrar un láser de diodo fabricado
por Nichia (empresa japonesa dedicada a la fabricación y venta de optoelectrónicos). El
láser de diodo NBD7412T es un láser con 1600mW de potencia óptica y posee una
longitud de onda de 445nm. Para alcanzar esta potencia es necesaria una corriente de al
menos 1.2 A.
44
Característica Símbolo
Rango máximo
absoluto Unidades
Corriente If 1.2 A
Potencia óptica de salida Po 1.5 W
Tensión de alimentación Vr(LD) 5 V
Temperatura de
almacenamiento Tstg -40 a 85 °C
Temperatura de operación Tc 0-30 °C
Tabla 3.1 Características del NBD7412T
La ventaja es que este diodo láser incluye una lente para hacer colimar la luz, ya
que no basta solamente con generar la luz láser, sino que también hay que hacerla
coherente.
a) b)
Figura 3.9 a) Láser de diodo NBD7412T b) Lente incluido para colimar la luz
45
Es necesario citar que debido a la carencia de espejos dentro de la construcción del
diodo láser, al genera luz estimulada, esta se dispersa. Esto es un defecto que todos los
láseres de diodo poseen.
Figura 3.10 Dispersión de la luz en un láser de diodo
Con la lente que incluye el fabricante del láser de diodo, se puede hacer que la luz
se concentre, sin embargo, en algún punto la luz volverá a ser divergente. Para evitar ello,
se le coloca un espejo parcialmente reflejante, y de acuerdo a las características de este,
se puede obtener una luz con un comportamiento prácticamente lineal. La dimensión del
haz concentrado está en función de este espejo.
Figura 3.11 Tratando la luz
46
Sin embargo, con la luz colimada por el lente es posible vaporizar si el material es
colocado a la distancia en donde la luz cruza.
Figura 3.12 Se muestra el punto en donde es posible vaporizar.
Figura 3.13: Haz de luz apuntado hacia un vaso de vidrio con agua.
47
La Figura 3.13 muestra el haz resultante de trabajar solamente con la lente
convexa. Puede notarse que el haz de lado izquierdo es más delgado que el haz de lado
derecho. En el punto donde se encuentra más delgado es donde se puede vaporizar.
Pensando en colimar la luz, se diseñó un equipo láser sencillo, el cual, aparte de
permitir montar el lente para lograrlo, el calor sea disipado, ya que 1500mW genera una
cantidad de calor significativa que, con el uso constante, dañaría rápidamente al diodo
láser.
Se construyó un apuntador el cual está constituido de 2 partes:
La primera parte es el macho, en el cual va montado el láser de diodo a presión.
Tiene forma de tornillo y es el que mantendrá fijo al láser. Las cuerdas servirán para variar
la distancia de enfoque.
Figura 3.14 Macho del apuntador
La segunda parte es la hembra, en el cual va montada la lente con un pegamento.
Este último, tiene cuerda interior y se acopla con el macho de tal modo que al girar esta,
48
se obtenga una distancia de acuerdo al paso de las cuerdas. Se usó cuerda de ½” de Rosca
Unificada Fina.
Figura 3.15 Hembra del apuntador
A continuación se muestran los elementos antes descritos ya ensamblados. La figura
3.16 b) es una vista de perfil del macho del apuntador, en la parte superior del mismo se
puede observar el diodo láser en su interior; la figura 3.16 a) muestra al hembra del
apuntador con el lente montado en su parte superior.
a) b)
Figura 3.16 Elementos ensamblados
a) Lente b) Láser de diodo
49
Figura 3.17 Equipo láser operando a 500mA sin lente
Figura 3.18 Equipo láser operando a 500mA con lente
50
3.3 Mesa De Coordenadas.
Este sistema generará el desplazamiento de la pieza o material a grabar (placa
fenólica). La primera idea sobre como basar el diseño de la mesa, fue usar motores a
pasos y mediante bandas dentadas transmitir el movimiento de los mismos, considerando
que el láser estaría en constante movimiento debido al desplazamiento producido por la
mesa de coordenadas. Sin embargo, los inconvenientes que encontramos al usar bandas
dentadas con motores a pasos y tener al láser en constante movimiento son:
Limitaciones de fuerza
El movimiento del láser complicaría el ajuste de su potencia de salida,
provocando que no realizara un grabado eficiente
Los motores a pasos por si solos no generan suficiente torque para mover el
peso del material a grabar (en la suposición que el circuito impreso más
grande es de 18 cm por lado), lo que hace necesario un sistema de
engranes para obtener un mayor torque, impactando en el diseño de la
mesa, haciéndolo más complejo
La relativa complejidad para poder gestionar sus movimientos
El costo elevado de los motores a pasos
Tomando en cuenta los inconvenientes generados por la utilización de motores a
pasos y bandas dentadas, se decidió diseñar una mesa de coordenadas, donde el
elemento que va a estar en constante movimiento fuera el material a grabar, y no el láser
como se había planteado en primera instancia; por lo que el diseño de la mesa de
coordenadas es semejante a los carros transversales y longitudinales de las fresadoras, las
cuales, generan su movimiento a través de motorreductores y lo transmiten mediante un
husillo sin fin, obteniendo las siguientes ventajas
51
El husillo genera mayor fuerza
Los costos de material y maquinado se reducen
Se genera un diseño más amigable, sencillo y eficiente
Los motorreductores ya incluyen su sistema de engranaje para aumentar el
torque requerido, y por ende, tener aún más fuerza en el husillo.
Comparando la complejidad para gestionar el movimiento en los dos tipos
de motores, concluimos que ambos poseen el mismo grado de dificultad.
El costo del motorreductor es menor.
Figura 3.19 Motorreductor
El motor que se ha decidido usar, es un motorreductor de 1 Kg/cm, (Véase Figura
3.19), ya que este motor es pequeño y económico.
Una vez definido eso, se consideraron las dimensiones de la mesa, y suponiendo
que el circuito impreso más grande sea de 18.5cm, se ha plateado que la carrera que
tendrá la mesa sea de 18cm.
Lo siguiente fue a considerar el husillo a usar, y por varias cuestiones, entre ellas
las de practicidad, se decidió usar un husillo de ½”, ya que posee 13 hilos en una pulgada:
52
Diámetro de
Rosca
Unificada
Normal
(Gruesa)
Ø exterior de la rosca
mm
No. de hilos por
pulgada
¼ 6.322 20
1/3 7.907 18
3/8 9.491 16
7/16 11.076 14
½ 12.661 13
9/16 14.246 12
5/8 15.834 11
¾ 19.004 10
7/8 22.176 9
1 25.349 8
1 1/8 28.519 8
1 ¼ 31.694 8
1 3/8 34.864 6
1 ½ 38.039 6
1 ¾ 44.381 5
2 50.726 4.5
Tabla 3.2 Rosca exterior, ángulo de flanco 60 °
13 hilos corresponden a 1 pulgada
1 hilo corresponde a 0.076 pulgadas
1 hilo corresponde a 360°
360° corresponden a 2mm
53
Esto quiere decir que en 1 vuelta, el desplazamiento que se puede tener es de
aproximadamente 2mm, por lo que con media vuelta del husillo se puede obtener un
paso de aproximadamente 1mm.
Figura 3.20 Esparrago de ½ “ UNC
El siguiente paso fue determinar cómo se montaría el husillo, y considerando el
tamaño de la mesa y del husillo, se decidió montarlo entre placas de 1.1” x 2.2”x0.75”.
Figura 3.21: Placa donde se montará el husillo, con un barreno de 7/8” en el centro
Planteado este asunto, se prosiguió a considerar el desgaste que se tendría si el
husillo maquinado es sometido a fricción con el mismo material de la placa donde se va a
montar, por lo que se consideró utilizar bujes de bronce o un rodamiento para evitar esta
fricción.
De forma empírica, se descartó la posibilidad de mantener el husillo con la placa,
porque con el tiempo generaría desgaste en la flecha y en la placa misma. Usar bujes de
bronce requeriría un plan de mantenimiento para cambiarlos, además de que el precio del
bronce y del maquinado de estos es alto.
54
Finalmente se decidió un usar un rodamiento rígido de una hilera, ya que este va
montado sobre el sistema, reduce la fricción, el desgaste es menor, y el precio por
mantenimiento es bajo.
El rodamiento que se eligió fue un rodamiento No. 608, ya que este posee un
diámetro exterior de 7/8”, un diámetro interior de 5/16”, y un espesor de 0.275”, que se
ajusta a las medidas de las placas y del husillo.
Figura 3.22 Rodamiento No. 608
55
Tabla 1.3 Rodamiento de la serie 600, NSK [16]
Para que no se tuerza la mesa con el movimiento del husillo, se ha decidido usar
una guía cilíndrica, la cual tendrá la función de guiar el movimiento lineal de la mesa, y
evitar la torsión que pueda tener el sistema por la rotación del husillo. Se le colocará un
cilindro de hierro de 3/8”.
Para la transmisión del movimiento, se ha decidido montar el motor al husillo
mediante un cople, es decir, hacer un barreno al husillo, de tal modo que la diminuta
flecha del motor entre, y a continuación, hacer sujeción mediante un opresor, y a su vez
fijar el motor a la placa que sostiene el rodamiento.
56
Figura 3.23 Cople para unión entre el husillo y el motorreductor
Para la gestión del motor, se pensó hacer en el lado contrario al husillo un encoder
parecido al que solían usar los mouse de “bola”. Se pensó hacer rosca en el lado opuesto
del husillo, y hacer un disco con determinados números de barrenos, el barreno central
tendrá cuerda interna, de tal modo que este disco se fije como una tuerca. Para obtener el
número de vueltas, se optó por colocar un opto-interruptor, con un emisor y un receptor
infrarrojo.
Para determinar el número de barrenos:
Por lo que el disco tendrá 10 barrenos en su circunferencia, con 36° de diferencia
entre barreno
57
Figura 3.24 Optointerruptor
Figura 3.25 Encoder ciego (sin barrenos)
Finalmente considerando toda la carga a mover, se ha decidido usar una superficie
de acrílico de 23x23 cm, y una de 19x19cm para la superficie de trabajo, con el fin de
mantener la suficiente rigidez en esta y a la vez hacer un poco más ligera la mesa.
58
Figura 3.26 Acrílico de 2mm de espesor
Se unen los elementos de la siguiente forma:
Figura 3.27 Husillo con baleros y encoder montados
Lo siguiente, es acoplar el husillo con el optoacoplador.
Esto servirá como una especie de interruptor para activar o desactivar los circuitos
que componen el sistema de grabado.
59
Figura 3.28 Optointerruptor acoplado al husillo
En el otro extremo del husillo, se acopla el motorrodetuctor que será quien
generará el movimiento para la mesa de coordenadas.
Figura 3.29 Motorreductor y husillo acoplados.
60
La base que se muestra a continuación es el soporte del husillo, que es a su vez en
donde se hará la sujeción del motor y el optoacoplador.
Figura 3.30 Soporte con rodamiento.
Lo siguiente, es fijar el motor a la base para de esta manera el husillo rote pero a
su vez esté fijo.
Figura 3.31 Fijación de motor.
61
Otro ángulo de la figura anterior se muestra a continuación, en ella se puede
apreciar el lugar preciso en donde se introduce el opresor.
Figura 3.32 Vista superior de la fijación del motor.
Posteriormente, todos elementos anteriores se ensamblan para dar origen al eje
que se muestra a continuación
62
Figura 3.33 Ensamblado final de un eje
Los motores que se colocaron en la mesa son motorreductores de 1 Kg/cm (1:120),
por lo que, de acuerdo a su relación de engranes, estos no dan más de 60 rev/min.
Si cada husillo tiene un recorrido de 18 cm:
Eso quiere decir que se requiere aproximadamente 1min 30 s para que el eje
complete todo su recorrido, por lo que el sistema es algo lento.
Por limitaciones de tamaño del sistema de coordenadas, se ha decidido realizar
grabados para PCB en tabletas de 8x8cm máximo, con el fin de lo llevar a sus parámetros
máximos al sistema de coordenadas.
63
Como en todo sistema de este tipo, se debe tener un origen o un HOME, por lo que
se ha decidido ubicarse de la siguiente manera:
Figura 3.34 Vista isométrica de la ubicación de la posición HOME
Figura 3.35 Vista superior de la posición HOME
Se ha pensado poner el HOME de esta manera para poder aprovechar el espacio
de la mesa, dejando 2 cm de espacio entre la parte móvil y la parte que sostiene al husillo.
Colocándolo así, se puede aprovechar el movimiento de los ejes de una forma segura, y
así tener la certeza que con ayuda del encoder, regresa a la posición de HOME sin
inconveniente. Por cuestiones de seguridad, también se le han puesto Interruptores de
final de carrera, con el fin de evitar colisión entre la estructura y la parte móvil de la mesa.
64
En cuanto al encoder respecta, como se mencionó en el Capítulo III, se ha decidido
poner un optointerruptor, el ITR8102, ya que este contiene un emisor infrarrojo y un
receptor en un mismo encapsulado.
En base al tornillo con perforaciones, este optointerruptor estará montado de tal
modo, que el tornillo-encoder quedará en la muesca intermedia para contar los pulsos.
Estos pulsos serán prácticamente niveles lógicos, es decir, un cero lógico representará 0V,
y un 1 lógico representará 5V. Son requeridos 5V, ya que la señal obtenida del receptor es
la que será conectada a una entrada asignada dentro del PIC 18F4550. El circuito
propuesto para usar este elemento se muestra a continuación:
Figura 3.36 Circuito propuesto para el encoder, teniendo un cero lógico.
SW1 simula el encoder, por lo que se puede decir que la luz no está pasando entre
el emisor y el receptor, por lo que no hay salida de alimentación, por lo que el PIC solo
recibe un cero lógico.
65
Figura 3.37 Circuito implementado
Cuando SW1 cierra, es como si el receptor captara la luz que emite el emisor, por
ende significa, que ha detectado un orificio, por lo que, al detectar el pulso, puede notarse
que D1 enciende. Esto equivale a un 1 lógico, el cuál será el pulso que se le mande al PIC
para realizar su acción de gestión pertinente.
Cabe resaltar que dentro del circuito se ha acoplado un regulador de tensión 7805.
Como se había mencionado antes, es necesario reducir la tensión, ya que, si se pretende
enviar a un PIC, este último no recibe señales más allá de esta capacidad, y mandar una
señal de 12 V al microcontrolador representaría dañarlo.
La forma de conexión para ambos encoders (para ambos ejes), es la que sigue:
66
Figura 3.38 Circuito que representa la conexión de los 2 encoder, y en ambos se muestra que se
envía un cero lógico al microcontrolador.
Figura 3.39 Los encoders de ambos ejes se encuentran enviando un 1 lógico al microcontrolador.
En cuanto a la gestión de los motores, se ha decidido usar un encapsulado que
contiene 2 puentes H. Es necesario citar que un puente H comúnmente es un arreglo de
transistores o MOSFET en forma de H, cuya función es administrar el sentido de giro de los
motores. Activando una entrada se puede activar al motor y hacerlo girar hacia un
sentido, y activando la otra entrada, se puede activar el motor al sentido contrario de giro.
67
Para fines prácticos y económicos, se ha decidido usar el L293C, un circuito
integrado que incorpora 2 puentes H. La distribución de pines se muestra a continuación.
Figura 3.40 Disposición de terminales del L293C
Este integrado también cuenta con un pin que permite introducir una señal de
PWM para gestión de velocidad del motor. El L923C puede ser alimentado hasta con 30V y
soporta hasta 2 A por puente H.
Figura 3.41 Conexión típica del L293C
68
La configuración que se propone para conectar los motores es la siguiente:
Figura 3.42 Conexión de los motores al L293C
Se incluye una conexión al PWM, el cual vendrá del CCP del 18F4550. CW indica
que si es activada esa entrada, el motor girará en sentido horario, y CCW indica, que si es
activada esa entrada, el motor girará en sentido antihorario. RAx representa que estos
irán a una entrada aun no asignada al microcontrolador. Puede notarse que en este caso,
el L293C esta conectado a la fuente de 12V, ya que bajo ese parámetro serán operados
ambos motorreductores.
3.4 Circuito de Control
Lo siguiente es realizar un circuito de control para hacer interactuar la mesa y el
láser. Esto se hará por medio de la computadora. Esta última se encargará de enviar el
circuito que se desea grabar, y la comunicación se hará RS-232 virtual por medio de USB.
El encargado de dicha acción será un microcontrolador PIC. Para ser más
específico, se ha decidido usar el PIC18F4550.
69
Figura 3.43 Disposición de los pines del PIC18F4550 [14]
Originalmente se pensó en realizar una comunicación RS-232 clásica, sin embargo,
la mayoría de los equipos portátiles ya no incluyen el puerto de comunicación serie,
solamente USB. Si se deseaba una comunicación RS-232, adicionalmente se tendría que
incluir un Gateway o conversor de USB a RS-232, tales como un FT232 o un MAX232. Para
evitar ese costo, y aprovechando las cualidades del microcontrolador, se decidió
finalmente simular un puerto virtual RS-232 con conexión USB.
El microcontrolador a usar es el PIC18F4550, y este último tiene la capacidad de
comunicarse vía USB o vía RS-232. Dentro de las facilidades que este microcontrolador
ofrece es la de poder simular un puerto COM virtual mediante una herramienta llamada
CDC. A grandes rasgos, el CDC (Comunication Device Class) genera dentro de los
controladores del puerto USB un archivo .inf, el cual, cuando es instalado en la máquina,
permite visualizar un puerto COM, y este tarbaja como tal, pero siendo mediante USB.
La intención de esto, es que desde la computadora se puedan enviar caracteres al
microcontrolador, facilitando esto para la elaboración de un HMI.
70
CAPÍTULO 4. DESARROLLO DE LA PROGRAMACIÓN
En este capítulo se describen las consideraciones técnicas y la metodología para
desarrollar la programación de la mesa de coordenadas y el sistema láser, así como el
procesamiento de imágenes previo a la grabación.
71
4.1 Desarrollo
Una vez desarrollada la parte de hardware, es importante visualizar la forma en
que los elementos que conforman el sistema de grabado interactuarán. Para ello es
necesario pensar en la parte de la programación o del software.
El software comprende 3 principales puntos a considerar:
Programación del controlador
Circuito de control
Tratamiento de la imagen
Para cada parte, existe un proceso diferente a seguir. La labor del controlador es la
intercambiar datos, y la parte de la PC es enviar datos y tratar la imagen.
Aunque existe una sinergia entre estos, son procesos diferentes, los cuales siguen
cierta metodología, descrita en los siguientes diagramas de flujo:
Microcontrolador PIC
El diagrama de flujo describe el proceso que el programa debe de seguir para
realizar la comunicación.
1. Debe comenzar por reconocer todos los parámetros y datos para
que la conexión USB sea exitosa.
2. Se inicializa el puerto, es decir, se prepara el puerto para el envío y
recepción de datos, específicamente caracteres.
3. Si es así, se procede a leer el dato enviado por la PC
4. Si la variable coincide con 1, se realiza una acción; como el
encendido de un bit
72
5. Si la variable coincide con 2, se realiza una acción diferente; como el
apagado de un bit
6. Se le repiten los pasos hasta que el dispositivo sea desconectado
Figura 4.1 Diagrama de flujo de la programación del Microcontrolador PIC
INICIO
Declaración de parámetros USB
Declaración de datos
Inicialización del puerto
¿Equipo
conectad
o a PC?
Lectura de
carácter
recibido
Listo…
¿Variable=1?
¿Variable=2?
FIN
Encender bit
Apagar bit
73
Procesamiento de imagen
El diagrama de flujo describe el proceso que el programa debe de seguir para
procesar las imágenes en un lenguaje que el PIC pueda entender:
1. Se declaran las variables a usar
2. Se realiza la lectura de la imagen
3. Se trata la imagen en 2 fases. Primero se convierte la imagen en
matriz, y posteriormente convertir la matriz en escala de grises
4. Mediante un ciclo anidado, se lee cada elemento de la matriz, y de
acuerdo al valor numérico en escalas de grises, se invierte la imagen en escalas de
blancos y negros
5. Se visualizan los resultados de las matrices tratadas
74
Figura 4.2 Diagrama de flujo de la programación en MATLAB.
INICIO
FIN
Declaración de variables
Lectura de
imagen
Convertir imagen en matriz
Convertir matriz a escalas de grises
¿i=n?
Matriz[i,j]>=25
5
¿j=m?
Matriz[i,j]<200
Matriz2[i,j]=0
Matriz2[i,j]=255
Matriz[m,n]
Matriz2[m,n]
75
4.2 El Compilador
Un compilador convierte el lenguaje de alto nivel a instrucciones en código
máquina. Los programas son editados y compilados a instrucciones máquina en el entorno
de trabajo de la PC. CCS ha sido desarrollado específicamente para PIC MCU, obteniendo
la máxima optimización del compilador con estos dispositivos. Dispone de una amplia
librería de funciones predefinidas, comando de preprocesado y ejemplos. Además,
suministra los controladores (drivers) para diversos dispositivos, entre ellos, los
requeridos para una comunicación USB. [17]
CCS es programación C estándar, suministrando adicionalmente directivas
específicas para el PIC, funciones específicas y un editor que permite controlar la sintaxis
del programa. [17]
Se comenzará describiendo cada paso a seguir para el desarrollo de la
programación del microcontrolador PIC.
Todo comienza accediendo al programa CCS Compiler. Puede ejecutarse a través
de un ícono de acceso directo, como se muestra en la Fig. 4.3
Figura 4.3 Ícono de acceso a CCS Compiler.
76
Figura 4.4 Entorno de trabajo de CCS Compiler
CCS es un programa muy versátil. Como se puede apreciar en la Figura 4.4, se
proveen de las herramientas necesarias para realizar todo un proyecto complejo de
programación de microcontroladores PIC.
Para realizar la programación, se tiene que generar un proyecto. Puede encontrar
esta opción en Project/New/Project Manual
77
Figura 4.5 Generando un nuevo proyecto de programación PIC
Figura 4.6 Asignando un nombre y ubicación al proyecto.
78
El programa le solicitará que elija una ubicación para el proyecto y que sea
asignado un nombre. El proyecto consta de algunos archivos considerables. Los cuales
son:
El archivo .prj: Este archivo almacena las configuraciones del programa a
realizar.
El código .c: Este archivo es la sintaxis del programa.
El fichero .hex: Este archivo es el resultado de la conversión de lenguaje de
alto nivel a lenguaje máquina, el cual será descargado al PIC.
Todos los archivos generados por la aplicación conservarán el nombre que se le
asigne en este paso.
Automáticamente, el programa desplegará un editor de texto, el cual es el archivo
.c. A partir de este momento se puede comenzar a escribir el programa del PIC, sin
embargo, se deben hacer algunos ajustes más. Para realizar estos ajustes, es necesario ir a
la pestaña de Options/ Project Options.
Figura 4.7 Mostrando ubicación de las opciones del proyecto.
79
Cuando se despliega la ventana de opciones, se pueden ver algunas opciones,
como las fuentes, el controlador a usar, las librerías, y los archivos generados para el
proyecto.
Figura 4.8 Opciones que se ofrecen para modificar el proyecto
Lo primero que hay que modificar es el PIC a usar. El compilador tiene el PIC16C74
como predefinido. Cuando el archivo .hex sea generado, dichas sintaxis serán “traducidas”
para que el PIC16C74 lo entienda. Se pretende trabajar con un PIC18F4550, por lo que en
la sección que dice “Target” debe cambiarse por el PIC18F4550.
80
Figura 4.9 Designando al programa el PIC a usar
Dentro de esta ventana, existe una sección que dice “Source File”. En este, puede
agregarse o quitarse diferentes tipos de archivos .c, para diversos fines. Solo puede existir
un archivo .c por proyecto, por lo que si son más ficheros .c los que se involucran en el
proyecto, deben ser declarados en fichero principal. Si todo salió bien durante la
generación del proyecto, se debe visualizar el nombre asignado al proyecto junto con la
extensión .c como fuente de archivo principal. Otro aspecto a verificar antes de comenzar
a programar, son todos los archivos, drivers y librerías que involucran al proyecto. Para
ello es necesario ver la opción de “Include Files”.
Dicha pestaña contiene la ubicación de las carpetas donde se encuentran todos los
archivos necesarios, tales como las librerías estándar, las librerías de los
microcontroladores, así como los drivers que usarán los PICS.
81
Figura 4.10 Corroborando que las rutas de los archivos a usar se encuentren incluidas en el proyecto
Figura 4.11 Ubicación de las carpetas que se deben incluir en el proyecto
De no incluirse estas ubicaciones en las opciones del compilador, durante la etapa
de compilación pueden surgir diversos errores, ya que el programa no encuentra los
archivos donde vienen dichas sintaxis, por lo que los considera comandos no válidos.
Completada esta labor, puede comenzarse a escribir el programa. Tal cual es en
lenguaje C, la programación en PIC obedece la siguiente forma de escribir el programa:
Directivas (librerías, fuses, variables generales, entre otros)
Función secundaria
Función principal
82
Instrucciones
Una vez escrito el programa, se debe de compilar. La compilación es la traducción
de lenguaje C (alto nivel) a lenguaje máquina, en este caso, a lenguaje PIC.
Para compilar el programa dentro del CCS, basta con irse a la opción Compile/
Build All.
Dicha opción verificará errores en la escritura del mismo (si los hay), generará los
archivos necesarios para la escritura en el PIC (fichero .hex), y suministrará opciones
adicionales, como el espacio del programa que usa en la memoria del PIC
Figura 4.12 Desplegando la opción de compilar.
83
Figura 4.13 Compilación del programa completa, generando ficheros para el PIC.
Si no existen errores de ningún tipo, y el programa ha generado exitosamente los
archivos necesarios para la escritura del programa en el controlador, se procede a hacer
una pequeña simulación.
4.3 Instalación De Drivers Adicionales
Sea simulado o real, se requieren controladores que identifiquen la conexión USB y
la conexión usando CDC. Microchip provee los controladores y archivos necesarios para
conectar los microcontroladores PIC a la PC. Dos de ellos son el archivo MCHPCDC.inf y los
drivers del paquete Microchip USB Framework, obtenidos de la página de
http://www.microchip.com
Figura 4.14 Archivo MCHPCDC.inf
84
Para instalar el fichero, basta con desplegar el menú con clic derecho, y activar la
opción de “Instalar”
Figura 4.15 Instalando el fichero en la PC
Para instalar Microchip USB Framework, simplemente se debe ejecutar el archivo
de instalación MCHFSUSB_Setup.exe y seguir las instrucciones que el instalador le indique.
Figura 4.16 Archivo MCHFSUSB_Setup.exe
85
Figura 4.17 Ventana del instalador donde solicita “Aceptar Términos de Uso”
4.4 Driver Para Puerto Virtual En Proteus
Como se mencionó anteriormente, sea simulación o conexión real se requiere de
controladores que identifiquen al puerto USB como conexión serie. Para efectos de
prueba, se usará Proteus Professional 7.0. Este programa también requiere de un
controlador para poder emular la conexión USB en sus simulaciones. Proteus suministra
los drivers necesarios para dicha tarea. Para instalarlos, solo basta con accesar
Inicio/Todos los programas/Proteus 7 Professional/ Virtual USB/ Install USB Driver, y el
programa instalará los controladores necesarios para la conexión.
Figura 4.18 Ruta de acceso para instalar controlador de USB Virtual
86
Figura 4.19 Instalación de drivers completa
4.5 Conexión Virtual A Pc Mediante Proteus
Proteus VSM (de Labcenter Electronics) ofrece la posibilidad de simular código
microcontrolador de alto y bajo nivel. Esto permite el diseño tanto a nivel hardware como
software y realizar la simulación en un mismo y único entorno. Para ello se suministran 3
potentes subentornos, como el ISIS para diseño gráfico, VSM para la simulación y ARES
para circuitos impresos. [17]
ISIS es un potente programa de diseño electrónico que permite realizar esquemas
que pueden ser simulados en el entorno VSM. Posee una muy buena colección de librerías
de modelos tanto para dibujar, simular o diseñar circuitos impresos. Además, permite la
creación de nuevos componentes, su modelización e incluso, la posibilidad de solicitar al
fabricante que cree un nuevo modelo. [17]
87
Figura 4.20 Ubicación del ISIS Proteus
Figura 4.21 Entorno de trabajo de ISIS
Para comenzar a hacer una prueba del código programado, es necesario armar un
circuito de prueba. Proteus tiene una librería extensa de componentes por fabricante y
por número de serie. Para accesar a dicha librería se sigue la ruta Library/Add
Device/Symbol
88
Figura 4.22 Iniciando la librería
Se desplegará una ventana en donde se debe de seleccionar el componente a usar.
Se pueden buscar los componentes por categoría, por uso o por número de parte. Como
se nota en la Figura 4.23, se ha introducido el número de serie del PIC (PIC18F4550), y
Proteus lo ha reconocido, proporcionando los pines de conexión, su nombre, y sus
medidas físicas (modelado en ARES).
89
Figura 4.23 Desplegando el componente y características
Un elemento importante dentro de la prueba es el puerto de conexión, el cual se
puede ubicar mediante el nombre USBCONN. El dibujo representa a un conector real USB
interactivo, es decir, al hacer clic sobre él simula que ha sido conectado o desconectado
del PC.
90
Figura 4.24 Conector virtual USBCONN
Todos los elementos que se vayan seleccionando se agrupan de lado izquierdo en
una “Lista de componentes”. Esta última es exclusivamente para este circuito a
desarrollar, por lo que si se genera un archivo nuevo, se tiene que volver a la librería y
escoger los componentes de forma manual. A continuación se muestra en la Figura 4.25
los componentes para el circuito de prueba.
Figura 4.25 Lista de componentes añadidos desde la librería
91
Lista de componentes:
Capacitor 470nF
LED Azul
PIC18F4450
Resistencia 220Ω
Conector USB
Fuente de tensión
El circuito que se necesita queda de la forma mostrada en la Figura 4.26:
Figura 4.26 Circuito de prueba
El circuito muestra la conexión entre el PIC y el conector USB, junto con la
alimentación de un LED de prueba. Una ventaja de simular estos circuitos, es que no
requieren una conexión a fuente de alimentación (importante considerar en el alambrado
real) y que el cuarzo con el que trabajará puede ser indicado mediante otra opción.
92
Antes de simular, es necesario indicar la frecuencia del cuarzo e indicar el archivo a
ejecutar (el fichero usb.hex que previamente ha sido programado). Para ello basta dar
doble clic sobre el componente y se desplegará una ventana.
Figura 4.27 Opciones del PIC18F4550
Dentro de esta ventana, hay un apartado con la etiqueta “Processor Clock
Frequency”. Es en ese apartado donde se indica la capacidad del cuarzo, y se encuentra a
20 Mhz.
Existe otro apartado que dice “Program File”, y de lado derecho se encuentra una
carpeta. En esta sección es donde se carga el fichero previamente programado (usb.hex),
por lo que al dar clic se desplegará una ventana del Explorador de Windows.
93
Figura 4.28 Seleccionando el fichero a cargar en el PIC
Figura 4.29 Fichero usb.hex añadido al PIC
Hecho los ajustes necesarios, es posible simular el circuito, dando clic en el botón
de “Play” (triángulo con orientación derecha, marcado con verde en la Figura 4.30),
situado en la parte inferior del programa.
94
Figura 4.30 Botones de animación de Proteus
Cuando esto pase, el programa arrancará, si todo está bien, debe de proceder
hacer el enlace entre el programa y la PC, mostrando el puerto virtual.
4.6 Instalación De Software Y Prueba Con Hyperterminal
Es común que al conectar virtualmente el puerto USB, aparezca un mensaje del
sistema, indicando que se ha detectado “nuevo hardware” y que requiere los
controladores para instalarlo. En todo caso, la instalación de este se lleva a cabo como el
de cualquier otro dispositivo. El sistema ya ha recibido previamente los controladores, por
lo que solo hay que dejar que el instalador guie dentro del proceso.
95
Figura 4.31 Primera vez que se conecta el puerto a la PC
Figura 4.32 Asistente para instalación de hardware nuevo
96
Figura 4.33 Instalación en progreso
Hay veces que, dependiendo del Service Pack instalado en el sistema (a partir de
SP3 en Windows XP) se considera al controlador obsoleto, y mandará un mensaje de
advertencia que menciona que el controlador en el sistema es obsoleto. En este caso
basta hacer clic en continuar, el controlador trabajará bien pese a este detalle.
Figura 4.34 Advertencia de controlador obsoleto
97
Figura 4.35 Instalación de hardware exitosa y completa.
Si el controlador fue instalado correctamente, en el Administrador de dispositivos
de Windows debe de aparecer el nuevo puerto. Si se es observador, el puerto aparece
como puerto serie (identificado por el prefijo COM), y es fácil de identificar por su
nombre: “USB to UART”.
Figura 4.36 Puerto virtual registrado como dispositivo activo en el Administrador de dispositivos de
Microsoft Windows.
98
A partir de este momento, es posible comunicarse con el dispositivo de forma
serial, la conexión USB ha sido exitosa hasta este momento.
Para comunicarse con el dispositivo virtual, basta enlazar la comunicación con
algún programa para dicho fin. HyperTerminal es un programa que permite la
comunicación, el envío y recepción de datos mediante varios protocolos, entre ellos RS-
232. En versiones de Windows previas hasta XP es un programa incluido en el sistema
operativo. A partir de Windows Vista es necesario descargarlo e instalarlo de Internet
junto con un archivo llamado MSCOMM32.dll, el cual permite abrir el puerto de forma
directa y no como un “objeto” de Windows.
Para ejecutar HyperTerminal, basta con seguir la ruta Inicio/Todos los
Programas/Accesorios/Comunicaciones/HyperTerminal (aplicable solamente en Windows
XP y versiones previas).
Cuando HyperTerminal se encuentra en ejecución, la ventana inicial indica que se
nombre una nueva conexión, y en todo caso, un ícono distintivo de dicha conexión.
99
Figura 4.37 Iniciando HyperTerminal
Hecho esto, se debe de proporcionar algunos datos, como el país, el código de área
(conexión mediante módem) así como el puerto de conexión a ocupar para el enlace. De
acuerdo con la Figura 4.38, el puerto virtual fue enumerado como “COM11”, por lo que es
la opción a elegir dentro del campo “Conectar usando”.
Figura 4.38 Seleccionando puerto de conexión
100
Siendo conexión serie, se debe configurar algunos parámetros característicos de la
conexión, como los baudios, los bits de datos, la paridad, los bits de parada y el control de
flujo. La conexión que se realiza es de tipo asíncrona, por lo que se debe configurar:
9600 baudios por segundo
8 bits de datos
Sin paridad
1 bit de parada
Sin control de flujo
Figura 4.39 Configuración de los parámetros de conexión serie
Terminado ello, HyperTerminal se encuentra listo para enviar y recibir datos de
Proteus, como el envío de un mensaje en el que se indica que el controlador se encuentra
listo. Dicho mensaje fue programado en el PIC para aparecer. Si no se indica en la
programación que debe de aparecer un mensaje, no sucederá nada.
101
Figura 4.40 HyperTerminal listo, interactuando con Proteus
Cuando se escribe 2 en HyperTerminal y se teclea “Enter”, hay un envío de datos
vía RS-232, aun siendo conexión USB. El PIC recibe un carácter (no un número), y por
programación ocasiona que el LED conectado en la salida digital 3 del puerto B del PIC
(RB3) se encienda. Por programación el PIC no regresa ningún valor a HyperTerminal, pero
ha quedado comprobado que la conexión es un éxito. El procedimiento para la conexión
física es la misma, y no debe de existir ningún inconveniente si se han cargado
previamente los controladores.
102
Figura 4.41 Envío de dato exitoso, LED conectado en RB3 encendido
4.7 Representación De Imágenes En Matlab
Es importante tener en cuenta que se necesita hacer una conversión de imagen a
un lenguaje que todo el conjunto pueda entender para que se puedan transmitir en
acciones. Para ello es necesario tratar la imagen, y el programa MATLAB de Mathworks es
una opción para realizar dicha tarea. MATLAB almacena las imágenes como vectores
bidimensionales (matrices), en el que cada elemento de la matriz corresponde a un sólo
pixel. Trabajar con imágenes en matlab es equivalente a trabajar con el tipo de dato
matriz.
El tipo de dato matriz, que contendrá una imagen puede ser de varios tipos (según
el tipo de dato de cada pixel):
103
double: Doble precisión, números en punto flotante que varían en un
rango aproximado de 10308 a 10308 (8 bytes por elemento)
uint8: Enteros de 8 bits en el rango de [0,255] (1 byte por elemento)
uint16: Enteros de 16 bits en el rango de [0, 65535] (2 bytes por elemento)
uint32: Enteros de 32 bits en el rango de [0, 4294967295] (4 bytes por
elemento)
int8: Enteros de 8 bits en el rango de [-128, 127] (1 byte por elemento)
int16: Enteros de 16 bits en el rango de [-32768, 32767] (2 bytes por
elemento)
int32: Enteros de 32 bits en el rango de [-2147483648,2147483647] (4
bytes por elemento)
logical: Los valores son 0 ó 1 (1 bit por elemento)
4.8 Leer Y Escribir Imágenes En Matlab
MATLAB posee un conjunto de herramientas o ToolBox que facilita la labor de
procesar y tratar las imágenes llamado Image Processing ToolBox. Este último posee
infinidad de comandos, pero solamente se hablará de los necesarios para realizar el
procesamiento básico. [18]
Leer una imagen en MATLAB
imread(nombrefichero)
im = imread(‘foto.tif’);
Escribir (guardar) una matriz en fichero:
imwrite(var, nombrefichero)
imwrite(im,‘foto.tif’);
104
Visualizar una imagen:
imshow(imagen_var);
Crear una nueva figura:
figure; imshow(imagen_var);
Visualizar los valores de cada uno de los pixeles en la imagen:
figure; imshow(imagen_var);pixval on;
La función imshow permite visualizar una imagen del tipo uint8 ([0,255])
como distintos niveles de gris
La función imshow visualiza una imagen del tipo double([0,1]) como
distintos niveles de gris.
4.9 Preparando Matlab Para El Procesamiento
Al igual que en PIC, se debe realizar un pequeño programa el cual realice el
proceso de tratamiento de imagen. Este tipo de programas se almacenan como ficheros
llamados M-File. Poseen una extensión .m y son ejecutables en cualquier equipo que
tenga instalado MATLAB.
Para realizar dicho programa, basta con dar clic en el ícono “New M-File”, situado
en la parte superior izquierda del programa.
105
Figura 4.42 Creando un nuevo M-File
Inmediatamente aparecerá una nueva ventana y un documento en blanco. Este
espacio es el designado para poder comenzar a escribir el programa de procesamiento de
imágenes.
Figura 4.43 Nuevo M-File listo para ser escrito
106
Figura 4.44 Programa escrito en MATLAB
Una vez escrito el programa, se puede compilar y ejecutar, sin embargo, hace falta
describir como ingresar a MATLAB el diseño de PCB.
4.10 Diseño De Pcb A Imagen
Este proceso debe ser elaborado a través de un programa de diseño de circuitos
impresos. En este caso, se tratrará un diseño obtenido del programa de diseño de circuitos
impresos “PCB Wizard”.
Todo parte del diseño a imprimirse (Artwork). Se manda a imprimir la imagen con
el comando “Print” del programa, escogiendo como impresora “PDF creator”.
PDF Creator es un programa que principalmente se usa para la conversión de
documentos varios (diseños, archivos de Word, etc) en archivos de lectura PDF. Sin
embargo, también cuenta con la cualidad de convertir los archivos originales en algunos
otros formatos. El que genera interés para esta aplicación es la conversión a formato de
imagen .jpg
107
Figura 4.45 Diseñando la PCB en el programa
a) b)
Figura 4.46 a) Guardando el diseño como imagen con PDFCreator b) Diseño en formato .jpg
Como se puede apreciar en la Figura 4.46 b), el diseño ha sido convertido a
imagen, guardado como PCB.jpg. Para poder usar esta imagen, es necesario guardar este
archivo en la carpeta principal de MATLAB(…\Mis documentos\MATLAB), de lo contrario
se debe de indicar la ubicación del archivo en la programación de MATLAB.
108
4.11 Procesando La Imagen
Regresando al programa M-File generado en MATLAB, ya que se ha generado la
imagen a tratar, se procede a ejecutar el programa mediante el botón PLAY ubicado en la
parte superior de la ventana M-File de MATLAB
Dicho botón es un triángulo de color verde orientado hacia la derecha,
acompañado de una hoja que emula un documento.
Si no existen errores de sintaxis o de procesamiento, el programa debe de correr y
hacer el procesamiento tal cual se muestra.
Figura 4.47 Botón de PLAY en MATLAB para la ejecución del programa
El primer proceso del tratado de imagen es la conversión de la misma a matriz.
Dentro del promt de MATLAB se ha creado una variable de tipo matriz que alberga los
valores de cada posición de la imagen. Cada elemento de la matriz representa una
posición de la imagen, es decir, representa cada pixel que la imagen posee. El valor que se
visualiza en cada elemento de la matriz es el valor de color en escala de grises que le
corresponde.
109
Figura 4.48 Visualización de la imagen convertida en matriz en escala de grises
Si se es un poco observador, puede notarse que entre los elementos de la matriz se
forma un segmento de la imagen, para ser más precisos se puede apreciar una pista del
circuito representada en matrices.
En la Figura 4.48 se puede apreciar diferentes valores, que van desde cero hasta
255. Los valores mayores a 255 representan los blancos en la imagen, y los valores
menores a 50 representan los negros. Si se es curioso, puede observarse que el conjunto
de los elementos de la matriz forman una imagen en forma de pista, y en cuyo centro, se
encuentra una parte por barrenar.
La siguiente parte del procesamiento de la imagen, es la inversión de “color “, con
el fin de realizar una especie de negativo de la imagen original.
110
a) b)
Figura 4.49 Visualización de imágenes a) Imagen original b)Resultado de la simulación
Como se puede apreciar en la Figura 4.49 b), se ha obtenido una especide
negativo, es decir, se han invertido los colores de la imagen original. Esto se debe a que
dentro de la iteración se ha indicado que si se leia un valor 0 (negro), se ecribiera en la
nueva matriz un valor de 255 (blanco).
La zona de color negro que se aprecia en la Figura 4.49 b) es lo que se pretende
evaporar con ayuda del láser. Solamente resta la forma de enviar los datos de la matriz
hacia el PIC.
4.12 Envío De Información A Través De Puerto Serie Con
Matlab
Para el envío de datos, existen una serie de herramientas y comandos que
permiten que MATLAB se comunique con diferentes dispositoivos a través de diferentes
protocolos de comunicación. Dichas herramientas se encuentran en un conjunto llamado
Instrument Control Toolbox . Este Toolbox permite conectar cualquier dispositivo que
opere bajo diferentes protocolos intercambiar datos con MATLAB, especialmente
111
instrumentos de medición y tarjetas de adquisición de datos (DAC) para aplicaciones de
muestreo y control. [19]
Los protocolos en el Toolbox incluyen al puerto serie, y funciona como la aplicación
HyperTerminal.Ello representa que se deben configurar los parámetro de comunicación,
tales como los baudios, los bits de parada, la paridad y el tiempo de espera.
Mediante la escritura de un M-File se puede hacer apertura del puerto desde
MATLAB, y para que funcione, se requiere la instalación de drivers previamentes cargados
en la PC como se explico en párrafos anteriores.
Figura 4.50 M-File para la activación del puerto serie
112
CAPÍTULO 5. COTIZACIÓN CONCLUSIONES Y
PROPUESTAS DE MEJORA
En este capítulo se describe a lo que se llegó con la realización de este trabajo.
De igual manera, es posible mejorarlo y es por ello que se proponen innovaciones
en cuanto al diseño y aplicación de los materiales.
113
5.1 Cotización.
A continuación, se muestra una lista con los elementos a usar en la elaboración de este sistema de grabado así como su precio.
Cantidad Descripción Precio
Unitario Precio
Mesa de coordenadas
2 Placas de acrílico de 23x23cm 11 22
1 Placa de acrílico de 19x19cm 7.5 7.5
1 Placa de solera de 2.2"x7.5"x3/4" 100 100
1 Tramo de Cold-Rolled de 2"x1" 30 30
4 Rodamientos No.608 Cilíndricos 1 Hilera 36 144
12 Tornillos de 1/8" x 1/4" UNC 1 12
4 Opresores de 1/8"x1/8" 0.5 2
1 Tramo de 1.5m de espárrago de 1/2" UNC 42 42
2 Motorreductores 1Kg/cm 60 120
2 Opto-interruptores ITR8102 5 10
1 Circuito L923C 41 41
2 Resistencias 330Ω 0.5 1
1 Regulador 7805 5 5
1 Zocalo 10+10 5 5
Láser
1 Láser de diodo NDB7412T 800 800
2 MOSFET IRF610 12 24
1 Circuito IR2110 24 24
1 Inductor 550µH 25 25
1 Capacitor 2200µF 5 5
1 Diodo 1N4148 4 4
Interfaz
1 PIC18F4450 112 112
1 Conector USB macho 10 10
1 Zocalo 20+20 12 12
1 LED Azul 5 5
1 Cuarzo de 8 MHz 5 5
TOTAL 1414.5
Tabla 5.1 Cotización de acuerdo al material propuesto para el desarrollo del sistema de grabado
114
5.2 Conclusiones
Se logró cumplir con el objetivo principal de la tesis, que fue diseñar y construir un
sistema capaz de grabar PCB utilizando diodo láser como herramienta de trabajo y que se
muestra a continuación.
Figura 5.1 Mesa de coordenadas completamente ensamblada.
Es importante notar lo económico que resulta implementarlo, reduciendo solo a la
adquisición del láser de diodo, y aunque solo es el diseño y construcción para fines
académicos, se sientan las bases para un equipo más robusto, económico y de
proporciones industriales.
De igual manera, cuando el prototipo esté 100% funcional se llegó a la conclusión
de que es posible comercializarlo en escuelas de ingeniería y bachillerato tecnológico para
los laboratorios de las mismas, en tiendas de componentes electrónicos y con los mismos
115
fabricantes de circuitos impresos ya que se trata de una propuesta innovadora para la
elaboración de PCB.
Este trabajo también ha servido para lograr una participación en el VII Congreso
Nacional Estudiantil de Investigación (CNEI) por medio de una ponencia, logrando la
aprobación del jurado receptor de trabajos y obteniendo buenos resultados durante la
presentación de la misma.
5.3 Propuestas De Mejora:
El sistema es operable y funciona correctamente pero es posible mejorar sus
características realizando las siguientes modificaciones o adiciones:
Diseño de un driver variable para tener un sistema que sea flexible y así probar con
diodos láser de menor potencia para cuando se requiera procesar otro tipo de
materiales o realizar otro tipo de aplicaciones como un simple marcado.
Implementar un láser de CO2. Dado que el diodo de mayor potencia que se pudo
conseguir fue de 1500 mW, no es posible lograr llegar a la superficie de cobre de la
tablilla fenólica como se espera. Se probó con pintura vinílica de diversos colores
buscando una mayor absorción consiguiendo solo un marcado más profundo en
algunos colores. El láser de CO2 es un tema que profundiza más en estudios de
posgrado y resulta costoso de construir.
Implementar Servomotores en lugar de Motorreductores
Dentro de la parte mecánica, se propone una mesa con guías prismáticas para
reducir la fricción y la pérdida de fuerzas en el desplazamiento lineal.
116
De igual manera, se propone utilizar un husillo sin fin para fuerzas mayores y
pasos más grandes.
Implementar una HMI propia del sistema, ya que solo se ejemplifica un modo de
procesar la imagen y de enviar las instrucciones para el grabado de las mismas
Proponer una estrategia de control óptima para hacer más eficiente al sistema, ya
que solo se gestiona la posición del material dentro del sistema de coordenadas.
117
Referencias
[1]“History of printmaking” [En línea].
http://www.the-artists.org/search/prints-h.cfm
15 de abril de 2007.
[2] Infoplease. “Woodcut and wood engraving history” [En línea].
http://www.infoplease.com/ce6/ent/A0861993.html
15 de abril de 2007.
[3] Green, Cedric. “La electricidad, la luz y la imagen impresa” [En línea]. 2003.
http://www.greenart.info/history/HistoryC.htm
21 de abril de 2007.
[4]"Láser" [En línea]
http://es.wikipedia.org/wiki/L%C3%A1ser#Referencias
5 de Junio de 2012
[5]"Laser machining : theory and practice"
G. Chryssolouris Springer-Verlag. págs 15 - 50
6 de Junio de 2012
[6]”El láser de diodo” [En línea]
http://www.seeic.org/articulo/laser/las-diodo.htm
6 de Junio de 2012
118
[7]”Sistemas láser específicos” [En Línea]
http://bibliotecadigital.ilce.edu.mx/sites/ciencia/volumen2/ciencia3/105/htm/sec
_7.htm
6 de Junio de 2012.
[8]”El diodo láser” [En Línea]
http://www.uv.es/~esanchis/cef/pdf/Temas/B_T4.pdf
6 de Junio de 2012.
[9]"Lasers & applications"
A high tech publication. pags 8 - 20
15 de Junio de 2012
[10]”Láseres semiconductores” [En Línea]
http://delibes.tel.uva.es/tutorial/Tema_II/Laser/TUTORIAL/Laser.html
15 de Junio de 2012.
[11]"A new kind of laser excitation" [En Línea]
James G Small y Juan M Elizondo. pags 15 - 62
24 de Junio de 2012
[12]”Tipos de láser” [En Línea]
http://www.itlalaguna.edu.mx/Academico/Carreras/electronica/opteca/OPTOPDF
5_archivos/UNIDAD5TEMA4.PDF
24 de Junio de 2012.
[13] Jan Axelson,” USB Complete. The Developers Guide”, Cuarta Edición
119
[14] PIC18F4550 Datasheet, Microchip [En línea]
http://ww1.microchip.com/downloads/en/devicedoc/39632c.pdf
[15] IR2110 Datasheet, International Rectifier [En línea]
http://www.agspecinfo.com/pdfs/I/IR211~1.PDF
[16] Guía de reemplazo de rodamientos, Motion & Control NSK [En línea]
http://www.mx.nsk.com/Catalagos/am7.pdf
[17] García Breijo Eduardo, Compilador C CCS y Simulador Proteus para
microcontroladores PIC, Alfaomega 2008
[18] Image Processing Toolbox, Mathworks,
http://www.mathworks.com/products/image/
[19] Instrument Control Toolbox, Mathworks,
http://www.mathworks.com/products/instrument/
120
Anexos
Anexo A: Diodo Láser Nbd7412t
121
Anexo B: Itr8102
122
123
Anexo C: L293c
124
125
126
Anexo D: L7805
127
128
Anexo E: Irf610
129
130
Anexo F: Ir2110
131
132
133
Anexo G: Pic18f4550
134
135
136
Anexo H: Código de Procesamiento de Imagen en MATLAB. clear;
int mesa(492,256);%%Se declara esta matriz de esta dimensión por que la imagen a probar
tiene %%estas dimensiones de pixeles
%%Se declara a mesa como entero porque de no ser así MATLAB por defecto lo asigna
%%%como flotante y genera error al mostrar la imagen
PCB=imread('PCB.jpg');
%%con este comando se convierte la imagen en matriz
PCB=RGB2GRAY(PCB);
%%es necesario convertir la imagen de RGB a escala de Grises para que la
%%matriz de imagen sea bidimensional
for i=1:492;
%%se ponen dos ciclos for anidados para evaluar cada pixel de la imagen
for j=1:314;
%%El valor del elemento de la matriz PCB(i,j) representa la intensidad del
%%color blanco, si es menor o igual a 200 se mandará a encender el diodo
%%laser y se asignará a mesa(i,j) un valor 0, si es menor el diodo laser se
%%apagara y se asignará a mesa(i,j) un valor blanco o 255.
if PCB(i,j)>=255;
mesa(i,j)=0;
elseif PCB(i,j)<200;
mesa(i,j)=255;
end
end
end
%%imshow muestra la matriz mesa, que en este caso es la imagen en color
%%invertido que se ha usado en el ejemplo para ilustrar que realmente esta
%%siendo procesada la imagen PCB.jpg
imshow(mesa);
%%mplay se usa para mostrar la imagen PCB y hacer una comparación entre PCB
%%y mesa.
mplay(PCB);
137
Anexo I: Código de Propuesta de activación de Puerto Serie
en MATLAB
PS=serial('COMx'); %Se declara el puerto a usar, donde x es un COM asignado por
la PC
set(PS,'Baudrate',9600); % se configura la velocidad a 9600 Baudios
set(PS,'StopBits',1); % se configura bit de parada a uno
set(PS,'DataBits',8); % se configura que el dato es de 8 bits, debe estar entre 5 y 8
set(PS,'Parity','none'); % se configura sin paridad
set(PS,'Timeout',5); % 5 segundos de tiempo de espera
fopen(PS); %Con esta instrucción, se abre el puerto para comenzar a enviar y recibir datos.
138
Anexo J: Código de programación del Microcontrolador PIC
para la gestión del sistema de grabado.
//Declaración de librerías #include <18f4550.h> #device adc=10 #fuses HSPLL,
NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN #use delay (clock=48000000) //Para comunicación USB es necesario declararlo a 48
Mhz #define USB_CON_SENSE_PIN PIN_B2 #include <usb_cdc.h> //Libreria para conexión USB void main() BYTE i,j,k,address,value; int16 q,q1; float p; q1=0; //Declaración de un ADC setup_adc_ports(AN0|VSS_VDD); setup_adc(ADC_CLOCK_INTERNAL); set_adc_channel(0); //Inicialización del Puerto USB usb_cdc_init(); usb_init(); do usb_task(); //Indica al Puerto USB que realizará una tarea if(usb_enumerated()) /*Este comando verifica que el COM virtual opere de forma
correcta. La PC asigna la numeración a los puertos COM. COM1 representa el puerto serie principal del equipo, mientras los demás pueden ser incluso virtuales. Si se detecta que esta acción fue realizada, significa que el puerto virtual se encuentra en condiciones de enviar y recibir datos*/
k=usb_cdc_getc(); /*Este comando recibe el caracter que le es enviado de la
computadora y lo almacena en la variable k*/
139
if(k=='1') //Si k vale el character 1, entonces, el LED conectado en A1 encenderá y apagará
output_toggle(PIN_A1); while(TRUE);
140
Anexo K: Código de programación que liga el control de los
motores.
#include <18F4550.h> //Libería de PIC a usar #fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN /* Lista de fuses a utilizar HSPLL: Permite usar 48 Mhz a partir del PLL del PIC NOWDT: No WatchDog Timer NOLVP: No Low Voltage Programming NODEBUG: NO Debug USBDIV: La frecuencia base se obtiene a partir del PLL y no del oscilador PLL5: Divide el PLL del PIC en 5 partes CPUDIV1: Divide 1 vez el reloj maestro del PIC VREGEN:Activa regulador interno del PIC a 3.3V */ #use delay(clock=48000000) //48 Mhz necesarios para la conexión USB #include <usb_cdc.h> // Librería que permite usar el cdc del PIC void main() //Función principal //Declaración de variables char mat[10][10]; int i,j; //Activación del Timer y PWM setup_timer_2(T2_DIV_BY_1,224,1); setup_ccp1(CCP_PWM); //Inicialización de la conexión USB usb_cdc_init(); usb_init(); delay_ms(3000); //Tiempo de retardo para no saturar buffer usb_task(); // Permite detectar si el USB esta conectado a la PC if(usb_enumerated()) //Si la PC ya asignó número de puerto virtual, el puerto comienza a trabajar /*Primer grupo de for anidados Este grupo tiene la función de obtener la imagen convertida en matriz a partir de los caracteres que envía MATLAB. Mediante usb_cdc_getc() se obtiene dicho valor, y se almacena en el el elemento de la matriz de acuerdo
141
a como funcione la iteración. Tiene un delay de 20 ms para evitar saturar el buffer.*/ for (i=0; i<=1000; i++) for(j=0; j<=1000; j++) delay_ms(20); mat[i][j]=usb_cdc_getc(); delay_ms(20); /*Segundo grupo de for anidados Este grupo tiene la función de "imprimir" la matriz obtenida ya en la mesa de coordenadas Conforme a las iteraciones, se lee el valor del elemento de la matríz. Si el valor es el caractér '1', entonces, se activará el PWM que controla el láser,provocando con ello que se vaporice la pintura" Después, se procederá a mover la mesa de coordenadas, activando el PIN B0 del PIC, ocasionando que la mesa empiece a moverse 1 pixel aproximadamente (36° del encoder). Cuando se detecte que se ha movido un pixel, se manda a cero el bit del PIN B0 Si el caracter leido en la matriz es igual a '0' entonces no se hace vaporización, y se prosigue con el paso antes descrito */ for(i=0; i<=1000; i++) for(j=0; j<=1000; j++) delay_ms(20); if(mat[i][j]=='1') set_pwm1_duty(1024); delay_ms(3000); set_pwm1_duty(100); output_high(PIN_B0); if(input(PIN_A0)==1) output_low(PIN_B0); if(mat[i][j]=='0') output_high(PIN_B0); if(input(PIN_A0)==1) output_low(PIN_B0);
142
/*Retorno de mesa a su origen Cuando la impresión haya concluido, se encenderán los pines B1 y B3 del PIC, ocasionando que los motores de la mesa de coordenadas funcionen en sentido inverso, regresando a su posición de origen. Se detectará que la mesa de coordenas ha llegado a su posición inicial cuando los sensores conectados en A2 y A3 envíen un 1 lógico al PIC, entonces los pines que gestionan el accionamiento en reversa serán desactivados */ if(i==1000 && j==1000) output_high(PIN_B1); output_high(PIN_B3); if(input(PIN_A2)==1&&input(PIN_A3)==1) output_low(PIN_B1); output_low(PIN_B3); /*Cambio de línea Este grupo de comandos permitirá hacer un salto de línea, cuando las iterraciones de j hayan terminado. Se enciende el pin B2, que acciona el motor en el eje contrario y desplazará el material aproximadamente 1 pixel (36°). Cuando esto suceda, será dectado por el sensor conectado en el PIN A1 del PIC y entonces, PIN B2 será apagado */ output_high(PIN_B2); if(input(PIN_A1)==1) output_low(PIN_B2);