• No se han encontrado resultados

Software de control para un sistema de posicionamiento de 2 dimensiones que permita manipular un sensor ultrasónico

N/A
N/A
Protected

Academic year: 2017

Share "Software de control para un sistema de posicionamiento de 2 dimensiones que permita manipular un sensor ultrasónico"

Copied!
117
0
0

Texto completo

(1)

ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y

ELÉCTRICA

UNIDAD PROFESIONAL “ADOLFO L

Ó

PEZ MATEOS”

INGENIERÍA EN COMUNICACIONES Y ELECTRÓNICA

SOFTWARE DE CONTROL PARA UN SISTEMA DE

POSICIONAMIENTO DE 2 DIMENSIONES QUE PERMITA

MANIPULAR UN SENSOR ULTRASÓNICO

TESIS

QUE PARA OBTENER EL TITULO DE:

INGENIERO EN COMUNICACIONES Y ELECTRÓNICA

PRESENTAN:

Delgado Mendoza Diego Alan

García Murillo Angel Javier

ASESORES:

Dra. Ivonne Bazán Trujillo

Ing. Catalina Patiño Gallegos

(2)

UNIDAD PROFESIONAL "ADOLFO LÓPEZ MATEOS"

TEMA DE TESIS

QUE PRA OBTENER EL TITULO DE

POR LA OPCIÓN DE TITULACIÓN DEBERA(N)DESARROLLAR

INGENIERO EN COMUNICACIONES Y ELECTRÓNICA TESIS COLECTIVA Y EXAMEN ORAL INDlVIDUAL C. DIEGO ALAN DELGADO MENDOZA

C. ANGEL JAVIER GARCÍA MURILLO

"SOFTWARE DE CONTROL PARA UN SISTEMA DE POSICIONAMIENTO DE 2 DIMENSIONES QUE PERMITA MANIPULAR UN SENSOR ULTRASÓNICO"

DESARROLLAR UN SOFTWARE DE CONTROL PARA UN SISTEMA DE POSICIONAMIENTO X-Y QUE PERMITA ESPECIFICAR )NA COORDENADA O UN CONJUNTO DE COORDENADAS.

• INVESTIGAR MÉTODOS DE COMUNICACIÓN USB DESDE EL LENGUAJE C#

• INVESTIGAR TIPOS DE INTERFACES DE CONTROL

• INVESTIGAR ETAPAS DE CONTROL DE MÁQUINAS CNC • EVALUAR DIMENSIONES DE SISTEMA MECÁNICO

• ELEGIR ADECUADAMENTE EL MECANISMO PARA LOS MOTORES

• IMPLEMENTAR COMUNICACIÓN USB CON EL MICROCONTROLADOR PIC18F4550 Y UNA INTERFAZ GRÁFICA CREADA EN LENGUAJE C#

• ELABORAR PROPUESTA DE DISEÑO DE UNA ESTRUCTURA MECÁNICA ADAPTADA A LA PISCINA DE INSPECCIÓN ULTRASÓNICA

DRA. IVONNE BAZÁN TRUJlLLO

MÉXICO D.F. A 20 DE ABRIL DE 2015

ASESO R ES

NG. CATALI

...

"

'-�

k:�-j

ING. PATRICIA LORENA RAE1 . /

JEFE DEL DEPARTAMENo

(3)

Agradecimientos

Agradezco de manera sincera a mis maestros amigos y familiares que sin dudar me proporcionaron su ayuda en todo momento para la realización de este proyecto de tesis.

A mi casa de estudios, el Instituto Politécnico Nacional por la excelente formación profesional que me ha brindado estos últimos años.

A mis asesores, la Dra. Ivonne Bazán Trujillo, y la Ing. Catalina Patiño Gallegos, por su apoyo y atención en la realización de este trabajo de tesis.

A mis padres Gloria Mendoza Reséndiz y Rafael Delgado Aguilar, por sentar las bases en mí, para ser una persona que se esfuerza por alcanzar sus objetivos.

(4)

Agradecimientos

Al Instituto Politécnico Nacional

Gracias por brindarme los conocimientos y la formación académica los cuales me han desarrollado íntegramente. Orgulloso de pertenecer a una institución de tan importante renombre.

“La técnica al servicio de la patria”

A la Escuela Superior de Ingeniería en Comunicaciones y Electrónica, unidad Zacatenco

Por brindarme sus instalaciones y sus académicos los cuáles fueron de suma importancia para el desarrollo de este proyecto. En especial un agradecimiento a mis asesores la Dra. Ivonne Bazán Trujillo, y la Ing. Catalina Patiño.

“Nuestros colores son verde y blanco porque el rojo lo llevamos en la sangre”

A mis padres

A mis ídolos, mis héroes y modelo a seguir, me siento orgulloso de decir “Ellos

son mi padres”, cada logro también les pertenece a ustedes, gracias por todo el apoyo y la confianza que me han brindado, gracias por sus consejos e incluso regaños, sin ustedes no lo habría logrado: Ma. Concepción Murillo Arana y Javier García Cruz.

Ustedes fueron los alfareros, yo tan sólo fui arcilla entre sus manos

A mis hermanas

Por ser un modelo a seguir, ustedes me mostraron el camino correcto, abrieron la brecha y me demostraron con hechos que se puede lograr lo que se desea siempre y cuando sea una persona perseverante y dedicada, a demostrarme que jamás debo darme por vencido: Ana Lydia y Thalya Danae.

No recuerdo en que momento de nuestras vidas dejamos de observar y comenzamos a crear

(5)

RESUMEN

Un ensayo no destructivo es cualquier tipo de prueba realizado a algún material sin que este sufra alteraciones de forma permanente. Este tipo de pruebas es lleva a cabo usando dispositivos ya sean ultrasónicos, ópticos o electromagnéticos, mediante la incidencia y reflexión de ondas. Para este tipo de métodos es necesario conocer la magnitud de incidencia relacionada con la posición donde fue adquirida.

El presente trabajo contribuye a dar una solución a la problemática que se tiene al hacer un ensayo no destructivo a un material de forma manual mediante inspección ultrasónica en el laboratorio de Bio-Ultrasonidos de la ESIME Zacatenco. En este trabajo se desarrolló un software para el control de un sistema de posicionamiento de dos dimensiones que permite a) realizar un barrido desde una coordenada inicial hasta una coordenada final, o bien b) ubicar el dispositivo en cuestion (un sensor o un transductor) en un punto fijo.

El software desarrollado comprende el control de un sistema X-Y que se encontrará acoplado a un contenedor para realizar inspecciones sobre una superficie de 60 x 50 cm. El usuario podrá especificar, mediante una interfaz gráfica, la coordenada donde se desea realizar la medición en caso de que se traté de un solo punto, o una coordenada final y una inicial en caso de que se requiera realizar un barrido en el plano X-Y. La interfaz electrónica para la comunicación con los motores está basada en el microcontrolador PIC18F4550, y se llevara a cabo mediante el puerto USB utilizando el protocolo HID.

(6)

ABSTRACT

The Non-Destructive testing is any inspection done to any material without inducing alterations permanently, such testing performed using devices either ultrasonic, optical or electromagnetic through incidence and reflection of waves, for this such methods is necessary to know the magnitude of impact and the position where they were acquired.

This work contributes to a solution to the problem that are present when a Non-Destructive testing is done by ultrasonic inspection in the laboratory of Bio-Ultrasound of ESIME Zacatenco. In this work, a software was developed for the control of a positioning system that allows a) realize swept from an initial to a final coordinate or b) locate the device in question (a sensor or transducer) at a fixed point.

The developed software comprises an X-Y control system which will be coupled to a container for inspection of an area of 60 x 50 cm. The user may specify, by a graphical interface, the coordinate where you want to measure if it tried to a single point, or a final and an initial if required realize swept in the X-Y coordinate plane. The electronic interface for communication with the motors is based on the PIC18F4550 microcontroller, and will be held by the USB port using the HID protocol.

(7)

SOFTWARE DE

CONTROL PARA UN

SISTEMA DE

POSICIONAMIENTO DE

