implementación de un sistema posicional con motores tipo paso a paso … ·  ·...

160
FORMATO 1 (Anexo No.2) CARTA DE AUTORIZACIÓN DE LOS AUTORES PARA LA CONSULTA, LA REPRODUCCIÓN PARCIAL O TOTAL, Y PUBLICACIÓN ELECTRÓNICA DEL TEXTO COMPLETO. (OPCIONAL) Bogotá, D.C., Fecha Jueves, 30 de julio de 2009 Marque con una X Tesis doctoral Trabajo de Grado Señores BIBLIOTECA GENERAL Cuidad Estimados Señores: Los suscritos Javier Alejandro Salamanca Pachón, con C.C. No. 79996854, autor de la tesis doctoral y/o trabajo de grado titulado Implementación de un sistema posicional con motores tipo paso a paso y servo controlados por computador. presentado y aprobado en el año 2009 como requisito para optar al título de Informático Matemático; autorizo a la Biblioteca General de la Universidad Javeriana para que con fines académicos, muestre al mundo la producción intelectual de la Universidad Javeriana, a través de la visibilidad de su contenido de la siguiente manera: Los usuarios puedan consultar el contenido de este trabajo de grado en Biblos, en los sitios web que administra la Universidad, en Bases de Datos, en otros Catálogos y en otros sitios web, Redes y Sistemas de Información nacionales e internacionales “Open Access” y en las redes de información del país y del exterior, con las cuales tenga convenio la Universidad Javeriana. Permita la consulta, la reproducción, a los usuarios interesados en el contenido de este trabajo, para todos los usos que tengan finalidad académica, ya sea en formato CD-ROM o digital desde Internet, Intranet, etc., y en general para cualquier formato conocido o por conocer. Continúo conservando los correspondientes derechos sin modificación o restricción alguna; puesto que de acuerdo con la legislación colombiana aplicable, el presente es un acuerdo jurídico que en ningún caso conlleva la enajenación del derecho de autor y sus conexos. De conformidad con lo establecido en el artículo 30 de la Ley 23 de 1982 y el artículo 11 de la Decisión Andina 351 de 1993, “Los derechos morales sobre el trabajo son propiedad de los autores” , los cuales son irrenunciables, imprescriptibles, inembargables e inalienables. X

Upload: vannhi

Post on 09-May-2018

221 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

FORMATO 1 (Anexo No.2)

CARTA DE AUTORIZACIÓN DE LOS AUTORES PARA LA CONSULTA, LA REPRODUCCIÓN PARCIAL O TOTAL, Y PUBLICACIÓN ELECTRÓNICA DEL TEXTO COMPLETO.

(OPCIONAL)

Bogotá, D.C., Fecha Jueves, 30 de julio de 2009

Marque con una X

Tesis doctoral Trabajo de Grado Señores BIBLIOTECA GENERAL Cuidad Estimados Señores:

Los suscritos Javier Alejandro Salamanca Pachón, con C.C. No. 79996854,

autor de la tesis doctoral y/o trabajo de grado titulado Implementación de un sistema posicional con motores tipo paso a paso y servo controlados por

computador. presentado y aprobado en el año 2009 como requisito para optar al título de Informático Matemático; autorizo a la Biblioteca General de la Universidad Javeriana para que con fines académicos, muestre al mundo la producción intelectual de la Universidad Javeriana, a través de la visibilidad de su contenido de la siguiente manera: Los usuarios puedan consultar el contenido de este trabajo de grado en Biblos, en los sitios web

que administra la Universidad, en Bases de Datos, en otros Catálogos y en otros sitios web, Redes y Sistemas de Información nacionales e internacionales “Open Access” y en las redes de información del país y del exterior, con las cuales tenga convenio la Universidad Javeriana.

Permita la consulta, la reproducción, a los usuarios interesados en el contenido de este trabajo, para

todos los usos que tengan finalidad académica, ya sea en formato CD-ROM o digital desde Internet, Intranet, etc., y en general para cualquier formato conocido o por conocer.

Continúo conservando los correspondientes derechos sin modificación o restricción alguna; puesto

que de acuerdo con la legislación colombiana aplicable, el presente es un acuerdo jurídico que en ningún caso conlleva la enajenación del derecho de autor y sus conexos.

De conformidad con lo establecido en el artículo 30 de la Ley 23 de 1982 y el artículo 11 de la Decisión Andina 351 de 1993, “Los derechos morales sobre el trabajo son propiedad de los autores” , los cuales son irrenunciables, imprescriptibles, inembargables e inalienables.

X

Page 2: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

Firma, nombre completo y documento de identificación del estudiante Javier Alejandro Salamanca Pachón C.C. 79996854 ___________________________________________________ NOTA IMPORTANTE: El autor y o autores certifican que conocen las derivadas jurídicas que se generan en aplicación de los principios del derecho de autor. C. C. FACULTAD Ciencias Básicas PROGRAMA CADÉMICO Informática Matemática

Page 3: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

FORMATO 2 (Anexo No.3)

FORMULARIO DE LA DESCRIPCIÓN DE LA TESIS DOCTORAL O DEL TRABAJO DE GRADO

TÍTULO COMPLETO DE LA TESIS DOCTORAL O TRABAJO DE GRADO:

Implementación de un sistema posicional con motores tipo paso a paso y servo controlados por computador.

AUTOR O AUTORES

Apellidos Completos Nombres Completos Salamanca Pachón

Javier Alejandro

DIRECTOR (ES) TESIS DOCTORAL O DEL TRABAJO DE GRADO

Apellidos Completos Nombres Completos Daza Figueredo

Jesús

TRABAJO PARA OPTAR AL TÍTULO DE: Informático Matemático FACULTAD: Ciencias Basicas PROGRAMA: Carrera X Licenciatura ___ Especialización ____ Maestría ____ Doctorado ____ NOMBRE DEL PROGRAMA: Informática Matemática NOMBRES Y APELLIDOS DEL DIRECTOR DEL PROGRAMA: Patricia A. Hernández Romero CIUDAD: BOGOTA AÑO DE PRESENTACIÓN DEL TRABAJO DE GRADO: 2009 NÚMERO DE PÁGINAS 95 TIPO DE ILUSTRACIONES:

­ Ilustraciones ­ Tablas, gráficos y diagramas ­

Número de archivos dentro del CD (En caso de incluirse un CD-ROM diferente al trabajo de grado):

_________________________________________________________________________

PREMIO O DISTINCIÓN (En caso de ser LAUREADAS o tener una mención especial):

Page 4: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

_______________________________________________________________________________ DESCRIPTORES O PALABRAS CLAVES EN ESPAÑOL E INGLÉS: Son los términos que definen los temas que identifican el contenido. (En caso de duda para designar estos descriptores, se recomienda consultar con la Unidad de Procesos Técnicos de la Biblioteca General en el correo [email protected], donde se les orientará).

ESPAÑOL INGLÉS

Motor paso a paso ___________________ Steper motor____________________________ Java ____________________________ Java___________________________________ Motor servo_________________________ Servo motor_____________________________ Interface nativa de java________________ Java Native Interface_______________________ Puertos____________________________ Potrs____________________________________ Dinámica de sistemas_________________ System Dynamics__________________________ RESUMEN DEL CONTENIDO EN ESPAÑOL E INGLÉS: (Máximo 250 palabras - 1530 caracteres): Con el uso de los lenguajes computacionales como java, desarrolladores matemáticos y mediante la programación de protocolos de comunicación, que permiten enlazar la salida y entrada de datos de los puertos paralelo y serial. Esto hace posible enviar o recibir paquetes de datos o señales activas para hacer control de sistemas externos. Con el modelamiento matemático como una representación de sistemas físicos que permite simular mediante el diseño e implementación del software que variables afectan un dispositivo y mediante el diseño e implementación del software se establece la comunicación con el dispositivo externo por medio de los puertos del computador. Las variables establecidas en el modelo matemático junto al control sobre cualquier tarea asignada exige una precisión, dependiente de un software que además de ser versátil y robusto es de fácil manejo, se puede configurar para realizar todo tipo de tareas, y para diferentes tipos de dispositivos que se le conecten. With the use of computer languages like Java, developers and through mathematical scheduling of communication protocols, which allow entry and exit link data of parallel and serial ports. This makes it possible to send or receive data packets active signals to control external systems. With the mathematical model as a representation of physical systems that can simulate the design and implementation through software variables that affect a device and through the design and implementation software establishes communication with the external device through ports of the computer. The variables in the mathematical model together with control on any task required accuracy, dependent on a software that besides be versatile and robust it is easy to use, can be configured to perform all kinds of tasks, and for different types of devices connected to it.

Page 5: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

IMPLEMENTACIÓN DE UN SISTEMA POSICIONAL

CON MOTORES TIPO PASO A PASO Y SERVO

CONTROLADOS POR COMPUTADOR.

JAVIER ALEJANDRO SALAMANCA PACHÓN.

TRABAJO DE GRADO

Presentado como requisito parcialPara optar al titulo de

INFORMÁTICO MATEMÁTICO

PONTIFICIA UNIVERSIDAD JAVERIANAFACULTAD DE CIENCIAS

CARRERA DE INFORMÁTICA MATEMÁTICABogotá, D.C.

Julio 2009

Page 6: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

NOTA DE ADVERTENCIA

Artículo 23 de la Resolución N° 13 de Julio de 1946

“La Universidad no se hace responsable por los conceptos emitidos por sus alumnos en sus

trabajos de tesis. Solo velará por que no se publique nada contrario al dogma y a la moral

católica y por que las tesis no contengan ataques personales contra persona alguna, antes bien

se vea en ellas el anhelo de buscar la verdad y la justicia”.

2

Page 7: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

no.

IMPLEMENTACIÓN DE UN SISTEMA POSICIONALCON MOTORES TIPO PASO A PASO Y SERVO

CONTROLADOS POR COMPUTADOR.

JAVIER ALEJANDRO SALAMANCA PACHÓN.

APROBADO.

________________________

Jesús Daza Figueredo.

Director.

________________________ ________________________

Fernando Novoa. Orlando Acevedo.

Jurado. Jurado.

3

Page 8: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

IMPLEMENTACIÓN DE UN SISTEMA POSICIONALCON MOTORES TIPO PASO A PASO Y SERVO

CONTROLADOS POR COMPUTADOR.

JAVIER ALEJANDRO SALAMANCA PACHÓN.

APROBADO.

________________________ ________________________

Ingrid Schuler, Ph.D. Patricia A. Hernández Romero, MSc.

Decano Académico. Director de carrera.

4

Page 9: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

Índice general

1. MARCO TEÓRICO. 16

1.0.1. Reseña histórica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

1.0.1.1. Java. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

1.0.1.2. Motores eléctricos. . . . . . . . . . . . . . . . . . . . . . . 17

1.0.1.3. Dinámica de sistemas. . . . . . . . . . . . . . . . . . . . . . 18

1.0.2. Dinámica de sistemas. . . . . . . . . . . . . . . . . . . . . . . . . . . 19

1.0.2.1. ¿Qué es la dinámica de sistemas?. . . . . . . . . . . . . . . . 19

1.0.2.2. Construcción de modelos en la dinámica de sistemas. . . . . 20

1.0.3. API de comunicaciones. . . . . . . . . . . . . . . . . . . . . . . . . . 20

1.0.3.1. Características del API de comunicaciones. . . . . . . . . . . 21

1.0.4. La JNI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

1.0.5. Arquitectura puerto paralelo. . . . . . . . . . . . . . . . . . . . . . . . 29

1.0.5.1. Tipos de puerto. . . . . . . . . . . . . . . . . . . . . . . . . 31

1.0.5.2. Detección del tipo de puerto. . . . . . . . . . . . . . . . . . 33

1.0.5.3. Puerto paralelo a nivel físico. . . . . . . . . . . . . . . . . . 35

1.0.5.4. Interrupciones. . . . . . . . . . . . . . . . . . . . . . . . . . 36

1.0.5.5. Canales DMA. . . . . . . . . . . . . . . . . . . . . . . . . . 36

1.0.5.6. El puerto y su hardware. . . . . . . . . . . . . . . . . . . . . 36

1.0.6. Arquitectura puerto serial. . . . . . . . . . . . . . . . . . . . . . . . . 37

1.0.6.1. Estructura de datos del puerto serie RS-232. . . . . . . . . . 38

1.0.7. Arquitectura motor paso a paso. . . . . . . . . . . . . . . . . . . . . . 40

5

Page 10: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

ÍNDICE GENERAL ÍNDICE GENERAL

1.0.7.1. Principio de funcionamiento. . . . . . . . . . . . . . . . . . 40

1.0.7.2. Secuencia para manejar motores paso a paso bipolares. . . . 42

1.0.7.3. Secuencia para manejar motores paso a paso unipolares. . . . 42

1.0.8. Servo Motores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

1.0.8.1. Funcionamiento de un servo. . . . . . . . . . . . . . . . . . 47

1.0.9. Sistemas Eléctricos. . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

1.0.9.1. Elementos de los circuitos eléctricos.[8] . . . . . . . . . . . 48

1.0.9.2. Leyes de los circuitos eléctricos.[8] . . . . . . . . . . . . . . 50

1.0.10. Modelos matemáticos. . . . . . . . . . . . . . . . . . . . . . . . . . . 53

1.0.10.1. Elaboración de modelos matemáticos (modelado matemático). 53

1.0.10.2. Simplicidad contra exactitud. . . . . . . . . . . . . . . . . . 53

1.0.10.3. Observaciones sobre la elaboración de modelos matemáticos. 54

1.0.10.4. Procedimiento para la elaboración de modelos matemáticos.[6] 54

1.0.10.5. Etapas del modelo.[10] . . . . . . . . . . . . . . . . . . . . 55

1.0.10.6. Sistemas lineales. . . . . . . . . . . . . . . . . . . . . . . . 56

1.0.10.7. Sistemas no lineales. . . . . . . . . . . . . . . . . . . . . . . 56

1.0.11. Diagrama de causa y efecto. . . . . . . . . . . . . . . . . . . . . . . . 57

2. FORMULACIÓN Y JUSTIFICACIÓN. 59

2.1. Formulación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

2.1.1. Justificación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

3. OBJETIVOS. 61

3.0.2. Objetivo general. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

3.0.3. Objetivos específicos. . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

4. METODOLOGÍA. 62

4.0.4. Procedimiento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

4.0.5. Desarrollo metodológico. . . . . . . . . . . . . . . . . . . . . . . . . . 63

4.0.5.1. Análisis de causas. . . . . . . . . . . . . . . . . . . . . . . . 63

6

Page 11: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

ÍNDICE GENERAL ÍNDICE GENERAL

4.0.5.2. La JNI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

4.0.5.3. El modelo matemático. . . . . . . . . . . . . . . . . . . . . 65

4.0.5.4. Programación de aplicaciones. . . . . . . . . . . . . . . . . 65

4.0.5.5. Diseño tarjeta de enlace. . . . . . . . . . . . . . . . . . . . . 67

5. RESULTADOS. 68

5.1. RUTINA ENCARGADA DE ESCRITURA Y LECTURA EN PUERTO. . . . 68

5.2. RUTINAS DE CONTROL DE MOTOR PaP. . . . . . . . . . . . . . . . . . . 69

5.2.1. Movimiento según el ángulo de rotación. . . . . . . . . . . . . . . . . 70

5.2.1.1. Funcionamiento. . . . . . . . . . . . . . . . . . . . . . . . . 71

5.2.2. Movimiento según distancia a recorrer. . . . . . . . . . . . . . . . . . 71

5.2.2.1. Funcionamiento. . . . . . . . . . . . . . . . . . . . . . . . . 73

5.2.3. Secuencia para el control de dos motores. . . . . . . . . . . . . . . . . 73

5.2.3.1. Funcionamiento. . . . . . . . . . . . . . . . . . . . . . . . . 77

5.2.4. Ubicación de un punto en un espacio bidimensional. . . . . . . . . . . 78

5.2.4.1. Funcionamiento. . . . . . . . . . . . . . . . . . . . . . . . . 80

5.3. RUTINA PARA CONTROL DE UN SERVO MOTOR. . . . . . . . . . . . . . 81

5.3.0.2. Funcionamiento. . . . . . . . . . . . . . . . . . . . . . . . . 83

5.4. VENTAJAS Y DESVENTAJAS DE LOS MOTORES PASO A PASO Y LOS

MOTORES SERVO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

5.4.1. Motor paso a paso. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

5.4.1.1. Ventajas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

5.4.1.2. Desventajas. . . . . . . . . . . . . . . . . . . . . . . . . . . 84

5.4.2. Servomotor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

5.4.2.1. Ventajas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

5.4.2.2. Desventajas. . . . . . . . . . . . . . . . . . . . . . . . . . . 85

5.4.3. Comparación de motor paso a paso y motor servo. . . . . . . . . . . . 85

5.5. MODELO MATEMÁTICO. . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

5.5.1. Descripción física motor PaP. . . . . . . . . . . . . . . . . . . . . . . 86

7

Page 12: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

ÍNDICE GENERAL ÍNDICE GENERAL

5.5.2. Descripción física servo motor. . . . . . . . . . . . . . . . . . . . . . . 86

5.5.3. Descripción matemática. . . . . . . . . . . . . . . . . . . . . . . . . . 86

5.5.3.1. Motor PaP . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

5.5.3.2. Servo motor. . . . . . . . . . . . . . . . . . . . . . . . . . . 87

5.6. TARJETA DE ENLACE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

5.7. FUTURAS MEJORAS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

6. CONCLUSIÓN. 90

8

Page 13: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

Índice de cuadros

1.1. Conexiones DB25 y DB9 del interfaces RS-232 . . . . . . . . . . . . . . . . . 23

1.2. Conexiones DB25 del interfaces IEEE-1284 en modo SPP. . . . . . . . . . . . 26

1.3. Extensiones de la librerías dinámicas por SO. . . . . . . . . . . . . . . . . . . 28

1.4. Reglas de búsqueda de librerías de enlace dinámico de cada sistema operativo. . 29

1.5. Direcciones base puerto paralelo . . . . . . . . . . . . . . . . . . . . . . . . . 30

1.6. Direcciones base de los registros. . . . . . . . . . . . . . . . . . . . . . . . . . 31

1.7. Conexionado del puerto paralelo en modo ECP . . . . . . . . . . . . . . . . . 33

1.8. Conexionado del puerto paralelo . . . . . . . . . . . . . . . . . . . . . . . . . 35

1.9. Masas según señal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

1.10. Pins del puerto serie conexiones D25 y D9 . . . . . . . . . . . . . . . . . . . 39

1.11. Funciones de los pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

1.12. Secuencia para controlar motores paso a paso tipo bipolar. . . . . . . . . . . . 42

1.13. Secuencia normal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

1.14. Secuencia wave drive. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

1.15. Secuencia medio paso. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

5.1. Características comparativas de motor PaP y servo motor. . . . . . . . . . . . 85

9

Page 14: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

Índice de figuras

1.1. Puerto paralelo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

1.2. Puerto RS-232. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

1.3. Conexionado mediante el uso de un ULN2803. . . . . . . . . . . . . . . . . . 41

1.4. Motor PaP con 5 cables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

1.5. Motor PaP con 6 cables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

1.6. Circuito en paralelo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

1.7. Resistores combinados en serie y en paralelo caso 1. . . . . . . . . . . . . . . 51

1.8. Resistores combinados en serie y en paralelo caso 2. . . . . . . . . . . . . . . 51

1.9. Resistores combinados en serie y en paralelo caso 3. . . . . . . . . . . . . . . 52

1.10. Caso 1 corrientes y voltajes. . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

5.1. Pantalla asignación movimiento según ángulo de rotación. . . . . . . . . . . . 71

5.2. Pantalla asignación movimiento según distancia a recorrer. . . . . . . . . . . . 73

5.3. Pantalla de control de dos motores. . . . . . . . . . . . . . . . . . . . . . . . . 78

5.4. Pantalla de ubicación en un punto bidimensional. . . . . . . . . . . . . . . . . 80

5.5. Pantalla rutina de control de servo motor. . . . . . . . . . . . . . . . . . . . . 83

5.6. Tarjeta de enlace entre el computador y el motor. . . . . . . . . . . . . . . . . 88

