• No se han encontrado resultados

PROTOTIPO VIRTUAL PARA UNA DECORADORA DE PASTELES USANDO CONTROL NUMERICO POR COMPUTADORA

N/A
N/A
Protected

Academic year: 2017

Share "PROTOTIPO VIRTUAL PARA UNA DECORADORA DE PASTELES USANDO CONTROL NUMERICO POR COMPUTADORA"

Copied!
152
0
0

Texto completo

(1)

I N S T I T U T O P O L I T E C N I C O N A C I O N A L

E

ES

SC

CU

UE

EL

LA

A

S

SU

UP

PE

ER

RI

IO

OR

R

D

DE

E

IN

I

NG

GE

EN

NI

IE

ER

RI

IA

A

M

M

EC

E

CA

AN

NI

IC

CA

A

Y

Y

E

EL

LE

EC

CT

TR

RI

IC

CA

A

INGENIERÍA EN COMUNICACIONES Y ELECTRÓNICA

“PROTÓTIPO VIRTUAL PARA UNA DECORADORA DE

PASTELES USANDO CONTROL NUMÉRICO POR

COMPUTADORA”

T E S I S

ING. ARMANDO MANCILLA LEÓN

MÉXICO, D.F. 2009

QUE PARA OBTENER EL TÍTULO DE

INGENIERO EN COMUNICACIONES Y ELECTRÓNICA

PRESENTA:

HERÓN LEONEL PORTILLA VELÁZQUEZ

(2)
(3)

I N S T I T U T O P O L I T E C N I C O N A C I O N A L

México D.F. Abril 2009

Secretario del Jurado

Trabajo Terminal

Protótipo virtual para una decoradora de

pasteles usando Control Numérico por

Computadora

Presidente del Jurado

Ing. Armando Mancilla León.

M.C. Samuel Borrego Mora

Que para obtener el Título de

“Ingeniero en Comunicaciones y Electrónica”

Presenta:

Herón Leonel Portilla Velázquez

Asesores:

E

ES

SC

CU

UE

EL

LA

A

S

SU

UP

PE

ER

RI

IO

OR

R

D

DE

E

IN

I

NG

GE

EN

NI

IE

ER

RI

IA

A

M

M

EC

E

CA

AN

NI

IC

CA

A

Y

Y

E

EL

LE

EC

CT

TR

RI

IC

CA

A

INGENIERÍA EN COMUNICACIONES Y ELECTRÓNICA

(4)

Prototipo virtual para una decoradora de pasteles usando control numérico por computadora

INDICE

AGRADECIMIENTOS.

__________________________________________

RESUMEN. ___________________________________________________

OBJETIVO. ___________________________________________________

JUSTIFICACIÓN. ______________________________________________

TEMAS _____________________________________________________

INTRODUCCIÓN

1. PROTOTIPO VIRTUAL PARA UNA DECORADORA DE PASTELES USANDO

CONTROL NUMÉRICO POR COMPUTADORA (CNC).

1.1. Software de control numérico.

1.2. Técnicas de decoración.

1.3. Máquinas industriales de decorado.

PLANTEAMIENTO DEL PROBLEMA

2. ANÁLISIS FUNCIÓNAL DEL PROTOTIPO.

.

DESARROLLO DEL PROBLEMA.

3. INTERFAZ GRÁFICA

3.1 Interfaz Gráfica

3.2 Acondicionamiento del Ambiente en Visual C# 2008.

3.3 Abrir una Imagen.

3.4. Filtros para imágenes digitales.

3.4.1 Función invertir colores.

3.4.2 Función escala de grises.

3.4.3 Función binarizar imagen.

3.4.4 Máscaras de convolución.

3.4.5 Función alisamiento de Gauss.

3.4.6 Función bordes de Sobel.

3.4.7 Función bordes de Prewitt.

3.4.8 Función bordes de Roberts.

3.4.9 Función bordes de Canny.

3.4.10 Función bordes de Laplace.

3.4.11 Función bordes Laplaciano del Gaussiano.

3.5 Evaluación de Filtros.

4. VECTORIZACIÓN.

4.1 Convertir Imagen a Vectores.

4.2 Generar Vectores.

4.2.1 Trazador de líneas.

4.2.2 Trazador de rectángulos.

4.2.3 Trazador de elipses.

4.2.4 Trazador libre.

4.2.5 Trazador de texto.

4.3. Guardar y abrir vectores.

4.3.1 Guardar Vectores.

4.3.2 Abrir Vectores.

(5)

Prototipo virtual para una decoradora de pasteles usando control numérico por computadora

5. SIMULADOR VIRTUAL.

5.1. Adquisición de Control Numérico.

5.2. Códigos Binarios.

5.3. Diseño del simulador y las partes móviles.

5.4. Construcción del simulador usando WPF

5.4.1. Integrando WPF a C#.

5.4.2. Creación de piezas 3D.

5.5. Funcionamiento del Simulador.

6. PUERTO DE DATOS: PUERTO PARALELO.

6.1. Utilización del puerto paralelo.

6.2. Programando el puerto paralelo.

CONCLUSIONES ________________________________________________

APÉNDICES

Apéndice A – Imágenes.

Apéndice B – Vectores.

Apéndice C – WPF.

ANEXOS

Anexo A – Medidas de Charolas.

Anexo B – Resultados en Filtros de bordes.

BIBLIOGRAFIA ________________________________________________

75

75

77

79

80

80

82

86

90

90

91

94

96

104

115

133

134

(6)

Prototipo virtual para una decoradora de pasteles usando control numérico por computadora

ÍNDICE DE FIGURAS.

Figuras Capitulo 1.

Figura 1.1. Interfaz gráfica de Mach3 ® que simula la consola de una máquina de

Control Numérico.

Figura 1.2. Forma tradicional de decorar un pastel.

Figura 1.3. Trazado de una imagen guía con un objeto delgado sobre un pastel.

Figura 1.4. Decoración del pastel siguiendo una imagen guía trazada sobre el

betún.

Figura 1.5. Decoración de un pastel asistido por un proyector de transparencias.

Figura 1.6. Posición que toma un decorador para poder grabar una imagen en un

pastel.

Figura 1.7. Secuencia de imágenes de un pastel decorado por medio de rotación

y depositado semiautomático.

Figuras Capitulo 2.

Figura 2.1. Imagen digital inicial.

Figura 2.2. Contornos de la imagen inicial.

Figura 2.3. Imagen invertida en colores.

Figura 2.4. Polilíneas que forman la imagen.

Figura 2.5. Herramientas de dibujo para la interfaz gráfica.

Figura 2.6. Trayectoria formada por líneas.

Figura 2.7. Salto necesario para avanzar de un píxel a otro.

Figura 2.8. Trazado de una trayectoria por medio de incrementos en X e Y.

Figura 2.9. Prototipo virtual de una decoradora de pasteles.

Figura 2.10. Pulsos de salida del ordenador a la unidad de control.

Figura 2.11. Puerto paralelo del ordenador usado para transmitir datos.

Figura 2.12. Análisis funcional del prototipo.

Figuras Capitulo 3.

Figura 3.1. Representación del modelo de controles para la interfaz gráfica del

sistema.

Figura 3.2.1 Herramienta de programación a usar.

Figura 3.2.2 Ventana de un proyecto en Visual C# 2008.

Figura 3.2.3 Acondicionamiento de Ventanas.

Figura 3.2.4. Ventana de propiedades de un objeto en Visual Studio.

Figura 3.2.5. Acondicionamiento del ambiente de programación en Visual Studio

C#.

Figura 3.2.6. Inserción de un “MenuStrip” para las funciones principales de la

interfaz gráfica.

Figura 3.3.1. Herramienta para Abrir Archivos en C#.

Figura 3.3.2. Área para visualizar la imagen seleccionada y extraer las

características necesarias.

Figura 3.4.1. Herramienta para agregar una clase nueva en C#.

Figura 3.4.2. Funciones de filtros para hacer pruebas de contornos.

Figura 3.4.3. Imagen de prueba para la decoración de un pastel.

(7)

Prototipo virtual para una decoradora de pasteles usando control numérico por computadora

Figura 3.4.4. Resultado de invertir los colores de una imagen.

Figura 3.4.5. Resultado de convertir la imagen a escala de grises.