2 DIMENSIONES QUE

PERMITA MANIPULAR

UN SENSOR

(8)

ABSTRACT ... V

CAPITULO I INTRODUCCIÓN

1.1 Generalidades ... 12

1.2 Objetivo ... 12

1.2.1 Objetivos específicos ... 12

1.3 Problemática ... 13

1.3.1 Situación actual ... 13

1.3.2 Situación con el sistema de posicionamiento ... 14

1.4 Justificación ... 14

1.5 Alcance ... 15

CAPITULO II MARCO TEÓRICO 2.1 Antecedentes de ensayos no destructivos ... 18

2.1.1 Ensayos no destructivos por el método de ultrasonido ... 19

2.2 Máquina CNC ... 19

2.3 Componentes principales de una máquina CNC ... 21

2.4 Interfaz gráfica ... 21

2.5 Programación en C# ... 23

2.5.1 Arquitectura de la plataforma .NET Framework ... 25

2.5.2 Formularios en Windows Form ... 28

2.6 Microcontrolador ... 29

2.6.1 Bus de información ... 30

2.6.2 Organización de Memoria en un microcontrolador ... 31

2.6.3 Puertos de entrada y salida ... 32

2.6.4 Convertidor Analógico / Digital... 33

2.7 Protocolos de comunicación ... 34

2.8 Protocolo de comunicación USB ... 35

2.8.1 Topología del dispositivos USB ... 36

2.8.2 Modelo lógico funcional ... 38

2.8.3 Transferencia de datos ... 39

2.8.4 Transferencia de datos de control USB – Microcontrolador ... 42

2.9 Motores a pasos ... 44

(9)

2.10 Controladores de motores a pasos ... 53

2.10.1 Controladores Integrados ... 54

2.10.2 Controlador A4988 ... 54

2.11 Conclusiones del Capítulo ... 56

CAPITULO III ANÁLISIS Y DISEÑO 3.1 Análisis ... 59

3.1.1 Descripción del problema ... 59

3.1.2 Propuesta de solución ... 60

3.2 Estructura mecánica ... 60

3.2.1 Diseño mecánico ... 61

3.2.2 Cálculos para el peso del diseño mecánico ... 65

3.2.3 Propuesta de diseño mecánico ... 66

3.3 Diseño del Software ... 68

3.3.1 Algoritmo de Control... 68

3.4 Diseño de circuito de la Interfaz electrónica ... 74

3.5 Conclusiones del Capítulo ... 77

CAPTULO IV DESARROLLO 4.1 Desarrollo de la interfaz de control ... 79

4.1.1 Programación de la interfaz de usuario ... 84

4.2 Entorno de trabajo con el microcontrolador ... 89

4.2.1 Programación del Firmware para el microcontrolador ... 90

4.3 Desarrollo de la interfaz electrónica ... 93

CONCLUSIONES ... 96

RECOMENDACIONES PARA TRABAJO A FUTURO ... 97

Referencias ... 98

Análisis de costos ... 99

Anexo A: Código de programación interfaz gráfica ... 102

(10)

INDICE DE FIGURAS

Figura 1. Esquema intercambio de señales entre la computadora y la

máquina-herramienta………..………21

Figura 2. Creación de un proyecto en C# ………. 27

Figura 3. Principales componentes de un microcontrolador………... 30

Figura 4. Modelo lógico de comunicación usb.………. 38

Figura 5. Rotor ………... 45

Figura 6. Estator de 4 bobinas ……… 45

Figura 7. Motor bipolar ………. 46

Figura 8. Motor unipolar……… 46

Figura 9. Ejemplo de circuito control ilustrativo de motor a pasos con puente H …... 47

Figura 10. Circuito para control de motor a pasos usando un circuito intgrado…….. 48

Figura 11. Secuencias para manejar motores paso a paso bipolares ………. 49

Figura 12. Diagrama de conexión del controlador a4988 con un microcontrolador y un motor a pasos……… 56

Figura 13. Esquema de propuesta de solución.……….. 60

Figura 14. Dimensiones reales de piscina de inspección……….. 61

Figura 15. Placa lateral………. 61

Figura 16. Placa posterior……… 62

Figura 17. Placa para sujetar el transductor………. 63

Figura 18. Placa base……….. 63

Figura 19. Ejes de desplazamiento……… 64

Figura 20. Propuesta del diseño mecánico……… 67

Figura 21. Área de trabajo del sensor ultrasónico en azul……….. 67

Figura 22. Diagrama de flujo para entrada de datos en método de adquisición de señal por posición……….………. 69

Figura 23. Diagrama de flujo para el desplazamiento de los motores a pasos…….. 70

Figura 24. Diagrama de flujo para el almacenamiento de datos……… 71

(11)

Figura 26. Diagrama de flujo para posicionamiento y almacenamiento de las señales

por el método de adquisición de señal por barrido………... 73

Figura 27. Diagrama de la interfaz electrónica………. 76

Figura 28. Creación de nuevo proyecto………. 79

Figura 29. Botones para la interfaz………. 80

Figura 30. Clase empleada para interfaz gráfica……….. 87

Figura 31. Campos empleados para interfaz gráfica……… 88

Figura 32. Métodos empleados para la interfaz gráfica………... 88

Figura 33. Elementos básicos del entorno de trabajo CSS..……….. 89

Figura 34. PCB interfaz electrónica vista superior……… 94

Figura 35. PCB interfaz electrónica vista posterior……….. 95

INDICE DE TABLAS Tabla 1. Secuencias para manejar motores paso a paso unipolares……… 49

Tabla 2. Secuencia normal……….……….………. 50

Tabla 3. Secuencia del tipo wave drive……….………. 51

Tabla 4. Secuencia de medio paso.……….……….…………. 52

Tabla 5. Pinout del driver a4988……….………. 77

Tabla 6. Costos de software utilizado……….……….. 99

Tabla 7. Costo de la herramienta para la fabricación de la tarjeta electrónica…….. 99

Tabla 8. Componentes de la tarjeta electrónica………..100

Tabla 9. Costo de recurso del personal……… 100

Tabla 10. Costo de hardware y utilería……….... 101

(12)
(13)

CAPITULO I INTRODUCCIÓN

1.1 Generalidades

Actualmente la ciencia requiere de la tecnología para facilitar las investigaciones que se realizan en campos como la ciencia experimental, la comprobación de teorías, la medicina, la genética entre otros.

En casos particulares como el análisis de tejidos blandos por medio de inspección ultrasónica es de suma importancia tener herramientas que permita inspeccionar el tejido de una forma muy precisa, cubriendo en su totalidad la superficie del tejido a inspeccionar. Además el desplazamiento del transductor debe ser uniforme para poder hacer relaciones de las señales obtenidas con la posición en donde se adquirió.

Por esta razón surge la necesidad de desarrollar el control de un sistema de posicionamiento el cual sea una herramienta para la adquisición de señales por medio de un transductor ultrasónico.

1.2 Objetivo

Desarrollar un software de control para un sistema de posicionamiento X-Y que permita especificar una coordenada o un conjunto de coordenadas.

1.2.1 Objetivos específicos

 Investigar métodos de comunicación USB desde el lenguaje C#

 Investigar tipos de interfaces de control.

 Investigar etapas de control de máquinas CNC.

(14)

 Elegir adecuadamente el mecanismo para los motores.

 Implementar comunicación USB con el microcontrolador PIC18F4550 y una

interfaz gráfica creada en lenguaje C#.

 Elaborar propuesta de diseño de una estructura mecánica adaptada a la

piscina de inspección ultrasónica.

1.3 Problemática

En el laboratorio de Bio-Ultrasonido de ESIME, el posicionamiento para la adquisición de señales es un método completamente manual, esto ocasiona que sea un procedimiento tardado y además de poca precisión.

1.3.1 Situación actual

El método usado actualmente para la toma de señales es la siguiente:

 Se fija el transductor ultrasónico en un soporte universal.

 Una vez fijado el transductor se coloca de forma manual la posición donde se