10

Page 15: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

Nomenclatura

API Application Programmin Interface

Interfaz de Programacion de Aplicaciones

BIOS Basic Imput/Output Services

Servicios básicos de la entrada-salida

bit/seg bit por segundo

C Capacitancia

C Coulumb

CAD Computer Asisted Desing

Diseño Asistido por Computador

CC Corriente Continua

CCITT Consultive Commitee International Telegraph and Telephone

Comité Consultivo Internacional de Teléfonos y Telégrafos

COM puerto de comunicaciones

CTS Clear to Send

Limpiar para enviar

DMA Direct Memory Access

Acseso Directo a la Memoria

DSR Data Set Ready

Conjunto de datos listo

DTR Data Terminal Ready

Teminal de Datos Lista

E/S Entrada Salida

11

Page 16: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

ÍNDICE DE FIGURAS ÍNDICE DE FIGURAS

ECP Enhanced Capabilities Port

Puerto de capacidades realzado

ECR Extended Control Register

Registro Extendido de Control

EIA Electronics Industry Association

Asociación de Electrónica Industrial.

EPP Extended Parallel Port

Puerto paralelo extendido

F Faradio

fem Fuerza electro motriz

FIFO First In First Out

Primero en Entrar Primero en Salir

GND Ground

Tierra

GUI Graphic user interfece

Interface grafica de usuario

H Henrios

i Corriente

IBM International Business Machines

IEEE-1284 Standard Signaling Method for a Bi-directional Parallel Periphetral Interface for

Personal Computers

Estándar del Método de señalización para una interfase paralela bidireccional periferica

para computadoras personales

IRQ Interrupt Request Level

Nivel de demanda de interrupción

ISA Industry Standard Architecture

Arquitectura estándar industrial

JDK Java Developement Kit

Kit Desarrollador de Java

12

Page 17: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

ÍNDICE DE FIGURAS ÍNDICE DE FIGURAS

JNI Java Native Interface

Interfaz Nativa de Java

kg Kilo gramos

L Inductancia

LAN Local Area Network

Red de área local

LPT Line Print Terminal

Línea terminal de la impresión

LTI Linear Time Invariant

Tiempo lineal invariante

LTV Linear Time Variant

Tiempo lineal variante

M Inductancia mutua

mA mili amperios

Mb/s Megabits por segundo

MIT Massachusetts Institute Tecnology

Instituto de Tecnología de Massachusetts

ms mili segundos

OS Operating System

Sistema operativo

PaP Paso a Paso

PCM Pulse Codified Modulation

Modulación codificada de Pulsos

PWM Pulse Width Modulation

Pulso con modulación

R Resistencia

RAM Random Access Memory

Memoria de acceso aleatorio

13

Page 18: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

ÍNDICE DE FIGURAS ÍNDICE DE FIGURAS

RPM REVOLUCIONES POR MINUTO

rpm Revoluciones por minuto

rpm Revoluciones por minuto

RPP REVOLUCIONES POR PULSO

rpp Revoluciones por pulso

rpp Revoluciones por pulso

RS-232 Recommended Standard 232

Estandar Recomendado 232

RTS Request To Send

Petición de enviar

S Siemens

SAGE Semi-Automatic Ground Equipment

Equipo de tierra semiautomático

SPP Standard Parallel Port

Puerto Paralelo Estandar

TTL Transistor to Transistor Logic

Lógica Transistor a Transistor

USB Universal Serial Bus

V Voltio

Vcc Voltaje corriente continua

VM Virtual Machine

Máquina virtual

14

Page 19: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

GENERALIDADES.

INTRODUCCIÓN.

Con el uso de los lenguajes computacionales como java, desarrolladores matemáticos y medi-

ante la programación de protocolos de comunicación, que permiten enlazar la salida y entrada

de datos de los puertos paralelo y serial. Esto hace posible enviar o recibir paquetes de datos

o señales activas para hacer control de sistemas externos. Con el modelamiento matemático

como una representación de sistemas físicos que permite simular mediante el diseño e im-

plementación del software que variables afectan un dispositivo y mediante el diseño e imple-

mentación del software se establece la comunicación con el dispositivo externo por medio de

los puertos del computador. Las variables establecidas en el modelo matemático junto al control

sobre cualquier tarea asignada exige una precisión, dependiente de un software que además de

ser versátil y robusto es de fácil manejo, se puede configurar para realizar todo tipo de tareas, y

para diferentes tipos de dispositivos que se le conecten.

Todos los periféricos que establecen comunicación con los puertos requieren de interfaces que

son diseñadas con herramientas tipo CAD1 y variará su diseño según las especificaciones del

dispositivo requerido, en este caso el tipo de motor.

1Computer Asisted Design-Diseño asistido por computador

15

Page 20: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

Capítulo 1

MARCO TEÓRICO.

1.0.1. Reseña histórica.

1.0.1.1. Java.

En Diciembre de 1990, Patrick Naughton, un empleado de la empresa Sun, reclutó a sus colegas

James Gosling y Mike Sheridan para trabajar sobre un nuevo tema conocido como "El proyecto

verde"[4]. Este a su vez estaba auspiciado por la compañía "Sun founder Bill Joy" y tenía como

objetivo principal crear un lenguaje de programación accesible, fácil de aprender y de usar, que

fuera universal, y que estuviera basado en un ambiente C++ ya que había mucha frustración por

la complejidad y las limitaciones de los lenguajes de programación existentes.

En abril de 1991, el equipo decidió introducir sistemas de software con aplicaciones para con-

sumidores smart como plataforma de lanzamiento para su proyecto. James Gosling escribió el

compilador original y lo denominó "Oak", y con la ayuda de los otros miembros del equipo

desarrollaron un decodificador que mas tarde se convertiría en lenguaje Java. Cuando un grupo

de Sum visito un café local e nombre de java fue sugerido[4].

Para 1992, el equipo ya había desarrollado un sistema prototipo conocido como "*7", que era

una especie de cruce entre un asistente digital personalizad o y un mecanismo inteligente de

control remoto.

Por su parte el presidente de la compañía Sun, Scott McNealy, se dio cuenta en forma muy

oportuna y estableció el Proyecto Verde como una subsidiaria de Sun. De 1993 a 1994, el

equipo de Naughton se lanzó en busca de nuevas oportunidades en el mercado, mismas que

se fueron dando mediante el sistema operativo base. La incipiente subsidiaria fracasó en sus

intentos de ganar una oferta con Time-Warner, sin embargo el equipo concluyó que el mercado

para consumidores electrónicos smart y las cajas Set-Up en particular, no eran del todo eficaces.

La subsidiaria Proyecto Verde fue amortizada por la compañía Sun a mediados del 94.

16

Page 21: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 1. MARCO TEÓRICO.

Afortunadamente, el cese del Proyecto Verde coincidió con el nacimiento del fenómeno mundial

Web. Al examinar las dinámicas de Internet, lo realizado por el ex-equipo verde se adecuaba a

este nuevo ambiente ya que cumplía con los mismos requerimientos de las set-top box OS que

estaban diseñadas con un código de plataforma independiente pero sin dejar de ser pequeñas y

confiables.

Patrick Naugthon procedió a la construcción del lenguaje de programación Java que se acciona-

ba con un browser prototipo, más tarde se le fueron incorporando algunas mejoras y el browser

Hot Java fue dado a conocer al mundo en 1995.

Con el paso del tiempo el Hot Java se convirtió en un concepto práctico dentro del lenguaje

Java y demostró que podría proporcionar una forma segura multiplataforma para que el código

pueda ser bajado y corrido del Host del World Wide Web y que de otra forma no son seguros.

Una de las características más atractivas del Hot Java fue su soporte para los "applets", que son

las partes del código Java que pueden ser cargadas mediante una red de trabajo para después

ejecutarlo localmente y así lograr o alcanzar soluciones dinámicas en computación acordes al

rápido crecimiento del ambiente Web.

Para dedicarse al desarrollo de productos basados en la tecnología Java, Sun formó la empresa

Java Soft en enero de 1996, de esta forma de se dio continuidad al fortalecimiento del progra-

ma del lenguaje Java y así trabajar con terceras partes para crear aplicaciones, herramientas,

sistemas de plataforma y servicios para aumentar las capacidades del lenguaje.

Durante ese mismo mes, Java Soft dio a conocer el Java Developmet Kit (JDK) 1.0[13], una

rudimentaria colección de componentes básicos para ayudar a los usuarios de software a con-

struir aplicaciones de Java. Dicha colección incluía el compilador Java, un visualizador de ap-

plets, un debugger prototipo y una máquina virtual Java(JVM), necesaria para correr programas

basados en Java, también incluía paquetería básica de gráficos, sonido, animación y trabajo en

red[13].

1.0.1.2. Motores eléctricos.

Faraday, Michael (1791−1867), fue el que descubrió el principio de el motor eléctrico el des-

cubrió la inducción. Inducción es la generación de una corriente eléctrica en un conductor en

movimiento en el interior de un campo magnético físico. A partir de ese descubrimiento se

potencio el estudio sobre la electrónica[8].

En 1834 anunció el método de descomponer las soluciones salinas, que hoy se conoce con el

nombre de electrólisis, establece que el movimiento de un conductor integrante de un circuito

cerrado en un campo magnético produce corriente en dicho circuito, y en ello se basa el fun-

cionamiento del generador eléctrico.

17

Page 22: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 1. MARCO TEÓRICO.

Una corriente eléctrica que pasa por un conductor situado en un campo magnético crea una

fuerza que tiende a desplazar al conductor con respecto al campo, esta es la base del motor

eléctrico. De modo que, en esencia, una misma máquina puede emplearse como generador o

como motor; si se le aplica energía mecánica, generará electricidad, y si se le aplica electricidad,

producirá energía mecánica.[16]

1.0.1.3. Dinámica de sistemas.

A lo largo de los años cincuenta comenzó a desarrollarse en el Instituto de Tecnología de Mas-

sachusetts (MIT) una destacada metodología de sistemas, la Dinámica de Sistemas[9]. Jay W.

Forrester, ingeniero electrónico, había pasado del Laboratorio de Servomecanismos, donde in-

ventó las memorias magnéticas de núcleos de ferrita, a coordinar un gran proyecto de defensa,

el sistema SAGE (Semi-Automatic Ground Equipment). En la realización de este sistema de

alerta en tiempo real se percató de la importancia del enfoque sistémico para concebir y con-

trolar entidades complejas como las que surgen de la interacción de hombres y máquinas. Tras

esta experiencia, Forrester pasaría como profesor a la Sloan School of Management del MIT,

donde observó que en las empresas se producían fenómenos de realimentación que podían ser

causa de oscilaciones, igual que sucede en los servomecanismos. De esta forma ideó la Dinámi-

ca Industrial1, una metodología que permitía construir modelos cibernéticos de los procesos

industriales. La peculiaridad de estos modelos residía en la posibilidad de simular su evolución

temporal con la ayuda del ordenador. Posteriormente aplicaría su metodología a problemas de

planificación urbana2 y la generalizaría para cualquier tipo de sistema continuo, cambiando su

denominación por la de Dinámica de Sistemas3.

La Dinámica de Sistemas alcanzó gran difusión durante los años setenta, al servir de base para

los estudios encargados por el Club de Roma a Forrester y su equipo para valorar el efecto

del crecimiento de la población y de la actividad humana en un mundo de recursos limitados.

El propio Forrester dirigió la confección de un modelo inicial del mundo4 a partir del cual

se realizaría más tarde el informe definitivo5, dirigido por D.L. Meadows y financiado por la

Fundación Volkswagen. Un segundo informe, también utilizando Dinámica de Sistemas, sería

encargado posteriormente a Mesarovic y Pestel6.

1Industrial Dynamics, 1961.2Urban Dynamics, 1969.3System Dynamics, 1968.4World Dynamics, 1971.5The Limits to Growth, 1973.6Mankind at the Turning Point, 1974 .

18

Page 23: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 1. MARCO TEÓRICO.

1.0.2. Dinámica de sistemas.

La Dinámica de Sistemas es una metodología para la construcción de modelos de simulación

para sistemas complejos, como los que son estudiados por las ciencias sociales, la economía, la

ecología o la física.

1.0.2.1. ¿Qué es la dinámica de sistemas?.

La Dinámica de Sistemas es una metodología para la construcción de modelos de simulación

para sistemas complejos, como los que son estudiados por las ciencias sociales, la economía o

la ecología.

La Dinámica de Sistemas aplica métodos de sistemas duros, básicamente las ideas de reali-

mentación y sistema dinámico, junto con la teoría de modelos en el espacio de estados y pro-

cedimientos de análisis numérico. Por tanto sería una metodología más entre las de sistemas

duros. Sin embargo, en su punto de mira están los problemas no estructurados (blandos), como

los que aparecen en los sistemas socio económicos.[6] Esto plantea dos tipos de dificultades:

Cuantificación: En Dinámica de Sistemas se comienza por identificar las variables de in-

terés y las relaciones que ligan entre sí a estas variables. A continuación es imprescindible

cuantificar dichas relaciones, lo que en ocasiones plantea dificultades insalvables.[10, 11]

Validación: Una vez construido el modelo hay que preguntarse si refleja razonablemente

la realidad. Esta cuestión puede resolverse por ejemplo en caso de que se disponga de

informaciones cuantitativas de la evolución del sistema real en el pasado. Si el mode-

lo es capaz de generar los comportamientos característicos del sistema real, denomina-

dos modos de referencia, entonces obtendremos una cierta confianza en la validez del

modelo.[10, 11]

En Dinámica de Sistemas la simulación permite obtener trayectorias para las variables inclu-

idas en cualquier modelo mediante la aplicación de técnicas de integración numérica. Sin em-

bargo, estas trayectorias nunca se interpretan como predicciones, sino como proyecciones o

tendencias.[10, 11] El objeto de los modelos de Dinámica de Sistemas es, como ocurre en todas

las metodologías de sistemas blandos, llegar a comprender cómo la estructura del sistema es

responsable de su comportamiento. Esta comprensión normalmente debe generar un marco fa-

vorable para la determinación de las acciones que puedan mejorar el funcionamiento del sistema

o resolver los problemas observados. La ventaja de la Dinámica de Sistemas consiste en que es-

tas acciones pueden ser simuladas a bajo coste, con lo que es posible valorar sus resultados sin

necesidad de ponerlas en práctica sobre el sistema real.[7, 9]

19

Page 24: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 1. MARCO TEÓRICO.

1.0.2.2. Construcción de modelos en la dinámica de sistemas.

Fases en la construcción de un modelo:

1. Conceptualización.[11, 10]

Descripción verbal del sistema.

Descripción precisa del modelo en el tiempo.

Diagrama causal.

2. Formulación.[11, 10]

Construcción del diagrama de Forrester.

Establecimiento de las ecuaciones para la simulación.

3. Análisis y evaluación.[11, 10]

Análisis del modelo (comparación, análisis de sensibilidad, análisis de políticas).

Evaluación, comunicación e implementación.[11, 10]

1.0.3. API de comunicaciones.

El API de comunicaciones es un paquete de java el cual permite la comunicación mediante el

puerto paralelo o serial con dispositivos externos al computador.

Una API7 es un conjunto de especificaciones de comunicación entre componentes software.

Representa un método para conseguir abstracción en la programación, generalmente (aunque

no necesariamente) entre los niveles o capas inferiores y los superiores del software. Uno de

los principales propósitos de una API consiste en proporcionar un conjunto de funciones de uso

general, por ejemplo, para dibujar ventanas o iconos en la pantalla. De esta forma, los progra-

madores se benefician de las ventajas de la API haciendo uso de su funcionalidad, evitándose

el trabajo de programar todo desde el principio.

El API de comunicaciones es una extensión estándar que permite realizar comunicaciones con

los puertos serie RS-232 y el paralelo IEEE-1284, esto permite realizar aplicaciones de comu-

nicaciones que utilizan los puertos de comunicaciones independientes de la plataforma[12].

7Application Programming Interface - Interfaz de Programación de Aplicaciones

20

Page 25: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 1. MARCO TEÓRICO.

1.0.3.1. Características del API de comunicaciones.

En el paquete de comunicaciones javax.comm tenemos una serié de clases que nos permiten

tratar varios niveles de programación, estos niveles son los siguientes:

Nivel alto: En este nivel tenemos las clases CommPortIdentifier y CommPort que nos

permiten el acceso a los puertos de comunicación[12].

Nivel medio: Con las clases SerialPort y ParallelPort que cubren la interfaz física RS-232

para el puerto serie y IEEE-1284 para el puerto paralelo[12].

Nivel bajo: Este nivel ya toca el sistema operativo y en el se encuentra el desarrollo de

drivers[12].

Los servicios que nos proporciona este paquete son:

Poder obtener los puertos disponibles así como sus características.

Abrir y mantener una comunicación en los puertos.

Resolver colisiones entre aplicaciones. Gracias a este servicio podremos tener varias apli-

caciones Java funcionando y utilizando los mismos puertos y no solo sabremos que el

puerto esta ocupado sino que podremos saber que aplicación lo esta utilizando.

Disponemos de métodos para el control de los puertos de entrada / salida a bajo nivel, de

esta forma no solo nos limitamos a enviar y recibir datos sino que podemos saber en que

estado esta el puerto. Así en un puerto serie podremos no solo cambiar los estados sino

que podemos programar un evento que nos notifique el cambio de cualquier estado.

Programación a alto nivel. Para esta programación se cuenta con la clase CommPortIdenti-

fier. Se encuentra ante la clase principal del paquete ya que lo primero que se debe hacer antes

de empezar a utilizar un puerto es descubrir si esta libre para su utilización.

Lo primero que se debe hacer antes de intentar abrir un puerto será ver si ya tiene o no un propi-

etario y para obtener la información de esto se debe obtener el objeto de CommPortIdentifier

correspondiente al puerto que se realizara con alguno de los siguientes métodos:

getPortIdentifiers() es el método utilizado en nuestro programa y que nos entregará un

enumerado con tantos objetos CommPortIdentifier como puertos dispongamos.[12]

21

Page 26: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 1. MARCO TEÓRICO.

getPortIdentifier(String) Nos dará el objeto correspondiente al puerto que se le pase como

parámetro, este será el método que normalmente usaremos ya que lo normal es que siem-

pre nos conectemos por el mismo puerto. Este método deberá saber tratar la excepción

NoSuchPortException que saltara en el caso de que solicitemos un puerto inexistente.[12]

Una vez que se tiene el objeto del puerto se tiene una serie de métodos que nos permiten obtener

información del puerto y abrirlo para poder iniciar una comunicación. Estos métodos son los

siguientes:

getName() dará el nombre del puerto. En el caso de haber utilizado el método getPor-

tIdentifier(String) será el mismo valor que pasamos como parámetro.[12]

getPortType() devuelve un entero que nos informa del tipo de puerto (serie o paralelo),

para no tener que acordarnos del valor de cada tipo de puerto disponemos de las con-

stantes PORT_PARALLEL y PORT_SERIAL.[12]

isCurrentlyOwned() nos informa si esta libre o no el puerto. En caso de que este ocupado

se podrá saber quien lo esta utilizando mediante el método getCurrentOwner().[12]

open(String, int) abre y por lo tanto reserva un puerto, en el caso de que intentemos

abrir un puerto que ya se encuentre en uso saltara la excepción PortInUseException. Los

parámetros que le debemos pasar son un String con el nombre de la aplicación que reserva

el puerto y un int que indica el tiempo de espera para abrir el puerto.[12]

Una vez que se tiene este objeto se deberán encaminar sus salidas a OutputStream y las entradas

a InputStream una vez realizado esto la escritura y lectura de los puertos será tan fácil como

utilizar los métodos de estas clases que pertenecen al estándar del JDK.

addPortOwnershipListener(CommPortOwnershipListener) permite añadir una clase que escuche

los cambios de propietarios en los puertos. Si una vez que se tiene registrado un oyente de even-

tos se quiere eliminar se debe de utilizar el comando

removePortOwnershipListener(CommPortOwnershipListerner).[12]

Clase CommPort. Esta es una clase abstracta que describe los métodos comunes de comuni-

cación y serán las clases que hereden de ellas (SerialPort y ParallelPort) la que añadan métodos