Figura 3.4.6a. Función binarizar imagen con umbral = 90.

Figura 3.4.6b. Función binarizar imagen con umbral = 128.

Figura 4.3.7. Convolución con una muestra de una imagen y una máscara de

convolución.

Figura 3.4.8. Resultado de realizar una operación de convolución entre matrices.

Figura 3.4.9. Resultado de aplicar de forma gradual alisamiento de Gauss a una

imagen.

Figura 3.4.10. Máscara de convolución para obtener el filtro de alisamiento de

Gauss.

Figura 3.4.11a. Función Alisamiento de Gauss aplicado 1 vez.

Figura 3.4.11b. Función Alisamiento de Gauss aplicado 3 veces.

Figura 3.4.12. Máscaras de convolución de Sobel para la detección de bordes en

la dirección horizontal (Gx) y vertical (Gy).

Figura 3.4.13a. Bordes del gradiente horizontal (Gx) de Sobel.

Figura 3.4.13b. Bordes del gradiente vertical (Gy) de Sobel.

Figura 3.4.14. Resultado del filtro de Sobel.

Figura 3.4.15. Máscaras de convolución de Prewitt para la detección de bordes

en la dirección horizontal Gx y vertical Gy.

Figura 3.4.16a. Bordes del gradiente horizontal (Gx) de Prewitt.

Figura 3.4.16b. Bordes del gradiente vertical (Gy) de Prewitt.

Figura 3.4.17. Resultado del filtro de Prewitt.

Figura 3.4.18. Máscaras de convolución de Roberts para la detección de bordes

en la dirección horizontal (Gx) y vertical (Gy).

Figura 3.4.19a. Bordes del gradiente horizontal (Gx) de Roberts.

Figura 3.4.19b. Bordes del gradiente vertical (Gy) de Roberts.

Figura 3.4.20. Resultado del filtro de Roberts.

Figura 3.4.21. Pixeles adyacentes a la dirección del vector G(x,y).

Figura 3.4.22a. Bordes del Canny con umbral1 = 20 y umbral2 = 200.

Figura 3.4.22b. Bordes del Canny con umbral1 = 200 y umbral2 = 255.

Figura 3.4.23. Máscaras de convolución de Laplace.

Figura 3.4.24a. 1er Filtro de Laplace.

Figura 3.4.24a. 2do Filtro de Laplace.

Figura 3.4.25. Acercamiento para observar los pixeles resultantes en la detección

de bordes de Laplace.

Figura 3.4.26. Máscaras de convolución del Laplaciano del Gaussinao (LOG).

Figura 3.4.27 Laplaciano del Gaussinao (LOG).

Figura 3.4.28. Acercamiento de la imagen para observar los pixeles resultantes

en la detección de bordes LOG.

Figura 3.5.1. Filtro de Prewitt.

Figura 3.5.2. Filtro de Sobel.

Figura 3.5.3. Filtro de Roberts.

Figura 3.5.4. Filtro de Canny con umbral1 = 20 y umbral2 = 200.

Figura 3.5.5. Filtro de Canny con umbral1 = 200 y umbral2 = 255.

Figura 3.5.6. 1er Filtro de Laplace.

Figura 3.5.7. 2do Filtro de Laplace.

Figura 3.5.8. Filtro LOG.

(8)

Prototipo virtual para una decoradora de pasteles usando control numérico por computadora

Figuras Capitulo 4.

Figuras 4.1.1- Método para la obtención de la trayectoria formada por vecindad

entre pixeles.

Figura 4.1.2. Trayectoria que se forma si se sigue la secuencia de vecindad.

Figura 4.1.3. Objeto aislado que se forma cuando se ha terminado el camino de

la exploración inicial.

Figura 4.1.4. Almacenamiento de las posiciones de los pixeles en el plano X, Y

de la imagen.

Figura 4.1.5. Trayectoria que se sigue para trazar una imagen sin vectores

ordenados.

Figura 4.1.6. Trayectoria que se sigue para trazar una imagen con vectores

ordenados.

Figura 4.1.7. Existencia de conectividad entre pixeles.

Figura 4.1.8. Problema de conectividad múltiple.

La figura 4.1.9. Diferencia de elegir trayectoria por jerarquía y por adyacencia.

Figura 4.1.10. Etiquetas de dirección de una trayectoria.

Figura 4.1.11. Selección de caminos usando adyacencia entre vecinos.

Figura 4.1.12. Falta de adyacencia entre vecindad de pixeles en la trayectoria.

Figura 4.1.13. Determinación de un camino por medio de adyacencia registrada

previamente (adyacencia almacenada).

Figura 4.1.14. Trayectoria que se almacena en la matriz de vectores ordenados

usando la condición de adyacencia.

Figura 4.1.15. Error que se presenta con la condición de adyacencia.

Figura 4.1.16. Eliminación de pixeles aislados sin una sola conectividad.

Figura 4.2.1. Coordenadas del pixel inicial y pixel final de una línea.

Figura 4.2.2. Identificación de la posición de los pixeles formados por el trazador

de líneas.

Figura 4.2.3. Identificación de los lados del rectángulo.

Figura 4.2.4. Identificación de los ejes de una elipse.

Figura 4.2.5. Pixeles formados al usar la ecuación de la elipse con iteraciones en

X.

Figura 4.2.6. Pixeles formados al usar la ecuación de la elipse con iteraciones en

Y.

Figura 4.2.7. Superposición de pixeles para obtener la trayectoria completa de la

elipse.

Figura 4.2.8. Puntos obtenidos por la función del seno y coseno con incrementos

de 45°.

Figura 4.2.9. Elipse formada por vectores ordenados en una matriz.

Figura 4.2.10. Trayectoria realizada con la herramienta trazos libres.

Figura 4.2.10. Formación de una curva por medio de la unión de vectores con

líneas rectas.

Figura 4.2.11. Paleta de herramientas para el diseño de figuras.

(9)

Prototipo virtual para una decoradora de pasteles usando control numérico por computadora

Figuras Capitulo 5.

Figura 5.1.1. Archivo de vectores que representa las figuras mostradas.

Figura 5.1.2. Trayectoria que se forma entre dos puntos aislados que no

pertenece a la imagen.

Figura 5.3.1. Partes esenciales que componen al decorador virtual de pasteles.

Figura 5.4.1. Como agregar una referencia o librería de programación en Visual

C# 2008.

Figura 5.4.2. Componente para visualizar WPF en un Windows Form.

Figura 5.4.3. Agregando un control de usuario WPF al proyecto.

Figura 5.4.4. Ventana WPF vista desde una ventana “windowForm”.

Figura 5.4.5. Funciones para crear objetos 3D usados en el decorador virtual

Figura 5.4.6. Vistas tridimensionales del objeto AnclaBrazos.

Figura 5.4.7. Vistas tridimensionales del objeto AnclaBrazos.

Figura 5.4.8. Vistas tridimensionales del objeto BaseSuperior.

Figura 5.4.9. Vistas tridimensionales del objeto Brazos.

Figura 5.4.10. Vistas tridimensionales del objeto PortaDuya.

Figura 5.4.11. Vistas tridimensionales del objeto Postes.

Figura 5.4.12. Vistas tridimensionales del objeto Prismas.

Figura 5.4.13. Vistas tridimensionales del objeto SoporteBrazo.

Figura 5.4.14. Vistas tridimensionales del objeto SoporteCabezal.

Figura 5.4.14. Vistas tridimensionales del objeto TornolloCabezal.

Figura 5.4.15. Vistas tridimensionales de las piezas unidas en el campo visual

3D.

Figura 5.5.1. Desplazamiento del objeto Brazo en el simulador.

Figura 5.5.2. Desplazamiento del objeto PortaDuya en el simulador.

Figura 5.3.4. Desplazamiento del objeto Cabezal en el simulador.

Figuras Capitulo 6.

Figura 6.1.1. Representación la disposición que brinda el puerto paralelo para

transmitir datos a los dispositivos externos.

Figura 6.1.2. Disposición de las líneas de comunicación del puerto paralelo para

recibir datos de dispositivos externos.

Figura 6.2.1. Administrador de dispositivos de Windows.

Figura 6.2.2. Propiedades del puerto paralelo.

Figura 6.2.3. Puerto de salida y activación de 1 bit.