requiera tomar la señal.

 Una vez colocado el sistema en la posición deseada el usuario obtiene la señal.

 Si se necesita tomar otra muestra en una posición diferente se requiere liberar

el transductor del soporte universal, realizar los ajustes necesarios para alcanzar la nueva posición y fijar de nuevo el transductor al soporte posicionándolo en la nueva coordenada y repitiendo el procedimiento.

(15)

1.3.2 Situación con el sistema de posicionamiento

La propuesta del proyecto es diseñada para que el usuario controle la posición del transductor ultrasónico de una forma más precisa comparada con el método manual que anteriormente se utilizaba.

El desplazamiento del transductor dentro del área de trabajo se llevará a cabo

mediante motores “paso – paso” esto con la finalidad de dar una mayor precisión al

colocar el transductor en distancias que el usuario ingrese dentro de la interfaz gráfica para la adquisición de señal.

El diseño del mecanismo de posicionamiento fue elaborado tomando en cuenta que la piscina de inspección contendrá agua destilada por lo que se necesita de un material que no se corroa con el agua.

1.4 Justificación

(16)

Es por estas razones que se requiere un sistema que posicione el sensor ultrasónico automáticamente de acuerdo a las peticiones de un usuario mediante un software, con la ventaja de que no se tiene que desmontar el transductor para cambiar de posición además de poder hacer barridos para realizar inspecciones más completas que cubran completamente la zona del material a analizar.

1.5 Alcance

Al término del proyecto se obtendrá un sistema de control que consistirá en:

1. Una interfaz gráfica a través de la cual el usuario tendrá la capacidad de especificar las coordenadas en las que desea colocar un transductor ultrasónico dentro del área de trabajo de un sistema de posicionamiento X-Y. 2. Un algoritmo de control que permita posicionar de manera precisa el

transductor ultrasónico en una o varias posiciones.

3. La interfaz de comunicación entre la computadora y el PIC18F4550. 4. La etapa de potencia para la activación de los motores.

En el segundo capítulo aborda los temas teóricos de interés para el desarrollo del proyecto, el marco teórico aborda el sistema mecánico, el sistema electrónico y la forma de programación de una interfaz gráfica.

En el tercer capítulo se hace un análisis de lo que el proyecto tendrá que tomar en cuenta y además se plantea su diseño, tomando en consideración los objetivos planteados.

(17)
(18)
(19)

CAPITULO II MARCO TEÓRICO

2.1 Antecedentes de ensayos no destructivos

Se denomina ensayo no destructivo (también denominado END, o en inglés NDT de nondestructive testing) a cualquier tipo de prueba practicada a un material que no altere de forma permanente sus propiedades físicas, químicas, mecánicas o dimensionales. Los ensayos no destructivos implican un daño imperceptible o nulo. Los diferentes métodos de ensayos no destructivos se basan en la aplicación de fenómenos físicos tales como ondas electromagnéticas, acústicas, elásticas, emisión de partículas subatómicas, capilaridad, absorción y cualquier tipo de prueba que no implique un daño considerable a la muestra examinada.

Los ensayos no destructivos se han practicado por muchas décadas. Se tiene registro desde 1868 cuando se comenzó a trabajar con campos magnéticos. Uno de los métodos más utilizados fue la detección de grietas superficiales en ruedas y ejes de ferrocarril. Las piezas eran sumergidas en aceite, y después se limpiaban y se esparcían con un polvo. Cuando una grieta estaba presente, el aceite que se había filtrado en la discontinuidad, mojaba el polvo que se había esparcido, indicando que el componente estaba dañado. Esto condujo a formular nuevos aceites que serían utilizados específicamente para realizar éstas y otras inspecciones, y esta técnica de inspección ahora se llama prueba por líquidos penetrantes (PT).

(20)

2.1.1 Ensayos no destructivos por el método de ultrasonido

Este método se basa en la medición de la propagación del sonido en el medio que constituye la pieza a analizar y tiene aplicación en todo tipo de materiales.

Sus distintas técnicas permiten su uso en dos campos de ensayos no destructivos: Control de calidad y Mantenimiento preventivo, siendo en esta última especialidad muy utilizados en la aeronáutica por su precisión para determinar pequeñas fisuras de fatiga en, por ejemplo, trenes de aterrizaje, largueros principales, blocks de motores, bielas, etc. La manifestación de estas y otro tipo de fallas es la interpretación, generalmente en un osciloscopio, lo cual lo distingue de otros métodos, ya que no nos presenta un cuadro directo de las fallas, como en el caso de las películas radiográficas. Esto trae aparejado que los resultados de este ensayo no constituyan de por si un documento objetivo sino una información subjetiva, cuya fidelidad no puede comprobarse sin recurrir, a menudo, a otros medios. Por lo tanto requiere un conocimiento profundo, tanto de las bases del método como del dominio de la técnica, por parte del operador.

2.2 Máquina CNC

El control numérico computarizado (CNC) “es un sistema de automatización de

máquinas herramienta que son operadas mediante comandos programados en un medio de almacenamiento, en comparación con el mando manual mediante volantes o palancas.” 1

La miniaturización de los microprocesadores ha generalizado la electrónica digital en las máquinas herramienta, lo que dio lugar al denominado control decimal numérico, control numérico por computadora, control numérico por computador o control numérico computarizado (CNC), para diferenciarlas de las máquinas que no tenían

1

(21)

computadora. En la actualidad se usa el término control numérico para referirse a este tipo de sistemas, con o sin computadora.

Ventajas de usar una máquina de posicionamiento: 2

 Mayor precisión y calidad del producto.

 Mayor precisión y mejor calidad de productos.

 Mayor uniformidad en los productos producidos.

 Un operario puede operar varias máquinas a la vez.

 Fácil procesamiento de productos de apariencia complicada.

 Flexibilidad para el cambio en el diseño y en modelos en un corto tiempo.

 Fácil control de calidad.

 Reducción en costos de inventario.

 Es posible satisfacer pedidos urgentes.

 No se requieren operadores con experiencia.

 Se reduce la fatiga del operador.

 Mayor seguridad en las labores.

 Aumento del tiempo de trabajo en corte por maquinaria.

 Fácil control de acuerdo con el programa de producción lo cual facilita la competencia en el mercado.

 Fácil administración de la producción e inventario lo cual permite la

determinación de objetivos o políticas de la empresa.

 Permite simular el proceso de corte a fin de verificar que este sea correcto.

Desventajas de usar una máquina de posicionamiento:

 Alto costo de la maquinaria.

 Falta de opciones o alternativas en caso de fallas.

(22)

 Es necesario programar en forma correcta la selección de las herramientas de corte y la secuencia de operación para un eficiente funcionamiento.

 Los costos de mantenimiento aumentan, ya que el sistema de control es más

complicado y surge la necesidad de entrenar al personal de servicio y operación.

 Es necesario mantener un gran volumen de producción a fin de lograr una mayor eficiencia de la capacidad instalada.

2.3 Componentes principales de una máquina CNC

Una máquina CNC está compuesta por numerosos componentes, en la figura 1 podemos apreciar las principales componentes de un sistema de control numérico ya que se divide por etapas y cada una desempeña diferentes funciones.

Computadora Interfaz Gráfica

Tarjeta de interfaz electrónica

Sistema de alimentación

auxiliar

Sistema mecánico de

motores

Sistema CNC

Figura 1. Esquema intercambio de señales entre la computadora y la máquina-herramienta.

2.4 Interfaz gráfica

“Una interfaz gráfica de usuario o mejor conocida como GUI, acrónimo en inglés que

(23)

interacción con el usuario basándose en relaciones visuales como iconos, menús o un puntero.” 3

Una interfaz es un dispositivo que permite comunicar dos sistemas que no hablan el mismo lenguaje.

Las características básicas de una buena interfaz podrían sintetizarse en: 4

 Facilidad de comprensión, aprendizaje y uso.

 Representación fija y permanente de un determinado contexto de acción

(fondo).

 El objeto de interés ha de ser de fácil identificación.

 Diseño ergonómico mediante el establecimiento de menús, barras de