y variables propias del tipo del puerto. Entre los métodos que se interesa conocer se tienen:

close() nos permitirá liberar el puerto que se reservo con open, este notificara el cambio de

dueño a las clases que se hubiesen registrado con el método addPortOwnershipListener

que se explico anteriormente.[12]

22

Page 27: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 1. MARCO TEÓRICO.

getInputStream() nos permitirá enlazar la entrada del puerto al InputStream que nos de-

vuelve para leer del puerto.[12]

getOutputStream() nos permitirá enlazar la salida del puerto al OutputStream que nos

devuelve para poder escribir en el puerto de la misma forma que si se escribiera en un

fichero.[12]

getInputBufferSize() nos informa del tamaño que tiene el buffer de entrada del puerto.

Este tamaño se puede modificar con el método setInputBufferSize(int). Estos métodos

no siempre dan el resultado esperado ya que será la memoria disponible y el sistema

operativo quien al final decida si realizar o no correctamente la operación.[12]

getOutputBufferSize() nos informa del tamaño que tiene el buffer de salida, como en el

caso anterior contamos con un método para modificar el tamaño que es setOutputBuffer-

Size(int). Al igual que pasaba con los métodos anteriores su correcto funcionamiento

dependen del sistema operativo en sí y del desarrollo del driver.[12]

Clase SerialPort .

En esta clase encontramos las interfaces de bajo nivel del puerto paralelo que cumple el estándar

RS-232. En la Tabla 1 se puede ver la descripción de las patitas del conector de 25 contactos.

En la emisión de un carácter se realizarán las siguientes comprobaciones:

PIN (DB25) PIN (DB9) Descripción2 2 TD: Canal de transmisión.3 3 RD: Canal de recepción.4 7 RTS: Petición para transmitir.5 8 CTS: Preparado para emitir.6 6 DSR: Equipo preparado.7 5 Masa8 1 DCD: Conexión establecida.20 4 DTR: Terminal preparado.22 9 RI: Indicador de llamada.

Cuadro 1.1: Conexiones DB25 y DB9 del interfaces RS-232

1. Poner el DTR. Indicando que estamos preparados.

2. Poner RTS. Solicito permiso para emitir.

3. Comprobar que esta DSR. Mira sí el destinatario esta listo.

4. Esperar a CTS. Se espera a que me autoricen a enviar datos.

23

Page 28: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 1. MARCO TEÓRICO.

5. Enviar datos.

La clase SerialPort hereda de la clase abstracta CommPort y por lo tanto cuenta con sus métodos

pero además de estos se dispone de otros métodos y variables especificas para el tratamiento de

los puertos serie.

setSerialPortParams(int, int, int, int) permite configurar los parámetros del puerto se-

rie, este método deberá tratar la excepción UnsupportedCommOperationException que

saltara en el caso de que se le introduzcan valores no soportados.[12]

Los parámetros del método son:

1. La velocidad en el caso de que se le pase un valor no valido. Si se pasa 1210 se produciría

la excepción y no se modificarían los datos.

2. El segundo parámetro son los bit de datos. Para indicar el valor se utilizaran las constantes

de la clase que se tiene para lo mismo (DATABITS_5, DATABITS_6, DATABITS_7 o

DATABITS_8).

3. El bit o bits de stop que se utilizan y que puede ser 1,2 o uno y medio. Las constantes

que definen estas configuraciones son: STOPBITS_1, STOPBITS_2 y STOPBITS_1_5

respectivamente.

4. Paridad que se utilizará y que puede ser PARITY_NONE en el caso de no utilizar paridad,

PARITY_ODD para la paridad impar, PARITY_EVEN paridad par, PARITY_MARK

paridad por marca y PARITY_SPACE paridad por espacio.

Las funciones del mètodo son:

getBaudrate() da la velocidad a la que esta preparada para transmitir y que se puede

cambiar con el método setSerialPortParams(int, int, int, int).[12]

getDataBits() da la configuración de número de datos y al igual que el método anterior se

puede cambiar con el mismo método, los valores posibles son los mismos que utiliza el

método de configuración de parámetros.[12]

getStopBits() indica la configuración de bits de parada y al igual que en los métodos

anteriores se puede configurar con el mismo método. 4. getParity() indica la paridad que

utiliza.[12]

getParity() indica la paridad que utiliza.[12]

24

Page 29: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 1. MARCO TEÓRICO.

getFlowControlMode() da la configuración del control de flujo que se puede cambiar con

el método setFlowControlMode(int) y los valores posibles son: FLOWCONTROL_NONE

no existe control de flujo, (FLOWCONTROL_RTSCTS_IN o FLOWCONTROL_RTSCTS_OUT)

para el control de flujo por hardware y ( FLOWCONTROL_XONXOFF_IN o FLOW-

CONTROL_XONXOFF_OUT) para control de flujo por software. El método setFlow-