Figura 6.2.4. Bits de entrada y activación de 1 bit de entrada.

(10)

Prototipo virtual para una decoradora de pasteles usando control numérico por computadora

ÍNDICE DE TABLAS.

Tabla 4.2.1. Almacenamiento de los valores de la trayectoria formada por el

trazador de líneas.

La tabla 4.2.2 Tabla de puntos obtenidos por cada segmento del rectángulo.

La tabla 4.2.3 muestra el resultado de las iteraciones en X con la función Y.

Tabla 4.2.4. Vectores obtenidos con incrementos de 45°

Tabla 4.2.5. Obtención de los vectores que componen la trayectoria de una

elipse.

Figura 4.3.1. Archivo de Texto con extensión VTX para guardar vectores

ordenados.

Tabla 5.1. Movimiento de los vectores.

Tabla 5.2. Instrucciones de código binario.

60

62

65

67

68

72

(11)

Prototipo virtual para una decoradora de pasteles usando control numérico por computadora

I

AGRADECIMIENTOS

En esta oportunidad quiero agradecer a Dios y tantas personas que me han ayudado a

culminar una de mis metas de mucha importancia para mi vida.

Definitivamente, Dios, mi guía, mi fin ultimo; sabes cuanto te agradezco por la salud, por

la inteligencia y por tantas bendiciones que me han permitido lograr este anhelo en esta

etapa de mi vida. Se que después de esta bendición mi responsabilidad con la

humanidad a crecido, pero también se que no me abandonas y estarás a mi lado lleno de

alegría para seguir construyendo mi camino.

Gracias a mi madre Violeta Velázquez Romero y mi padre Herón E. Portilla Bonilla, por

que nunca me ha faltado su amor y confianza, fuerza que me ha impulsado a seguir

adelante en los momentos más difíciles. ¡Padre y Madre, gracias por permitirme poder

usar la palabra Familia y saber su significado, los amo!

Gracias hermanos, me han apoyado sin darse cuenta, sus consejos, sus palabras, su

amor, me acompañaron en muchos procesos de mi vida. Gracias hermanito Pepe, tu

sabes cuanto apoyo me has brindado para conseguir esta meta, me has enseñado a

compartir frustraciones y triunfos para que no queden en el olvido.

Gracias al Instituto Politécnico Nacional, por permitirme ser parte de la formación de

ingenieros, por proporcionarme la educación y una casa para desarrollarme como gente

productiva. Gracias por incluir gente que ha influido en mi desarrollo emocional e

intelectual, preocupados por el transmitir el conocimiento.

Y a todas aquellas personas que de una u otra forma, colaboraron o participaron en la

realización de esta investigación, hago extensivo mi más sincero agradecimiento.

(12)

Prototipo virtual para una decoradora de pasteles usando control numérico por computadora

II

RESUMEN

El prototipo virtual para una decoradora de pasteles usando Control Numérico por

Computadora (CNC), consisten en una interfaz gráfica capaz de procesar imágenes

digitales, usar herramientas de dibujo básico y simular el efecto que tendrá la información

adquirida por el procesamiento en una máquina de control numérico por computadora con

un sistema de inyección para depositar fluido (por ejemplo merengue) sobre la superficie

de un pastel.

El procesamiento de las imágenes se enfoca en la detección de contornos de la imagen y

esta condicionado a las imágenes que se usan frecuentemente en la decoración de

pasteles, como son las caricaturas, por lo que el procesamiento resulta óptimo cuando se

trata de imágenes con pocos efectos de luz, sombra y degradación de color.

Las herramientas de dibujo básico para este prototipo, son herramientas para dibujar

líneas, rectángulos, círculos, óvalos, texto y forma libre, por medio del cursor.

(13)

Prototipo virtual para una decoradora de pasteles usando control numérico por computadora

III

OBJETIVO GENERAL.

Desarrollar una interfaz gráfica que procese imágenes digitales, dibuje figuras

geométricas y simule en pantalla a través de una decoradora virtual, los datos adquiridos

en el procesamiento de imagen o trazado de figuras. De tal manera que la información

simulada pueda ser enviada a través del puerto paralelo a una máquina de control

numérico por computadora, para decorar un pastel.

Objetivos Particulares.

- Realizar una rutina para detectar los bordes de una imagen, considerando que

debe tener un píxel de grosor el resultado de la detección y la menor cantidad de

pixeles no pertenecientes a la imagen.

- Realizar una rutina para convertir los contornos en vectores de desplazamiento y

que puedan ser datos que pueda interpretar una unidad de control de una máquina

de control numérico (CNC).

- Realizar una rutina para crear figuras en pantalla y convertirlas en datos para una

máquina de CNC.

- Diseñar una rutina para simular una máquina de 3 ejes con un sistema de

inyección utilizando en la simulación los datos adquiridos en el proceso de

vectorización.

(14)

Prototipo virtual para una decoradora de pasteles usando control numérico por computadora

IV

JUSTIFICACIÓN

Con la diversidad de máquinas de control numérico que existen en la actualidad es

complicado encontrar una aplicación de software que se acople a todos los diseños

industriales y, las aplicaciones que logran acoplarse a casi cualquier diseño,

generalmente son complejas de usar y muchas veces costosas.

En este trabajo, se desarrollará una aplicación específica para poder manipular una

máquina con una aplicación específica, sin dejar la posibilidad en un futuro de ser

adaptable a otro dispositivo diferente con la menor complejidad posible.

El desarrollo de este prototipo está enfocado en el desarrollo de una aplicación para la

decoración de pasteles, la intensión esta dedicada principalmente a los empleados de una

repostería, que generalmente no cuentan con los conocimientos de computación para

entender un paquete de control numérico como los que se ofrecen en la actualidad, pero

si poseen los conocimientos para copiar, pegar, abrir un archivo y mandar a imprimirlo.

Esta flexibilidad es la que sustenta el desarrollo de esta aplicación.

Logrando el desarrollo de este objetivo se pueden obtener dos cosas:

o

Una aplicación lista para ser adaptada en algún dispositivo de control numérico.

o

Una aplicación pensada en el desarrollo de un prototipo de control numérico

diseñado para la decoración de un pastel.

La primera opción es inmediata cuando se ha logrado el objetivo principal, pero no todas

las empresas podrían solventar el precio de una adaptación tan costosa, debido a que la

mayoría de los aparatos de control numérico se producen en el extranjero y en México se

venden a un precio excesivo.

La segunda opción viene a ser la idea principal, del desarrollo de este prototipo, tener una

aplicación de control numérico para después desarrollar una máquina de control numérico

especializada en la decoración de tortas de pastel. Esto al final traería múltiples

beneficios:

o

Posible reducción de costos.

o

Se logra un producto autóctono, con posibilidades de cubrir una necesidad

mexicana, como lo es la exportación.

o

Reduciendo su precio para la venta en México se apoya a las PyMes dándoles la

capacidad de adquisición.

o

La sustitución del esfuerzo físico que emplea el decorador por la acción de activar y

monitorear el trabajo de la maquina.

(15)

Prototipo virtual para una decoradora de pasteles usando control numérico por computadora

V

Para entender los puntos mencionados, se detallan las siguientes justificaciones al

proyecto.

Apoyo a las PyMes y sociedad trabajadora.

En la industria de los pasteles, las pequeñas empresas cuentan solo con los utensilios

necesarios para la elaboración de pasteles, utensilios que adquieren un alcance limitado

por la habilidad del hombre, pero que son la única opción cuando se cuenta con un capital

ajustado al precio de estas herramientas. El grabado de una imagen sobre una torta de

pastel para las pequeñas empresas, resulta un proceso artesanal, pues solo requiere de

las manos del decorador y el beneficio que aporta la herramienta para decorar, de igual

forma este proceso es limitado por la habilidad del decorador.

El problema de la decoración manual, empieza cuando el proceso se vuelve monótono y

desgastante para la persona. La habilidad no se pierde, pero si las fuerzas y la

capacidades físicas, como son la vista y articulaciones (muy utilizadas en el proceso de

decoración), pues no existe una postura o posición física que no cause fatiga física.

Esto, en algún momento, exige un cambio de personal, lo cual es algo que no se puede

evaluar fácilmente para una pequeña empresa que cuenta con pocos recursos de

administración y gente capacitada, pero cuando ocurre, la estructura o funcionamiento