acciones e iconos de fácil acceso.

 Las interacciones se basarán en acciones físicas sobre elementos de código

visual o auditivo (iconos, botones, imágenes, mensajes de texto o sonoros, barras de desplazamiento y navegación...) y en selecciones de tipo menú con sintaxis y órdenes.

 Las operaciones serán rápidas, incrementales y reversibles, con efectos

inmediatos.

 Existencia de herramientas de Ayuda y Consulta.

 Tratamiento del error bien cuidado y adecuado al nivel de usuario.

Existen diferente tipos de interfaces desde muy generales como es la que podemos ver en un sistema operativo de una computadora y hasta muy específicas como es el caso de las computadoras que encontramos en los cajeros bancarios, hoy en día las GUI son un estándar de interacción entre hombre-máquina, además que ha sido de

3 http://es.wikipedia.org/wiki/Interfaz_gr%C3%A1fica_de_usuario

(24)

gran influencia para el trabajo de una generación de ordenadores. Por otra parte ha llevado al desarrollo de nuevos tipos de aplicaciones e industrias.

Para el control de las máquinas CNC se necesita un software para su manipulación Estos programas son especializados para controlar máquinas CNC pero tienen una limitante ya que únicamente envían información de órdenes hacia la máquina a controlar pero no pueden recibir datos ya que estos programas tienen como finalidad crear una interfaz enfocada al maquinado de piezas.

2.5 Programación en C# 56

C# es un lenguaje orientado a objetos que permite a los desarrolladores crear una amplia gama de aplicaciones que se ejecutan en .NET Framework. Se puede utilizar este lenguaje para crear aplicaciones cliente para Windows tradicionales, servicios Web XML, componentes distribuidos, aplicaciones cliente-servidor, aplicaciones de base de datos, y muchas tareas más. Microsoft Visual C# proporciona un editor de código avanzado, diseñadores de interfaz de usuario prácticos, un depurador integrado y muchas otras herramientas para facilitar un rápido desarrollo de la aplicación basado en la versión 2.0 del lenguaje C# y en .NET Framework.

La sintaxis de C# cuenta con menos de 90 palabras clave; es sencilla y fácil de aprender. La sintaxis de C# basada en signos de llave podrá ser reconocida inmediatamente por cualquier persona familiarizada con C, C++ o Java. Los desarrolladores que conocen cualquiera de estos lenguajes pueden empezar a trabajar de forma productiva en C# en un plazo muy breve. La sintaxis de C# simplifica muchas de las complejidades de C++ y, a la vez, ofrece funciones eficaces tales como tipos de valores que aceptan valores NULL, enumeraciones, delegados,

métodos anónimos y acceso directo a memoria, que no se encuentran en Java. “C#

admite métodos y tipos genéricos, que proporcionan mayor rendimiento y seguridad,

(25)

que permiten a los implementadores de clases de colección definir comportamientos de iteración personalizados que el código de cliente puede utilizar fácilmente.”

Como lenguaje orientado a objetos, C# admite los conceptos de encapsulación, herencia y polimorfismo. Todas las variables y métodos, incluido el método Main que es el punto de entrada de la aplicación, se encapsulan dentro de definiciones de clase. Una clase puede heredar directamente de una clase primaria, pero puede implementar cualquier número de interfaces. Los métodos que reemplazan a los

métodos virtuales en una clase primaria requieren la palabra clave “override” como

medio para evitar redefiniciones accidentales. En C#, una estructura es como una clase sencilla; es un tipo asignado en la pila que puede implementar interfaces pero que no admite la herencia.

Además de estos principios básicos orientados a objetos, C# facilita el desarrollo de componentes de software a través de varias construcciones de lenguaje innovadoras, entre las que se incluyen: 7

 Firmas de métodos encapsulados denominadas delegados, que permiten

notificaciones de eventos con seguridad de tipos.

 Propiedades, que actúan como descriptores de acceso para variables

miembro privadas.

 Atributos, que proporcionan metadatos declarativos sobre tipos en tiempo de

ejecución.

 Comentarios en línea de documentación XML.

Si necesita interactuar con otro software de Windows, como objetos COM o archivos DLL nativos de Win32, podrá hacerlo en C# mediante un proceso denominado "interoperabilidad". La interoperabilidad permite que los programas de C# realicen prácticamente lo mismo que una aplicación de C++ nativa. C# admite incluso el uso

(26)

de punteros y el concepto de código "no seguro" en los casos en que el acceso directo a la memoria es absolutamente crítico.

El proceso de generación de C# es simple en comparación con el de C y C++, y es más flexible que en Java. No hay archivos de encabezado independientes, ni se requiere que los métodos y los tipos se declaren en un orden determinado. “Un archivo de código fuente de C# puede definir cualquier número de clases, estructuras, interfaces y eventos.”8

2.5.1 Arquitectura de la plataforma .NET Framework 9

Los programas de C# se ejecutan en .NET Framework, un componente que forma parte de Windows y que incluye un sistema de ejecución virtual denominado Common Language Runtime (CLR) y un conjunto unificado de bibliotecas de clases. CLR es la implementación comercial de Microsoft de Common Language Infrastructure (CLI), norma internacional que constituye la base para crear entornos de ejecución y desarrollo en los que los lenguajes y las bibliotecas trabajan juntos sin problemas.

El código fuente escrito en C# se compila en un lenguaje intermedio (IL) conforme con la especificación CLI. El código de lenguaje intermedio junto con los recursos tales como mapas de bits y cadenas, se almacena en disco en un archivo ejecutable

denominado ensamblado, cuya extensión es .exe o .dll generalmente. ”Un

ensamblado contiene un manifiesto que ofrece información sobre los tipos, la versión, la referencia cultural y los requisitos de seguridad del ensamblado.”10

7 http://empiezoinformatica.com/2014/04/01/microsoft-visual-c/

8http://www.uaeh.edu.mx/docencia/Tesis/icbi/licenciatura/documentos/Soluciones%20de%20software%20libre%

20para%20el%20desarrollo%20de%20aplicaciones.pdf

9 http://msdn.microsoft.com/es-es/library/vstudio/bb514232(v=vs.100).aspx

(27)
(28)
[image:28.612.143.479.82.386.2]

Figura 2. Creación de un proyecto en C# 11

La interoperabilidad del lenguaje es una función clave de .NET Framework. Como el código de lenguaje intermedio generado por el compilador de C# cumple la especificación de tipo común (CTS), este código generado en C# puede interactuar con el código generado en las versiones .NET de Visual Basic, Visual C++, Visual J# o cualquiera de los más de 20 lenguajes conformes con CTS. Un único ensamblado puede contener varios módulos escritos en diferentes lenguajes .NET, y los tipos admiten referencias entre sí como si estuvieran escritos en el mismo lenguaje.

Además de los servicios en tiempo de ejecución, .NET Framework también incluye una amplia biblioteca de más de 4.000 clases organizadas en espacios de nombres

(29)

que ofrecen una diversidad de funciones útiles para la entrada y salida de archivos, la manipulación de cadenas, el análisis de archivos XML y los controles de formularios Windows Forms. La aplicación de C# típica utiliza continuamente la biblioteca de clases de .NET Framework para el tratamiento de las tareas comunes de "infraestructura".

2.5.2 Formularios en Windows Form12

Los formularios Windows Forms son la tecnología que se utiliza en Visual C# para crear aplicaciones para clientes inteligentes basadas en Windows que se ejecutan en .NET Framework. Cuando crea un proyecto de aplicación para Windows, está creando una aplicación basada en formularios Windows Forms.

Utilizará el Diseñador de Windows Forms para crear la interfaz de usuario y tendrá acceso a otras funciones de diseño y tiempo de ejecución:

 Implementación ClickOnce

 Compatibilidad enriquecida de bases de datos con el control

 DataGrisView

 Barras de herramientas y otros elementos de interfaz de usuario que pueden

tener el aspecto y comportamiento de Microsoft® Windows®, Microsoft Office o Microsoft Internet Explorer.