ControlMode(int al igual que pasaba con setSerialPortParams(int, int, int, int) deberá de

saber capturar la excepción UnsupportedCommOperationException.[12]

6. addEventListener(SerialPortEventListener) permite escuchar los cambios de estado del

puerto, si se desea quitar este oyente se utiliza el método removeEventListener().[12]

Mediante los métodos notifyOnXXX(boolean) permitirá habilitar o deshabilitar la notifi-

cación de los diferentes cambios que pueden ser:

• DataAvailable existen datos en la entrada.

• OutputEmpty el buffer de salida esta vacío.

• CTS cambio de Clear To Send.

• DSR cambio de Data Set Ready.

• RingIndicator cambio en RI.

• CarrierDetect cambio en CD.

• ParityError se ha producido un error de paridad.

• BreakInterrupt se detecta una rotura en la línea.

La clase oyente deberá de tener el método serialEvent(SerialPortEvent) que recibirá un objeto

que trata los eventos del puerto serie con tres métodos importantes:

getEventType() informara del evento que se ha producido.[12]

getNewValue() devuelve el nuevo estado.[12]

getoldValue() dará el estado anterior al cambio.[12]

isDTR() informará del estado terminal que se podrá cambiar con setDTR(boolean).[12]

isRTS() dice si ha solicitado permiso para transmitir o no y para cambiar su estado ten-

emos el método setRTS(boolean).[12]

isCTS() informa si podemos transmitir, isDSR() dará el estado en el que se encuentra el

pin DSR. IsRI() informa de sí esta el indicador de timbre, isCD() nos indicara si tenemos

portadora.[12]

25

Page 30: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 1. MARCO TEÓRICO.

Clase ParallelPort.

En esta clase tenemos las interfaces de bajo nivel del puerto paralelo que cumple la norma

IEEE-1284. El estándar IEEE-1284 cuenta con 8 líneas de datos, 5 entrada de estado y 4 salidas

de control. Los contactos del conector se definen en la Tabla 2 con sus funciones en el modo

SPP que es el modo compatible de trabajo para la impresora.

PIN NOMBRE Descripción1 STROBE Indica que existen datos validos en las líneas de datos D0-72 D0 Dato bit 03 D1 Dato bit 14 D2 Dato bit 25 D3 Dato bit 36 D4 Dato bit 47 D5 Dato bit 58 D6 Dato bit 69 D7 Dato bit 710 ACK Indica que el ultimo carácter se recibió.11 BUSY Indica que la impresora esta ocupada y no puede recoger datos.12 PE Sin papel.13 SLCT Indica que la impresora esta en línea.14 AUTO FD Indica a la impresora que realice una alimentación de línea.15 ERROR Existe algún error en la impresora.16 INIT Pide a la impresora que se inicie.17 SLCT IN Indica a la impresora que esta seleccionada.

Cuadro 1.2: Conexiones DB25 del interfaces IEEE-1284 en modo SPP.

Este estándar se puede trabajar con 5 modos de funcionamiento:

Compatible o SPP.

Modo Nibble, este modo reserva el canal de datos y se combina con el modo SPP.

Byte Mode, este modo es bidireccional utilizado por IBM y tiene la capacidad de desha-

bilitar los drivers usando la línea de datos.

EPP (Extended Parallel Port) es el modo extendido y se utiliza para periféricos que prin-

cipalmente no son impresoras.

ECP (Enhanced Capabilities Port) al igual que el modo EPP es bidireccional y se utiliza

para comunicar diversos tipos de periféricos, este modo es una propuesta de Hewlett

Packard y Microsoft.

26

Page 31: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 1. MARCO TEÓRICO.

La clase ParallelPort es una clase que se hereda de CommPort. Esta clase cuenta con una serie

de métodos que facilitan el uso del puerto paralelo:

addEventListener(ParallelPortEventListener ev) mediante este método se puede asignar

un oyente para cuando aparezca un error en el puerto y no lo notifique, exactamente

nos informara de cuando el buffer de salida este lleno o cuando la impresora indique

error. Los métodos que permiten habilitar o deshabilitar estos avisos son: notifyOn-

Error(boolean) y notifyOnBuffer(boolean). Si se desea quitar el oyente se puede utilizar

el método removeEventListener().[12]

getOutputBufferFree() informa de los bytes que se tienen disponibles en el buffer de

salida.[12]

isPaperOut() devolverá un valor true en el caso de que se quede sin papel la impresora,

esto es lo mismo que preguntar por el estado de la seña PE 1.2 en la página anterior.[12]

isPrinterBusy() devolverá un valor true en el caso de que la impresora este ocupada y se

corresponde con el estado BUSY.[12]

isPrinterSelected() informa sí la impresora esta seleccionada.[12]

isPrinterError() chequea si ocurre un error en la impresora y esto se refleja con el estado

de ERROR que esta en el pin 15 1.2 en la página anterior.[12]

restart() realiza un reinicio en la impresora.[12]

suspend() suspende la salida.[12]

getMode() dice el modo configurado del puerto paralelo y los valores posibles son:[12]

• LPT_MODE_SPP modo compatible unidireccional.

• LPT_MODE_PS2 modo Byte.

• LPT_MODE_EPP modo extendido.

• LPT_MODE_ECP modo mejorado.

• LPT_MODE_NIBBLE modo nibble.

setMode(int) configuramos el modo del puerto paralelo, los valores que puede tomas

son los anteriores y además LPT_MODE_ANY que será el mejor modo disponible. Este

método deberá ser capaz de tratar la excepción UnsupportedCommOperationException

que saltara en el caso de que se introduzca un modo no soportado.[12]

27

Page 32: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 1. MARCO TEÓRICO.

1.0.4. La JNI.

Otra manera de establecer la comunicación por medio de los puertos serial o paralelo desde el

computador a un dispositivo externo es mediante el uso de la JNI.

La JNI es una interfase de programación. Esta permite al código de java correr dentro de la

maquina virtual de java (VM) y se interpole con aplicaciones, funciones y librerías escritas en

otros lenguajes de programación, tales como C, C++ y assembler.[13]

El código nativo son funciones escritas en un lenguaje de programación como C o C++ para el

sistema operativo (SO) donde se esta ejecutando la maquina virtual.

JNI tiene un interfaz bidireccional que permite a las aplicaciones Java llamar código nativo y

viceversa. Es decir JNI soporta dos tipos de interfaces:

1. Native methods.

Que permiten a Java llamar a funciones implementadas en librerías nativas.[13]

2. Invocation Interface.

Nos permite incrustar una maquina virtual Java en una aplicación nativa. La aplicación

nativa llama a librerías nativas de la maquina virtual y luego usa el llamado invocation

interface para ejecutar métodos java en la VM.[13]

Las librerías de enlace dinámico son ficheros cuyas funciones no se incrustan en el ejecutable

durante la fase de enlazado, sino que en tiempo de ejecución el programa busca el fichero, carga

su contenido en memoria y enlaza su contenido según va siendo necesario.

Esto tiene la ventaja de que varios programas pueden compartir las mismas librerías, lo cual

reduce el gasto del disco duro, especialmente con las llamadas al sistema (APIs) que suelen ser

usadas por muchas aplicaciones a la vez.

Su extensión también varía dependiendo del SO en que estemos. Extensiones típicas son:

Sistema Operativo ExtensiónMac OS X .dylib

UNIX .soWindows .dll

Cuadro 1.3: Extensiones de la librerías dinámicas por SO.

Para que los programas encuentren las librerías de enlace dinámico, estas deben ponerse en

unos determinados directorios.

28

Page 33: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 1. MARCO TEÓRICO.

Cada SO sigue sus reglas:

Cuadro 1.4: Reglas de búsqueda de librerías de enlace dinámico de cada sistema operativo.

El más importante beneficio de las JNI es que este no posee restricciones en la implementación

de la subyacente java VM. Mientras se pueda escribir aplicaciones enteramente en java, hay

algunas situaciones donde java sólo no encuentra las necesidades de su aplicación. Los pro-

gramadores usan las JNI para escribir métodos nativos de java que manejan estas situaciones

cuando una aplicación no puede ser escrita totalmente en java.

Lo siguiente ilustra cuando se necesita usar los métodos nativos de java.

Las librerías estándar de java no pueden soportar las características plataforma-dependientes

necesarias para la aplicación.

Se tienen librerías escritas en otros lenguajes, y se desea hacer este accesible al código de

java con el JNI.

Se quiere implementar una pequeña porción de código tiempo-critico en un lenguaje de

bajo nivel como assembler.

1.0.5. Arquitectura puerto paralelo.

Físicamente el puerto paralelo es identificado por el usuario por su característico conector de

25 pines (hembra).[14]

29

Page 34: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 1. MARCO TEÓRICO.

Figura 1.1: Puerto paralelo.

Es posible que una computadora posea más de un puerto paralelo, generalmente se pueden

tener hasta tres, aunque Windows y otros programas tienen la capacidad para manejar hasta

cuatro de ellos.

Cada puerto paralelo posee una dirección Base, es decir, una dirección con la que se identifica

al puerto, y según el tipo de puerto de que se trate, podrá tener además otras direcciones8.

Actualmente las direcciones por defecto para los puertos son las siguientes:

Puerto Dirección BaseLPT1 0x378LPT2 0x278LPT3 0x3BC

Cuadro 1.5: Direcciones base puerto paralelo

8

Base+1, Base+2, ...

30

Page 35: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 1. MARCO TEÓRICO.

El BIOS9 construye una tabla en memoria cuando arranca la computadora desde la dirección

40:08h a 40:0Dh que contiene las direcciones base de cada puerto paralelo instalado, leyendo

esta tabla ordenada se puede conocer la dirección base de cada puerto.[5]

1.0.5.1. Tipos de puerto.

Es posible encontrar los siguientes tipos de puertos, por orden de aparición.

1. SPP.

Es el puerto más sencillo, tiene tres buses o registros, en la dirección Base: bus de datos,

este es de 8 bits y todos sus pines son salidas; en la dirección Base+1: bus de estado, en

este registro solo 5 pines se encuentran cableados al conector, y todos ellos son entradas,

en las impresoras son los que llevan la información de papel atascado, falta de papel,... ,

una de las entradas (el bit 7) está complementada; por ultimo en la dirección Base+2: bus

de control, este bus tiene cuatro salidas, de las cuales tres están negadas.[14]

Dirección Base + 0: registro o bus de datos.

Dirección Base + 1: registro o bus de estado.

Dirección Base + 2: registro o bus de control.

LPT1 LPT2 LPT3Bus de datos 0x378 0x278 0x3BC

Bus de Estado 0x379 0x279 0x3BDBus de Control 0x37A 0x27A 0x3BE

Cuadro 1.6: Direcciones base de los registros.

2. Bidireccional (PS/2).

Este puerto tienen las mismas características que el SPP con la diferencia que el bus de

datos es bidireccional, es decir que cambiando el estado de algunos bits del bus de control

se puede actuar sobre el bus de datos haciendo que trabaje en su totalidad como entradas

o como salidas10.[14]

Entrada: para configurar el bus de datos como entradas, se deben poner en nivel alto

del bit 5 y 7 del bus de control y en nivel bajo el bit 6 del bus de control.

9

Basic Imput/Output Services

10no se puede configurar algunos pines como entrada y otros como salida

31

Page 36: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 1. MARCO TEÓRICO.

Salida: para configurar el bus de datos como entradas, se deben llevar a nivel bajo

el bit 5 y 7 del bus de control y a nivel alto el bit 6 del bus de control.

3. EPP (Enhaced Parallel Port).

Este tipo de puerto tiene la característica de ser tan rápido como el bus del sistema (ISA),

alcanzando velocidades de transferencia de hasta 1Mb por segundo, fue desarrollado por

Intel, Xircom y Zenith y tuvo amplia aceptación por el resto de los fabricantes, quienes

comenzaron a construir sus puertos de tipo EPP, aunque no totalmente compatibles, con

los creados por Intel, lo que llevo a que se produjera un estándar denominado EPP 1.7,

que tiempo después se combinó con el estándar IEEE 1284, que describe los puertos

bidireccionales de alta velocidad para impresoras y se formo un estándar que actualmente

se denomina IEEE 1284 EPP. un puerto paralelo del estilo IEEE 1284 soporta múltiples

modos: SPP, bidireccional PS/2, EPP y ECP. otra particularidad de este puerto es que

posee otras cinco direcciones11, aunque esto hace que no pueda existir un tercer puerto

den la dirección 3BCh, ya que de ser así se solaparía con las direcciones asignadas a

vídeo. es por esto que cuando se creo el puerto EPP, la dirección que antes solía ser el

primer puerto, paso al tercero.[14]

4. ECP (Extended Capabilities Port).

Puede al igual que el EPP, escribir y leer a la velocidad del Bus, fue desarrollado por

Microsoft y Hewlett Packard, y se distingue del anterior por tener DMA (Direct Memory

Access), FIFO (First In First Out) y compresión de datos. A su vez puede emular los

puertos de tipo SPP y bidireccional, y si bien la norma no contempla los EPP, algunos

fabricantes suelen usar algún bit no utilizado por ECP para la conflagración del puerto

como EPP. el puerto ECP agrega además los registros desde Base+400h; a Base+402h,

en el cual esta el registro ECR (Extended Control Register), mediante el cual se pueden

configurar los diferentes modos, el significado de los bits es el siguiente:

11desde Base+3 a Base+7

32

Page 37: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 1. MARCO TEÓRICO.

Bit Significado

7:5

000 SPP (compatible ISA)001 Bidireccional (Compatible PS/2)

010 Centronics rápido (compatible ISA FIFO)011 ECP

100 Reservado101 Reservado (EPP)

110 Prueba111 Configuración

4 Deshabilita interrupciones de ERROR3 Habilita DMA2 Deshabilita el servicio de interrupción FIFO/Terminal Count1 Sólo lectura (FIFO lleno)0 Sólo lectura (FIFO vació)

Cuadro 1.7: Conexionado del puerto paralelo en modo ECP

1.0.5.2. Detección del tipo de puerto.

El puerto puede ser de tipo SPP, bidireccional12, EPP o ECP, para conocer que tipo de puerto es

el que se tiene se debe comenzar testeando el de mayor complejidad y seguir en orden hasta el

de menor complejidad.

Puerto ECP.

Para detectar si el puerto es de tipo ECP se debe leer el registro de control extendido

(ECR) en la dirección Base+402h y verificar que el bit 0 este en uno y el bit 1 este en

cero; estos bits no deben ser susceptibles de los cambios producidos en los bits 0 y 1

del bus de control, por lo que otra prueba a realizar es poner en bajo el bit 0y en alto el

bit 1 del bus mencionado, verificar que los bits del registro extendido de control no haya

cambiado; por último, los bits 0 y 1 del registro extendido de control son de sólo lectura,

lo que implica que no sera posible hacerlos cambiar de estado, entonces podemos escribir

un dato que conmute los estados de los bits 0 y 1 y luego leer el estado de esos bits, como

lo que se lee es lo que hay en el registro y no lo que se envió, podemos decir que si los

bits no han cambiado de estado y se han verificado las pruebas anteriores, estamos en

presencia de un puerto ECP.[5]

Puerto EPP.

Si el puerto fallase en las pruebas para determinar si es ECP, debemos proseguir efectuan-

do pruebas para determinar si es EPP. Para esto, se pone en nivel bajo el bit 7 del bus de

12Compatible con el estándar IBM PS/2

33

Page 38: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 1. MARCO TEÓRICO.

estado y el bit de TimeOut (bit 0 del registro de estado), debido a la diversidad de fabri-

cantes existen diversos métodos para limpiar este ultimo bit, por eso debemos contemplar

todos ellos para asegurar el funcionamiento en la mayor cantidad de maquinas posible,

lo primero que haremos será escribir el bit dos veces con un uno y luego pasarlo a cero,

podemos verificar ahora que el bit en cuestión este en el nivel bajo, de no ser así, ya pode-

mos descartar que se trate de un puerto tipo EPP. La segunda parte de la prueba consiste

en escribir un dato en el registro Base+3, y al no haber ningún periférico que responda

a la escritura realizada, el bit de TimeOut deberá cambiar su estado lógico a un uno, de

no ser así debemos seguir con las pruebas para determinar si el puerto es bidireccional o

SPP.[5]

Puerto Bidireccional (PS2 Compatible)

En esta prueba lo que haremos sera configurar el bus de datos como entrada y verificar

que al sacar un dato por el puerto no sea retenido.[5]

Puerto SPP.

Para detectar si un puerto es SPP verificamos la retención de los daros enviados, para lo

cual enviamos un par de valores al bus de datos y comprobamos (en la dirección base)

que los valores leídos sean los que se escribieron, es decir que el dato enviado haya sido

retenido por el puerto.[5]

34

Page 39: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 1. MARCO TEÓRICO.

1.0.5.3. Puerto paralelo a nivel físico.

Cuadro 1.8: Conexionado del puerto paralelo

Cuando se transmite información por un cable multipar (con varios conductores aislados), cada

conductor genera un campo electromagnético que influye en los otros conductores, para reducir

tal efecto se confecciona enroscando un conductor sobre su entorno, de manera que los campos

generados por cada conductor se anulen entre si y no afecten a los otros; a su ves estos pares

trenzados se enroscan nuevamente para evitar la interferencia con los otros cables. También

hay otras opciones que complementan la antes mencionada a la hora de transmitir datos por

un cable: para poder aumentar la longitud del cable es necesario que el mismo posea mayor

inmunidad al ruido, especialmente los de baja frecuencia como los de la red eléctrica, lo que se

logra con una malla metálica que envuelve a todos los conductores conectada a masa (chasis de

35

Page 40: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 1. MARCO TEÓRICO.

la computadora), pero cuando la longitud es considerable y los datos se transmiten a gran ve-

locidad el cable debe ser considerado como una linea de transmisión, con todas las propiedades

que esta posee, es entonces donde se observa la necesidad de que el cable tenga un terminador

para evitar los rebote de señal hacia su fuente.

Cuando se diseño el puerto paralelo también se dividieron las masas según las señales como lo

indica la siguiente tabla, aunque actualmente es muy común observarlas todas unidas, puesto

que los circuitos de salida contienen todos la misma masa, ya que con el nivel de integración

de hoy en día todos los buffer de salida están practica mente en un mismo integrado, y de esta

manera la corriente tomará el camino con menor impedancia para su retorno.

Pin Retorno de MasaPin 18 Retorno de masa correspondiente a: C0 y D0Pin 19 Retorno de masa correspondiente a: D1 y D2Pin 20 Retorno de masa correspondiente a: D3 y D4Pin 21 Retorno de masa correspondiente a: D5 y D6Pin 22 Retorno de masa correspondiente a: D7 y S6Pin 23 Retorno de masa correspondiente a: C3Pin 24 Retorno de masa correspondiente a: S7Pin 25 Retorno de masa correspondiente a: C2

Cuadro 1.9: Masas según señal

1.0.5.4. Interrupciones.

La mayoría de los puertos paralelos son capaces de detectar interrupciones generadas por el

periférico que se encuentre conectado. Para que el microprocesador detecte la interrupción el

puerto debe tener asignado un Interrupt Request Level (IRQ). Generalmente se utiliza IRQ7

para LPT1 e IRQ5 para LPT2, aunque este ultimo suele estar asociado con la placa de sonido,

por lo que es posible observar que los puertos tengan configurado otro IRQ.[14]

1.0.5.5. Canales DMA.

Los puertos de tipo ECP utilizan Direct Memory Access (DMA) para una transferencia a mayor

velocidad, utilizando DMA, mientras se produce la transferencia el microprocesador está libre

para ejecutar otra acción, el rango que utiliza el puerto paralelo es de cero a tres.[14]

1.0.5.6. El puerto y su hardware.

El puerto trabaja con lógica TTL de baja potencia de tipo Schottky, aunque en puertos viejos es

posible encontrar algunos que trabajen con salidas de tipo colector abierto. La corriente drenada

36

Page 41: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 1. MARCO TEÓRICO.

del puerto puede tomar valores de hasta 2,6mA y la entregada hasta un máximo de 24mA. En

cuanto a las tensiones de salida, el nivel bajo corresponde a una tensión entre 0V y 0,8V , y para

el nivel alto la tensión de salida es de 2,4V a 5,5V .

En algunos de los puertos se pueden encontrar también capacitores de 2,2nF entre las lineas de

E/S y masa, lo que ayuda a establecer los tiempos de subida y de bajada de la señal.

En el bus de control, generalmente, las salidas son de tipo TTL a colector abierto, con resisten-

cias de colector de 4,7KΩ y teniendo en cuenta que lo que se lee por programa es el estado del

pin del puerto, es posible utilizar este bus como entradas, aunque esto no es recomendable.[14]

1.0.6. Arquitectura puerto serial.

Figura 1.2: Puerto RS-232.

El puerto seria o RS-232 es un estándar para realizar la transmisión de datos. El RS-232 consiste

en un conector tipo DB-25 de 25 pines, aunque es normal encontrar la versión de 9 pines DB-9.

Las señales con las que trabaja este puerto son digitales, de 12V (0 lógico) y −12V (1 lógico),

para la entrada y salida de datos, y a la inversa en las señales de control. El estado de reposo en

la entrada y salida de datos es −12V .

37

Page 42: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 1. MARCO TEÓRICO.

Los ordenadores se conectan con cualquier equipo periférico, a través de sus puertos paralelo

o serie, o los más recientes como el USB (Universal Serial Bus, el cual deja desbancados a

los otros con 12 Mb/s), pero en éste caso solo analizaremos el puerto serie RS-232 por ser un

estándar impuesto en todos los equipos informáticos.

En un ordenador puede haber varios puertos series, a los que normalmente se les denomina

COM 1, COM 2, COM 313, por defecto el COM 1 suele pertenecer al ratón usando éste el IRQ

4, aunque también es posible encontrarle en el COM 2, así que lo normal es encontrarnos libre

el puerto serie del COM 2 utilizando el IRQ 3.

Para realizar una conexión en serie de datos ó información, se requiere como mínimo un cable

de dos alambres, una conexión del tipo full-duplex como la de telefonía.

Si se quiere tener una comunicación bidireccional por un par de hilos y esta consiste en una

serie de bits de información, se requieren otras terminales que indiquen al Interface cuál de los

aparatos interconectados transmite y cuál recibe, que tipo de información es, cuándo el aparato

receptor esta listo para recibir, cuando el transmisor esta listo para transmitir, a que velocidad

va ser la comunicación. Esto hace que el puerto serie tenga otras terminales que se usan para

coordinar la comunicación entre los equipos.

Los equipos terminales de datos, envían señales en 0´s y 1´s lógicos binarios, que el módem

debe convertir a señales analógicas y enviarlas por la línea telefónica o canal de comunicación

pero también es posible que se comuniquen siempre en digital.

Éste Interface o puerto RS-232 trabaja entre +12 voltios y -12 voltios, de manera que un cero

lógico es cuando la terminal esté entre +9 y +12 voltios, y un uno lógico cuando este entre -9

y -12 voltios de manera que un puerto serie que no esta transmitiendo, mantiene la terminal de

transmisión en un 1 lógico es decir entre -9 y -12 volts.

El conector estándar RS-232 sea éste hembra ó macho, es el DB-25, aunque también se usa el

DB-9.

1.0.6.1. Estructura de datos del puerto serie RS-232.

La comunicación de datos en un puerto serie, se usa normalmente para efectuar comunicaciones

asíncronas, o sea sin tiempo preestablecido para iniciarse. Los datos llegan en paquetes de

información, normalmente cada paquete es de 8 bits=1 byte, algunos equipos envían carácter

por carácter, otros guardan muchos caracteres en la memoria y cuando les toca enviarlos los

envían uno tras otro.

13muchas veces los puertos serie a partir del COM 2 se denominan puertos virtuales o son debidos a ampliacionesde los puertos por tarjetas controladoras del tipo PCI

38

Page 43: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 1. MARCO TEÓRICO.

Uno de los parámetros más importantes en la comunicación serie, es la velocidad con la que los

datos se transmiten, para el caso del RS-232, pueden transmitir de los 300 bit/seg hasta 115,200

bit/seg.

Otro de los parámetros importantes es el bit de inicio que le indica al puerto receptor que va a

llegar un byte de información.

Hay dos tipos de paridad adicional que se usan y estos son:

Marca (mark)

El bit de paridad que se intercala siempre es un uno.

Espacio (space)

El bit de paridad que se intercala siempre es un cero.

El estándar RS-232-EIA, es equivalente al V.24 del CCITT14.

Las especificaciones eléctricas del puerto serie están contenidas en el EIA15 RS232C estándar.

En las cuales se encuentran parámetros como:

1. A "Space" que es por defecto 0 está entre +3 y +25 Voltios.

2. A "Mark" que es por defecto 1 está entre -3 y -25 Voltios.

3. La región entre +3 y -3 voltios está sin definir.

4. Un circuito de voltaje abierto no debe superar 25 voltios.

5. Un circuito corto de corriente no debe exceder los 500mA. El driver debe utilizarse sin

problema.

Pin DB-25 Pin DB-9 Abreviación Nombre completo2 3 TD Transmit data3 2 RD Receive data4 7 RTS Request to send5 8 CTS Clear to send6 6 DRS Data set ready7 5 SG Signal ground8 1 CD Carrier detect20 4 DTR Data terminal ready22 9 RI Ring indicador

Cuadro 1.10: Pins del puerto serie conexiones D25 y D914Consultive Commitee International Telegraph and Telephone15Electronics Industry Association-Asociación de Electrónica Industrial.

39

Page 44: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 1. MARCO TEÓRICO.

Abreviación Nombre completo FunciónTD Transmit data Salida de datos serie TXDRD Receive data Entrada de datos serie RXDCTS Clear to send Indica si el módem está preparado para recibir y mandar datosDCD Data carrier detect Detecta si hay una conexión con el otro extremoDSR Data set ready Dice si la UART está preparada para la conexiónDTR Data terminal ready Dice al módem si la UART está preparada para la conexiónRTS Request to send Informa que la UART está preparada para la conexiónRI Ring indicator Se activa cuando el módem detecta una llamada del PSTN

Cuadro 1.11: Funciones de los pins

1.0.7. Arquitectura motor paso a paso.

Los motores paso a paso son ideales para la construcción de mecanismos en don de se requieren

movimientos que requieran precisión.

A diferencia de los motores de corriente continua (CC) que gira a todo lo que dan cuando

son conectados a la fuente de alimentación, los motores paso a paso (PaP) solamente giran un

ángulo determinado, los CC sólo disponen de dos terminales de conexión, mientras los PaP

pueden tener 4, 5 ó 6, según el tipo de motor que se trate, por otro lado los motores de corriente

continua no pueden quedar enclavados en una sola posición, los motores paso a paso tienen la

posibilidad de quedar enclavados en una posición o bien totalmente libres. Si una o más de sus

bobinas están energizadas, el motor estará enclavado en la posición correspondiente y por el

contrario quedará completamente libre sino circula energía por ninguna de sus bobinas.[1, 2]

El ángulo de giro de estos motores es muy variado pasando desde los 90 hasta los 1,8 e incluso

0,72, cada ángulo de giro, se afecta enviando un pulso en una de sus terminales.

1.0.7.1. Principio de funcionamiento.

El motor está constituido por un rotor sobre el que van aplicados distintos imanes permanentes

y por un cierto número de bobinas exitadoras, bobinas en su estator. Las bobinas son parte del

estator y el rotor es un imán permanente. La exitación de las bobinas debe ser manejada por un

controlador.

Los motores PaP suelen ser clasificados en dos tipos, según su diseño y fabricación pueden ser

bipolares o unipolares:

Bipolar.

40

Page 45: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 1. MARCO TEÓRICO.

Estos tienen, generalmente, cuatro cables de salida. Necesitan ciertos trucos para ser con-

trolados, 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.[1, 2]

Unipolares.

Estos motores suelen tener 6 ó 5 cables de salida, dependiendo de su conexionado interno.

Este tipo se caracteriza por ser más simple de controlar. En la figura 2 se puede apreciar

un ejemplo de conexionado para controlar un motor paso a paso unipolar mediante el

uso de un ULN2803, el cual es un arreglo de 8 transistores tipo Darlington capaces de

manejar cargas de hasta 500mA. Las entradas de activación 16 pueden ser directamente

activadas por un microcontrolador.[1, 2]

Figura 1.3: Conexionado mediante el uso de un ULN2803.

Figura 1.4: Motor PaP con 5 cables.

16Activa A, B, C y D.

41

Page 46: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 1. MARCO TEÓRICO.

Figura 1.5: Motor PaP con 6 cables.

1.0.7.2. Secuencia para manejar motores paso a paso bipolares.

Estos motores necesitan una inversión de la corriente que circula en sus bobinas en una secuen-

cia determinada. Cada inversión de la polaridad provoca el movimiento del eje un paso, cuyo

sentido de giro está determinado por la secuencia seguida.[1, 2]

Paso Terminal

1234

A B C D+V -V +V -V+V -V -V +V-V +V -V +V-V +V +V -V

Cuadro 1.12: Secuencia para controlar motores paso a paso tipo bipolar.

1.0.7.3. Secuencia para manejar motores paso a paso unipolares.

Existen tres secuencias posibles para este tipo de motores. Todas las secuencias comienzan por

el paso 1 una vez alcanzado el paso final. Para revertir el sentido de giro, simplemente se deben

ejecutar las secuencias en modo inverso.[1, 2]

Secuencia Normal.

Es la secuencia más usada y la que generalmente recomienda el fabricante.

Con esta secuencia el motor avanza un paso por vez debido a que siempre hay dos bobinas

activadas, se obtiene un alto torque de paso y de retención.

42

Page 47: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 1. MARCO TEÓRICO.

Paso Bobina A Bobina B Bobina C Bobina D

1 On On Off Off

2 Off On On Off

3 Off Off On On

4 On Off Off On

Cuadro 1.13: Secuencia normal.

Secuencia del tipo wave drive.

En esta secuencia se activa sólo una bobina a la vez. En algunos motores esto brinda un

funcionamiento más suave. La contrapartida es que al estar sólo una bobina activada, el

torque de paso y retención es menor.

43

Page 48: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 1. MARCO TEÓRICO.

Paso Bobina A Bobina B Bobina C Bobina D

1 On Off Off Off

2 Off On Off Off

3 Off Off On Off

4 Off Off Off On

Cuadro 1.14: Secuencia wave drive.

Secuencia del tipo medio paso.

En esta secuencia se activan las bobinas de tal forma de brindar un movimiento igual

a la mitad del paso real. Para ello se activan primero 2 bobinas y luego sólo 1 y así

sucesivamente.

44

Page 49: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 1. MARCO TEÓRICO.

Paso Bobina A Bobina B Bobina C Bobina D

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

7 Off Off Off On

8 On Off Off On

Cuadro 1.15: Secuencia medio paso.

45

Page 50: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 1. MARCO TEÓRICO.

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óx-

ima 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ática mente.

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.

1.0.8. Servo Motores.

Los servos son un tipo especial de motor de C.C. que se caracterizan por su capacidad para posi-

cionarse de forma inmediata en cualquier posición dentro de de su intervalo de operación.[15]

Un Servo es un dispositivo pequeño que tiene un eje de rendimiento controlado. Este puede

ser llevado a posiciones angulares específicas al enviar una señal codificada. Con tal de que

una señal codificada exista en la línea de entrada, el servo mantendrá la posición angular del

engranaje. Cuando la señala codificada cambia, la posición angular de los piñones cambia. En la

práctica, se usan servos para posicionar superficies de control como el movimiento de palancas,

pequeños ascensores y timones. Ellos también se usan en radio control, títeres, y por supuesto,

en robots.[3]

Los Servos son sumamente útiles en robótica. Los motores son pequeños, tiene internamente

una circuitería de control interna y es sumamente poderoso para su tamaño. Un servo normal o

estándar como el HS-300 de Hitec tiene 42 onzas por pulgada o mejor 3kg por cm de torque que

es bastante fuerte para su tamaño. También una potencia proporcional para cargas mecánicas.

Un servo, por consiguiente, no consume mucha energía. Podrá observar la circuitería de control,

el motor, un juego de piñones, y la caja. También puede ver los 3 alambres de conexión externa.

Uno es para alimentación Vcc17, conexión a tierra GND y el alambre blanco es el alambre de

control.[3]17+5volts.

46

Page 51: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 1. MARCO TEÓRICO.

1.0.8.1. Funcionamiento de un servo.

El motor del servo tiene algunos circuitos de control y un potenciómetro18 esta es conectada al

eje central del servo motor. Este potenciómetro permite a la circuitería de control, supervisar

el ángulo actual del servo motor. Si el eje está en el ángulo correcto, entonces el motor está

apagado. Si el circuito chequea que el ángulo no es el correcto, el motor girará en la dirección

adecuada hasta llegar al ángulo correcto. El eje del servo es capaz de llegar alrededor de los

180 grados. Normalmente, en algunos llega a los 210 grados, pero varía según el fabricante. Un

servo normal se usa para controlar un movimiento angular de entre 0 y 180 grados. Un servo

normal no es mecánicamente capaz de retornar a su lugar, si hay un mayor peso que el sugerido

por las especificaciones del fabricante.[3]

La cantidad de voltaje aplicado al motor es directamente proporcional a la distancia que éste

necesita viajar. Si el eje necesita regresar una distancia grande, el motor regresará a toda veloci-

dad. Si este necesita regresar sólo una pequeña cantidad, el motor correrá a una velocidad más

lenta. A esto se le llama control proporcional.

El cable de control se usa para comunicar el ángulo. El ángulo está determinado por la duración

de un pulso que se aplica al alambre de control. A esto se le llama PCM Modulación codificada

de Pulsos ó PWM Pulse Width Modulation. La modulación por anchura de pulso es uno de los

sistemas mas empleados para el control de servos. Este sistema consiste en generar una onda

cuadrada en la que se varía el tiempo que el pulso esta a nivel alto, manteniendo el mismo

periodo, con el objetivo de modificar la posición del servo según se desee. [3, 11, 15]

El servo espera ver un pulso cada 20 milisegundos o 0,02 segundos. La longitud del pulso

determinará los giros de motor. Un pulso de 1.5 ms, por ejemplo, hará que el motor se torne a

la posición de 90 grados o posición neutra. Si el pulso es menor de 1.5 ms, entonces el motor

se acercará a los 0 grados. Si el pulso es mayor de 1.5ms, el eje se acercará a los 180 grados.

Para controlar un servo, se le ordena un cierto ángulo, medido desde 0 grados. Se le envía una

serie de pulsos. En un tiempo ON de pulso indica el ángulo al que debe posicionarse; 1ms = 0

grados, 2.0ms = máx. grados19 y algún valor entre ellos da un ángulo de salida proporcional.

Generalmente se considera que en 1.5ms está el "centro". Entre los límites de 1 ~ 2ms son las

recomendaciones de los fabricantes; normalmente se puede usar un rango mayor de 1.5ms para

obtener un ángulo mayor e incluso de 2ms para un ángulo de rendimiento de 180 grados o más.

El factor limitante es el tope del potenciómetro y los límites mecánicos construidos en el servo.

Un sonido de zumbido normalmente indica que se está forzando por encima al servo, entonces

debe disminuir un poco.[3, 15]

18una resistencia variable.19Cerca de 120°.

47

Page 52: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 1. MARCO TEÓRICO.

El tiempo de OFF en el servo no es crítico; puede estar alrededor de los 20ms. Los pulsos que

ocurren frecuentemente en el tiempo de OFF pueden interferir con el sincronismo interno del

servo y podría escucharse un sonido de zumbido o alguna vibración en el eje. Si el espacio

del pulso es mayor de 50ms, depende del fabricante, entonces el servo podría estar en modo

SLEEP entre los pulsos. Entraría a funcionar en pasos pequeños y el rendimiento no sería el

óptimo.[15]

1.0.9. Sistemas Eléctricos.

Las leyes de Kirchhoff para circuitos eléctricos.[8]

Voltaje.

Es la fuerza electromotriz requerida para producir un flujo de corriente. La unidad de

voltaje es el volt(V ).

Carga.

Es la integral de corriente con respecto al tiempo. La unidad de carga es el coulumb(C).Un coulumb es la cantidad de carga que experimenta una fuerza de un Newton en un

campo eléctrico de un volt por metro o Coulumb = Newton∗metro/volt.

Corriente.

Es la razón de cambio del flujo de carga. La unidad de corriente es el ampére. si una carga

de dq coulumbs cruza un área dada en dt segundos, la corriente i es

i = dqdt

una corriente de un ampére, la carga es transferencia a razón de un coulumb por segundo.

1.0.9.1. Elementos de los circuitos eléctricos.[8]

Resistencias.

La resistencia se define como el cambio de voltaje requerido para producir un cambio en

la corriente

resistencia R = cambio en voltajecambio en corriente

VA

La resistencia R lineal se da por

R = eRi

donde eR es el voltaje a través del resitor e i es la corriente que fluye por el resistor. La

unidad de resistencia es el Ohm(Ω).

48

Page 53: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 1. MARCO TEÓRICO.

El recíproco de la resistencia se llama conductancia. La unidad de conductancia es el

siemens(S).

Los resistores no almacenan energía eléctrica pero la disipan en forma de calor.

Capacitores.

El capacitancia es el cambio en la cantidad de carga eléctrica requerida para producir un

cambio en el voltaje.

Capacitancia C = cambio en cantidad de carga electricacambio en voltaje

CV .

La capacitancia de un capacitor puede darse entonces por

C = qeC

donde q es la cantidad de carga de carga almacenada y eC es el voltaje a través del capac-

itor. La unidad de capacitancia es el farad(F).

Como i = dqdt

y eC = qC

entonces i = deCCdt

despejando

deC = 1C idt

eC (t) = 1C

t

0idt + eC (0).

Inductancias.

Es la relación entre el voltaje inducido y la razón de cambio de la corriente

Inductancia= cambio en voltaje inducidocambio en corriente por segundo

VA/s .

La autoinductancia es la propiedad de una bobina particular que ocurre cuando el campo

magnético establecido por una corriente de la bobina enlazada a la propia bobina, la

razón de cambio del flujo es proporcional a didt . La autoinductancia L, es la constante de

proporcionalidad entre el voltaje inducido eLvolts y la razón de cambio de la corriente

L = eLdidt

La unidad de inductancia es el henry(H).

Como

eL = L didt

luego de

iL (t) = 1L

t

0eLdt + iL (0).

49

Page 54: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 1. MARCO TEÓRICO.

La inductancia mutua es la influencia entre inductores que resulta de la interacción de sus

campos. Cuando un cambio de corriente de un ampére por segundo en cualquiera de dos

inductores induce una fem de un volt en el otro inductor, su inductancia mutua M es de

un henry.

1.0.9.2. Leyes de los circuitos eléctricos.[8]

Ley de Ohm.

Establece que la corriente en un circuito es proporcional a la fuerza electromotriz total

que actúa sobre el circuito e inversamente proporcional a la resistencia total del circuito.

i = eR

donde i es la corriente , e es la fem y R la resistencia.

Circuitos en serie.

La resistencia combinada de resistores conectados en serie de las suma de las resistencias

por separado.

Circuitos en paralelo.

Figura 1.6: Circuito en paralelo.

i1 = eR1

, i2 = eR2

, i3 = eR3

como i = i1 + i2 + i3, luego

i = eR1

+ eR2

+ eR3

= eR donde R es la resistencia combinada, luego

1R = 1

R1+ 1

R2+ 1

R3

R = 11

R1+ 1

R2+ 1

R3

= R1R2R3R1R2+R2R3+R3R1

.

Resistencia de resistores combinados en serie y paralelo.

50

Page 55: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 1. MARCO TEÓRICO.

Figura 1.7: Resistores combinados en serie y en paralelo caso 1.

La resistencia combinada R2,3 = R2R3R2+R3

luego la resistencia total R = R1 + R2,3 = R1 +R2R3

R2+R3.

Figura 1.8: Resistores combinados en serie y en paralelo caso 2.

R1,2 = R1R2R1+R2

R3,4 = R3R4R3+R4

la resistencia combinada R = R1,2 +R3,4 = R1R2R1+R2

+ R3R4R3+R4

.

51

Page 56: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 1. MARCO TEÓRICO.

Figura 1.9: Resistores combinados en serie y en paralelo caso 3.

El circuito se puede considerar como paralelo que consta de las resistencias (R1 +R3) y

(R2 +R4), la resistencia combinada R = (R1+R3)(R2+R4)R1+R2+R3+R4

.

Corrientes y voltajes de circuitos en serie y en paralelo.

Figura 1.10: Caso 1 corrientes y voltajes.

La caída de voltaje e2,3 = iR2,3

donde R2,3 = R2R3R2+R3

de donde la corriente i1 que fluye a través de la resistencia R2 es

i1 = e2,3R2

= i R2,3R2

= i R3R2+R3

la corriente i2 que fluye por la resistencia R3 es

i2 = e2,3R3

= i R2,3R3

= i R2R2+R3

.

52

Page 57: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 1. MARCO TEÓRICO.

Leyes de Kirchhoff.[8]

• Ley de corrientes de Kirchhoff.

Un nodo en un circuito eléctrico es un punto donde tres o más conductores se unen

entre si. La ley establece que la suma algebraica de todas las corrientes que entran

al nodo o salen del él, es cero.

• Ley de voltajes de Kirchhoff.

Establece que en cualquier instante dado el tiempo la suma algebraica de los voltajes

alrededor de una malla cualquiera en un circuito eléctrico es cero. Se puede expresar

también como la suma de las caídas de voltaje es igual a la suma de elevaciones de

voltaje alrededor de una malla.

1.0.10. Modelos matemáticos.

El modelado de sistemas físicos debe empezar a partir de una predicción de su funcionamien-

to antes de que el sistema pueda diseñarse en detalle o construirse físicamente. Tal predicción

se basa en una descripción matemática de las características dinámicas del sistema. A esta

descripción matemática se le llama modelo matemático.[10] Para los sistemas físicos, la may-

oría de los modelos matemáticos que resultan útiles se describen en términos de ecuaciones

diferenciales.[7]

1.0.10.1. Elaboración de modelos matemáticos (modelado matemático).

Al aplicar leyes físicas a un sistema especifico, es posible desarrollar un modelo matemático

que describa al sistema. Tal sistema puede incluir parámetros desconocidos, los cuales deben

evaluarse mediante pruebas reales. Sin embargo, algunas veces las leyes físicas que gobiernan

el comportamiento de un sistema no están completamente definidas, y la formulación de un

modelo matemático puede resultar imposible. Debe ser así, se puede utilizar un procedimiento

de modelado experimental. En este procedimiento, se somete al sistema a un conjunto de en-

tradas conocidas y se miden sus salidas. a partir de las relaciones de entrada y salida se deriva

entonces el modelo matemático.[10]

1.0.10.2. Simplicidad contra exactitud.

Cuando se intenta construir un modelo, debe establecerse un equilibrio entre la simplicidad

del modelo y la exactitud de los resultados del análisis. Es importante notar que los resultados

obtenidos en el análisis son validos en la medida en que el modelo se aproxime al sistema físico

dado.

53

Page 58: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 1. MARCO TEÓRICO.

La rapidez con la cual una computadora digital puede realizar operaciones aritméticas nos per-

mite incluir cientos de ecuaciones para describir un sistema y para construir un sistema exacto,

pero muy complicado. Si no se requiere de una exactitud extrema, es preferible desarrollar un

modelo razonablemente simplificado.

Para determinar un modelo razonablemente simplificado, se necesita decidir cuales de las vari-

ables y relaciones físicas pueden despreciarse y cuales son cruciales en la exactitud del modelo.

Con el objeto de obtener un modelo en la forma de ecuaciones diferenciales lineales, se deben

despreciar cualesquiera parámetros distribuidos y las no lineales que pueden estar presentes

en el sistema físico. Si los efectos que estas propiedades ignoradas tienen en la respuesta son

pequeños , entonces los resultados del análisis del modelo matemático y los resultados del estu-

dio experimental del sistema físico serán satisfactorios. El que cualquiera de las características

particulares sea importante puede no ser obvio en algunos casos, y en otros, puede requerir de

penetración física en intuición.[10] En relación con lo mencionado.

Cuando se resuelve un problema nuevo, usualmente conviene construir primero un modelo sim-

plificado para obtener una idea general entorno a la solución. Posterior mente puede construirse

un modelo matemático más detallado y usarlo para un análisis más completo.

1.0.10.3. Observaciones sobre la elaboración de modelos matemáticos.

Ningún modelo matemático puede representar cualquier componente o sistema físico con pre-

cisión. Siempre se involucran aproximaciones y suposiciones. Tales aproximaciones y suposi-

ciones restringen el nivel de validez del modelo matemático. Al hacer una predicción acerca del

funcionamiento del sistema, debe tenerse presente cualquier aproximación o suposición involu-

crada en el modelo.[6]

1.0.10.4. Procedimiento para la elaboración de modelos matemáticos.[6]

1. Dibujar un diagrama esquemático del sistema y definir las variables.

2. Utilizando leyes físicas, escribir ecuaciones para cada componente, combinándolos de

acuerdo con el diagrama del sistema y obtener un modelo matemático.

3. Para verificar la validez del modelo, la predicción acerca del funcionamiento obtenida

al resolver las ecuaciones del modelo, se compara con resultados experimentales. Si los

resultados experimentales se alejan de la predicción en forma considerable, debe mod-

ificarse el modelo. Entonces se obtiene un nuevo modelo y las nuevas predicciones se

comparan con los resultados experimentales. El proceso se repite hasta que se obtiene

una concordancia satisfactoria entre la predicción y los resultados experimentales.

54

Page 59: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 1. MARCO TEÓRICO.

1.0.10.5. Etapas del modelo.[10]

Etapa uno: modelado físico.

El objetivo de la especificación de sistemas y el modelado físico consiste en proporcionar

una descripción del sistema que sea lo más precisa posible, aunque lo bastante sencilla

como para permitir el análisis y diseño subsecuentes. En general, un modelo físico se

construye aislando una parte del universo como el sistema de interés y luego dividiendo

conceptualmente su comportamiento en componentes conocidos. Dos temas dominan las

etapas de modelado físico y modelado de sistemas: el compromiso y la aproximación. Los

compromisos se realizan con base en la intención o meta original del estudio, con el fin

de especificar un sistema más sencillo o un conjunto de interacciones simples en el limite

entre el sistema y el resto del mundo. Las aproximaciones se hacen en las descripciones

del comportamiento de los componentes del modelo físico, con el fin de aprovechar las

teorías existentes y bien desarrolladas, así como para reducir al mínimo la complejidad

de las herramientas analíticas necesarias.

El primer paso en el aislamiento del sistema del resto del mundo es inherente al concepto

de sistemas. El segundo paso es el proceso de enlace. Es preciso tener un conjunto sufi-

ciente de comportamientos teóricos con los cuales poder relacionar los componentes del

comportamiento conceptual.

Etapa dos: construcción de modelos.

El proceso de descomposición de sistemas es necesario para la construcción sistemática

de los modelos matemáticos de los sistemas dinámicos.

Una vez descompuesto el sistema, la conducta de cada uno de sus componentes e interac-

ciones se pueden aproximar utilizando las teorías conocidas. Las aproximaciones que se

hacen al pasar del modelo físico al de sistemas tiene ciertas características bien definidas,

de modo que se pueden estudiar de manera individual.

• Descomposición del sistema.

Es el proceso de separar los componentes más sencillos y analizar sus partes, puede

hacerse de manera formal así:

Identificar los componentes.

Asignar nombre y trazar un diagrama de cuerpo libre que muestre las entradas

y las salidas, así como las interacciones internas y externas. Indicar todos las

variables necesarias.

Separar los componentes en sus elementos estáticos y dinámicos.

Escribir las relaciones de entrada y salida.

55

Page 60: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 1. MARCO TEÓRICO.

Describir el comportamiento de estos componentes. Observar que las rela-

ciones que describen a los elementos estáticos son bastantes distintas de las

expresiones dinámicas.

Etapa tres: solución de modelos.

Se resuelven las ecuaciones representando el modelo del sistema como una forma para

estudiar su comportamiento dinámico. Se determina si el modelo del sistema es bueno o

malo. La solución del modelo es fundamental para estudiar los sistemas dinámicos.

1.0.10.6. Sistemas lineales.

Los sistemas lineales son aquellos en los que las ecuaciones del moldeo son lineales. Una

ecuación diferencial es lineal si los coeficientes son constantes o funciones únicamente de la

variable independientemente. La propiedad más importante de los sistemas lineales es que se le

puede aplicar el principio de superposición, el cual establece que la respuesta producida por la

aplicación simultanea de dos funciones excitadoras distintas, es la suma de las dos respuestas

individuales. Por tanto, para sistemas lineales se puede calcular la respuesta a diversas entradas,

tratando una entrada por vez y añadiendo o sumando los resultados. Este principio es el que

nos permite construir complicadas soluciones a las ecuaciones diferenciales lineales, a partir

de soluciones simples. Los sistemas lineales pueden ser invariables en el tiempo y variables en

el tiempo. Los sistemas dinámicos que son lineales y están construidos por coeficientes con-

centrados e invariables en el tiempo, pueden ser descritos por ecuaciones diferenciales lineales,

invariantes en el tiempo. Estos sistemas reciben el nombre de lineales e invariantes en el tiem-

po (o lineales de coeficiente constante), también usualmente se utilizan para describir este tipo

de sistemas las siglas LTI, del Inglés “Linear Time Invariant”. Los sistemas representados por

ecuaciones diferenciales, cuyos coeficientes son funciones del tiempo, reciben el nombre sis-

temas lineales variables en el tiempo o LTV, del Inglés “Linear Time Variant”.[10]

1.0.10.7. Sistemas no lineales.

Sistemas no lineales son aquellos representados por ecuaciones no lineales.

Ejemplo:

z = x2 + y3.

Una ecuación diferencial recibe el nombre de no lineal si no es lineal.

Ejemplo:

d2xdt2 + dx

dt + x+ x3 = 0.

56

Page 61: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 1. MARCO TEÓRICO.

Aunque muchas relaciones físicas son frecuentes representadas por ecuaciones lineales, en la

mayor parte de los casos realmente las relaciones no son muy lineales. De hecho, un estudio

cuidadoso de los sistemas físicos indica que aún los denominados sistemas lineales son real-

mente lineales solamente en restringidos rangos de operación.

En la práctica, muchos sistemas electromecánicos, hidráulicos, neumáticos, etc., involucran

relaciones no lineales entre las variables. Por ejemplo, la salida de un componente puede satu-

rarse para niveles elevados de señal de entrada. Puede haber una franja o zona muerta que afecta

la señal pequeña20. En algunos componentes puede haber no linealidades cuadráticas, por ejem-

plo, los amortiguadores utilizados en sistemas físicos pueden ser lineales para operaciones de

baja velocidad, pero son no lineales en velocidades altas, porque la fuerza de amortiguación se

vuelve proporcional al cuadrado de la velocidad de funcionamiento.[10]

La característica más importante de los sistemas no lineales es que no es aplicable el prin-

cipio de superposición. En general, los procedimientos para hallar soluciones de problemas

que involucran sistemas no lineales, son extremadamente complicados. Debido a ésta dificultad

matemática, inherente a los sistemas no lineales, a menudo se encuentra necesario introducir

sistemas lineales equivalentes en reemplazo de los no lineales. Estos sistemas lineales equiva-

lentes son válidos solamente en un restringido rango de operación. Una vez que se ha aproxi-

mado un sistema no lineal con un modelo matemático lineal, se puede utilizar cierto número de

herramientas lineales para su análisis y diseño.

1.0.11. Diagrama de causa y efecto.

Un diagrama de causa y efecto es la representación de varios elementos de un sistema que

pueden contribuir a un problema.

Es una herramienta efectiva para estudiar procesos y situaciones, y para desarrollar un plan de

recolección de datos.

Es utilizado para identificar las posibles causas de un problema específico. La naturaleza gráfica

del diagrama permite que se organice grandes cantidades de información sobre el problema y

determinar exactamente las posibles causas.

El diagrama de causa y efecto se debe utilizar cuando se pueda contestar “si” a una o a las dos

preguntas siguientes:

1. ¿Es necesario identificar las causas principales de un problema?

2. ¿Existen ideas y/u opiniones sobre las causas de un problema?

20Las franja muerta de un componente no es sensible.

57

Page 62: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 1. MARCO TEÓRICO.

El desarrollo y uso de diagramas de causa y efecto son más efectivos después de que el proceso

ha sido descrito y el problema esté bien definido.

Los diagramas de causa y efecto pueden ser utilizados para otros propósitos diferentes al análisis

de la causa principal.

El diagrama causa efecto no ofrece una respuesta a una pregunta, como lo hacen otras her-

ramientas. Herramientas como el análisis de Pareto21, Diagramas Scatter22 e histogramas, pueden

ser utilizadas para analizar datos estadísticamente.

21El nombre de Pareto fue dado por el Dr. Joseph Juran en honor del economista italiano Vilfredo Pareto(1848−1923)

22Herramienta de análisis que dibuja pares relacionados de variables para representar un patrón de relación ocorrelación.

58

Page 63: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

Capítulo 2

FORMULACIÓN YJUSTIFICACIÓN.

2.1. Formulación.

Con el auge en las últimas décadas de la tecnología en el mundo, surge la necesidad de actualizar

y obtener las herramientas adecuadas para competir a nivel tecnológico en el área industrial co-

mo en el área de la investigación científica, de una forma económica y que cumpla con los

estándares mínimos establecidos. El problema del desarrollo de nuestras tecnologías radica, en

el desconocimiento de herramientas que el mismo computador contiene. Pocos usuarios cono-

cen el manejo de los puertos del computador, las rutinas de comunicación y programación al

igual que los programas de diseño tipo CAD. Resulta útil hacer de estas herramientas un uso

frecuente en tareas de control y precisión en el desarrollo o reconstrucción de equipos con pro-

cesos paralelos y progresivos, es común considerar a estas funciones como una automatización

y control de los sistemas.

2.1.1. Justificación.

Dado que el control de los motores en desplazamiento posicional se puede realizar desde un

computador, es necesario el uso de lenguajes de programación de alto nivel, los cuales permiten

implementar las funciones ó rutinas que controlan el movimiento con la precisión de las tar-

eas a realizar, con la comunicación por los puertos y mediante el desarrollo e implementación

computacional de las ecuaciones diferenciales que describen el modelo matemático del sistema

mecánico que permita la búsqueda de coordenadas con exactitud de posición y tiempo controla-

da por motores, este proceso permite establecer una interrelación usuario-dispositivo de forma

amigable y sencilla.

59

Page 64: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

2.1. FORMULACIÓN. CAPÍTULO 2. FORMULACIÓN Y JUSTIFICACIÓN.

Este tipo de control permite ser implementado en interrupciones neumáticas seriadas y parale-

las, en ordenes de encendido y apagado en mecanismos de comparación de estados de posición

y tiempo manejo de precisiones y vacíos y para estados emergentes y de capturas de informa-

ción.

60

Page 65: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

Capítulo 3

OBJETIVOS.

3.0.2. Objetivo general.

Establecer un método de manejo de periféricos por puertos del computador. Desarrollar e im-

plementar un software capaz de realizar tareas de precisión y ubicar una coordenada especifica

por instrucciones sobre diferentes tipos de motores servo y paso a paso por puertos paralelo y

serial del computador.

3.0.3. Objetivos específicos.

Implementar los protocolos para envió de señales desde los puertos del computador.

Determinar el modelo matemático del sistema mecánico del motor servo y paso a paso.

Manejar secuencia de información de variables que intervienen en el control.

Diseñar e implementar la interfase de conexión entre el puerto y el motor.

Desarrollar algoritmos computacionales encargados del manejo controlado de los mo-

tores.

61

Page 66: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

Capítulo 4

METODOLOGÍA.

Las fases propuestas para el estudio metodológico son: la investigación del funcionamiento de

las JNI y los paquetes java comm, analizar la estructura mecánica de los motores paso a paso

para determinar las instrucciones que mueven el motor, realizar el modelamiento matemático

del sistema mecánico del motor, establecer un método de comunicación con los puertos paralelo

y serial que permite implementar una rutina de enlace para entrada y salida de datos a través de

los puertos, diseñar un algoritmo de comunicación a través de los puertos para hacer control en

dispositivos externos.

El manejo de las JNI requiere una programación cuidadosa que no interfiera con el control

interno del ordenador, por medio de esta herramienta se tiene acceso a la RAM a la LAN a los

discos duros y a todos los dispositivos y recursos del computador.

Al programar en JAVA, se tienen dos maneras de generar aplicaciones, la primera y la más

común es la generación de un applet el cual es utilizado en aplicaciones tipo web, este tipo de

aplicaciones no admite el uso de las JNI y los paquetes java comm están restringidos al comando

de puertos ya que no es permitido y pierde la seguridad de acceso a los recursos internos del

computador desde la web. La segunda es la creación de una aplicación básica la cual y puede

usar las JNI y los paquetes java comm.

Al programar la rutina de movimiento de los motores hay que tener en cuenta el tiempo de

retardo entre dato y dato, si el primer dato no alcanza a ejecutar una acción sobre el motor se

regresa y acumula la información en el puerto sobrecargándolo. entre dato y dato que se envía

ya que si el motor no alcanza a ejecutar la secuencia anterior se empezara a generar un error de

ejecución, que el dato enviado rebote devuelta al puerto sobrecargando este.

4.0.4. Procedimiento.

El programa que administra el movimiento de motores debe contemplar:

62

Page 67: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 4. METODOLOGÍA.

1. Una implementación del programa de comunicación mediante los puertos paralelo o se-

rial.

2. Activación de bobinas y control de pulso para motor PaP y servo correspondientemente.

3. Elaboración del modelo matemático de motor tipo paso a paso y servo.

4. Simulación del modelo matemático.

5. Implementación del programa que controla el motor desde el computador.

4.0.5. Desarrollo metodológico.

4.0.5.1. Análisis de causas.

Se realiza el análisis de causas mediante un diagrama de causa-efecto1, para determinar que

factores intervienen en la elaboración del dispositivo.

Con solo el manejo de correcto de los datos por puertos, no garantiza la correcta funcionalidad

del prototipo con el programa, este se garantiza con la combinación de las rutinas controladoras

y la tarjeta de enlace.

El primer factor que afecta el funcionamiento y el ideal a alcanzar es el tipo de puertos existentes

y sus modos de funcionamiento, para el caso de los pap el puerto paralelo, este tiene varios

tipos de hardware el mas común y el que se encuentra en los computadores es el estándar que se

adapta al modo de funcionamiento bidireccional es el que mas se adapta a lo que se realizó. Con

la programación en java se cuenta con el paquete javacomm con el cual no es sencillo manejar

puertos estándar ya que al inicia la conexión desde el paquete este inicia en modo unidireccional

y al intentar cambiar el modo quesera un mensaje de el hardware no es compatible con modo, la

única manera de llegar al modo bidireccional es pasando del modo unidireccional a modo byte

y por ùltimo a bodo bidireccional, lo que hace frustrante la utilización de este paquete. Con la

utilización de la JNI enlazar la entrada y salida de datos es más sencilla y es más versátil ya que

no solo se limita al puerto paralelo sino que cambiando la dirección base este puede enlazar el

serial y el USB, no es necesario cambiar de modo, su funcionamiento se basa en tres funciones

sencillas: una de asignación del bus de datos otra de lectura y la ultima de escritura.

El programa diseñado tiene el protocolo de comunicación, basado en la JNI, con el puerto

paralelo y las rutinas básicas para el control de los puertos, diseñado de tal forma que cualquier

modificación futura no afecte el funcionamiento de las funciones existentes, a partir de este se

puede diseñar los protocolos de comunicación y de conexión con puertos y dispositivos basados

en conexión USB.1Diagrama Ishikawa, Desarrollado en 1943 por el profesor Kaoru Ishikawa

63

Page 68: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 4. METODOLOGÍA.

Los componentes electrónicos en si no fueron un obstáculo para la consecución de el diseño del

prototipo, uno de los cuidados que se tiene que tener es en la elección del cable de conexión a

utilizar que un cable que no cumpla con los estándares, ya que si esto no se cumple la infor-

mación que se envía llegaría distorsionada al motor provocando funcionamiento errático o en

el peor de los caso que la información rebote hacia el puerto causando sobrecarga en este, otro

factor es la frecuencia con la que se envía la información si esta es muy alta no alcanza a ser

procesada y se provoca funcionamiento errático o en el peor de los casos que la información

que se envía se devuelva hacia el puerto causando daños a este.

Aunque las tarjetas buffer diseñadas te tal manera que: protejan al puerto de una sobre carga

esto no garantiza que en algún momento el voltaje sobre este se exceda del máximo que resisten

estos, su otra función es de al momento de activar una bobina esta tenga el voltaje de entrada

máximo de la tarjeta y no el voltaje de salida del puerto ya que este solo funciona de indicador

de activación y es muy bajo para alcanzar el máximo rendimiento del motor.

La programación de procesos en paralelo para el control de dos motores pap con el uso de mul-

tihilos que inicialmente controlan la velocidad de envío de la secuencia de pulsos de activación

de las bobinas y mediante la interacción con interfaz grafica la ubicación espacial en un plano

bidimensional, este pone limitaciones al desplazamiento, si no se colocaran estas limitaciones

se producirá un funcionamiento errático no solo de los motores sino del aplicativo en sí.

Una de tareas es la de calibrar el programa con los motores, ya que el programa se diseño

basado en condiciones ideales del funcionamiento del motor aparte se programo basado en la

utilización de motores de 12V con 1.8° de rotación por pulso, en el caso de cambiar de motor

se vería afectado el funcionamiento correcto del las tareas o procesos ejecutados, la solución

es sencilla ya que internamente se pueden cambiar las variables encargadas de esto o que por

medio de la GUI se realice este cambio sin que esto afecte el resto de procesos que este realiza.

Ver anexo 1.

4.0.5.2. La JNI

Con la JNI se tienen las rutinas básicas de comunicación que están en el lenguaje nativo del

computador, el cual está en lenguaje C. Para utilizar la JNI es necesario ubicar las librerías

en las cuales están las funciones que se desean utilizar. Lo primero es la identificación de los

puertos que se tienen instalados y sus direcciones base, en particular el la dirección del bus de

datos 1.6 en la página 31, al identificar la dirección base ya se puede enlazar la entrada y la

salida de datos del puerto. Una limitante de la JNI es que no se puede detectar si el puerto esta

o no disponible por lo cual se puede presentar errores de comunicación.

64

Page 69: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 4. METODOLOGÍA.

4.0.5.3. El modelo matemático.

Lo primero es identificar las variables intervienen en el movimiento mecánico del motor luego

mediante que leyes físicas interactúan las variables entre ellas este proceso lleva a la ecuación

de estado correspondiente con el sistema que se quiere describir. Con la solución del modelo

matemático se tiene la función de estado con la cual se puede realizar una simulación y deter-

minar el grado de exactitud del modelo al sistema real.

El sistema al cual se desea identificar las variables es a un sistema rotacional.

Un sistema rotacional esta constituido de un rotor o eje impulsado mediante bobinas.

Para sistemas mecánicos de rotación se cumple la segunda Ley de Newton de la siguiente forma:

ΣM = Jα

Donde:

J Momento de inercia.

α Aceleración angular.

M Par, troqué o momento.

Puede formularse en función de la variación angular (w) ya que α = dwdt

ΣM = J dwdt .

También en función de la variación de la posición angular ya que α = d2θ

dt2

ΣM = J d2θ

dt2 .

4.0.5.4. Programación de aplicaciones.

Con la interfaz nativa de comunicación con los puertos y el modelo matemático de cada motor,

se procede a diseñar los algoritmos que permitan el control de dispositivos mecánicos conec-

tados a los puertos. Como la comunicación se hace mediante secuencia de bits es necesario

definir el tipo de datos en el algoritmo. La interfaz nativa toma los datos de tipo hexadecimal

para enviarlos ya que C trabaja de esta forma. Para definir la secuencia de datos a enviar hay

que tener en cuenta los bits que tienen que estar activos en el puerto en el cual se escriben, si es

el puerto paralelo se tienen 8 bits de salida, en el serial RS-232 se tienen 4 bits de salida.

65

Page 70: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 4. METODOLOGÍA.

Aplicación motor PaP.

Para este tipo de motor es necesario enviar un arreglo de bits para el control del mismo, el

arreglo de datos debe estar ordenado de acuerdo con el orden de secuencia de activación de las

bobinas del motor y la secuencias deben estar diseñadas de modo tal que se acoplen con los

tres modos de funcionamiento de los PaP unipolares 1.0.7.3 en la página 42 que son: Secuencia

normal, Wave Drive y Secuencia de Medio paso. Es aquí donde toma fuerza la utilización de

vectores y la programación en JAVA utilizando los hilos como secuencia de control ya que

poseen control de velocidad y permiten el manejo sincrónico y asincrónico de la secuencia de

datos escrita en el puerto.

Para crear la aplicación se crea una clase tipo hilo para el control del motor, esta clase se

extiende la de clase Thread por lo tanto hereda todos los métodos de la clase Thread y lo que se

hace es sobre escribir el método run, que es donde se escribe el código encargado del cálculo

del dato de la secuencia a enviar. Luego se crea otra clase de control tipo hilo extendida de la

clase Thread y al igual que la anterior clase se sobre escribe el método run que es donde se

envía el dato calculado.

Este procedimiento de varios hilos uno para cálculo del dato y otro de envió de dato es útil para

el trabajo de dos motores de modo sincrónico ó asincrónico, esto se hace variando en cada clase

de calculo del dato a enviar para cada motor el tiempo del método sleep el cual es el intervalo

de espera entre dato y dato, este método es independiente de la clase en que se modifique el

tiempo lo cual le da a la aplicación la facilidad de cambiar la velocidad de envió de datos de

forma individual.

Aplicación motor servo.

A diferencia del PaP este motor funciona mediante una señal que este dentro de su rango de

trabajo, esto facilita la programación de la secuencia de datos que se escribe en el puerto ya que

sólo hay que utiliza un dato a diferencia del PaP que hay que utilizar un arreglo de datos, el

tiempo del dato enviado se puede controlar fácilmente con la utilización de dos hilos los cuales

permiten mantener el dato el tiempo necesario para hacer mover el servo el ángulo deseado,

para esto un hilo se encarga de la escritura en el puerto y el otro se encargara de la duración del

mismo en el puerto.

Para la implementación de la aplicacion de control para los servos se crean tres hilos cada uno

extendido de la clase Thread y sobre escribiendo el método run. El primer hilo determinal el

tiempo OFF, el segundo hilo controla el tiempo ON, la señal activa, y este lo hace por control

del primer hilo, cuando el primier hilo está en estado sleep, el segundo hilo envía una señal

durante el tiempo que se encuentre el primer hilo en estado sleep, cuando cambia el estado del

66

Page 71: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 4. METODOLOGÍA.

primer hilo el segundo hilo deteiene el envio de la señal. El tercer hilo es el encargado de enviar

el dato que esta generando el primer hilo, este hilo envía continuamente el dato generado por el

primer hilo.

4.0.5.5. Diseño tarjeta de enlace.

Por medio del paquete de diseño asistido ORCAD, el cual con el programa Layout permite hacer

el diseño de la tarjeta, inicialmente solo muestra los componentes de la tarjeta desconectados y

acomodados por defecto, una de las precauciones que hay que tener es al realizar las conexiones,

ya que se pueden estar conectando de manera errónea los componentes y cuando se genere

la tarjeta se pueden tener cortos, lo primero es acomodar los componentes de acuerdo con

la disposición de la entrada de datos y la salida de datos al motor, después de colocados los

componentes se procedió al ruteado de los mismos. Para esto se puede utilizar el Autoroute que

posee el Layout o utilizar SPECCTRA, otro de los programas que hacen parte de ORCAD, el

cual hace un ruteado optimizado. Otra posibilidad para esto es hacer el ruteado manualmente.

Layout tiene la capacidad de cambiar el grosor de los caminos de conexión de conexión.

67

Page 72: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

Capítulo 5

RESULTADOS.

5.1. RUTINA ENCARGADA DE ESCRITURA Y LECTURA ENPUERTO.

Mediante el uso de las JNI y la librería jnpout32.dll se desarrollo una rutina la cual permite

enlazar la salida del puerto paralelo para enviar las serie de datos los cuales permiten al motor

tipo paso a paso y al servo cambiar de estado.

El programa se desarrollo en java con el editor jcreator.

Descripción del código:

La programación de la JNI:

package j n p o u t 3 2 ;

p u b l i c c l a s s i o P o r t

/ / d e c l a r a c i ó n d e l método n a t i v o j n p o u t 3 2 . d l l

p u b l i c n a t i v e vo id Out32 ( s h o r t P o r t A d d r e s s , s h o r t d a t a ) ;

/ / s a l i d a d e l v a l o r e s p e c i f i c o d e l nombre d e l p u e r t o

p u b l i c n a t i v e s h o r t Inp32 ( s h o r t P o r t A d d r e s s ) ;

/ / a s i g n a c i ó n de un v a l o r a una d i r e c c i ó n de un p u e r t o

s t a t i c System . l o a d L i b r a r y ( " j n p o u t 3 2 p k g " ) ;

/ / c a r g a de l a l i b r e r í a j n p o u t 3 2 . d l l p a r a e l p a q u e t e

68

Page 73: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 5. RESULTADOS. 5.2. RUTINAS DE CONTROL DE MOTOR PAP.

5.2. RUTINAS DE CONTROL DE MOTOR PaP.

Mediante la programación de la JNI y la rutina de escritura en el puerto y la modelación

matemática se puede diseñar una algoritmo implementado en java que envíe una secuencia de

pulsos por el puerto, el cual puede controlar desde el computador un motor PaP, los algoritmos

diseñados son:

Movimiento según ángulo de rotación.

Movimiento según el numero de vueltas a girar.

Movimiento según distancia a recorrer.

Secuencia para control de dos motores.

Ubicación de un punto en un espacio bidimensional.

La clase básica que todas estas rutinas usan para el enlace con el puerto seleccionado es la

siguiente:

c l a s s p u e r t o

s t a t i c s h o r t d a t o ;

s t a t i c s h o r t add r ;

s t a t i c p P o r t p o r t ;

p u b l i c p u e r t o ( )

p o r t = new p P o r t ( ) ;

add r =0x378 ; / / d i r e c c i ó n d e l p u e r t o que deseamos u s a r

p u b l i c vo id e s c r i b e ( s h o r t d a t o )

p o r t . o u t p u t ( addr , d a t o ) ; / / l a f u n c i ó n que toma e l d a t o

a e n v i a r y e l p u e r t o

p u b l i c s h o r t l e e ( )

d a t o =( s h o r t ) p o r t . i n p u t ( add r ) ; / / c a p t u r a e l d a t o

que e s t a a c t u a l m e n t e en e l p u e r t o

r e t u r n ( d a t o ) ;

69

Page 74: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

5.2. RUTINAS DE CONTROL DE MOTOR PAP. CAPÍTULO 5. RESULTADOS.

5.2.1. Movimiento según el ángulo de rotación.

Para esta rutina es necesario conocer el ángulo de rotación del motor el cual permite establecer

el algoritmo basado en modelo matemático correspondiente, esta rutina funciona con un solo

hilo de control y un hilo de enlace de datos.

El código es el siguiente:

c l a s s ang / / e s t a e s l a c l a s e que r e t o r n a e l número

de p u l s o s p a r a que e l motor se mueva e l á ng u l o r e q u e r i d o

por e l u s u a r i o

s t a t i c Double p u l s o s ;

s t a t i c i n t p u l ;

s t a t i c do ub l e ang ;

p u b l i c i n t c a l c ( d ou b l e angu ) / / e s t e método de l a c l a s e

ang r e c i b e como p a r á m e t r o l a d i s t a n c i a a r e c o r r e r y

d e t e r m i n a e l número de p u l s o s p a r a c o n s e g u i r l o

p u b l i c i n t c a l c a n ( d ou b l e angu )

i f ( angu %0.9==0) / / d e t e r m i n a s i e l v a l o r o b t e n i d o se a c o p l a

con l o s d a t o s dados s i n o r e d o n d e a r

p u l s o s =new Double ( angu / 0 . 9 ) ;

p u l = p u l s o s . i n t V a l u e ( ) ;

e l s e

p u l s o s =new Double ( ang / 0 . 9 ) ;

p u l = p u l s o s . i n t V a l u e ( ) ;

r e t u r n p u l ;

70

Page 75: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 5. RESULTADOS. 5.2. RUTINAS DE CONTROL DE MOTOR PAP.

5.2.1.1. Funcionamiento.

El funcionamiento es muy sencillo ya que lo único que hay que hacer es designar el ángulo de

rotación y el programa internamente con vierte esa distancia en el numero de pulsos que tiene

que realizar para completar la tarea y dar clic en inicio, si no se quiere que recorra esa ángulo y

ya se dio clic en inicio solo se detiene con el botón de pausa.

Figura 5.1: Pantalla asignación movimiento según ángulo de rotación.

Este es el funcionamiento interno del aplicativo:

Se inicia en la clase App2Frame es la encargada de la interface grafica de recibir y trasformar

el dato que le llega por pantalla y se envía a la clase ang la cual en la función calc lo convierte

en pulsos, lo devuelve por medio de esta función a la variable vueltas para el ciclo de la acción

donde se envían los datos al puerto.

5.2.2. Movimiento según distancia a recorrer.

En este caso es también es necesario conocer el ángulo de rotación de un paso del motor y

mediante el cálculo de recorrido de este ángulo de rotación es posible establecer un algoritmo

71

Page 76: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

5.2. RUTINAS DE CONTROL DE MOTOR PAP. CAPÍTULO 5. RESULTADOS.

que permita determinar la rotación del motor.

c l a s s ang / / e s t a e s l a c l a s e que r e t o r n a e l número de

p u l s o s p a r a que e l motor se mueva l a d i s t a n c i a r e q u e r i d a

por e l u s u a r i o

s t a t i c Double p u l s o s ;

s t a t i c i n t p u l ;

s t a t i c do ub l e ang ;

p u b l i c i n t c a l c ( d ou b l e d i s t ) / / e s t e método de l a c l a s e

ang r e c i b e como p a r á m e t r o l a d i s t a n c i a a r e c o r r e r y

d e t e r m i n a e l número de p u l s o s p a r a c o n s e g u i r l o

ang= d i s t / 0 . 2 5 ; / / 0 . 2 5 es e l r a d i o de e l e j e de r o t a c i ó n

d e l motor c o n v i e r t o l a d i s t a n c i a en una e x p r e s i ó n en r a d i a n e s

ang =( ang * 1 8 0 ) / ( Math . PI ) ; / / l a e x p r e s i ó n l a c o n v i e r t o en án gu l o

i f ( ang %0.9==0) / / d e t e r m i n a s i e l v a l o r o b t e n i d o se a c o p l a

con l o s d a t o s dados

p u l s o s =new Double ( ang / 0 . 9 ) ;

p u l = p u l s o s . i n t V a l u e ( ) ;

r e t u r n p u l ;

p u b l i c i n t c a l c a n ( d ou b l e angu )

i f ( angu %0.9==0)

p u l s o s =new Double ( angu / 0 . 9 ) ;

p u l = p u l s o s . i n t V a l u e ( ) ;

e l s e

p u l s o s =new Double ( angu / 0 . 9 ) ;

p u l = p u l s o s . i n t V a l u e ( ) ;

r e t u r n p u l ;

72

Page 77: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 5. RESULTADOS. 5.2. RUTINAS DE CONTROL DE MOTOR PAP.

5.2.2.1. Funcionamiento.

El funcionamiento es muy sencillo ya que lo único que hay que hacer es designar la distancia

a recorrer el programa internamente con vierte esa distancia en el numero de pulsos que tiene

que realizar para completar la tarea y dar clic en inicio, si no se quiere que recorra esa distancia

y ya se dio clic en inicio solo se detiene con el botón de pausa.

Figura 5.2: Pantalla asignación movimiento según distancia a recorrer.

Se inicia en la clase App2Frame es la encargada de la interface grafica de recibir y enviar el

dato de la distancia a la clase ang la cual trasforma el dato que le llega en la función calc y lo

convierte ángulo y luego en pulsos, lo devuelve por medio de esta función a la variable vueltas

para el ciclo de la acción donde se envían los datos al puerto.

5.2.3. Secuencia para el control de dos motores.

Para este tipo de rutina es necesario hacer el programa con varios hilos de control como el

anterior, este permite calcular individualmente los datos de cada motor a la velocidad corre-

73

Page 78: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

5.2. RUTINAS DE CONTROL DE MOTOR PAP. CAPÍTULO 5. RESULTADOS.

spondiente da cada uno de ellos y un hilo el cual toma los datos calculados, este hilo trabaja

independientemente de la velocidad de los otros y es el que controla la comunicación con el

puerto.

Para el primer motor :

c l a s s h i l o 1 e x t e n d s Thread implemen t s Runnable

p r i v a t e s h o r t d a t o e [ ] = 0 x01 , 0 x03 , 0 x02 , 0 x06 , 0 x04 , 0 x0c , 0 x08 , 0 x09 ;

p u b l i c s h o r t d a t o 1 ;

p u b l i c h i l o 1 ( long m, i n t n , i n t vu ) / / c o n s t r u c t o r de l a c l a s e

m i l l i s =m;

nanos =n ;

v u e l t =vu ;

a n t =0 ;

p u b l i c vo id d e t e n e r 1 ( ) / / e s t a f u n c i ó n d e t i e n e e l h i l o de

c o n t r o l de d a t o s d e l p r i m e r motor .

t r y

suspend ( ) ;

c a t c h ( S e c u r i t y E x c e p t i o n e )

e . p r i n t S t a c k T r a c e ( ) ;

p u b l i c vo id c o n t i n u a r 1 ( ) / / E s t a f u n c i ó n r e i n i c i a e l h i l o

de c o n t r o l de d a t o s d e l p r i m e r motor

t r y

resume ( ) ;

c a t c h ( S e c u r i t y E x c e p t i o n e )

e . p r i n t S t a c k T r a c e ( ) ;

p u b l i c vo id run ( ) / / E s t e e s e l método que se r e e s c r i b e p a r a

e l e l c a l c u l o de l o s d a t o s

w h i l e ( c o r r e r )

74

Page 79: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 5. RESULTADOS. 5.2. RUTINAS DE CONTROL DE MOTOR PAP.

f o r ( i n t i =0 ; i <= v u e l t ; i ++)

f o r ( i n t c o n t =0; cont < d a t o e . l e n g t h ; c o n t ++)

d a t o 1 = d a t o e [ c o n t ] ;

t r y

s l e e p ( m i l l i s , nanos ) ;

c a t c h ( I n t e r r u p t e d E x c e p t i o n e )

e . p r i n t S t a c k T r a c e ( ) ;

p u b l i c s h o r t s ec1 ( ) / / E s t a f u n c i ó n es l a que se l l a m a p a r a

poder e n v i a r e l d a t o

r e t u r n ( d a t o 1 ) ;

Para el segundo motor.

c l a s s h i l o 2 e x t e n d s Thread implemen t s Runnable

p r i v a t e s h o r t d a t o e [ ] = 0 x10 , 0 x30 , 0 x20 , 0 x60 , 0 x40 , 0 xc0 , 0 x80 , 0 x90 ;

p r i v a t e s h o r t d a t o i [ ] = 0 x90 , 0 x80 , 0 xc0 , 0 x40 , 0 x60 , 0 x20 , 0 x30 , 0 x10 ;

p u b l i c s h o r t d a t o 1 ;

p u b l i c l ong m i l l i s ;

p u b l i c i n t nanos , v u e l t ;

p u b l i c b o o l e a n c o r r e r ;

p u b l i c h i l o 2 ( long m, i n t n , i n t vu ) / / a s i g n a v e l o c i d a d i n i c i a l

a e s t e h i l o

m i l l i s =m;

nanos =n ;

v u e l t =vu ;

c o r r e r = t r u e ;

75

Page 80: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

5.2. RUTINAS DE CONTROL DE MOTOR PAP. CAPÍTULO 5. RESULTADOS.

p u b l i c vo id Vmil ( l ong m ) / / m o d i f i c a l a v e l o c i d a d en

m i l i s e g u n d o s de e s t e h i l o

m i l l i s =m;

p u b l i c vo id Vna ( i n t n ) / / m o d i f i c a l a v e l o c i d a d de e s t e

h i l o en nano segundos

nanos =n ;

p u b l i c vo id Vuel ( i n t vu ) / / cambia e l numero de c i c l o s d e l

motor 2

v u e l t =vu ;

p u b l i c vo id d e t e n e r 2 ( ) / / d e t i e n e e l p r o c e s o d e l h i l o 2

t r y

suspend ( ) ;

c a t c h ( S e c u r i t y E x c e p t i o n e )

e . p r i n t S t a c k T r a c e ( ) ;

p u b l i c vo id c o n t i n u a r 2 ( ) / / r e a n u d a e l p r o c e s o d e l h i l o 2

t r y

resume ( ) ;

c a t c h ( S e c u r i t y E x c e p t i o n e )

e . p r i n t S t a c k T r a c e ( ) ;

p u b l i c vo id run ( ) / / e s t e e l e l método que se r e e s c r i b e

p a r a e l c á l c u l o de l o s d a t o s

w h i l e ( c o r r e r )

f o r ( i n t i =0 ; i <= v u e l t ; i ++)

76

Page 81: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 5. RESULTADOS. 5.2. RUTINAS DE CONTROL DE MOTOR PAP.

f o r ( i n t c o n t =0; cont < d a t o e . l e n g t h ; c o n t ++)

d a t o 1 = d a t o e [ c o n t ] ;

t r y

s l e e p ( m i l l i s , nanos ) ;

c a t c h ( I n t e r r u p t e d E x c e p t i o n e )

e . p r i n t S t a c k T r a c e ( ) ;

p u b l i c s h o r t s ec2 ( ) / / método a l que se l e hace

l l amado p a r a o b t e n e r e l d a t o .

r e t u r n ( d a t o 1 ) ;

5.2.3.1. Funcionamiento.

Se designa la velocidad del primer y segundo motor en milesimas y en nanosegundos el pro-

grama internamente asigna estos tiempos al sistema de hilos encargados de los datos de cada

motor, dar clic en inicio, si no se quiere que recorra esa distancia y ya se dio clic en inicio solo

se detiene con el botón de pausa.

77

Page 82: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

5.2. RUTINAS DE CONTROL DE MOTOR PAP. CAPÍTULO 5. RESULTADOS.

Figura 5.3: Pantalla de control de dos motores.

El funcionamiento de este mucho más complejo y se estructura diferente de los anteriores ya

que este incluye una ejecución de procesos en paralelo, inicia con la clase PruebaFrame la cual

se encarga sólo de la interface grafica en donde mediante las clases Scrollbar se generan las

barras de cambio de velocidad las cuales envían la información a la clase prog la cual funciona

de puente con la clase escribir esta es la encargada de escribir los datos en el puerto los que

recibe de las clases hilo1 e hilo2, los cuales tienen las rutinas de cálculo de dato a enviar.

5.2.4. Ubicación de un punto en un espacio bidimensional.

Para esta aplicación se usa la rutina de control de dos motores y se le añade un algoritmo de

retroceso y por medio de la interfaz gráfica del usuario se le da el control bidimensional, el

cual esta restringido a valores positivos y es una representación del estado físico en el cual se

mueven los motores.

El control bidimensional es parte de la interfaz gráfica, este control se realiza con los métodos

MouseListener y MouseMotionListener.

p a n e l . a d d M o u s e L i s t e n e r ( / / Se l e a d i c i o n a a l un p a n e l e l

78

Page 83: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 5. RESULTADOS. 5.2. RUTINAS DE CONTROL DE MOTOR PAP.

método M o u s e L i s t e n e r

new M o u s e L i s t e n e r ( ) / / Lo que se hace es s o b r e e s c r i b i r e l método

p u b l i c vo id mousePressed ( MouseEvent e ) / / r e g i s t r a e l l u g a r

donde se haga c l i k

e . consume ( ) ;

x1 = e . getX ( ) ; / / c a p t u r a l a p o s i c i ó n en x .

y1 = e . getY ( ) ; / / c a p t u r a l a p o s i c i ó n en y .

r u n n e r . d i s t ( x1 , y1 ) ; / / Se l e e n v í a a l H i lo que e s t a e n c a r g a d o

de e n v i a r l o s d a t o s p a r a que e s t e l o e n v í e a s u s

r e s p e c t i v o s h i l o s .

p u b l i c vo id mouseEnte red ( MouseEvent e )

p u b l i c vo id mouseExi ted ( MouseEvent e )

) ;

p a n e l . addMouseMot ionLi s t ene r ( / / Se a d i c i o n a e l

método MouseMot ionL i s t ene r

new MouseMot ionL i s t ene r ( ) / / Lo que se hace es s o b r e

e s c r i b i r e l método

p u b l i c vo id mouseDragged ( MouseEvent e ) / / r e g i s t r a e l por

donde se va o p r i m i e n d o c o n t i n u a m e n t e

e . consume ( ) ;

x2 = e . getX ( ) ; / / Se c a p t u r a l a p o s i c i ó n en x

y2 = e . getY ( ) ; / / Se c a p t u r a l a p o s i c i ó n en y

r u n n e r . d i s t ( x2 , y2 ) ; / / Se l e e n v í a a l H i lo que e s t a e n c a r g a d o

de e n v i a r l o s d a t o s p a r a que e s t e l o e n v í e a s u s

r e s p e c t i v o s h i l o s .

p u b l i c vo id mouseMoved ( MouseEvent e ) / / r e g i s t r a por

donde se mueve e l mouse

79

Page 84: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

5.2. RUTINAS DE CONTROL DE MOTOR PAP. CAPÍTULO 5. RESULTADOS.

p u b l i c vo id mouseEnte red ( MouseEvent e )

p u b l i c vo id mouseExi ted ( MouseEvent e )

) ;

5.2.4.1. Funcionamiento.

Mediante la selección de un punto en la pantalla el programa envía esta información y la con-

vierte en el número de pulsos para el movimiento de los motores y que estos se ubique en la

posición deseada, dar clic en inicio, si no se quiere que recorra esa distancia y ya se dio clic en

inicio solo se detiene con el botón de pausa.

Figura 5.4: Pantalla de ubicación en un punto bidimensional.

El de este es parecido al anterior y es una recopilación de rutinas anteriores, inicia con la clase

80

Page 85: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 5. RESULTADOS. 5.3. RUTINA PARA CONTROL DE UN SERVO MOTOR.

EspacialFrame la cual se encarga sólo de la interface grafica en donde mediante las clases

Scrollbar se generan las barras de cambio de velocidad y la combinación de las clases Panel

con MouseListener se envía la información a la clase prog de la ubicación espacial donde se

desea que se desplacen los motores, la cual funciona de puente con la clase escribir esta es la

encargada de escribir los datos en el puerto los que recibe de las clases hilo1 e hilo2, los cuales

tienen las rutinas de cálculo de dato a enviar.

5.3. RUTINA PARA CONTROL DE UN SERVO MOTOR.

Dado que el movimiento del servo motor se requiere de una señal activa de determinada am-

plitud1 y el modelo matemático de este tipo de dispositivo es lineal, lo cual facilita su pro-

gramación, y que se puede enviar una señal activa por el puerto de una determinada amplitud,

permite diseñar un programa en java que controle en servo dependiendo de los rangos de señales

de los mismos.

El programa esta constituido por tres hilos de control, el hilo general que es el encargado de

enviar la información al puerto, los otros dos hilos son lo que determinan la amplitud de la señal

activándose y desactivándose dependiendo del estado del otro hilo.

c l a s s h i l o 1 e x t e n d s Thread implemen t s Runnable / / C l a s e

de c o n t r o l de s e ñ a l

p u b l i c h i l o 2 r u n n e r ;

p u b l i c l ong m i l l i ;

p u b l i c s h o r t d a t o 1 ;

p u b l i c h i l o 1 ( long m ) / / C o n s t r u c t o r de l a c l a s e

m i l l i =2 ;

r u n n e r =new h i l o 2 (m) ;

p u b l i c vo id run ( )

r u n n e r . s t a r t ( ) ;

w h i l e ( t r u e )

i f ( r u n n e r . g e t S t a t e ( )== Thread . S t a t e . TIMED_WAITING)

/ / S i e l o t r o h i l o e s t á dormido e s t e h i l o

1La cual depende del el fabricante.

81

Page 86: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

5.3. RUTINA PARA CONTROL DE UN SERVO MOTOR. CAPÍTULO 5. RESULTADOS.

e n v í a l a s e ñ a l a c t i v a

d a t o 1 =0x01 ;

t r y

s l e e p ( m i l l i ) ;

c a t c h ( I n t e r r u p t e d E x c e p t i o n e )

e . p r i n t S t a c k T r a c e ( ) ;

e l s e / / en ca so c o n t r a r i o apaga l a s e ñ a l a c t i v a

d a t o 1 =0x00 ;

t r y

s l e e p ( m i l l i ) ;

c a t c h ( I n t e r r u p t e d E x c e p t i o n e )

e . p r i n t S t a c k T r a c e ( ) ;

p u b l i c s h o r t d a t o e ( )

r e t u r n ( d a t o 1 ) ;

c l a s s h i l o 2 e x t e n d s Thread implemen t s Runnable

/ / C l a s e que c o n t r o l a e l e n c e n d i d o de l a s e ñ a l

p u b l i c l ong m i l l i ;

p u b l i c h i l o 2 ( long m ) / / C o n s t r u c t o r de l a c l a s e

m i l l i =m;

p u b l i c vo id run ( )

w h i l e ( t r u e )

t r y

82

Page 87: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 5. RESULTADOS. 5.3. RUTINA PARA CONTROL DE UN SERVO MOTOR.

s l e e p ( m i l l i ) ;

c a t c h ( I n t e r r u p t e d E x c e p t i o n e )

e . p r i n t S t a c k T r a c e ( ) ;

c l a s s e s c r i b i r e x t e n d s Thread implemen t s Runnable / / C l a s e

que e n v í a l a s e ñ a l a l p u e r t o .

p r i v a t e p u e r t o l p t ;

p u b l i c h i l o 1 h1 ;

p u b l i c e s c r i b i r ( l ong m ) / / C o n s t r u c t o r de l a c l a s e e l que

g e n e r a e l e n l a c e con e l p u e r t o

h1=new h i l o 1 (m) ;

l p t =new p u e r t o ( ) ;

p u b l i c vo id run ( )

h1 . s t a r t ( ) ;

w h i l e ( t r u e )

l p t . e s c r i b e ( h1 . d a t o e ( ) ) ;

5.3.0.2. Funcionamiento.

Para este motor, dada la condición de no poder hacer que se devuelva, solo cuenta con la

variación de velocidad y de desplazamiento, dar clic en inicio, si no se quiere que recorra esa

distancia y ya se dio clic en inicio solo se detiene con el botón de pausa.

Figura 5.5: Pantalla rutina de control de servo motor.

83

Page 88: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

5.4. VENTAJAS Y DESVENTAJAS DE LOS MOTORES PASO A PASO Y LOSMOTORES SERVO. CAPÍTULO 5. RESULTADOS.

5.4. VENTAJAS Y DESVENTAJAS DE LOS MOTORES PASO APASO Y LOS MOTORES SERVO.

5.4.1. Motor paso a paso.

5.4.1.1. Ventajas.

Puesto que la operación del motor paso a paso se sincroniza con las señales de pulso del coman-

do generadas de los pulsos en enviados por los puertos, son convenientes para el control exacto

de su rotación.

Se puede controlar fácilmente su velocidad desde el computador.

Es fácil de invertir el sentido de rotación del motor paso a paso.

Bajo costo.

5.4.1.2. Desventajas.

El flujo actual de un driver a la bobina del motor no se puede aumentar o disminuir durante

la operación. Por lo tanto, si el motor se carga con una carga más pesada que la característica

diseñada del esfuerzo de torsión del motor, saldrá de paso con los pulsos.

El motor paso a paso produce mas ruido y vibración que los servos.

El motor paso a paso no se puede utilizar para tareas de rotación de alta velocidad.

5.4.2. Servomotor.

5.4.2.1. Ventajas.

Si una carga pesada se pone en el motor, el driver aumentará la corriente a la bobina del motor

como intento de rotar el motor.2

Se puede usar en operaciones de alta velocidad.

De fácil manejo desde el computador.

Bajo consumo de energía.

2sin embargo, una carga demasiado pesada puede causar un error.

84

Page 89: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 5. RESULTADOS. 5.5. MODELO MATEMÁTICO.

5.4.2.2. Desventajas.

Puesto que el servomotor intenta rotar según los pulsos del comando, pero se retrasa, no es

conveniente para el control de la precisión de la rotación.

Costo alto.

Cuando está parado, el rotor del motor se continúa moviendo hacia adelante y hacia atrás un

pulso, de modo que no sea conveniente si usted necesita prevenir la vibración.

5.4.3. Comparación de motor paso a paso y motor servo.

Cuadro 5.1: Características comparativas de motor PaP y servo motor.

5.5. MODELO MATEMÁTICO.

El comportamiento físico del sistema mecánico de los motores paso a paso esta basado en el

tipo la secuencia de señales que se le administre y el servo en el tiempo que se mantenga una

señal activa, ese pulso o señal administrada hace que el motor gire en un ángulo especificado

por el fabricante.

85

Page 90: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

5.5. MODELO MATEMÁTICO. CAPÍTULO 5. RESULTADOS.

5.5.1. Descripción física motor PaP.

Al recibir una secuencia de señales el motor PaP, este realiza un desplazamiento el cual se

moverá un paso completo o medio paso, la distancia del paso dependerá del ángulo mínimo del

motor.

5.5.2. Descripción física servo motor.

Al recibir una señal de una amplitud que este entre los rangos de funcionamiento del servo este

realiza un desplazamiento dependiendo de el tiempo de amplitud de la señal.

5.5.3. Descripción matemática.

Las variables que intervienen en el proceso de movimiento del motor son:

Momento de inercia.

Amortiguación mecánica.

Constante elástica de la barra.

Momento de torsión aplicado.

Inductancia

Resistencia.

Recíproco de la capacidad, llamado elastancia.

Tensión aplicada.

El diagrama de estados del sistema de control del motor es:

La interacción de las variables eléctricas se da mediante las ecuaciones de las leyes de Kirchhoff

:

L d2qdt2 +R dq

dt + 1C q = E (t)

donde q(t) es la carga instantánea del capacitor y E (t) es el voltaje aplicado.

La interacción de las variables mecánicas son:

I d2θ

dt2 + c dθ

dt + kθ = T (t)

donde θ (t) representa la magnitud de la torsión.

86

Page 91: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 5. RESULTADOS. 5.5. MODELO MATEMÁTICO.

5.5.3.1. Motor PaP

El modelo matemático de este motor esta afectado por las siguientes variables: el voltaje con-

stante que induce la rotación del rotor el cual se enclava en la posición en donde se activen las

bobinas, este funcionamiento lo que afecta el la velocidad de cambio entre bobina y bobina. La

secuencia de activación, esta secuencia designa el ángulo de rotación que da entre dos bobinas,

el cual puede ser secuencia de medio paso, normal o wave drive, con estas secuencia cambia la

rotacion por ejemplo: si el motor pap es un motor de 12V y 7.5º de rotación, con la secuencia

normal un paso es de 7.5º asi como con secuencia wave drive lo que varia entre cada una de es-

tas es la manera cono se enclava ya que con la secuencia normal es nesesario tener dos bobinas

activas, y para un giro completo se necesitarían 48 pulsos, para la secuencia de medio paso los

pasos serian de 3.75º y para un giro completo se nesecitarian 96 pulsos.

5.5.3.2. Servo motor.

El modelo matemático de este tipo de motor es muy particular, ya que este basado en su fun-

cionamiento se puede determinar un modelo el cual es lineal, lo que facilita su programación,

luego para conseguir un ángulo de torción θ estará dado por la siguiente fórmula:

t = µ + θ

100

Donde t es el tiempo de duración de la señal en milisegundos.

µ es la duración de señal que pone al servo en posición inicial 0.

θ es el ángulo de torción en grados.

87

Page 92: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

5.6. TARJETA DE ENLACE. CAPÍTULO 5. RESULTADOS.

5.6. TARJETA DE ENLACE.

Figura 5.6: Tarjeta de enlace entre el computador y el motor.

El tarjeta es el enlace entre el computador y el motor PaP, consta de los siguientes componentes:

Cuatro resisteancias de 1K.

Un condensador de 2200µ y 25v.

Una compuerta de tipo buffer de enlace 74LS07.

Cuatro transistores tipo darlington TIP 122.

Un regulador positivo de voltaje de 12v LM7812C.

La tarjeta de enlace funciona de la siguiente manera:

88

Page 93: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 5. RESULTADOS. 5.7. FUTURAS MEJORAS.

1. Se envía una señal desde el puerto a la tarjeta, la cual entra por el buffer.

2. La señal sale del buffer hacia la resistencia y de la resistencia al transistor.

3. El transistor al recibir la señal se activa y envía el voltaje hacia la salida del la bobina del

motor correspondiente.

5.7. FUTURAS MEJORAS.

Una de las mejoras que se le puede realizar al programa y al dispositivo es la integración la

integración con los puertos USB y el diseño de los protocolos de comunicación utilizando los

mismos.

La visualización en el aplicativo bidimensional no ver esa pantalla gris sino poder enlazar la

salida de video y en ese espacio visualizar el punto donde se están ubicando los motores, hacer

mas interactivo el programa.

89

Page 94: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

Capítulo 6

CONCLUSIÓN.

1. Aunque los sevomotores tienen una mayor potencia, para el tamaño que estos tienen, al-

gunos carecen de la posibilidad de cambiar su sentido de rotacion, aun asi son utiles para

trabajos pesados en los que se requieran de velocidad y potencia. Los motores PaP tienen

una gran ventaja que radica en su manera de funcionar ya que es muy sencillo cambiar

el sentido de rotación e incluso cambiando el intervalo de las señales de activación lle-

varlo a su máxima velocidad, son motores de gran versatilidad utilizados en todo tipo de

dispositivos desde robots hasta unidades de CD recomendables para cualquier tarea de

precisión.

2. El resultado final no solo es de componentes electrónicos, si no de la combinación de la

programación avanzada y la modelización matemática. En donde la electrónica nos brin-

da la posibilidad de enlazar los motores con el computador, la modelización matemática

nos brinda una descripción del funcionamiento en forma matemática y así establecer que

factores afectan el sistema y como a partir de estos hacerlo computable, la programación

da la posibilidad de controlar y manipular los motores a nuestra voluntad mediante lo

visualizado en el modelo matemático que permitió crear las rutinas que son de gran fun-

cionalidad debido a su diseño y a sus posibles mejoras.

3. Aunque la mecánica de estos motores sea sencilla al combinarlos para tareas diversas se

convierte en sistemas de gran complejidad, versatilidad y de precisión que junto con los

programas controladores y un sistema funcional y práctico que facilita al usuario final

realizar tareas de precisión que manualmente no darían los resultados esperados o de

generación de rutinas las cuales manualmente seria un proceso largo y tedioso.

4. Con la combinación de las aéreas de la electrónica de los sistemas y la matemática de

una forma tan básica, si se profundiza en esta combinación los resultados obtenidos serán

90

Page 95: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

CAPÍTULO 6. CONCLUSIÓN.

grandiosos, dispositivos que realicen tareas más complejas pero que su valor radique en

la sencillez de los mismos.

91

Page 96: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

ANEXOS

Anexo1.

Diagrama causa-efecto del proceso de implementación del sistema.

92

Page 97: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

Bibliografía

[1] P. P. Acarnley. Stepping motors : a guide to modern theory and practice. London : Peter

Peregrinus, 2nd ed. edition, 1984.

[2] Paul P. Acarnley. Stepping motors : a guide to theory and practice. London : The Institu-

tion of Electrical Enginners, 2002.

[3] Antonio Barrientos. Fundamentos de robótica. McGraw Hill. Madrid, España, 1997.

[4] H. M. Deitel. Java How to Program. Editorial Prentice Hall, New Jersey, United States,

sexta edición edition, 2004.

[5] Electrónica Digital. Tutorial puerto paralelo, 2007. perso.wanadoo.es, Consulta 31 de

Agosto de 2007.

[6] Stubberud y Williams DiStefano III. Feedback and control systems. Editorial Schaum,

New York, 1967.

[7] Umez-Eronini Eronini. Dinámica de Sistemas y Control. Editorial Thomson Learning,

México, 2001.

[8] Arthur Eugene Fitzgerald. Electric machinery. McGraw-Hill, 2003.

[9] Juan Martín García. Teoría y ejercicios prácticos de Dinámica de Sistemas. Sysware,

2003.

[10] Ogata Katsuhiko. Dinámica de sistemas. Editorial Prentice-Hall, México, 1987.

[11] Ogata Katsuhiko. Ingenieria de Control Moderna. Pearson, Prentice Hall. Madrid, 2003.

[12] Sum Microsystems. Sum microsystems, java.comm, 2006. http://java.sun, Consulta: 21

de Julio de 2006.

[13] Sum Mycrosystems. Jdk 6 documentation, 2006. http://java.sun.com/javase/6/docs/, Con-

sulta: 21 de Julio de 2006.

93

Page 98: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

BIBLIOGRAFÍA BIBLIOGRAFÍA

[14] Virgilio Gómez Negrete. El puerto paralelo de la pc. Virtech, 3:10, 2005.

[15] Norman Nise. Control Systems Engineering. John Wiley & Sons Inc, 4 edition, 2004.

[16] E.H. Wernick. Electric motor handbook. New York : MacGraw-Hill, 1978.

94

Page 99: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

A J i Al j d S l P hóAutor: Javier Alejandro Salamanca PachónTrabajo de grado para optar al titulo de:Informático Matemático.

Page 100: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

Trabajo dirigido por:

Ing. Jesús Daza Coordinador centro de microscopia electrónica. Pontificia Universidad pJaveriana Facultad de Ciencias.

Page 101: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

INTRODUCCIÓN

Page 102: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

Con el uso de los lenguajes Con el uso de los lenguajes computacionales como java, desarrolladores matemáticos y desarrolladores matemáticos y mediante la programación de

t lprotocolos

Page 103: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

los cuales permiten enlazar la salida y entrada de datos de los puertos entrada de datos de los puertos paralelo y serial lo cual hace posible enviar o recibir paquetes de datos o señales activas por medio de estos para el control de sistemas externos.

Page 104: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

OBJETIVOS

Page 105: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

Objetivo general.

Page 106: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

E t bl ét d d j d Establecer un método de manejo de periféricos por puertos del computador. D ll i l t ft Desarrollar e implementar un software capaz de realizar tareas de precisión y

bi d d ifi ubicar una coordenada especifica por instrucciones sobre diferentes tipos de

t t motores servo y paso a paso por puertos paralelo y serial del computador.

Page 107: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

Objetivos específicos.

Page 108: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

• Implementar los protocolos para envió de Implementar los protocolos para envió de señales desde los puertos del computador.

• Determinar el modelo matemático del sistema mecánico del motor servo y paso a sistema mecánico del motor servo y paso a paso.

Page 109: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

• Manejar secuencia de información de variables que intervienen en el control.q

• Diseñar e implementar la interface de Diseñar e implementar la interface de conexión entre el puerto y el motor.

• Desarrollar algoritmos computacionales encargados del manejo controlado de los encargados del manejo controlado de los motores.

Page 110: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad
Page 111: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

Con el auge en las últimas décadas de la tecnología en el mundo surge latecnología en el mundo, surge la necesidad de actualizar y obtener las herramientas adecuadas para competirherramientas adecuadas para competir a nivel tecnológico en el área industrial como en el área de la investigacióncomo en el área de la investigación científica, de una forma económica y que cumpla con los estándares mínimos q pestablecidos.

Page 112: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

El problema del desarrollo de nuestras tecnologías radica, en el d i i t d h i tdesconocimiento de herramientas que el mismo computador contiene.

Page 113: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

MARCO TEORICO

Page 114: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

Puerto paralelo.Puerto paralelo.

Page 115: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

Cada puerto paralelo posee una dirección Base, es decir, una p p p , ,dirección con la que se identifica al puerto, y según el tipo de puerto de que se trate, podrá tener además otras direcciones Actualmente las direcciones por defecto para direcciones. Actualmente las direcciones por defecto para los puertos son las siguientes:

Puerto Dirección base

LPT1 0x378

LPT2 0x278

LPT BCLPT3 0x3BC

Page 116: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

Tipos de puertoTipos de puerto.

Page 117: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

SPP Es el puerto más sencillo tiene tres SPP. Es el puerto más sencillo, tiene tres buses o registros, en la dirección Base: bus de datos, este es de 8 bits y todos sus pines son datos, este es de 8 bits y todos sus pines son salidas

Page 118: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

Bidireccional (PS/2). Este puerto tienen las í l lmismas características que el SPP con la

diferencia que el bus de datos es bidi i l d i bi d l bidireccional, es decir que cambiando el estado de algunos bits del bus de control se puede actuar sobre el bus de datos haciendo puede actuar sobre el bus de datos haciendo que trabaje en su totalidad como entradas o como salidascomo salidas

Page 119: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

EPP (Enhaced Parallel Port). Este tipo de puerto tiene la característica de ser tan rápido como el bus del sistema, alcanzando

l id d d f i d h Mb velocidades de transferencia de hasta 1Mb por segundo

Page 120: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

ECP (Extended Capabilities Port). Puede al igual que el EPP, escribir y leer a la velocidad del Bus.

Page 121: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

P t i lPuerto serial.

Page 122: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

El puerto seria o RS‐232 es un estándar para realizar la transmisión de datos. El RS‐232 consiste en un conector tipo DB‐25 de 25 pines, aunque es normal encontrar la versión d i DBde 9 pines DB‐9.

Page 123: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

L ñ l l b j Las señales con las que trabaja este puerto son digitales, de 12V(0 lógico) y ‐12V(1 lógico) para la entrada y salida de datos y a lógico), para la entrada y salida de datos, y a la inversa en las señales de control. El estado de reposo en la entrada y salida de datos es ‐de reposo en la entrada y salida de datos es ‐12V.