interno puede sufrir caídas, pues se tiene que adaptar el nuevo empleado a las

necesidades y habilidades que poseía el anterior, y una vez logrado el objetivo, solo se

espera a que el trabajo se vuelva monótono y desgastante para que un nuevo empleado

sea incorporado, por ineficiencia o fatiga del anterior.

En algunas pequeñas y medianas empresas algo organizadas, se adquiere equipo o

herramientas de apoyo en la etapa de decoración al igual que en otras etapas de

producción.

En realidad para que la fatiga ocurra, requiere de unos meses o quizá años, pero es mejor

evitar que esto ocurra, pues no es reversible que la persona recupere su salud visual al

emplearse tanto tiempo en la labor de la decoración. Además, esto de alguna manera

puede solucionarse; turnándose esta labor entre varios para que el cuerpo descanse y se

reparta el desgaste. Pero finalmente, esto requiere de más personal.

Mejora la velocidad y calidad

Si se considera una superficie de 50cm x 40cm, que corresponde a una torta de pastel

común para fiestas.

El tiempo de decoración manual de los trazos de una imagen, se consiguen entre los 10 a

30 minutos dependiendo de la complejidad del dibujo y la habilidad del decorador cuando

se emplea solo una persona en este proceso.

(16)

Prototipo virtual para una decoradora de pasteles usando control numérico por computadora

VI

Lograr trazos definidos, a una velocidad continua y con el doble de velocidad de un trazo

manual ó mas, se puede tomar en consideración para decidirse a emplear una máquina

que lo haga, además de aminorar el desgaste físico del empleado.

Competencia en el mercado

Una razón más general para emplear una máquina de este tipo, se da desde su creación

misma, pues la competencia en el mercado de las máquinas automatizadas va creciendo

constantemente, y se introducen máquinas en el mercado para elaborar cualquier tipo de

producto, con el fin de hacer cada vez mas eficientes, rápido y de calidad la producción,

por ejemplo, las máquinas que produce la empresa UNFILLER® para la decoración y

elaboración de productos de repostería, buscan un incremento en la producción y la

calidad.

(17)

Prototipo virtual para una decoradora de pasteles usando control numérico por computadora

VII

TEMAS

El presente trabajo esta dividido en 6 capítulos.

En el capítulo 1 se da una introducción a las técnicas de decoración de pasteles,

empezando con una técnica artesanal, pasando a una forma mediamente avanzada y

terminando en un proceso automatizado.

En el capítulo 2 se describe en breve en análisis funcional del prototipo, mostrando con

una serie de pasos, las acciones que debe realizar la interfaz.

En el capítulo 3 se da una introducción al ambiente de desarrollo donde se ejecuta el

programa, se desarrollan diversos filtros para la detección de contornos en una imagen y

se selecciona en base a los resultados un filtro que proporcione una imagen adecuada

para la vectorización (tratado en el capítulo 4).

En el capítulo 4 se desarrolla el algoritmo para vectorizar los contornos de una imagen y

se desarrollan herramientas para generar contornos en el momento de aplicarlas (trazador

de líneas, rectángulos, elipses, letras y trazado libre). Se crean dos funciones para la

manipulación de archivos con vectores ordenados, uno para guardar los vectores

generados por el usuario y otra función para abrir los archivos de vectores guardados.

En el capítulo 5, se desarrolla un simulador que interpreta los datos obtenidos en la

vectorización como código binario. El simulador se ejecuta en una ventana de WPF (del

ingles

Windows Presentation Foundation

)

,

con vista tridimensional de las partes que

componen al simulador, el cual se comporta como un dispositivo de control numérico.

(18)

Prototipo virtual para una decoradora de pasteles usando control numérico por computadora

1

Capitulo 1

(19)

Prototipo virtual para una decoradora de pasteles usando control numérico por computadora

2 1. PROTOTIPO VIRTUAL PARA UNA DECORADORA DE PASTELES USANDO CONTROL NUMÉRICO POR COMPUTADORA (CNC).

El prototipo virtual para una decoradora de pasteles de CNC, consiste en una interfaz gráfica con la capacidad de procesar imágenes, generar figuras y convertir la información en vectores, para simular esta información a través de un dispositivo CNC virtual. Ya que se ha demostrado a través del dispositivo virtual su funcionalidad, se puede proceder a aplicar a un dispositivo real, como podría ser un router1 CNC con una adaptación de un sistema de inyección de fluido viscoso.

1.1 Software de control numérico.

Son diversos los programas que se han desarrollado sobre control numérico por computadora. A partir de 1955, muchos de ellos se han desarrollado a base de grandes investigaciones e ingeniería, muchos arrojan resultados óptimos en el proceso de producción, lamentablemente las investigaciones y desarrollo de aplicaciones, generalmente están enfocadas en el desarrollo de piezas y procesos pesados, en los que se agregan herramientas sofisticadas para cada proceso. Es por este motivo, que es difícil emplear alguna aplicación existen en el mercado a un prototipo para decorar pasteles.

Las aplicaciones de diseño para la creación de vectores, se les conoce como aplicaciones CAD, del ingles Computer Aided Design (diseño asistido por computadora), y los vectores son los puntos que presenta el ordenador para formar líneas de dibujo en un proyecto y así representar la imagen de un objeto. La cantidad de aplicaciones del tipo CAD es amplia, tanto en vectores de 2 dimensiones como los de 3 dimensiones. El problema que presentan estas herramientas esta en su complejidad, pues muchas herramientas se basan en comandos para formar vectores y las que no cuentan con tantas herramientas son difíciles de adaptar a cualquier proceso.

Las aplicaciones que interpretan vectores para usarlos en el control numérico se les conoce como aplicaciones CAM del ingles computer-aided manufacturing (fabricación asistida por

ordenador), que en base al diseño e instrucciones del ordenador, envían la información a los motores para realizar el proceso de manufactura basándose en la información de los vectores obtenidos en el diseño CAM.

Actualmente se integran los dos sistemas (CAD-CAM) en aplicaciones como: SolidEdge, SolidWorks, CATIA, etc, pero estos programas además de ser muy costosos son complicados de usar y más para personas que no tienen conocimientos de computación.

Por otro lado existen aplicaciones libres de licencia y disponibles en la red, especializadas en el Control Numérico, por ejemplo el MACH3. Esta aplicación puede ser elegida como interfaz gráfica, ya que puede resolver el problema del trazado de las trayectorias de una imagen por medio de un algoritmo de segmentación, además de convertir la información en códigos GyM2 para ser utilizada en el proceso de manufactura.

1 Un router CNC, es una máquina-herramienta que unida a un ordenador y el programa adecuado, traza formas en una mesa rectangular, siguiendo el patrón de diseño de la figura creada en el programa.

(20)

Prototipo virtual para una decoradora de pasteles usando control numérico por computadora

3

Esta aplicación es muy popular por sus funciones, pues se adapta a casi cualquier tipo de máquina CNC en el mercado y cuenta con una diversidad de herramientas como: una cámara web para reconocer imágenes y trazar su forma con el CNC, la mencionada segmentación de imágenes BMP y JPG, etc.

[image:20.612.169.453.185.391.2]

Para conocer la aplicación, en la figura 1.1, se muestra la interfaz gráfica del programa MACH3.

Figura 1.1. Interfaz gráfica de Mach3 ® que simula la consola de una máquina de Control Numérico.

La figura 1.1 muestra los elementos que incluye la interfaz gráfica para operar una máquina de control numérico. A simple vista se puede observar que el programa cuenta con demasiados controles en pantalla, lo que hace difícil su aplicación para usuarios que desconocen la herramienta y más complicado para el usuario que se esta iniciando en el uso del ordenador y las máquinas de control numérico.

La interfaz gráfica que se describe a lo largo de este documento, presenta un ambiente con menos elementos en pantalla, haciendo más sencilla la forma de operar los elementos de diseño y los de transformación de vectores.

1.2 Técnicas de decoración.

Una forma muy sencilla de grabar una imagen sobre un pastel sin necesidad de herramientas costosas, consiste en lo siguiente:

(21)

Prototipo virtual para una decoradora de pasteles usando control numérico por computadora

4 Figura 1.2. Forma tradicional de decorar un pastel.

