Universidad Tecnológica de Querétaro

Anuncio
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
Descargar