Page 124: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

En un ordenador puede haber varios puertos p pseries, a los que normalmente se les denomina COM 1, COM 2, COM 3, por defecto el COM 1 suele pertenecer al ratón usando éste el IRQ 4, aunque también es

íposible encontrarle en el COM 2, así que lo normal es encontrarnos libre el puerto serie d l COM tili d l IRQ del COM 2 utilizando el IRQ 3.

Page 125: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

Motor paso a paso.Motor paso a paso.

A dif i d l d i A diferencia de los motores de corriente continua (CC) que gira a todo lo que dan cuando son conectados a la fuente de cuando son conectados a la fuente de alimentación, los motores paso a paso (PaP) solamente giran un ángulo determinado los solamente giran un ángulo determinado, los CC sólo disponen de dos terminales de conexión, mientras los PaP pueden tener 4, 5 conexión, mientras los PaP pueden tener 4, 5 ó 6, según el tipo de motor que se trate

Page 126: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

Por otro lado los motores de corriente continua no pueden quedar enclavados en una sola posición, los motores paso a paso tienen la posibilidad de quedar enclavados en

i ió bi l libuna posición o bien totalmente libres.

Page 127: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

Principio de funcionamiento.Principio de funcionamiento.

El á i id b El motor está constituido por un rotor sobre el que van aplicados distintos imanes permanentes y por un cierto número de permanentes y por un cierto número de bobinas exitadoras, bobinas en su estator. Las bobinas son parte del estator y el rotor es Las bobinas son parte del estator y el rotor es un imán permanente.