Figura 1.2. Secuencia de pasos para embetunar con una espátula una torta de pastel.

[image:21.612.238.392.319.423.2]

2.- Contar con un objeto: delgado, ligero, con punta e higiénico (como un palillo de madera por ejemplo) y trazar sobre la zona embetunada con el objeto, la imagen que se desea dibujar en el pastel.

Figura 1.3. Trazado de una imagen guía con un objeto delgado sobre un pastel.

En la figura 1.3, se muestra un ejemplo donde se han trazado 3 estrellas con un palillo de madera, para que sirvan como guía de trazado.

[image:21.612.244.383.525.633.2]

3.- Sobre la guía formada con el objeto se decora el pastel inyectando con la duya el merengue, de tal manera que adquiera la forma del trazo guía.

Figura 1.4. Decoración del pastel siguiendo una imagen guía trazada sobre el betún.

La figura 1.4, muestra el resultado de decorar con merengue sobre una imagen formada por un palillo de madera en la superficie embetunada de un pastel.

(22)

Prototipo virtual para una decoradora de pasteles usando control numérico por computadora

5

proyectarse el dibujo de la transparencia sobre el pastel, se ahorra el tiempo que se emplea en el paso mostrado en la figura 1.3 y se mejora la calidad de la imagen, pues la copia tiene mayor parecido a la original. La figura 1.5 muestra los pasos para realizar esta técnica.

Figura 1.5. Decoración de un pastel asistido por un proyector de transparencias.

En la figura 1.5 paso1, se tiene la torta de pastel embetunada, lista para ser decorada.

En la figura1.5 paso 2, se enfoca la proyección de la transparencia sobre la superficie del pastel.

En la figura 1.5 paso 3, se esta grabando la imagen con una manga pastelera siguiendo el patrón de líneas que se forma con la proyección.

En la figura 1.5 paso 4, se muestra el resultado final.

Un dispositivo proyector de transparencias especial para la decoración, cuesta en el extranjero alrededor de 225.00 dólares, el más económico, por ejemplo el Kopykake 300xk3, por mencionar alguno. Pero existen otros modelos que alcanzan un valor de hasta 500 dólares.

Decorar con un proyector como guía toma alrededor de 5 minutos para un solo pastel, considerando que ya se tiene la transparencia elaborada, caso contrario a la primera técnica, que requiere más tiempo y habilidad al tener que trazar la imagen guía.

Como se vio en esta técnica, contar con un dispositivo proyector de transparencia, aporta beneficios a una empresa, en cuanto a rapidez y calidad. Pero hay que mencionar que en las dos técnicas, las posturas físicas que se toman para la decoración de un pastel no cambian mucho (ejemplo de la figura 1.6) y los requisitos de enfoque visual y buen manejo de la decoración son necesarios para hacer el trabajo.

3

(23)

Prototipo virtual para una decoradora de pasteles usando control numérico por computadora

6 Figura 1.6. Posición que toma un decorador para poder grabar una imagen en un pastel.