En Visual C#, la forma más rápida y cómoda de crear la interfaz del usuario (UI) es hacerlo visualmente, con el Diseñador de Windows Forms y el Cuadro de herramientas. Hay tres pasos básicos para crear todas las interfaces de usuario:

 Agregar los controles a la superficie de diseño.

 Establecer las propiedades iniciales de los controles.

(30)

 Escribir los controladores para los eventos especificados.

Aunque también se puede escribir un código para crear la UI, los diseñadores permiten hacer este trabajo mucho más rápidamente de lo que es posible mediante codificación manual.

2.6 Microcontrolador

“Un microcontrolador es un circuito integrado programable que integra en un solo encapsulado, las unidades de memoria para el almacenamiento de datos, aritmética

– lógica para el cálculo de operaciones, las unidades de entrada y salida para comunicación con otros periféricos, temporizadores y el controlador de

interrupciones”13. La figura 3 muestra las partes más importantes que componen a

un microcontrolador

Los parámetros más importantes a considerar en un microcontrolador son:

Bus de datos: 8, 16, 32 bits

Capacidad de memoria: Tamaño de la memoria RAM y de la memoria

EEPROM en kilobytes KB

Velocidad: Número de instrucciones a ejecutar por segundo. Depende de la

frecuencia del oscilador del microcontrolador.

Puertos: Puertos de entrada salida de forma paralela y serial para

comunicación externa.

Módulos: Para conversión A/D, D/A, PWM, USB, CAN, I2C, SPI, UART,

USART, etc

(31)
[image:31.612.91.538.80.394.2]

Figura 3. Principales componentes de un microcontrolador.14

2.6.1 Bus de información

Un bus de información es un camino de comunicación para dos o más dispositivos, y está constituido por varios caminos de comunicación o líneas. Un microcontrolador posee distintos tipos de buses, y estos se destinan básicamente a las E/S de propósito general y periféricos del sistema.

Existen tres tipos de buses:

Dirección: Se utiliza para seleccionar al dispositivo con el cual se quiere trabajar o

en el caso de las memorias, seleccionar el dato que se desea leer o escribir.

(32)

Datos: Se utiliza para la transición de datos o instrucciones, el envío de información es por medio de código binario, es decir solo puede tener salidas de alto nivel (1) o de bajo nivel (0).

Control: Se utiliza para gestionar los distintos procesos de escritura lectura y controlar la operación de los dispositivos del sistema.

Las principales características del bus son:

 Banda de paso, disponibilidad desde algunos kilobits a varios megabits.

 Transferencia isócrona y asíncrona en el mismo bus.

 Varios tipos de periféricos en el mismo bus.

2.6.2 Organización de Memoria en un microcontrolador

El microcontrolador está diseñado para que en su memoria de programa se almacenen todas las instrucciones del programa de control, como éste siempre es el mismo, debe estar grabado de forma permanente.

Existen algunos tipos de memoria adecuados para soportar estas funciones, de las cuales se citan las siguientes: 15

ROM con máscara: se graba mediante el uso de máscaras. Sólo es

recomendable para series muy grandes debido a su elevado costo.

EPROM: se graba eléctricamente con un programador controlador por un PC.

Disponen de una ventana en la parte superior para someterla a luz ultravioleta, lo que permite su borrado. Puede usarse en fase de diseño, aunque su costo unitario es elevado.

OTP: su proceso de grabación es similar al anterior, pero éstas no pueden borrarse. Su bajo costo las hace idóneas para productos finales.

(33)

EEPROM: también se graba eléctricamente, pero su borrado es mucho más sencillo, ya que también es eléctrico. No se pueden conseguir grandes capacidades y su tiempo de escritura y su consumo es elevado.

FLASH: se trata de una memoria no volátil, de bajo consumo, que se puede

escribir y borrar en circuito al igual que las EEPROM, pero que suelen disponer de mayor capacidad que estas últimas.

Son recomendables aplicaciones en las que es necesario modificar el programa a lo largo de la vida del producto. Por sus prestaciones, está sustituyendo a la memoria EEPROM para contener instrucciones.

Microchip comercializa dos microcontroladores prácticamente iguales que sólo se diferencian en que la memoria de programa de uno de ellos es tipo EEPROM y la del otro tipo Flash. Se trata del PIC16C84 y el PIC16F84, respectivamente.

Los datos que manejan los programas varían continuamente, y esto exige que la memoria que los contiene debe ser de lectura y escritura, por lo que la memoria RAM estática (SRAM) es la más adecuada, aunque sea volátil.

2.6.3 Puertos de entrada y salida

Cualquier aplicación de un sistema digital basado en un microcontrolador requiere la transferencia de datos entre circuitos externos al microprocesador y él mismo. Estas

transferencias constituyen las operaciones llamadas “Entrada” y “Salida”, (input

/output) o E/S (I/O).

(34)

En su forma más elemental, un puerto de entrada está compuesto sólo por un buffer de tercer estado y con más frecuencia por un buffer de tercer estado junto con un registro de almacenamiento (latch). El buffer de tercer estado tiene la función de controlar, es decir, aislar o permitir el flujo de información del puerto al bus de datos del microprocesador. El registro tiene la función de almacenar temporalmente la información generada por el dispositivo periférico de entrada hasta que pueda ser leída por el microprocesador.

2.6.4 Convertidor Analógico / Digital

La conversión A/D (Analógico/Digital) es un proceso en el cual la señal analógica es representada por su equivalente en estados binarios.

La digitalización de la señales tiene sus desventajas. 16

 Nunca pueden ser exactamente representada o reconstruida. Siempre habrá

un error.

 Una señal digitalizada, cuando se transmite por un canal de comunicación, requiere un ancho de banda mayor que la del canal original.

Tiempo de conversión: Es el tiempo requerido para completar una conversión de la señal de entrada. Establece el límite de la frecuencia alta de la señal que puede ser muestreada sin aliasing”.17

Ecuación 1. Frecuencia máxima de muestreo.

16 http://www.asifunciona.com/electronica/af_conv_ad/conv_ad_5.htm

(35)

Resolución: El número de bits del convertidor da la resolución en relación con él voltaje máximo, y el resultado proporciona el voltaje mínimo que él convertidor es capaz de procesar y corresponderá a un número en binario del microcontrolador.

Ecuación 2 Resolución de convertido A/D Dónde:

 n es el número de bits que se toman para la adquisición de datos.

2.7 Protocolos de comunicación

El protocolo, se define como las reglas para la transmisión de la información entre dos puntos. Un protocolo de red de comunicación de datos es un conjunto de reglas que gobierna el intercambio ordenado de datos dentro de la red.

(36)

Para que exista comunicación en ambos puntos al extremo de un canal se deben emplear la misma configuración de protocolos.

Los protocolos gestionan dos niveles de comunicación distintos. Las reglas de alto nivel definen como se comunican las aplicaciones, mientras que las de bajo nivel definen como se transmiten las señales.

2.8 Protocolo de comunicación USB 1819

El bus universal en serie, consiste en una norma para bus periférico, desarrollado tanto por industrias de computación como de telecomunicaciones. USB permite adjuntar dispositivos periféricos a la computadora rápidamente, sin necesidad de reiniciarlo ni de volver a configurar el sistema. Los dispositivos con USB se configuran automáticamente tan pronto como se han conectado físicamente. En los ordenadores que cuentan con esta tecnología se pueden observar dos conectores de este tipo.

Las siglas USB corresponden a Universal Serial Bus, Bus Serie Universal, por lo que como su nombre indica, se trata de un sistema de comunicación entre dispositivos electrónicos-informáticos que sólo transmite una unidad de información a la vez. El bus USB puede trabajar en dos modos, a baja velocidad (1,5 Mbps, para dispositivos como teclados, ratones, que no manejan grandes cantidades de información) y a alta velocidad (12 Mbps, para dispositivos como unidades de CDROM, altavoces, módems e ISDN, etcétera). En cuanto a la comodidad, el bus USB se compacta en un cable de cuatro hilos, dos para datos, dos para alimentación. Esto supone un gran ahorro, tanto de espacio como de material. De acuerdo a estos parámetros, una de las principales ventajas que se obtiene de USB es precisamente su diseño.