Page 128: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

Bipolar.Estos tienen, generalmente, cuatro cables de salida. Necesitan ciertos trucos para ser controlados, 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.

Page 129: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

U i lUnipolares.Estos motores suelen tener 6 ó 5 cables de

l d d d d d dsalida, dependiendo de su conexionado interno. Este tipo se caracteriza por ser más i l d t lsimple de controlar.

Page 130: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad
Page 131: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

Secuencia para manejar Secuencia para manejar motores paso a paso bi lbipolares.

A B C D

+V ‐V +V ‐V

+V ‐V ‐V +V

‐V +V ‐V +V

‐V +V +V ‐V

Page 132: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

Secuencia para manejar Secuencia para manejar motores paso a paso unipolares.

Page 133: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

Secuencia NormalSecuencia Normal.Con esta secuencia el motor avanza un paso por vez debido a que siempre hay dos por vez debido a que siempre hay dos bobinas activadas, se obtiene un alto torque de paso y de retenciónde paso y de retención.

Page 134: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

PASO BOBINA A BOBINA B BOBINA C BOBINA D

1 ON ON OFF OFF1 ON ON OFF OFF

2 OFF ON ON OFF

3 OFF OFF ON ON

ON OFF OFF ON4 ON OFF OFF ON

Page 135: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