(© Fotografías de la escuela de Missouri para sordos MSD.

La figura 1.6 muestra que tanto la vista como la postura son afectadas en las dos técnicas, el inciso b y c de la figura 1.6 describen el tipo de técnica usada y las regiones afectadas por la postura.

Observando la posición que toma un decorador y considerando la cantidad de pasteles que se piden en un día en algunas pastelerías, se puede referir como malo el desgaste físico que requiere una persona para realizar estas rutinas.

Este desgaste es un problema que se pretende solucionar con la implementación de este trabajo a las máquinas de control numérico.

1.3 Máquinas industriales de decoración.

La decoración de pasteles con máquinas industriales automatizadas, proporciona beneficios de producción, cuando las cantidades de materia que se manejan son elevadas, pues esto permite cubrir el costo de un equipo.

Algunas máquinas de decorado industrial que se conocen, son llamadas depositadoras, funcionan a través de electroválvulas4. Su aplicación es limitada, pues el trazado de líneas para formar una imagen, no entra dentro de sus funciones.

La figura 1.7, se muestra una secuencia de imágenes, donde se puede ver el trabajo que realiza una depositadora semiautomática en un pastel de un ¼.

Figura 1.7. Secuencia de imágenes de un pastel decorado por medio de rotación y depositado semiautomático.

4

(24)

Prototipo virtual para una decoradora de pasteles usando control numérico por computadora

7

En la figura 1.7 se observa una secuencia de imágenes, la base del pastel gira en su centro, mientras que por medio de una electroválvula manipulada por un operador, se depositan puntos de merengue el la superficie rotante del pastel, para dar el efecto de decorado mostrado.

La idea principal de este trabajo, consiste en sustituir el efecto semiautomático por el efecto de control numérico, eliminando la limitante que hay, incluso hasta en un proceso automático, en los cuales solo se decora de forma radial sobre el pastel o de forma preestablecida por la máquina decoradora5.

5

(25)

Prototipo virtual para una decoradora de pasteles usando control numérico por computadora

8

Capitulo 2

Análisis

(26)

Prototipo virtual para una decoradora de pasteles usando control numérico por computadora

9 Planteamiento del Problema

2. ANÁLISIS FUNCIONAL DEL PROTOTIPO.

Para empezar a resolver el problema se separaron las partes funcionales que componen el prototipo. Para lograr esto, fue necesario un análisis funcional de las partes que actúan en el proceso. A continuación se describe el proceso, para tener una idea de las partes funcionales que están involucradas.

Paso 1: Se adquiere una imagen digital como la mostrada en la figura 2.1.

Figura 2.1. Imagen digital inicial.

La imagen digital puede ser de formato BMP, JPG, GIF o PNG, parecida a la mostrada en la figura 2.1, con pocos detalles de luz y degradación de color, para optimizar el proceso de filtrado y conversión de vectores.

[image:26.612.224.394.516.673.2]

Paso 2: Por medio de un procesamiento de imagen como filtro de canny ó binariazión de la imagen, se filtran los bordes de la imagen original para obtener la imagen de la figura 2.2.

Figura 2.2. Contornos de la imagen inicial.

(27)

Prototipo virtual para una decoradora de pasteles usando control numérico por computadora

10 Paso 3: Se invierte el color de la imagen para obtener el resultado de la figura 2.3.

Figura 2.3. Imagen invertida en colores.

La figura 2.3 muestra el resultado de invertir los colores de la imagen 2.2, esto es necesario, por que el programa escanea los pixeles negros para ordenarlos en una matriz, y como el proceso de filtrado mostrado en la figura 2.2 produce un fondo negro, no se estarían ordenando en la matriz los bordes sino el fondo, produciendo a la vez un error al no existir una trayectoria definida.

Paso 4: Las trayectorias formadas por pixeles negros se convierten a vectores ordenados y objetos, tal y como lo representa la figura 2.4.

Figura 2.4. Polilíneas que forman la imagen.

(28)

Prototipo virtual para una decoradora de pasteles usando control numérico por computadora

11 Segunda forma de obtener vectores ordenados.

Otra forma de adquirir información de las imágenes es generándolas, para lograr esto será necesario elaborar herramientas para generar vectores. Las herramientas utilizadas en el programa serán las que aparecen comúnmente en un programa de dibujo como son: la línea, el rectángulo, la elipse y el lápiz, tal y como lo muestra la figura 2.5.

Figura 2.5. Herramientas de dibujo para la interfaz gráfica.

La figura 2.5, muestra las herramientas con las que se consigue dibujar la información en el momento de aplicar cada una de ellas, por lo que ya no es necesaria la detección de bordes ni las operaciones para ordenar la posición de los vectores, ya que al momento de hacer un trazo, la información se estará almacenando en una matriz de manera ordenada.

Paso 5: Los valores ordenados de la posición de los pixeles son usados para formar trayectorias como lo muestra la figura 2.6, la cual representa un segmento de una imagen.

Figura 2.6. Trayectoria formada por líneas.

(29)

Prototipo virtual para una decoradora de pasteles usando control numérico por computadora

12 Paso 6: Para determinar como cambia la dirección de la trayectoria formada por líneas se resta la posición del primer vector con la del segundo de manera sucesiva hasta recorrer toda la matriz (como se muestra en el ejemplo de la figura 2.7), el resultado obtenido es una matriz que contiene información de los incrementos y dirección que tiene cada incremento, lo cual puede ser usado como referencia para enviar pulsos a unos motores y moverlos con incrementos de 1, 0 y -1.

Figura 2.7. Salto necesario para avanzar de un píxel a otro.

En la figura 2.7, se muestra el resultado de restar las posiciones de un vector con su vecino, dando así el paso necesario en (x, y) para llegar a la otra posición. Las muestras 25 y 29, se encuentran marcadas para indicar un desplazamiento diferente a los anteriores, la muestra 30 para indicar que la curva empieza a caer.

Un valor diferente a 1,-1 ó 0 dentro del resultado de cada resta, indica que comienza una nueva trayectoria o trazo de la imagen.

Se puede reconstruir la imagen de la figura 2.6 solo con usar incrementos en X e Y equivalentes a los valores de los datos obtenidos en la figura 2.7, por ejemplo en el primer punto se tiene incremento en Y de 1, en el segundo punto incremento en X e Y de 1, en el tercer punto incremento en Y de 1, de esta manera hasta recorrer todos los puntos de la matriz. Haciendo el recorrido completo de la matriz de incrementos se obtiene la imagen de la figura 2.8.

(30)

Prototipo virtual para una decoradora de pasteles usando control numérico por computadora

13 Paso 7: Los datos obtenidos se utilizan en la simulación para verificar el resultado que proporciona el paso 4, haciendo uso de los elementos mostrados en la figura 2.9.

Figura 2.9. Prototipo virtual de una decoradora de pasteles.

La figura 2.9, muestra la idea principal de prototipo virtual, haciendo referencia en la división izquierda a los motores que moverán las partes X-Y de la mesa y que en pantalla se deben simular esos movimientos, como lo haría una máquina real. La división de la parte derecha muestra un sistema de inyección de fluido viscoso, que de acuerdo a los datos obtenidos en los vectores, deberá actuar cuando se este trazando una trayectoria y quedar inactiva cuando solo se este desplazando el cabezal de la duya6 a otra posición, este parte hace analogía al eje Z, pero solo gira en una dirección cuando esta activado, se detiene cuando no esta activado, y se activa en el otro sentido solo cuando se va a recargar el deposito de merengue, por lo que no interviene en las operaciones realizadas a las imágenes digitales.

Paso 8: Verificada en la simulación la información obtenida en el paso 6, se convierte en pulsos eléctricos que serán enviados por algún puerto de salida del ordenador.

Figura 2.10. Pulsos de salida del ordenador a la unidad de control.

La figura 2.10, representa una de las etapas finales de la aplicación, donde los datos obtenidos en la resta de vecindad se convierten en pulsos eléctricos que salen por el puerto paralelo. Esto se puede ver si se observa la figura 2.7, en la que sus valores están representados en la figura 2.10 en forma de pulsos eléctricos. Como se observa, los pulsos en el eje Z permanecen constantes debido a que el motor de este eje debe estar activo mientras se sigue la trayectoria de la imagen, permanecerá inactivo solo cuando se esté trasladando de posición la duya sin seguir la trayectoria de la imagen.

6

(31)

Prototipo virtual para una decoradora de pasteles usando control numérico por computadora

14 Paso 9: Se selecciona un puerto de salida como el mostrado en la figura 2.11, se asignan las salidas de datos y las funciones que realizaran.

Figura 2.11. Puerto paralelo del ordenador usado para transmitir datos.

En la figura 2.11, se muestra una representación del puerto paralelo, que será usado como medio de comunicación para transmitir los datos en este trabajo. En esta figura se indican los bits de salida del puerto paralelo que pueden ser usados para enviar datos y la manera de usarlos. Dentro de las instrucciones asignadas al puerto paralelo, la salida que levanta la duya y la salida que la baja pueden ser despreciadas, pues este proceso se puede realizar de manera manual, ya que estas salidas solo posicionan la duya a una altura considerable respecto a la superficie del pastel que se va a decorar.

La información enviada por el puerto paralelo, puede ser decodificada por un dispositivo programable (como un microcontrolador) y adaptada a algún dispositivo de desplazamiento basado en motores, ya que esta información será enviada en forma binaria y puede ser usada a conveniencia.

Finalmente, la aplicación debe tener la posibilidad de respaldar la información, por lo que en algún momento puede ser reutilizada. Haciendo esto, se logra obtener una serie de plantillas de vectores para dibujar de forma directa con el simulador o con interacción al puerto usando algún dispositivo externo que pueda interpretar la información.

De acuerdo a lo anterior, se obtuvieron los siguientes requerimientos para realizar dichos pasos, estos requerimientos son los que se usan para realizar el análisis funcional del programa.

• Se requiere que una parte del programa puede leer imágenes, las modifique y las guarde.

• Se requiere una rutina para generar vectores de desplazamiento y control numérico.

• Se necesita una función para guardar la información obtenida en algún medio de almacenamiento.

• Se requiere una simulación virtual de los datos obtenidos en la vectorización.

• Se necesita una parte del programa que pueda enviar información al exterior del ordenador.

(32)

Prototipo virtual para una decoradora de pasteles usando control numérico por computadora

15 Figura 2.12. Análisis funcional del prototipo.

La figura 2.12, muestra las partes funcionales que integran el prototipo por medio de un análisis funcional. Las partes funcionales, pueden funcionar por separado, y el objetivo final de este método es integrar de manera eficientes las partes para lograr una sola función que cumpla con el objetivo del prototipo.

(33)

Prototipo virtual para una decoradora de pasteles usando control numérico por computadora

16

Capitulo 3

(34)

Prototipo virtual para una decoradora de pasteles usando control numérico por computadora

17 Desarrollo del Problema.

3. INTERFAZ GRÁFICA.

Es el medio visual donde se pondrán las herramientas para extraer la información de las imágenes o el medio para crear la imagen que será convertida en pulsos eléctricos para activar las instrucciones que saldrán por el puerto paralelo.

3.1 Interfaz Gráfica

Figura 3.1. Representación del modelo de controles para la interfaz gráfica del sistema.

En la figura 3.1, se muestra un esquema del funcionamiento de controles para operar la interfaz gráfica del sistema. Las instrucciones principales son:

Abrir Imagen Nueva. Permite adquirir una imagen digital almacenada en el disco duro o algún medio de almacenamiento de información.

Abrir Archivo Guardado. Permite abrir un archivo que ya ha sido tratado y convertido a vectores.

Crear Archivo. Permite abrir un cuadro en blanco, para poder dibujar a mano libre la imagen por medio del cursor, generando en el mismo instante los vectores.

Guardar Archivo. Permite guardar un archivo que contiene los vectores resultantes del diseño o procesamiento de imagen previamente realizado.

Salir. Permite abandonar la aplicación.

Filtrar contornos. Esta función filtra los contornos de una imagen, dando como resultado una imagen formada por múltiples líneas de un mismo color para ser procesada. Solo se aplica a imágenes con formato BMP, JPG, GIF y PNG.

(35)

Prototipo virtual para una decoradora de pasteles usando control numérico por computadora

18 • Vectores. Es el resultado que se obtiene de convertir las líneas de una imagen a

vectores, de abrir un archivo que contiene una lista de vectores ó de crear un archivo a base de un diseño en pantalla por medio del cursor.

Simular. Es una función que se permite cuando se ha logrado obtener un archivo de vectores. Esta función permite simular la información antes de disponer de la máquina real para visualizar el posible resultado de llevar a cabo la ejecución del prototipo decorador de pasteles.

INICIAR PROCESO. Es la función que permite el inicio de arranque de los motores, permitiendo que la imagen que se muestra en la pantalla de vectores, se empiece a trazar por medio del flujo de señales que se mandan por el puerto de salida del ordenador y que son traducidos por medio de un dispositivo programable.

3.2 Acondicionamiento del Ambiente en Visual C# 2008.

Para empezar a desarrollar la aplicación de interfaz gráfica, se selecciono un compilador y el lenguaje de programación de acuerdo a las necesidades que demanda la aplicación y el conocimiento de las herramientas del lenguaje de programación.

Para este caso se ha seleccionado el lenguaje de programación C#, por que cuenta con las herramientas, el poder de procesamiento para manipular imágenes y operaciones necesarias en el proceso, además de ser una herramienta de programación orientada a objetos. Por otro lado, se podría basar el programa en lenguaje JAVA, por sus amplias librerías, su código abierto y por que es un programa orientado a objetos, pero a la hora de cargar un programa y ejecutarlo, resulta lento en comparación con la velocidad que C# presenta, que para este proyecto, la velocidad es un factor de suma importancia. Comparado con C++, existe una polemica, pues C++ es una herramienta que podría estar por encima de C#, debido a que la mayoría de las aplicaciones de control e interfaz de usuario están basadas en código C++, pero el surgimiento de C# se basa en corregir los errores que presenta C++, como lo son la extracción de librerías y la forma de depurar la información, además, realizar una aplicación basada en C# permite ampliar los conocimientos de una tecnología poderosa en el desarrollo de las tecnologías de la información (TI).

Figura 3.2.1 Herramienta de programación a usar.

La figura 3.2.1, muestra la ventana que aparece cuando se inicia la aplicación de visual C# 2008.

(36)

Prototipo virtual para una decoradora de pasteles usando control numérico por computadora

19

Para empezar a trabajar con una aplicación con ventanas y controles dentro del Visual C# 2008, hay que ir a: Archivo Æ Nuevo Proyecto Æ Aplicación para Windows. Antes de aceptar la plantilla o tipo de proyecto, se asigna un nombre al proyecto en el ítem “nombre” y se procede a aceptar.

Figura 3.2.2 Ventana de un proyecto en Visual C# 2008.

La figura 3.2.2, muestra la ventana principal del programa que ejecuta todas las acciones de este proyecto. Para trabajar con la ventana y las herramientas de visual estudio, se puede acondicionar el ambiente de trabajo de la siguiente manera:

[image:36.612.243.392.537.725.2]

1.- Abrir las ventanas: Cuadro de herramientas, Explorador de Soluciones y Ventana de propiedades, como lo muestran los iconos de la figura 3.2.3.

Figura 3.2.3 Acondicionamiento de Ventanas.

2.- Modificar las siguientes propiedades: “Name”, “Text” y “WindowState”, de la “ventana principal” usando la ventana de propiedades de Visual C#.

(37)

Prototipo virtual para una decoradora de pasteles usando control numérico por computadora

20

En la figura 3.2.4, se muestra la ventana de propiedades de la ventana principal, como se observa, aparece un campo llamado (name), este campo permite declarar cual será el nombre de la ventana principal. En el campo Text se indica el mensaje que aparecerá en la parte superior izquierda de la ventana principal. Y el campo WindowState maximiza la ventana al ancho y alto de la pantalla cuando se ejecuta el programa, sin importar que tamaño tenía inicialmente.

Figura 3.2.5. Acondicionamiento del ambiente de programación en Visual Studio C#.

La figura 3.2.5, muestra como queda el ambiente visual de desarrollo donde se realizará la aplicación de la interfaz gráfica. Acondicionado de esa manera, se puede tener acceso rápido a alguna de las herramientas de diseño y propiedades de los objetos seleccionados dentro del ambiente.

[image:37.612.84.532.169.408.2]

Ahora, siguiendo el modelo de la figura 3.1, se insertan una serie de botones que sirvan para: Abrir una imagen, abrir un archivo de vectores, crear una imagen y salir. Estos botones son el menú principal del programa y pueden ser presentados por medio de un MenuStrip, que es una herramienta que crea botones en forma de menú, solo se selecciona y se arrastra sobre V_Principal para que la herramienta aparezca. Agregado a esto, se inserta en el primer campo que se forma, una palabra que agrupe a las 5 funciones que se están contemplando, por ejemplo, “Abrir”. Sucesivamente se llenan los campos con los nombres de las 5 funciones mencionadas en la figura 3.1. La figura 3.2.6, muestra como podría quedar este procedimiento.

(38)

Prototipo virtual para una decoradora de pasteles usando control numérico por computadora

21

La figura 3.2.6, muestra la manera de agregar botones a la interfaz gráfica, de igual manera expresa que se pueden ir agregando de manera consecutivas más botones a la interfaz.

Si en cada botón del menú se da doble clic durante el diseño, se crea un evento de clic7, este evento es una función que se ejecuta cuando se hace un clic en el objeto durante el tiempo de ejecución.

Dando doble clic, en el primer ítem Abrir Imagen Nueva se obtiene el siguiente resultado.

private void abrirImagenNuevaToolStripMenuItem_Click(object sender, EventArgs e) {

//Agregar aquí las intrucciones./// }

Cuando se da clic en el botón del menú se produce el evento y se ejecutan las instrucciones que están entre las llaves de la función.

Haciendo lo mismo en el botón Salir, ocurre lo siguiente:

private void salirToolStripMenuItem_Click(object sender, EventArgs e) {

this.Close(); }

Para esta evento se introduce una función llamada this.Close(). Cuando this.Close() es llamado, se cierra por completo todo el programa que esta en ejecución.

3.3 Abrir una Imagen.

Para abrir una imagen es necesario:

• Aplicar alguna herramienta para explorar archivos.

Figura 3.3.1. Herramienta para Abrir Archivos en C#.

La figura 3.3.1 representa un objeto de la barra de herramientas de Visual C# 2008, que sirve para explorar y abrir archivos que se encuentran en las carpetas del explorador.

• Aplicar un filtro en la herramienta para visualizar solo imágenes BMP, JPG, GIF y PNG.

Filtro OpenFileDialog = *.BMP, *.JPG, *.GIF, *.PNG.

• Asignar la imagen seleccionada a una variable del tipo Bitmap.

Variable BitmapNombreVariableIMG = new Bitmap();

7

(39)

Prototipo virtual para una decoradora de pasteles usando control numérico por computadora

22 • Verificar que se ha cargado alguna imagen.

Si (NombreVariableIMG < 100x100 Pixeles) //La imagen se considera pequeña. {

NombreVariableIMG = null // variable sin valor. }

Si (NombreVariableIMG > 800x618 Pixeles) //La imagen se considera muy grande {

//Reescalar imagen con un factor de conversión a 800X622 pixeles }

Si (NombreVariableIMG ≠null) {

//Se a cargado la imagen. }

• Convertir la imagen al plano RGB de24 bits.

Si (NombreVariableIMG.Formato ≠ Formato24BitsRGB) {

NombreVariableIMG = ConvertirA24BitsRGB ( NombreVariableIMG.Formato ) }

• Presentar imagen en un cuadro de dibujo considerando un ancho y alto de pixeles adecuado.

Figura 3.3.2. Área para visualizar la imagen seleccionada y extraer las características necesarias.

El la figura 3.3.2, se muestra las dimensiones máximas que puede tomar la imagen en pantalla. Para el ancho de la imagen se consideró como máximo 800 pixeles y para el alto de la imagen, un máximo de 618 pixeles.

Estos valores tienen su origen al considerar un estándar en medidas de charolas para repostería, tomando como referencia la de mayor ancho y largo. En el anexo B se puede observar la ficha de medidas de charolas.

(40)

Prototipo virtual para una decoradora de pasteles usando control numérico por computadora

23

El valor de área más grande para charolas es 53x41cm, esto tiene un factor de 41cm/53cm = 0.7735, si se considera un área en pantalla de 800 pixeles para presentar el ancho de la imagen, el alto de la imagen se obtiene multiplicando el factor.

800 pixeles x 0.7735 = 618 pixeles.

Por lo tanto: Máximo Ancho = 800 pixeles. Máximo Alto = 618 Pixeles.

Se considero en un inicio un ancho de 800 pixeles debido a que es una resolución de pantalla muy común, pues corresponde a las pantallas de 15 pulgadas, que junto con las de 17 pulgadas son las mas frecuentes de encontrar. 8

En el apéndice A parte I se muestra el código en C# que genera la función para abrir una imagen y mostrarla en pantalla.

3.4. Filtros para imágenes digitales.

A continuación hay que crear la función para extraer los contornos de la imagen. Para esto se emplean los filtros de imagen. El problema en esta situación, es aplicar el filtro adecuado, pues en la actualidad existen diversos filtros para la detección de bordes, y cada uno muestra resultados diferentes. Algunos de los filtros más comunes son: filtro de Canny, filtro de Laplace, filtro de Sobel, filtro de Prewiit, filtro de Roberts.

Debido a que existen varios filtros y es necesario tomar en consideración solo uno, se debe realizar una prueba a cada uno de los más comunes y seleccionar el que proporcione mejores resultados.

Es conveniente generar una clase en C# que contenga los filtros para poder manejar la información de manera ordenada, para esto se crea y agrega una nueva clase al proyecto a la que se le ha llamado filtros.cs.

Figura 3.4.1. Herramienta para agregar una clase nueva en C#.

La figura 3.4.1, muestra como agregar una nueva clase al proyecto en el que se esta trabajando dentro del ambiente de programación de visual C# 2008.

Contando con una nueva clase, se pueden agregar métodos a la clase para ser usados conforme sean invocados en el programa, la clase que se ha creado en este punto corresponde a la de los filtros y en esta clase de pueden declarar los métodos que realizan las operaciones de filtrado.

8

(41)

Prototipo virtual para una decoradora de pasteles usando control numérico por computadora

24

[image:41.612.224.402.402.556.2]

Para este proyecto se han considerado las siguientes funciones, que servirán para probar algunos de los filtros más comunes para la detección de bordes.

Figura 3.4.2. Funciones de filtros para hacer pruebas de contorno.

La figura 3.4.2 muestra las funciones que se han declarado en la clase “filtros.cs”, las funciones marcadas con un candado, son procedimientos auxiliares. Por ejemplo, en las operaciones de detección de contornos, los resultados producen un fondo negro con líneas blancas, con la función “Invertir colores” se cambia el fondo a blanco y las líneas a negro, que para el cálculos posteriores en esta aplicación es importante tener un fondo blanco y las líneas en negro.

Para empezar a probar los filtros se tomará como base la imagen de la figura 3.4.3, la cual tiene las características de una imagen usada frecuentemente en la decoración de pasteles.

Figura 3.4.3. Imagen de prueba para la decoración de un pastel.

La figura 3.4.3, representa una imagen típica en la decoración de pasteles, ya que no cuenta con efectos de luz, sombra o degradación de color, que para un decorador son efectos despreciados a la hora de copiar una imagen a un pastel. La figura 3.4.3, es la imagen base para hacer pruebas en los filtros citados en la figura 3.4.2.

3.4.1 Función invertir colores.

(42)

Prototipo virtual para una decoradora de pasteles usando control numérico por computadora

25

Esta funcion es necesaria en el programa debido a que en un punto de la aplicación es necesario invertir los pixeles que resultaron de la convolución a su negativo o invertir alguna imagen que cuente con un fondo negro con líneas blancas.

En el caso del modelo RGB, se determina el valor inverso de un color, restando el valor del canal RGB al valor máximo de cada canal, que en este caso corresponde a 255. Con esto se propone la siguiente función.

255 – p(r) Dada la funcion f(x,y) = 255 – p(g)

255 – p(b)

Donde f(x,y) representa la imagen, p(r) representa al canal rojo de la imagen, p(g) el canal verde y p(b) el canal azul.

En el siguiente procedimiento se describe como aplicar esta función a una imagen.

Pseudocódigo.

Para cada pixel de Imagen f(x,y). {

p(r) = 255 – p(r); //invierte valor del color rojo

p(g) = 255 – p(g); //invierte valor del color verde

p(b) = 255 – p(b); //invierte valor del color azul

[image:42.612.139.463.326.590.2]

}

Figura 3.4.4. Resultado de invertir los colores de una imagen.

La figura 3.4.4 muestra el resultado de aplicar la función invertir colores a la imagen de la figura 3.4.3.

El código fuente en C# para generar esta función, se encuentra en el Apéndice A parte II.

3.4.2 Función escala de grises.

(43)

Prototipo virtual para una decoradora de pasteles usando control numérico por computadora

26

función de escala de grises, se ha recurrido al estándar de televisión YIQ9 que consiste en un sistema de nivelación de color, Y regula la cantida de luz en la imagen e IQ la cantidad de color.

Los valores que fueron extraidos de este estándar, pertenecen a los de conversión de RGB a Y, debido a que Y es el que determina la cantidad de luz que presenta el pixel en la pantalla, mostrando un brillo que va de 0 a 255. En tanto que los valores de conversion de IQ fueron despreciados, por que solo representan valores de conversion de color, que en este caso no son requeridos.

De acuerdo a la información del estándar YIQ: Y = 0.299R + 0.587G + 0.114 B

Donde Y es el resultado de la conversion de los canales RGB, R es el valor del pixel en el canal rojo, G es el valor del pixel en el canal verde y B es el valor de pixel en el canal azul.

Con esto se puede formar la sigueinte función que muestra como obtener la imagen en escala de grises.

f(x,y) = R * 0.299 + G * 0.587 + B * 0.114.

Donde, f(x,y) representa el resultado de la imagen en escala de grises.

En el siguiente procedimientos describe como aplicar esta función a la imagen.

Pseudocódigo.

Para cada pixel de Imagen f(x,y) {

valor_Gris = ( p(r)* 0.299 + p(g) * 0.587 + p(b) * 0.114);

p(r) = p(g) = p(b) = valor_Gris ; }

En este algoritmo p(r) corresponde al valor del canal rojo, p(g) al verde, p(b) al canal azul y valor_gris al tono en gris que se obtiene al realizar la suma de los 3 canales de color.

[image:43.612.212.403.543.702.2]

Figura 3.4.5. Resultado de convertir la imagen a escala de grises.

9

(44)

Prototipo virtual para una decoradora de pasteles usando control numérico por computadora

27

La figura 3.4.5 es el resultado de aplicar la función “escala de grises” a la imagen de la figura 3.4.3.

El código fuente en C# para generar esta función, se encuentra en el Apéndice A parte III.

3.4.3 Función binarizar imagen.

La función “binarizar imagen” sirve para ver si un pixel esta dentro de un valor de umbral o si esta fuera, dando como resultado solo dos valores en una imagen, con lo que se obtiene por medio de esta función, una imagen monocromática o binaria.

La siguiente funcion muestra la operación que se realiza para obtener la imagen binaria.

Dada la función s(x,y) = 0, si f(x,y) < umbral 255, si f(x,y) > umbral

Donde s(x,y) es una imagen binaria y umbral es el nivel de separación para considerar blanco o negro a un pixel de la imagen.

En el siguiente procedimiento se describe como aplicar esta función a una imagen.

Pseudocódigo.

Para cada pixel de Imagen f(x,y). {

Si(f(x,y) < umbral) //Si los valores RGB estan por debajo

f(x,y) = 0; //del umbral todos los valores RGB seran 0

Sino

f(x,y) = 255; //Por ensima del valor de umbral seran 255.

[image:44.612.84.292.449.712.2] [image:44.612.330.520.544.709.2]

}

Figura 3.4.6a. Función binarizar

Figure

Figura 1.1. Interfaz gráfica de Mach3 ® que simula la consola de una máquina de Control Numérico
Figura 1.4. Decoración del pastel siguiendo una imagen guía trazada sobre el betún.
Figura 2.2. Contornos de la imagen inicial.
Figura 3.2.3 Acondicionamiento de Ventanas.
+7

Referencias

Documento similar

La campaña ha consistido en la revisión del etiquetado e instrucciones de uso de todos los ter- mómetros digitales comunicados, así como de la documentación técnica adicional de

Francisco José Ruiz Díaz Zoom de Imágenes Digitales usando Esquemas de

El objetivo principal del presente proyecto está fijado en el diseño e implementación de la totalidad del sistema eléctrico y electrónico de control de una atracción de feria, como

Objetivo: Realizar un prototipo rápido que te permita mostrar el concepto de la interfaz gráfica de usuario del producto que propones.. Indicaciones: Trabajo

Objetivo: Realizar un prototipo rápido que te permita mostrar el concepto de la interfaz gráfica de usuario del producto que propones.. Indicaciones: Trabajo

Habiendo organizado un movimiento revolucionario en Valencia a principios de 1929 y persistido en las reuniones conspirativo-constitucionalistas desde entonces —cierto que a aquellas

En este sentido, puede defenderse que, si la Administración está habilitada normativamente para actuar en una determinada materia mediante actuaciones formales, ejerciendo

Vistos els tipus de prestatgeries de palets i combinant-ho amb els estudis d’Enginyeria Tècnica Electrònica, es veu molt interessant l’opció de realitzar un sistema de control i