18 http://www.lu3hba.com.ar/ARTICULOS%2010/UNIVERSAL%20SERIAL%20BUS.pdf

(37)

El diseño del protocolo USB está a cargo del USB Implementers Forum (USB-IF), una organización compuesta por varias empresas de la rama de la computación y la electrónica, entre las que se encuentran Apple Computer, Hewlett-Packard, Microsoft e Intel.

Existen cuatro versiones del protocolo (1.0, 1.1 2.0 y 3.0). A diferencia de las anteriores, la última versión (3.0) soporta tasas de transferencia hasta 10 veces más altas que su antecesor, lo cual ha permitido ampliar el uso del USB a aplicaciones de video y almacenamiento (discos duros externos). Una de las razones a la cual se atribuye su gran aceptación es que todas las versiones del protocolo son compatibles con las anteriores.

2.8.1 Topología del dispositivos USB

Los dispositivos USB pueden ser hubs que provean puntos de conexión adicionales a los existentes en el host, o bien diferentes dispositivos típicos periféricos. Es evidente que todos estos dispositivos deben tener la capacidad de soportar la especificación USB en cuanto a protocolos de comunicación se refiere, operaciones USB, configuración y reseteo USB.

La topología del bus USB adopta forma de estrella y se organiza por niveles. En un

bus USB existen dos tipos de elementos: Anfitrión (“host”) y dispositivos; a su vez los

dispositivos pueden ser de dos tipos: Concentradores y Funciones:

El anfitrión o “host”: A diferencia de los dispositivos y los Hubs, existe tan solo un

(38)

proveer de uno o dos puntos de conexión iniciales, denominados Hub Raíz, a partir de los cuales y de forma ramificada irán conectándose los periféricos. El Host USB trabaja con los diferentes dispositivos valiéndose del Controlador de Host compuesto por una parte de hardware y otra de software, de esta forma conjunta el host es responsable al nivel de hardware, de los siguientes aspectos dentro del sistema USB:

 Detectar tanto la conexión de nuevos dispositivos USB al sistema con la atención de aquellos ya conectados, y por supuesto, configurarlos y ponerlos a disposición del usuario, tarea que involucra acciones por software.

 Administrar y controlar el flujo de datos entre el host y los dispositivos USB, es decir el movimiento de información generada por el usuario mismo.

 Administrar y regular los flujos de control entre el host y los dispositivos USB, es decir la información que se mueve con el objeto de mantener el orden dentro de los elementos del sistema.

 Recolectar y resumir estadísticas de actividad y estados de los elementos del

sistema.

 Proveer de una cantidad limitada de energía eléctrica para aquellos

dispositivos que pueden abastecerse con tan solo la energía eléctrica proveniente desde el ordenador (el teclado y el ratón son dos ejemplos claros).

Por otra parte, al nivel de software las funciones del Controlador de Host se incrementan y complican:

 Enumeración y configuración de los dispositivos conectados al sistema.

 Administración y control de transferencias asíncrona de información.

 Administración y control de transferencias síncrona.

 Administración avanzada de suministro eléctrico a los diferentes dispositivos.

(39)

2.8.2 Modelo lógico funcional

El diagrama de la Figura 4 ilustra el flujo de datos USB “a partir de tres niveles lógicos: entre el Software Cliente y la Función, el Controlador USB y el dispositivo, y finalmente la capa física, donde la transmisión realmente sucede, comprensión radica en el hecho de que si bien existe un solo canal físico, pero los datos son manejados en cada punto por unidades homólogas, tal como si estuviesen sosteniendo una comunicación directa”20. Por esta razón se las denomina Capas

Lógicas.

Host

Cliente de Software Administrador de interfaz

USB sistema de software administrador de

dispositivos

USB interfaz bus (PIIX3) Chipset Controlador de host/SIE

Puerto USB

Periferico

Función Una conexión de

interfaces

USB puerto lógico Una colección de

endpoints

USB interfaz b us Controlador periférico/SIE

Puerto USB

Cable usb

Flujo de comunicación Flujo de comunicacion

[image:39.612.98.532.293.611.2]

Logico Logico

Figura 4. Modelo lógico de comunicación USB.21

(40)

El nivel superior lógico es el agente de transporte de datos que mueve la información entre el Software Cliente y el dispositivo. Existe un Software Cliente en el host, y un Software de Atención al mismo en cada una de las funciones o periféricos USB. A este nivel, el host se comunica con cada uno de los periféricos en alguna de las varias formas posibles de transmisión que soporta USB. El Software cliente solicita a los dispositivos diversas tareas y recibe respuestas de ellos a través de esta capa.

La capa lógica intermedia es administrada por el Software de Sistema USB, y tiene la función de facilitarles las tareas particulares de comunicación a la capa superior, es decir, administra la parte del periférico con la que la capa superior desea comunicarse, maneja la información de control y comando del dispositivo, etc. Su objetivo es permitir a la capa superior concentrarse en las tareas específicas tendientes a satisfacer las necesidades del usuario, adicionalmente gestiona el control interno de los periféricos.

La capa física del modelo lógico USB comprende los puertos físicos, el cable, los voltajes y señales, el hardware y funcionamiento del hardware. Esta capa tiene el objetivo de liberar a las capas superiores de todos los problemas relacionados a la modulación, voltajes de transmisión, saltos de fase, frecuencias y características netamente físicas de la transmisión.

2.8.3 Transferencia de datos

(41)

No existe un formato único de transferencia, la especificación USB permite cuatro tipos de transferencias: 22

Control: se utilizan para configurar y enviar comandos, por ejemplo en la enumeración del dispositivo, más adelante veremos lo que es esto.

Bulk (masivas): se utilizan cuando se precisa una transferencia de datos grande, es el tipo más rápido de transferencia, sin embargo no hay garantía de que los datos se transmitan en un tiempo determinado (no garantizada latencia). Sí hay verificación de que los datos se han transmitido con éxito ya que dispone de un sistema de corrección de errores (CRC), esta transferencia solo la pueden utilizar dispositivos que soporten velocidades Full y High Speed. Este tipo de transferencia es utilizada por dispositivos como por ejemplo: discos duros, pen drivers, escaners, impresoras, etc.

Isócronas: Es usada en dispositivos que transmiten señales de audio y de vídeo en tiempo real. Se garantiza una tasa de velocidad de transmisión determinada (latencia asegurada). Si no fuera así, por ejemplo en una transmisión de voz el audio se oiría entrecortado. No contempla la corrección de errores, si en un archivo de sonido se pierde un BIT, no es importante su recuperación. Para usar este tipo de transferencia es necesario que los dispositivos soporten velocidades Full Speed.

Interrupción: latencia asegurada y verificación de que los datos se han

transmitido con éxito, Se utiliza en dispositivos como: Teclados, Mouse, Sensores, Pantallas táctiles, y dispositivos que no requieran mucho ancho de banda.

Los dispositivos usan uno o más tipos de transferencia, la de control es utilizada siempre por todos los dispositivos en el proceso de enumeración. Si se utiliza otra transferencia habrá que hacerlo en función del tipo y cantidad de datos a transmitir.

22

(42)

Todos los dispositivos full, high y low-speed pueden incorporar endpoints de Control, y por lo tanto pueden hacer uso de las transferencias de Control. Todos implementan, al menos, un endpoint de salida y uno de entrada en la dirección 0, para poder establecer la Pipe de Control por Defecto.

Las transferencias de Control se componen de 3 transacciones denominadas Setup-Dato-Estado. Los tamaños máximos del paquete de datos durante la transacción de datos son:

Full-speed: 8, 16, 32, ó 64 bytes.

High-speed: 64 bytes.

Low-speed: 8 bytes.

USB hace una gestión “best effort” para ir dando curso a las distintas transferencias

de Control pendientes en cada momento en todas las pipes de Control establecidas con todos los dispositivos. Para ello se hace la siguiente reserva del tiempo de trama o microtrama:

 En un bus full/low-speed, la reserva es del 10% del tiempo de trama.

 En un bus high-speed, la reserva es del 20% del tiempo de microtrama.