S i d l i d iSecuencia del tipo wave drive.En esta secuencia se activa sólo una bobina a l l b dla vez. En algunos motores esto brinda un funcionamiento más suave. La contrapartida l t ól b bi ti d l es que al estar sólo una bobina activada, el

torque de paso y retención es menor.

Page 136: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

PASO BOBINA A BOBINA B BOBINA C BOBINA D

1 ON OFF OFF OFF

2 OFF ON OFF OFF

3 OFF OFF ON OFF

4 OFF OFF OFF ON

Page 137: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

S i d l i di Secuencia del tipo medio paso.En esta secuencia se activan las bobinas de tal f d b d l lforma de brindar un movimiento igual a la mitad del paso real. Para ello se activan i b bi l ól í primero 2 bobinas y luego sólo 1 y así

sucesivamente.

Page 138: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

PASO BOBINA A BOBINA B BOBINA C BOBINA D

1 ON OFF OFF OFF

2 ON ON OFF OFF

3 OFF ON OFF OFF

4 OFF ON ON OFF4 O O O O

5 OFF OFF ON OFF

6 OFF OFF ON ON

OFF OFF OFF ON7 OFF OFF OFF ON

8 ON OFF OFF ON

Page 139: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

Servo Motores.Servo Motores.

L i i l d d Los servos son un tipo especial de motor de C.C. que se caracterizan por su capacidad para posicionarse de forma inmediata en para posicionarse de forma inmediata en cualquier posición dentro de de su intervalo de operaciónde operación.

