Universidad Tecnológica de Querétaro Firmado digitalmente por Universidad Tecnológica de Querétaro Nombre de reconocimiento (DN): cn=Universidad Tecnológica de Querétaro, o=Universidad Tecnológica de Querétaro, ou, [email protected], c=MX Fecha: 2010.10.14 16:50:23 -05'00' 1 2 AGRADECIMIENTOS Al término de mis estudios en la UTEQ como TSU en Electrónica y Automatización, les doy las gracias a todas las personas que hicieron posible este logro. Gracias a todos y cada uno de los miembros de mi familia por su gran esfuerzo por apoyarme moral, afectiva y económicamente por encima de otras prioridades. Además, porque jamás dejaron de creer en mí, por más grandes que hayan sido las dudas que en algún momento tuvieron. Quiero agradecer a mi esposa Marisol Pérez Nieves por aguantar esas noches de desvelo a pesar de su condición. A mi bebé pues de no ser por ella todo este esfuerzo no tendría mayor sentido. Quiero agradecer a todos los maestros que a lo largo de mi formación académica han puesto los cimientos que servirán para la construcción de mi futuro, y han invertido tiempo muy importante para aclarar mis dudas fuera de sus horas de clase. 3 ÍNDICE AGRADECIMIENTOS ÍNDICE INTRODUCCIÓN CAPÍTULO I. ANTECEDENTES DE LA EMPRESA Pág. 1.1 Antecedentes de la empresa ............................................................................. ..8 1.2 Misión ............................................................................................................. ..8 1.3 Visión ....................................................................................................... ..….9 1.4 Organización .................................................................................................... ..9 1.5 Campo de desarrollo nacional o internacional .................................................. 10 1.6 Proceso general de producción ........................................................................ 10 CAPÍTULO II. EL PROYECTO 2.1 Antecedentes ................................................................................................... 12 2.2 Definición del proyecto ................................................................................... 12 2.3 Objetivo .......................................................................................................... 12 2.4 Alcance ........................................................................................................... 13 2.5 Plan de trabajo ................................................................................................ 13 2.5.1 Separación de actividades ................................................................. 13 2.5.2 Asignación de tiempos ...................................................................... 14 2.5.3 Gráfica de Gantt ................................................................................ 15 4 CAPÍTULO III. MARCO TEÓRICO 3.1 Archivos Gerber ............................................................................................... 18 3.2 Gerbv ............................................................................................................... 19 3.3 Virtual Box ..................................................................................................... 22 3.4 Fedora ............................................................................................................. 23 3.5 GTK ................................................................................................................ 24 3.6 Mingw32 ......................................................................................................... 27 3.7 Wine ............................................................................................................... 28 3.8 Compilación cruzada ....................................................................................... 29 CAPÍTULO IV. DESARROLLO DEL PROYECTO 4.1 Reconocimiento de la versión 2.2 del programa Gerbv .................................... 31 4.2 Investigación de programas necesarios para logra la edición………………. 32 4.3 Instalación de Fedora sobre Virtual Box .......................................................... 33 4.4 Reconocimiento de Fedora .............................................................................. 36 4.5 Instalación de librerías necesarias para compilación ........................................ 37 4.6 Obtención del código fuente de Gerbv ............................................................. 39 4.7 Identificación de los archivos a modificar ........................................................ 40 4.8 Compilación .................................................................................................... 42 4.9 Realización de pruebas sobre Windows ........................................................... 43 4.10 Creación del instalador .................................................................................. 44 CAPÍTULO V. ACTIVIDADES DIVERSAS 5.1 Introducción .................................................................................................... 49 5.2 Panelización de varios Proyectos en FAB3000 ................................................. 49 5.3 Pruebas y ajustes a máquina lasér .................................................................... 50 5 5.4 Ensamble de elementos PTH y TrueHole ........................................................ 50 5.5 Elaboración de manuales para cada actividad .................................................. 51 CAPÍTULO VI. EVALUACIÓN ECONÓMICA Y RESULTADOS OBTENIDOS 6.1 Resultados obtenidos ........................................................................................ 53 CONCLUSIONES Conclusiones ......................................................................................................... 55 BIBLIOGRAFÍA Bibliografía y/o páginas consultadas en Internet ................................................... 57 6 INTRODUCCIÓN El presente reporte de estadía se realizó dentro de la empresa AIMSA, S.A. de C.V. en el área de diseño y ensamble de PCB’s, durante el periodo mayo – agosto de 2010. El proyecto consistió en la modificación del código fuente del programa visor de gerbers: Gerbv. La modificación se realizo analizando el funcionamiento del programa, detectando sus fallas y haciendo pruebas para corregirlas hasta lograr el producto deseado. También se realizo un manual del proceso para que cualquier programador del personal pueda manipular el programa cuando el creador titular no se se encuentre presente A lo largo de este trabajo se hace una descripción de las actividades realizadas dentro de la empresa; por lo mismo, comprende la recopilación de datos hasta la entrega del manual. 7 CAPÍTULO I ANTECEDENTES GENERALES DE LA EMPRESA 8 1.1 Antecedentes de la empresa 1 AIMSA, S.A. de C.V. es una empresa mexicana establecida en el estado de Querétaro, en la ciudad de Santiago de Querétaro. Esta empresa se dedica al diseño y ensamble de tarjetas PCB, así como la venta de software embebido de diseño, tales como IAR e Interpodic’s. También ofrece entrenamiento y asesoría impartidos por instructores certificados. Hasta el momento la empresa está buscando la mejora continua para lograr la optimización de sus procesos y el aumento de la calidad de sus productos, para satisfacer todos y cada uno de los requerimientos y exigencias de sus clientes. AIMSA tiene varios clientes a nivel nacional e internacional, clientes como empresas, universidades y centros de investigación muy reconocidos en la región. También cuenta con una gran variedad de proveedores internacionales, trayendo constantemente piezas de importación para una mejor calidad en el producto final. 1.2 Misión AIMSA es una empresa comprometida en ofrecer servicios y productos tecnológicos e integrados con un equipo capaz y sensible a las necesidades de los clientes en un mercado global 1.3 Visión (No tiene visión la empresa.) 1 La información del capítulo I fue proporcionada por la empresa AIMSA 9 1.4 Politica de calidad La empresa se mantiene en mejora continua sonde lo mas importante son las necesidades del cliente. 1.5 Organización AIMSA, S.A. de C.V. está organizada en dos áreas, con la finalidad de que el personal de cada área se dedique únicamente a sus labores específicas, sin involucrarse con el trabajo de otras áreas. A continuación, en la figura 1.1 se presenta el organigrama de la empresa. AIMSA PCBRAPIDO SERVICIO DE DISEÑO ELECTRONICO ENSAMBLE DE PIEZAS SMT FABRICACION DE GABINETES GESDC SERVICIO DE DISEÑO ELECTRONICO SOPORTE Y VENTAS DISEÑO PCB CAPAS IP DISEÑO FPGA PTH ANALISIS DE INTEGRIDA D DE SEÑAL FIRMWARE Figura 1.1 Organigrama de la empresa AIMSA 10 1.6 Campo de desarrollo AIMSA además de diseñar circuitos impresos, fabrica prototipos rápidos basados en las necesidades del cliente. Es una de las principales empresas enfocadas al diseño y manufactura de tarjetas de circuito impreso, desde 1 hasta 500 piezas. Somos representantes y distribuidores de software de diseño especializado IAR. En kits de desarrollo para diversos micro controladores y sus respectivas interfaces. Los principales clientes son las empresas interesadas en mejorar sus procesos a través del mejoramiento continuo de su tecnologia 1.7 Proceso general de la producción Dentro de las actividades de producción se tiene: Ensamble de piezas por SMT y PTH Venta de software especializado en diseño de tarjetas PCB Diseño de prototipos basados en especificaciones técnicas del cliente Fabricación de gabinetes a la medida, teclados de membrana y carátulas de aluminio 11 CAPÍTULO II EL PROYECTO 12 2.1 Antecedentes AIMSA, S.A. de C.V. es una empresa en vías de desarrollo y con la mira de ser la empresa líder en su ramo, es por esto que se preocupa por ofrecer siempre el mejor servicio posible y los mejores productos del mercado al que pertenece. Por esta razón se mantiene en mejora continua día con día. Es muy importante para la empresa contar con un control del proceso de fabricación, para mostrar a sus clientes la calidad de los productos que ella ofrece. Por otra parte, no menos importante es mantenerse a la vanguardia en tecnología y dar a conocer estos productos a través de su página en internet. Es a partir de estos objetivos que surgió la necesidad de abrir foros en línea donde se compartan archivos tales como tutoriales, programas de open source y metadato entre otros. 2.2 Definición del proyecto El proyecto denominado “BUILDING PCBRÁPIDO GERBER VIEWER” consiste en la realización de tutoriales y edición de software open source para adaptarlos a las necesidades de la empresa. Estos tutoriales serán utilizados después para ser compartidos en los foros de la página oficial de la compañía. 2.3 Objetivo Este proyecto tiene como meta final editar el código fuente del programa llamado Gerbv para adaptarlo y crear una versión llamada PCBRAPIDO Gerber viewer. 13 2.4 Alcance Se pretende entregar una versión del programa completamente traducida y acoplada a las características de la empresa, respetando los derechos de autor del software original; así como un tutorial que permita a programadores posteriores el fácil entendimiento y manejo de los programas utilizados para lograr la realización del proyecto. 2.5 Plan de trabajo Al realizar un proyecto, es de suma importancia que se conozca cada una de las actividades a desarrollar, ya que esto evitará retrasos en la entrega. Por este motivo, se planearon de una manera ordenada y secuencial todas las actividades del proyecto, estableciendo los tiempos de ejecución de las mismas. 2.5.1 Separación y secuencia de actividades La separación de actividades consiste en desglosar el proyecto en tareas, para lograr concluirlo de una manera fácil y sencilla. Una vez que se identificaron las actividades que se llevarían a cabo, se les asignó la siguiente secuencia (ver tabla 2.1). Actividad Reconocimiento de la versión 2.2 del programa Gerbv Seguimiento 1 Investigación de programas necesarios para lograr la edición 2 Instalación de Fedora y Virtual Box 3 Reconocimiento de Fedora 4 Instalación de librerías necesarias para la compilación 5 Obtención del código fuente de Gerbv 2.2 6 14 Identificación de los archivos a modificar 7 Compilación 8 Realización de pruebas sobre Windows 9 Verificación y ajuste de parámetros. 10 Creación del instalador 11 Tabla 2.1 Secuencia de actividades 2.5.2 Asignación de tiempos La asignación de tiempos es algo muy importante, ya que de esto depende la oportuna realización del proyecto. En la tabla 2.2 se presentan las actividades y los tiempos estimados para cada una de estas actividades. Actividad Tiempo en días Reconocimiento de la versión 2.2 del programa Gerbv 1 Investigación de programas necesarios para lograr la edición 2 Instalación de Fedora y Virtual Box 1 Reconocimiento de Fedora 4 Instalación de librerías necesarias para la compilación 1 Obtención del código fuente de Gerbv 2.2 1 Identificación de los archivos a modificar 2 Compilación 1 Realización de pruebas sobre Windows 2 Verificación y ajuste de parámetros. 2 Creación del instalador 1 Tabla 2.2 Designación de tiempos a cada actividad 15 2.5.3 Gráfica de Gantt En la siguiente gráfica de Gantt (tabla 2.3) se muestra la secuencia de actividades así como sus tiempos (definidos en horas), que son el resultado de las tablas anteriores. La gráfica permite organizar el proyecto de tal modo que los tiempos establecidos sean aprovechados en las actividades que se hayan planeado, dejando algunas horas para resolver imprevistos en el proyecto. Días de trabajo Actividad 1 2 1 4 1 1 2 1 2 Reconocimiento de la versión 2.2 del programa Gerbv Investigación de programas necesarios para lograr la edición Instalación de Fedora y Virtual Box Reconocimiento de Fedora Instalación de librerías necesarias para la compilación Obtención del código fuente de Gerbv 2.2 Identificación de los archivos a modificar Compilación Realización de pruebas sobre Windows Verificación y ajuste de parámetros Creacion del instalador Tabla 2.3 Gráfica de Gantt 16 2 1 CAPÍTULO III MARCO TEÓRICO 17 3.1 Archivos Gerber2 El formato o tipo de fichero Gerber contiene la información necesaria para la fabricación de la placa de circuito impreso o PCB. Se pueden crear con distintos programas de diseño electrónico como Eagle, Protel o Altium Designer. El estándar más común hoy en día es el RS-274-X, aunque existen otros menos frecuentes. Gerber fue creado por Gerber Systems Corporation, que durante la década de los 70 se convirtió en el mayor fabricante de impresoras utilizadas en este trabajo. El formato se estandarizó en 1980 por la Electronic Industries Association que recibió una descripción técnica de RS-274-D. Es un formato diseñado para el control de las impresoras de transparencias (photolite). Estas impresoras (también conocido como fotoplotter) fueron de hecho las máquinas de control numérico que se mueven en el plan. Había una intensa fuente de luz y un volante de varias posiciones que variaba la forma del haz de luz. En cada posición de la rueda existen formas de aberturas cuadradas, elípticas, circulares, etc., Y varios tamaños para cada una de las formas. La luz tiene la forma se condensa en photolite a través de lentes. El archivo en cuestión está en texto plano con el listado de movimientos de la fuente de luz abierta o cerrada (códigos G) y utilizando una de las formas / aberturas (códigos D) disponible, entre muchos otros comandos. En 1991, el formato se amplió para incluir los códigos de "apertura", que permite a un expediente con la descripción de Gerber en un circuito completo e independiente, sin necesidad de archivos adicionales con información acerca de la forma y el tamaño de cada apertura, una lista de los agujeros, tolerancias, etc. Típicamente el conjunto de ficheros gerber RS-274X está formado por: 2 www.wikipedia.com 18 .GBL - Gerber Bottom Layer - Capa inferior .GTL - Gerber Top Layer - Capa superior .GBS - Gerber Bottom Solder Resist - Máscara de soldadura inferior .GTS - Gerber Top Solder Resist - Máscara de soldadura superior .GBO - Gerber Bottom Overlay - Revestimiento superior .GTO - Gerber Top Overlay - Revestimiento inferior .GBP - Gerber Bottom Paste - Pasta de soldadura inferior .GTP - Gerber Top Paste - Pasta de soldadura superior .GKO - Gerber Keep-Out Layer .GM1 - Gerber Mechanical 1 - Mecánica 1 .GM2 - Gerber Mechanical 2 - Mecánica 2 .GPT - Gerber Top Pad Master - Máster de pads superior .GPB - Gerber Bottom Pad Master - Máster de pads inferior 3.2 Gerbv Información general: Es un visor de archivos Gerber RS-274X, archivos Excellon de perforación, y CSV archivos de pick-and-place. Es una aplicación nativa de Linux, y se ejecuta en muchas plataformas Unix común. Es un software libre / código abierto. Es una de las empresas de servicios públicos afiliados con el proyecto gEDA, una organización dedicada a la producción de herramientas de software libre para diseño electrónico. La versión oficial más reciente es la versión 2.2.0 gerbv, publicado el 01.21.2009. En la figura 3.1 se muestra la pantalla de Gerbv: 19 Tabla 3.1 Designación de tiempos a cada actividad En resumen, gerbv soporta las siguientes características: Gerbv se ejecuta en Linux y Unix's (Linux nativo). Una versión experimental de Windows está disponible para pruebas beta. Muestra archivos RS-274X (No se muestran archivos RS-274D ) Gerbv trata las macros de apertura de hasta 10 niveles de recursividad. Apoya operaciones complejas de capa (por ejemplo, del golpe de gracia). Gerbv puede mostrar muchos formatos diferentes de archivos de perforación. En particular, los archivos Excellon de perforación son compatibles. Otros archivos de taladro con una sintaxis similar también se mostrarán. 20 Muestra los archivos pick-and-place. Cuando se construyó utilizando el motor de renderizado de El Cairo, gerbv puede mostrar capas Gerber en modo "semi-transparente", lo que facilita su visualización. Gerbv ofrece servicios de análisis y validación de la sintaxis de su archivo Gerber, código de cuenta, el uso de apertura, etc Esto puede ser útil en situaciones en las que usted está teniendo problemas en la etapa de la fabricación de CAM. Cuando se construyó usando Cairo, gerbv permite la edición limitada Gerber. En la actualidad se limita a borrado de los objetos.Toma panorámica y zoom (tanto por pasos y esquema) de la imagen es compatible. Gerbv configura imagen en auto escala - es decir, zoom y panorámica de la imagen para adaptarse a la ventana de visualización. Múltiples archivos pueden ser cargados al mismo tiempo y se muestra "en la parte superior de cada otro". El número de capas que se pueden cargar al mismo tiempo es ilimitado por gerbv. El orden de las capas (stackup) se puede cambiar con la intuitiva herramienta "arrastrar y soltar". Gerbv incorpora una herramienta de medición para que pueda tomar medidas en la imagen. Tres unidades de medida diferentes compatibles: pulgadas, milímetros, mil (1 / 1000 de pulgada). Las unidades de medida son seleccionables por el usuario Gerbv puede exportar una imagen de capa a PNG, Ps, Pdf y. Svg, tanto desde dentro de la interfaz gráfica de usuario, así como a través de un interruptor de línea de comandos (versión cairo solamente). Gerbv incluye una operación de recarga, que vuelve a leer todos los archivos cargados de disco. 21 3.2.1 Virtual Box Oracle VM Virtual Box es un software de virtualización para arquitecturas x86, creado originalmente por la empresa alemana innotek GmbH. Actualmente es desarrollado por Oracle Corporation como parte de su familia de productos de virtualización. Por medio de esta aplicación es posible instalar sistemas operativos adicionales, conocidos como «sistemas invitados», dentro de otro sistema operativo «anfitrión», cada uno con su propio ambiente virtual. Entre los sistemas operativos soportados (en modo anfitrión) se encuentran GNU/Linux, Mac OS X, OS/2 Warp , Microsoft Windows, y Solaris/OpenSolaris, y dentro de ellos es posible virtualizar los sistemas operativos FreeBSD, GNU/Linux, OpenBSD, OS/2 Warp, Windows, Solaris, MS-DOS y muchos otros. La aplicación fue inicialmente ofrecida bajo una licencia de software propietario, pero en enero de 2007, después de años de desarrollo, surgió Virtual Box OSE (Open Source Edition) bajo la licencia GPL 2. Actualmente existe la versión propietaria Oracle VM Virtual Box, que es gratuita únicamente bajo uso personal o de evaluación, y está sujeta a la licencia de "Uso Personal y de Evaluación Virtual Box" (Virtual Box Personal Use and Evaluation License o PUEL) y la versión Open Source, VirtualBox OSE, que es software libre, sujeta a la licencia GPL. En comparación con otras aplicaciones privadas de virtualización, como VMware Workstation o Microsoft Virtual PC, VirtualBox carece de algunas funcionalidades, pero provee de otras como la ejecución de maquinas virtuales de forma remota, por medio del Remote Desktop Protocol (RDP), soporte iSCSI. En cuanto a la emulación de hardware, los discos duros de los sistemas invitados son almacenados en los sistemas anfitriones como archivos individuales en un contenedor llamado Virtual Disk Image, incompatible con los demás software de virtualización. 22 Otra de las funciones que presenta es la de montar imágenes ISO como unidades virtuales ópticas de CD o DVD, o como un disquete. 3.2.2 Fedora Fedora es una distribución Linux para propósitos generales basada en RPM, que se mantiene gracias a una comunidad internacional de ingenieros, diseñadores gráficos y usuarios que informan de fallos y prueban nuevas tecnologías. Cuenta con el respaldo y la promoción de Red Hat. El proyecto no busca sólo incluir software libre y de código abierto, sino ser el líder en ese ámbito tecnológico. Algo que hay que destacar es que los desarrolladores de Fedora prefieren hacer cambios en las fuentes originales en lugar de aplicar los parches específicos en su distribución, de esta forma se asegura que las actualizaciones estén disponibles para todas las variantes de GNU/Linux. Durante sus primeras 6 versiones se llamó Fedora Core, debido a que solo incluía los paquetes más importantes del sistema operativo. La última versión es Fedora 13, fue puesta a disposición del público el 25 de mayo de 2010. De acuerdo a DistroWatch, Fedora es la segunda distribución de GNU/Linux más popular, por detrás de Ubuntu. 3.2.3 GTK3 GTK+ o The GIMP Toolkit es un conjunto de bibliotecas multiplataforma para desarrollar interfaces gráficas de usuario (GUI), principalmente para los entornos gráficos GNOME, XFCE y ROX aunque también se puede usar en el escritorio de Windows, MacOS y otros. 3 www.wikipedia.com 23 Inicialmente fueron creadas para desarrollar el programa de edición de imagen GIMP, sin embargo actualmente se usan bastante por muchos otros programas en los sistemas GNU/Linux. Junto a Qt es una de las bibliotecas más populares para X Window System. Licenciado bajo los términos de LGPL, GTK+ es software libre y es parte del proyecto GNU. Bibliotecas GTK+ se basa en varias bibliotecas del equipo de GTK+ y de GNOME: GLib. Biblioteca de bajo nivel estructura básica de GTK+ y GNOME. Proporciona manejo de estructura de datos para C, portabilidad, interfaces para funcionalidades de tiempo de ejecución como ciclos, hilos, carga dinámica o un sistema de objetos. GTK. Biblioteca la cual realmente contiene los objetos y funciones para crear la interfaz de usuario. Maneja widgets como ventanas, botones, menús, etiquetas, deslizadores, pestañas, etc. GDK. Biblioteca que actúa como intermediario entre gráficos de bajo nivel y gráficos de alto nivel. ATK. Biblioteca para crear interfaces con características de una gran accesibilidad muy importante para personas discapacitadas o minusválidos. Pueden usarse utilerías como lupas de aumento, lectores de pantalla, o entradas de datos alternativas al clásico teclado o ratón. Pango. Biblioteca para el diseño y renderizado de texto, hace hincapié especialmente en la internacionalización. Es el núcleo para manejar las fuentes y el texto de GTK+2. Cairo. Biblioteca de renderizado avanzado de controles de aplicación. 24 APLICACIONES DE GTK+ Entornos que utilizan GTK+ GNOME está basado en GTK+, lo que significa que los programas de GNOME usan GTK+ Xfce está basado en GTK+ LXDE está basado en GTK+, significa "Lightweight X11 Desktop Environment" ROX Desktop un escritorio ligero, con características de la GUI de RISC OS GPE Palmtop Environment Maemo (Nokia's Internet-tablet framework) Access Linux Platform (sucesor de la plataforma Palm OS PDA) One Laptop Per Child usa GTK+ y PyGTK Los entornos de escritorio no son necesarios para ejecutar los programas GTK+. Si las bibliotecas que requiere el programa están instaladas, un programa GTK+ puede ser ejecutado por encima de otros entornos basadas en X11 como KDE o cualquier otro entorno, lo que incluye Mac OS X, si X11.app está instalado. GTK+ también puede ejecutarse en Microsoft Windows, es utilizado por algunas aplicaciones populares multiplataforma como Pidgin y el GIMP. wxWidgets, un toolkit gráfico multiplataforma usa GTK+ en sistemas tipo Unix.1 Algunos de los ports más inusuales incluyen directfb y ncurses. Decoradores de ventanas Metacity y Xfwm4 usan GTK+ 2. Aplicaciones Algunas aplicaciones que usan GTK+ como widget incluyen: AbiWord - Procesador de textos CinePaint (ex FilmGimp) - Raster HDR animated graphics editor 25 Ekiga (ex GnomeMeeting) - H.323/SIP VoIP softphone Evolution - Cliente de correo Firefox - Navegador Web GIMP - Raster graphics editor Gnumeric - Programa de hoja de cálculo Chromium - Navegador Web basado en Webkit y desarrollado en gran medida por Google GRAMPS - Genealogy software Inkscape - Editor de gráficos vectoriales SVG K-3D - Programa de modelado 3D libre Marionnet - Un simulador de red interactivo Midori - Navegador Web portable Nero Linux - Un programa para la edición de discos. Pidgin - Cliente de mensajería instantánea VMware Player - Máquina virtual Wireshark - Packet capture, decode and analyzer 3.3 Mingw324 MinGW (Minimalist GNU for Windows), anteriormente conocido como MinGW32, es una implementación de los compiladores GCC para la plataforma Win32, que permite migrar la capacidad de este compilador en entornos Windows. Es un fork de Cygwin en su versión 1.3.3. Además MinGW incluye un conjunto de la API de Win32, permitiendo un desarrollo de aplicaciones nativas para esa plataforma, pudiendo generar ejecutables y bibliotecas usando la API de Windows. MinGW fue creado por Colin Peters, el 1 de julio de 1998, compilándolo con Cygwin. La primera versión nativa de MinGW fue realizada por Jan-Jaap van der Heijden, quien 4 http://www.esi2.us.es/IMM2/Pract-html/x-27a.html y apuntes escolares 26 también tuvo participación en el proyecto GCC. Mumit Khan estuvo a cargo del mantenimiento del proyecto e incluyó al compilador algunas características propias de Windows. Los archivos de cabecera del API de Windows fueron provistos por Anders Norlander Una de las desventajas de MinGW es que los ejecutables que genera son de tamaño más grande que los generados por otros compiladores. Esto ocurre cuando se incluyen los archivos de cabecera estándares de C++ (por ejemplo, #include <iostream>), y se debe a que el compilador vincula todas las bibliotecas dentro del archivo ejecutable de manera estática. 3.3.1 Wine Wine (acrónimo recursivo en inglés para Wine Is Not an Emulator, que significa «Wine no es un emulador») es una reimplementación de la API de Win16 y Win32 para sistemas operativos basados en Unix. Permite la ejecución de programas para MS-DOS, Windows 3.11, 95, 98, ME, NT, 2000 y XP.. Descripción Wine provee de: Un conjunto de herramientas de desarrollo para portar código fuente de aplicaciones Windows a Unix. Un cargador de programas, el cual permite que muchas aplicaciones para Windows 2.0/3.x/9X/ME/NT/2000/XP/Vista y Win 7 se ejecuten sin modificarse en varios sistemas operativos similares a Linux como GNU/Linux, BSD, Solaris y Mac OS X 27 3.3.2 Compilación cruzada La compilación de código fuente que, realizada bajo una determinada arquitectura genera código ejecutable para una arquitectura diferente se denomina compilación cruzada. Para realizar este tipo de compilación es necesario contar con una serie de programas y librerías que establezcan un ambiente propicio para llevar a cabo esta tarea. Este ambiente se denomina entorno de compilación cruzada. 28 CAPÍTULO IV DESARROLLO DEL PROYECTO 29 En este capitulo se describe detalladamente el proyecto, con base en la gráfica de Gantt (mencionada en el capítulo II), en la cual se desglosaron las actividades. 4.1 Reconocimiento de la versión 2.2 del programa Gerbv La primera actividad que se abordó fue el reconocimiento de la versión de software sobre la que se iba a trabajar. En la figura 4.1 se muestra una fotografía de ésta. Figura 4.1 Gerbv visor de archivos Gerber Se dedicó suficiente tiempo a la observación y estudio del funcionamiento de cada una de las características y herramientas, para saber cómo funcionan y de esta manera determinar cómo editar cada una de ellas. 30 Además se hicieron observaciones sobre cómo fue traducido el programa por sus creadores. Esto fue de gran importancia, ya que el programador original pudo haber sido de otro país, y la traducción puede tener varios errores. Durante el reconocimiento del programa, se detectaron varias funciones que no podrían ser entendidas por el usuario final. Era necesario suprimir estas funciones innecesarias para así añadir un toque de autenticidad. 4.2 Investigación de programas necesarios para lograr la edición Debido a que el software sobre el que trabaje fue creado sobre el sistema operativo Linux, era necesario editar los archivos desde este mismo o alguno de sus proyectos alternos: Ubuntu, Fedora etc. El sistema elegido fue Fedora, siendo esta plataforma la que me ofrecía mayor estabilidad así como las herramientas que necesitaba para la compilación cruzada. Fedora cuenta con un proyecto realmente interesante creado por el Fedora’s MinGW Special Interest Group. Su objetivo es eliminar la duplicación de trabajo para los desarrolladores de programas, ofreciendo varias librerías y herramientas de desarrollo que ya han sido llevadas a los ambientes de compilación cruzada. Para facilitar el trabajo, y lograr instalar Fedora de manera adecuada en mi ordenador, se utilizo el programa Virtual Box, este me permitió instalar Fedora como sistema operativo invitado dentro de la interface de Windows. 4.3 Instalación de Fedora sobre Virtual Box Para lograr instalar Fedora como sistema operativo invitado era necesario obtener la imagen ISO de la interfaz. Esta puede ser descargada desde la página oficial del 31 Proyecto. Una vez instalado fedora se dio paso a instalar el sistema operativo invitado por medio del asistente. En la figura 4.2 se puede ver la interface de Virtual Box, junto con los sistemas ya instalados y opciones de agregar o iniciar nuevo sistema. Se dio clic en “Nuevo” Figura 4.2 Interfaz grafica de Virtual Box Se abrió el asistente para la instalación. En la figura 4.3 se muestra la ventana con opciones de Nombre y tipo de Sistema que se elegiria. Aquí es donde se seleccionara a Fedora como sistema invitado y el nombre que se deseara asignar. 32 Figura 4.3 Asistente de instalación de Virtual Box Al dar siguiente, apareció la ventana de la figura 4.4 donde se preguntó la cantidad de memoria RAM que se desearia asignar a nuestro nuevo sistema, de manera predeterminada se ofrecieron 512MB, que en realidad son suficientes para el objetivo. Figura 4.4 Asistente de instalación 33 En la figura 4.5 se dio a elegir el espacio en disco duro que se usaría, una vez más se dejó que el programa eligiera las opciones por default. Figura 4.4 Asistente de instalación Por último en la figura 4.6 se presentó un resumen de las opciones que se eligieron, al dar clic sobre Terminar se crearía un espacio virtual para Fedora Figura 4.6 Asistente de instalación 34 4.4 Reconocimiento de Fedora A continuación en la figura 4.7 se muestra la pantalla principal de Fedora Linux, las herramientas y características no varían bastante a lo que normalmente se usa sobre Windows Figura 4.7 Interfaz grafica de Fedora Durante el desarrollo de este proyecto, se realizó un reconocimiento básico sobre diversas características del sistema operativo y sobre las herramientas que se necesitaron para lograr la edición y compilación del programa. En la figura se muestra la interfaz principal de Fedora. Debido a que se desconocía el manejo de este sistema operativo, y fue necesario investigar los comandos fundamentales, la manipulación de archivos así como la forma en la que se distribuyen. 35 4.5 Instalación de librerías necesarias para la compilación Para lograr la compilación cruzada fueron necesarias las librerías del programa Mingw32. El resto de las librerías necesarias ya están incorporadas en Fedora, así que no fue necesario instalarlas manualmente. Esta es una buena razón para usar Fedora en lugar de Ubuntu. Para la instalación de las librerías, fue necesario tener acceso a Internet, de otra forma será necesario descargar e instalar de forma independiente cada una de ellas. El sistema de Fedora funciona similar a Windows, con la gran diferencia de que la mayor parte de los programas deben ser instalados desde la Terminal, que en Windows seria como el Símbolo del Sistema. En la figura 4.8 se muestra como se accede a la Terminal Figura 4.8 Apertura de la Terminal 36 Desde la Terminal es posible instalar, compilar y básicamente realizar la mayor parte de las acciones tanto avanzadas como básicas del sistema. En la figura 4.9 se muestra la parte superior del árbol de línea de comandos. Figura 4.9 Arbol de línea de comandos en Terminal En Fedora las acciones como instalación y compilación de un programa deben ser ejecutados con permisos de administrador, para esto se tecleo “su”. En la figura 4.10 se puede ver que al dar enter después del comando anterior, nos pide nuestra contraseña con la que entramos al sistema. El nombre de usuario cambio al principio de la línea de comandos y ahora somos usuario “root”.Este tipo de usuario nos permite modificar archivos del sistema. Figura 4.10 Ejecución de comandos de administrador Después de obtener los permisos, se teclearon los comandos “yum install mingw32-gcc mingw32-gtk2 mingw32-crossreport mingw32-nsiswrapper”. El comando “yum install” es reconocido para la instalación, lo escrito después son las librerías de mingw especificas que se desea instalar. 37 4.6 Obtención del código fuente de Gerbv Para poder modificar Gerbv a nuestra conveniencia es necesario obtener el código fuente del programa. El código fuente contiene todos los archivos de los que se compone el software. El código fue descargado desde la página oficial del proyecto Gerbv, viene comprimido en un archivo “.tar.gz”. Una vez obtenido el código debemos extraer el contenido de Gerbv en una carpeta. De preferencia deberemos extraer esta carpeta en el sistema de archivos de Fedora, pero antes debemos obtener los permisos para manipular los archivos como administradores del equipo. Abrimos la terminal y tecleamos lo siguiente: $ su - -login Se introduce nuestra contraseña # nautilus (comando utilizado para manipular archivos como administrador desde el navegador de archivos) Se abrirá el navegador de archivos, con la diferencia de que se podra manipular los archivos como administrador root En la figura 4.11 se muestra el sistema de archivos con privilegios de root Figura 4.11 Sistema de archivos con privilegios de root 38 Esta ventana no debe ser cerrada hasta terminar el proceso de extracción del código al sistema de archivos, de otra forma tendrá que abrirse de nuevo desde la terminal Habiendo conseguido los permisos y sin haber cerrado la ventana de navegador, se fue a la carpeta donde está el archivo comprimido con el código de Gerbv. Se copio, pegó y se extrajo su contenido sobre el sistema de archivos del root. En la figura 4.12 se muestra la carpeta copiada y descomprimida del archivo .tar.gz que se descargó de internet. Fue conveniente ponerla en esta carpeta ya que evitó tener que estarla buscando desde la Terminal. Figura 4.12 Carpeta copiada y descomprimida de Gerbv 4.7 Identificación de los archivos a modificar Para editar el programa desde las raíces fue necesario el programa Gedit (una especie de bloc de notas en Windows), ya que por ser éste se puede modificar texto o en este caso código fuente. 39 Se localizaron los archivos a modificar, por lógica se buscó dentro de la carpeta alguna que tuviera un nombre que la identificara como “source”. La carpeta “src” contenía el código fuente que necesitaría. Una vez más se buscó algún archivo que tuviese relación con la interfaz y se encontró el archivo interface.c, este archivo contiene todas las etiquetas que conforman la interfaz de Gerbv. Para traducir hubo que identificar ciertas líneas que son clave para la manipulación del programa. Sólo se modificó texto en rosa. En la figura 4.13 se muestran las características del archivo “interface.c” Figura 4.13 Caracteristicas del archivo interface.c 40 4.8 Compilación Una vez realizados los cambios, era momento de compilar el programa. Se abrió la Terminal, me identifique como administrador y tecle: <<cd /gerbv>> esto llevo a la carpeta donde se encuentra todo el código del que está formado Gerbv. Después tecle <<mingw32-configure>>.Este comando se encargo de configurar y comprobar que los requerimientos se cumplieran para llevar a cabo la compilación cruzada, además creó el archivo makefile, sin este archivo sería imposible seguir avanzando en el proceso. Para comprobar que se tuvo éxito, debe aparecer algo parecido a lo de la figura 4.14 al final del proceso. Figura 4.14 Mensaje al final del proceso Para finalizar con la compilación se ejecuto el comando:<<mingw32-make>> Una vez terminado el proceso de compilación, es posible probar el programa sobre Windows. Se abrió el navegador de archivos y el sistema de archivos (con permisos de root) y luego a Gerbv/src/.libs y ahí se buscaron dos archivos: gerbv.exe y libgerbv1.dll. Se copiaron a un medio extraíble para así llevarlos a Windows. En la figura 4.15 se pueden ver los archivos que copiaremos en la memoria. Nota: si la carpeta .libs no está visible se debe teclear ctrl+h para mostrar los archivos ocultos 41 Figura 4.15 Archivos que se copiarán a la memoria flash 4.9 Realización de pruebas sobre Windows Para que nuestro programa funcione sobre Windows debemos tener dlls extras. Estos los podemos bajar desde la página de GTK. En la figura 4.16 se muestra la lista de dll’s necesarios: Figura 4.16 Lista de archivos dll 42 Estos mismos dlls mas los archivos que se copiaron del programa son necesarios para crear el instalador. Así que se debe asegurar de que no falte ninguno. Una vez teniendo todo lo necesario se pueden hacer pruebas del programa. Para eso se deben meter todos los archivos (exe y dlls) en una misma carpeta y ejecutar el archivo exe. Si se tiene éxito aparecerá la interfaz de nuestro programa. En la figura 4.17 se muestran los resultados de la prueba. Figura 4.17 Resultados de la prueba 5.0 Creación del instalador Es recomendable revisar la estabilidad del programa así como verificar que nuestras modificaciones se hayan logrado. Ha llegado el momento de crear el instalador de nuestro programa, para eso se usara un programa bastante sencillo de utilizar llamado: 43 Advanced Installer. Este programa ofrece una interface amigable al usuario para crear paquetes de instalación (EXE, MSI, etc.) basados en la tecnología de Windows. Para facilitar el proceso se utilizó la ayuda que brinda el programa, así que se fue a File>New y aparecerá esta pantalla de la imagen. En la imagen 4.18 se muestra el diálogo de “Nuevo” Figura 4.18 Diálogo de Nuevo En esta pantalla se permite seleccionar el tipo de instalador que se quiere desarrollar. Debido a la versión gratuita del programa solo será posible seleccionar la forma simple de instalador. En la figura 4.19 se elige el nombre de el instalador y de la organización. 44 Figura 4.19 Elección de sistema En la figura 4.20 se podrá elegir donde se guardara el instalador y el proyecto: Figura 4.20 Elección de destino a guardar En la figura 4.21 se muestra el final del proceso: 45 Figura 4.21 Final del proceso 46 CAPÍTULO V ACTIVIDADES DIVERSAS 47 A lo largo de la estadía en la empresa AIMSA se realizaron varias actividades sin relación directa con el proyecto principal, pero que tuvieron también una importancia significativa. A continuación se mencionarán dichas actividades. Panelización de varios proyectos en FAB3000 Pruebas y ajuste de máquina láser Ensamble de elementos PTH y true hole Elaboración de manuales de cada actividad 5.1 Panelización de varios proyectos en FAB3000 Para llevar a cabo esta actividad era necesario elegir un programa adecuado para mis necesidades. Este mismo programa fue adquirido por la empresa posteriormente. Así que la decisión era importante. Este proyecto consistió en panelizar varios proyectos dentro del software de diseño PCB Fab3000. Para esto se tuvo que hacer una investigación previa para elegir el programa más adecuado. Entre los programas a comparar estuvo el CAM350, programa que, a pesar de ofrecer varias opciones, tiene la desventaja de que su interfaz no era muy amigable para el usuario final. 5.2 Pruebas y ajustes de máquina láser Otra de las actividades en las que se apoyó al área de mantenimiento de la empresa AIMSA llevar a cabo pruebas con la máquina láser Rabbit. Esta máquina fue adquirida por la empresa sin embargo no fue puesta en uso debido a que se desconocía su funcionamiento. 48 Se procedió a hacer pruebas de ajuste del láser con el objetivo que se adaptara al material sin quemarlo. La máquina sería utilizada para fabricar esténcils, que servirían en el proceso de ensamble. Al final del proceso se llegó a la conclusión de que el mal funcionamiento de la máquina se debía a que uno de los cristales usados por el láser estaba roto. El ajuste de la máquina se detuvo debido a la falta de repuesto. 5.3 Ensamble de elementos PTH y Truehole La empresa TECNOSUIZA S.A. de C.V. se dedica al diseño y fabricación de tarjetas perforadas, así como también a su ensamble. Por este motivo constantemente se estuvieron relacionando actividades de ensamble y pruebas eléctricas. Estas actividades fueron de gran ayuda para conocer otros equipos diferentes a los ya conocidos. 5.4 Elaboración de manuales para cada actividad Para no perder el registró de las actividades, así como de las conclusiones obtenidas al terminar cualquier actividad asignada; fue necesario crear manuales basados en cada uno de ellas. Para esta tarea fue necesario basarse en ciertos manuales y exponer cierta base teórica. Esta tarea se realizó aproximadamente en una semana. 49 CAPÍTULO VI EVALUACION ECONOMICA RESULTADOS OBTENIDOS 50 6.1 Evaluacion económica Para la elaboración del proyecto no se llevaron a cabo gastos económicos. Asi como tampoco hubo desgaste de equipo propiedad de la empresa. 6.2 Resultados obtenidos Al término de periodo de estadía, los resultados a los que se llegó fueron satisfactorios. Después de obtener las diversas variables de los parámetros, se logró crear una versión editada del programa Gerbv. El programa FAB3000 parece ser de gran ayuda para crear paneles con varios proyectos. Lamentablemente la máquina láser no podrá ser utilizada con todo su potencial, será necesario cambiar una pieza para lograr un mejor ajuste. En cuanto al ensamble de elementos electrónicos, se logro terminar un lote importante de proyectos que debían ser entregados de manera urgente. Esto demostró que el trabajo coordinado y en equipo no puede salir mal. De esta manera se mejoró la producción en serie y se lograron resultados mayores en menor tiempo. Por estos motivos la empresa AIMSA aprobó los resultados del proyecto desarrollado, el cual le generara importantes beneficios económicos y una notoria mejora en la calidad del producto terminado; todo lo cual ayudará en último término a reafirmar la confianza de sus clientes. 51 CONCLUSIONES 52 Después de haber estado unos cuantos meses enfrentando la vida laboral dentro en la empresa AIMSA, me di cuenta de que para lograr los objetivos es necesario trabajar muy duro, aunque el camino por recorrer sea desconocido, así como estar siempre dispuesto a aprender día a día. Es la única manera de destacar honestamente. En este proyecto apliqué conocimientos no sólo adquiridos a lo largo de mis casi dos años en la universidad, sino también en las escuelas que me han formado hasta el momento. También aprendí muchas cosas nuevas que me servirán en el futuro. Por otra parte, este proyecto fue un reto importante para mí, ya que el área en la que trabajé era desconocida, pero aun así logré concluir el proyecto satisfactoriamente, y eso es algo que ha fortalecido mucho mi autoestima, ya que siento que gracias a esto tendré nuevas expectativas dentro del ambiente laboral. 53 BIBLIOGRAFÍA 54 Fedora IRC Classroom – Using the Windows cross-compiler with Richard Jones http://chitlesh.wordpress.com/2009/06/14/using-fedoras-windows-cross-compilers/ http://www.wikipedia.org 55