Las reglas definidas por USB para el envío de las transferencias pendientes son: 23

 Si el tiempo de trama o microtrama utilizado por las transferencias de Control

pendientes es inferior al reservado, el tiempo restante puede utilizarse para transferencias Bulk.

 Si hay más transferencias de Control pendientes que tiempo reservado, pero

hay tiempo adicional en la trama o microtrama no consumido por

(43)

transferencias de Interrupción o Isócronas, entonces el host puede utilizar dicho tiempo adicional para enviar nuevas transferencias de Control.

 Si hay más transferencias de Control pendientes que tiempo disponible en una

trama o microtrama, el host selecciona cuáles se procesan, quedando el resto pendientes para una próxima trama o microtrama.

Los endoints de Control high-speed soportan el protocolo de control de flujo PING en las transacciones de Dato y Estado de salida.

2.8.4 Transferencia de datos de control USB – Microcontrolador

La transferencia de datos del puerto USB a un microcontrolador 18F4550 es

mediante un buffer de memoria denominado “endpoint” y es utilizado para el envío y

recepción de datos o comandos de control durante una comunicación USB. Cada endpoint puede ser de entrada o salida de datos o bidireccional, el endpoint 0 está reservado para comandos de control, el proceso de enumeración se realiza a través del endpoint número 0. Este concepto solo se aplica al dispositivo, en el host existen también buffer para el envío y recepción de datos pero no se les denomina con este nombre.

La especificación USB provee de muchas clases para facilitar la programación de dispositivos.

Las clases más utilizadas con Microcontroladores son:

(44)

utiliza uno estándar que está incluido en el sistema.” 24 En el S.O Windows la

aplicación de escritorio accede al dispositivo con ayuda de las APIS win32.

MSD (Mass Storage Device): Es utilizado en dispositivos de almacenamiento

masivo como discos duros, memorias flash, cámaras digitales, dispositivos ópticos externos como lectores y grabadoras de CD y DVD. Esta clase se puede utilizar solo en dispositivos que soporten velocidades Full y High Speed. “El tipo de transferencias utilizadas es Bulk o una combinación formada por transferencias del tipo Control, Bulk y Interrupt. No se necesita la instalación de un driver específico, se utilizan drivers genéricos instalados ya en los Sistemas Operativos, en Windows se utiliza el driver llamado

usbstor.sys ubicado en C:\Windows\Sistem32\drivers.” 25

CDC (Communications Device Class): Un ejemplo de dispositivo que utiliza

esta clase son los Modems. La velocidad máxima al utilizar es de 80 Kb/s y el tipo de transferencias soportadas son del tipo interrupción y Bulk. Utiliza también driver estándar incluidos ya en el sistema operativo, según el sistema operativo utilizado precisará o no de la instalación del archivo .INF, cuando se utiliza esta clase en el PC creará un puerto serie virtual y la comunicación entre el dispositivo y la aplicación de escritorio se hará a través de él, al igual que se haría con un puerto serie físico, esto supone una gran ventaja a la hora de diseñar la aplicación de escritorio, ya que cualquier IDE de programación sea del lenguaje que sea, dispone de un componente o librería que permite el acceso al puerto serie fácilmente.26

WinUSB: es el driver genérico para USB que propone utilizar Microsof cuando

el dispositivo no puede ser manejado directamente por los drivers que ya incluye por defecto en su sistema operativo. Para ello al igual que Microchip

24 http://www.usb.org/developers/hidpage/

(45)

proporciona los siguientes archivos: Winusb.sys, Winusb.ini y la librería dinámica Winusb.dll que al igual que la dll de Microchip proporciona una serie de funciones públicas para acceder fácilmente al driver y a las APIs win32 de Windows desde la aplicación de escritorio.

libUSB: Es un driver de código abierto con licencia GNU, se puede instalar en

múltiples sistemas operativos como LInux, MAC y otros, incluyendo Windows a través de su versión libusb-win32. Toda la información de este driver se encuentra en la página del proyecto. Además existen ejemplos ya hechos para utilizar con diferentes lenguajes y entornos de programación como: Java, Python, Ruby, .NET.

2.9 Motores a pasos

Los motores paso a paso son ideales para la construcción de mecanismos en donde se requieren movimientos muy precisos, estos dispositivos pierden velocidad pero ganan precisión.

La característica principal de estos motores es el hecho de poder moverlos un paso a la vez por cada pulso que se le aplique. Este paso puede variar desde 90° hasta pequeños movimientos de tan solo 1.8°, es decir, que se necesitarán 4 pasos en el primer caso (90°) y 200 para el segundo caso (1.8°), para completar un giro completo de 360°.

(46)

2.9.1 Principio de funcionamiento

Básicamente estos motores están constituidos normalmente por un rotor sobre el que van aplicados distintos imanes permanentes (Figura 5) y por un cierto número de bobinas excitadoras bobinadas en su estator (Figura 6).

[image:46.612.238.389.455.612.2]

Las bobinas son parte del estator y el rotor es un imán permanente. Toda la conmutación (o excitación de las bobinas) deber ser externamente manejada por un controlador.

Figura 5. Rotor 27

Figura 6. Estator de 4 bobinas 28

(47)
[image:47.612.252.375.166.294.2]

Existen dos tipos de motores paso a paso de imán permanente:

Figura 7. Motor bipolar 29

Figura 8. Motor unipolar30

Bipolar: por lo general consta de 4 cables de salida como se muestra en la figura 7.

Para ser controlados es necesario un circuito externo, debido a que requieren del cambio de dirección del flujo de corriente a través de las bobinas en la secuencia apropiada para realizar un movimiento. En la figura 8 se muestra un ejemplo de control de estos motores mediante el uso de un puente en H (H-Bridge). Es

(48)

necesario un H-Bridge por cada bobina del motor, es decir que para controlar un motor Paso a Paso de 4 cables (dos bobinas), es necesario usar dos H-Bridges iguales al mostrado en la figura 9. El circuito de la figura 9 es únicamente para fines ilustrativos y no corresponde con exactitud a un H-Bridge. En general es recomendable el uso de H-Bridge integrados como son los casos del L293 (ver Figura 10).

Figura 9. Ejemplo de circuito control ilustrativo de motor a pasos con puente H 31

[image:48.612.213.415.213.485.2]
(49)
[image:49.612.109.500.81.306.2]

Figura 10. Circuito para control de motor a pasos usando un

circuito integrado 32

Unipolar: Estos motores suelen tener de 5 a 6 cables de salida, dependiendo de su

conexionado interno. Este tipo se caracteriza por ser más simple de controlar. En la figura 11 se muestra un ejemplo de conexión para controlar un motor paso a paso unipolar mediante el uso de un ULN2803, el cual es una array de 8 transistores tipo Darlington capaces de manejar cargas de hasta 500mA. Las entradas de activación (Activa A, B, C y D) pueden ser directamente activadas por un microcontrolador.

(50)
[image:50.612.127.503.83.289.2]

Figura 11. Secuencias para manejar motores paso a paso Bipolares 33

Estos motores necesitan la inversión de la corriente que circula en sus bobinas en una secuencia determinada. Cada inversión de la polaridad provoca el movimiento del eje en un paso, cuyo sentido de giro está determinado por la secuencia seguida.

A continuación se puede ver la tabla 1 con la secuencia necesaria para controlar motores paso a paso del tipo Bipolares:

Tabla 1. Secuencias para manejar motores paso a paso Bipolares

PASO TERMINALES

A B C D

1 +V -V +V -V

2 +V -V -V +V

3 -V +V -V +V

4 -V +V +V -V

[image:50.612.214.406.543.688.2]
(51)

Existen tres secuencias posibles para este tipo de motores, las cuales se detallan a continuación. Todas las secuencias comienzan nuevamente por el paso 1 una vez alcanzado el paso final (4 u 8). Para revertir el sentido de giro, simplemente se deben ejecutar las secuencias en modo inverso.

[image:51.612.97.532.354.691.2]