Page 140: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

Un Servo es un dispositivo pequeño que tiene un eje de rendimiento controlado. Este puede ll d i i l ífi ser llevado a posiciones angulares específicas

al enviar una señal codificada. Con tal de que una señal codificada exista en la línea de una señal codificada exista en la línea de entrada, el servo mantendrá la posición angular del engranaje Cuando la señala angular del engranaje. Cuando la señala codificada cambia, la posición angular de los piñones cambia.piñones cambia.

Page 141: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

Funcionamiento de un servo.Funcionamiento de un servo.

El motor del ser o tiene alg nos circ itos de El motor del servo tiene algunos circuitos de control y un potenciómetro esta es conectada al eje central del servo motoral eje central del servo motor.

Page 142: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

METODOLOGÍA

Page 143: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

Las fases propuestas para el estudio as ases p opuestas pa a e estud ometodológico son: la investigación del funcionamiento de las JNI y los del funcionamiento de las JNI y los paquetes java comm, analizar la t t á i d l t estructura mecánica de los motores

paso a paso para determinar las instrucciones que mueven el motor, realizar el modelamiento matemático del sistema mecánico del motor

Page 144: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

establecer un método de comunicación estab ece u étodo de co u cac ócon los puertos paralelo y serial que permite implementar una rutina de permite implementar una rutina de enlace para entrada y salida de datos t é d l t di ñ a través de los puertos, diseñar un

algoritmo de comunicación a través de los puertos para hacer control en dispositivos externos.p

Page 145: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

Procedimiento.

El programa que administra el movimiento de p g qmotores debe contemplar:

Page 146: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

1. Una implementación del pprograma de comunicación mediante los puertos paralelo o mediante los puertos paralelo o serial.

2. Activación de bobinas y control de pulso para motor PaP y servo de pulso para motor PaP y servo correspondientemente.

Page 147: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

3. Elaboración del modelo 3matemático de motor tipo paso a paso y servopaso y servo.

4. Simulación del modelo 4matemático.

Page 148: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

5 Implementación del programa 5. Implementación del programa que controla el motor desde el computador.

Page 149: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad
Page 150: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

1. Aunque los sevomotores tienen una 1. Aunque los sevomotores tienen una mayor potencia, para el tamaño que estos tienen, algunos carecen de la posibilidad tienen, algunos carecen de la posibilidad de cambiar su sentido de rotación, aun así son útiles para trabajos pesados en los así son útiles para trabajos pesados en los que se requieran de velocidad y potencia.

Page 151: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

Los motores PaP tienen una gran ventaja g jque radica en su manera de funcionar ya que es muy sencillo cambiar el sentido de q yrotación e incluso cambiando el intervalo de las señales de activación llevarlo a su máxima velocidad, son motores de gran versatilidad utilizados en todo tipo de pdispositivos recomendables para cualquier tarea de precisión.p

Page 152: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

2.El resultado final no solo es de componentes electrónicos si no de la componentes electrónicos, si no de la combinación de la programación avanzada y la modelización matemáticaavanzada y la modelización matemática.

Page 153: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

En donde la electrónica nos brinda la posibilidad de enlazar los motores con el computador, la modelización matemática nos brinda una descripción del funcionamiento en forma matemática y así establecer que factores afectan el sistema y como a partir de estos hacerlo computable

Page 154: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

la programación da la posibilidad de controlar y manipular los motores a nuestra voluntad mediante lo visualizado en el modelo matemático que permitió crear las rutinas que son de gran funcionalidad debido a su diseño y a sus posibles mejoras.

Page 155: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

3.Aunque la mecánica de estos motores sea sencilla al combinarlos para tareas pdiversas se convierte en sistemas de gran complejidad, versatilidad y de g p j , yprecisión que junto con los programas controladores y un sistema funcionaly

Page 156: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

y práctico que facilita al usuario final realizar tareas de precisión que manualmente no darían los resultados esperados o de generación de rutinas las

l lcuales manualmente seria un proceso largo y tedioso.

Page 157: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

4. Con la combinación de las aéreas de la 4. Con la combinación de las aéreas de la electrónica de los sistemas y la matemática de una forma tan básica, si matemática de una forma tan básica, si se profundiza en esta combinación los resultados obtenidos serán grandiosos resultados obtenidos serán grandiosos dispositivos que realicen tareas más complejas pero que su valor radique en la complejas pero que su valor radique en la sencillez de los mismos.

Page 158: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

RECOMENDACIONES

Page 159: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

U d l j l d li l Una de las mejoras que se le puede realizar al programa y al dispositivo es la integración la i t ió l t USB l di ñ integración con los puertos USB y el diseño de los protocolos de comunicación utilizando l ilos mismos.

Page 160: Implementación de un sistema posicional con motores tipo paso a paso … ·  · 2009-09-23posicional con motores tipo paso a paso y servo controlados por computador. ... De conformidad

La visualización en el aplicativo bidimensional no ver esa pantalla gris sino poder enlazar la salida ver esa pantalla gris sino poder enlazar la salida de video y en ese espacio visualizar el punto donde se están ubicando los motores hacer mas donde se están ubicando los motores, hacer mas interactivo el programa.