Secuencia Normal: Esta es la secuencia más usada y la que generalmente recomienda el fabricante. Con esta secuencia el motor avanza un paso por vez y debido a que siempre hay al menos dos bobinas activadas, se obtiene un alto torque de paso y de retención (ver tabla 2).

Tabla 2. Secuencia normal

PASO Bobina A Bobina B Bobina C Bobina D Imagen

1 ON ON OFF OFF

2 OFF ON ON OFF

3 OFF OFF ON ON

4 ON OFF OFF ON

(52)
[image:52.612.111.519.224.569.2]

Secuencia del tipo wave drive: En esta secuencia se activa solo una bobina a la vez. En algunos motores esto brinda un funcionamiento más suave. La contrapartida es que al estar solo una bobina activada, el torque de paso y retención es menor (ver tabla 3).

Tabla 3. Secuencia del tipo wave drive

PASO Bobina A Bobina B Bobina C Bobina D Imagen

1 ON OFF OFF OFF

2 OFF ON OFF OFF

3 OFF OFF ON OFF

4 OFF OFF OFF ON

(53)

Tabla 4. Secuencia de medio paso.

PASO Bobina A Bobina B Bobina C Bobina D Imagen

1 ON OFF OFF OFF

2 ON ON OFF OFF

3 OFF ON OFF OFF

4 OFF ON ON OFF

5 OFF OFF ON OFF

6 OFF OFF ON ON

(54)

8 ON OFF OFF ON

Debido a que los motores paso a paso son dispositivos mecánicos y como tal deben vencer ciertas inercias, el tiempo de duración y la frecuencia de los pulsos aplicados es un punto muy importante a tener en cuenta. En tal sentido el motor debe alcanzar el paso antes que la próxima secuencia de pulsos comience. Si la frecuencia de pulsos es muy elevada, el motor puede reaccionar en alguna de las siguientes formas:

 Puede que no realice ningún movimiento en absoluto.

 Puede comenzar a vibrar pero sin llegar a girar.

 Puede girar erráticamente.

 O puede llegar a girar en sentido opuesto.

Para obtener un arranque suave y preciso, es recomendable comenzar con una frecuencia de pulso baja y gradualmente ir aumentándola hasta la velocidad deseada sin superar la máxima tolerada. El giro en reversa debería también ser realizado previamente bajando la velocidad de giro y luego cambiar el sentido de rotación.

2.10 Controladores de motores a pasos

(55)

Hay dos partes diferenciadas: el interfaz y los drivers. Podemos encontrar controladoras que incorporan "todo en uno" (con lo que se ahorra espacio, recursos y resulta más económico) o bien cada elemento de forma modular (lo que nos permite más flexibilidad).

Puesto que los drivers son complementarios a los motores, atienden a la misma clasificación: Unipolares, Bipolares y Servomotores.

2.10.1 Controladores Integrados

Incorporan en un conjunto el interfaz con las entradas/salidas y los drivers de los motores. Al estar todo en el mismo circuito pueden compartir recursos, ocupan menos espacio y son más económicas lo que representa una gran ventaja. Hay una amplia gama y la mayoría cubren suficientemente los requisitos normales, por contra el diseño está establecido y si se necesita variar un elemento no es posible (interfaz paralelo a USB, motores de diferente naturaleza, etc.).

2.10.2 Controlador A4988

Este controlador de motor paso a paso permite controlar un motor paso a paso bipolar de hasta 2 A de corriente de salida por bobina, cuenta con límite de corriente ajustable, picos de corriente y exceso de temperatura, y cinco resoluciones micro- pasos diferentes (frente a 1/16-pasos). Opera de 8 hasta 35 volts y puede entregar hasta aproximadamente 1 A por fase sin un disipador de calor.

Estas son algunas de las características más importantes del controlador:

 Interfaz de control de paso y dirección simple.

 Cinco resoluciones diferentes pasos: paso completo, de medio paso, un cuarto

(56)

 Control de corriente ajustable le permite ajustar la salida de corriente máxima con un potenciómetro, que esto permite utilizar tensiones superiores a la tensión nominal del motor paso a paso para lograr mayores tasas de paso.

 Control Inteligente que selecciona automáticamente el modo de decaimiento de corriente correcta (disminución rápida o lenta decadencia).

 El exceso de temperatura de apagado térmico, bloqueo de insuficiencia de voltaje y protección de cruce de corriente y protección de cortocircuito de carga.34

La figura 12 muestra el diagrama de conexión del controlador A4988 que controla un motor a pasos. El microcontrolador envía un pulso al controlador para hacer mover el motor, la cantidad de pulsos enviados por el microcontrolador es equivalente a la cantidad de pasos del motor, para cambiar el sentido de giro del motor se envía un pulso inverso en el pin DIR del controlador, este pin del controlador debe mantener el mismo valor mientras es desplazado por el motor.

Para el funcionamiento requiere de dos fuentes de alimentación, la fuente de

alimentación lógica de 3 – 5.5 unidades y la fuente para la etapa de potencia del

driver que puede ser desde 8volts hasta 35 volts, esta fuente dependerá de las características del motor a emplear, cabe aclarar que entre mayor voltaje requiera el motor para ser manipulado la potencia incrementa y si esta potencia supera 1 ampere es necesario agregarle al controlador un disipador de calor con el fin de evitar daños irreparables para este dispositivo.

(57)
[image:57.612.88.540.78.348.2]

Figura 12. Diagrama de conexión del controlador A4988 con un

microcontrolador y un motor a pasos35

2.11 Conclusiones del Capítulo

Dentro del capítulo se pudieron conocer las características de la estructura que abarca el proyecto que son que abarca las características principales de una máquina de posicionamiento de control numérico (CNC), las características que tiene el lenguaje de programación C# en su entorno de desarrollo gráfico, las características importantes del microcontrolador pic18F4550 para el desarrollo del proyecto así como los métodos para establecer una comunicación con una computadora desde el microcontrolador, el funcionamiento de los motores a pasos para implementarlos de una forma adecuada y por último las características de un Driver que es propuesto para manipular los motores a pasos.

(58)
(59)
(60)

CAPITULO III ANÁLISIS Y DISEÑO

3.1 Análisis

Se plantea una solución partiendo de la problemática que se está afrontando con la finalidad de que la propuesta sea la adecuada y enfocada al problema específico.

3.1.1 Descripción del problema

Actualmente la ciencia requiere de la tecnología para facilitar las investigaciones que se han de realizar en campos como la ciencia experimental, la comprobación de teorías, la medicina, la genética entre otros.

Es por esta razón que surge la necesidad de desarrollar una interfaz gráfica para el control de un sistema de posicionamiento el cual sea una herramienta para la adquisición de señales por medio de un transductor ultrasónico, y a través de este dispositivo se obtenga información fiable.

Figure

Figura 2. Creación de un proyecto en C# 11
Figura 3. Principales componentes de un microcontrolador.14
Figura 4. Modelo lógico de comunicación USB.21
Figura 5. Rotor 27
+7

Referencias

Documento similar

Un método de estudio aparte de ser una herramienta muy útil al momento de estudiar también nos ayuda a agilizar nuestra mente y tener una buena memoria para futuro?. Palabras

Debido al riesgo de producir malformaciones congénitas graves, en la Unión Europea se han establecido una serie de requisitos para su prescripción y dispensación con un Plan

Como medida de precaución, puesto que talidomida se encuentra en el semen, todos los pacientes varones deben usar preservativos durante el tratamiento, durante la interrupción

Entre nosotros anda un escritor de cosas de filología, paisano de Costa, que no deja de tener ingenio y garbo; pero cuyas obras tienen de todo menos de ciencia, y aun

La Intervención General de la Administración del Estado, a través de la Oficina Nacional de Auditoría, en uso de las competencias que le atribuye el artículo 168

La Intervención General de la Administración del Estado, a través de la Oficina Nacional de Auditoría, en uso de las competencias que le atribuye el artículo

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

Para ello se colocarán dos sensores de presión a distintas alturas, uno ubicado en la parte superior (sin contacto con el agua) y otro ubicado en el mínimo nivel de