You are on page 1of 160

FORMATO 1 (Anexo No.

2)

CARTA DE AUTORIZACIN DE LOS AUTORES PARA LA CONSULTA, LA REPRODUCCIN
PARCIAL O TOTAL, Y PUBLICACIN ELECTRNICA DEL TEXTO COMPLETO.
(OPCIONAL)


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

Marque con una X

Tesis doctoral Trabajo de Grado
Seores
BIBLIOTECA GENERAL
Cuidad

Estimados Seores:

Los suscritos
Javier Alejandro Salamanca Pachn, con C.C. No. 79996854,
autor de la tesis doctoral y/o trabajo de grado titulado Implementacin de un sistema
posicional con motores tipo paso a paso y servo controlados por
computador.
presentado y aprobado en el ao 2009 como requisito para optar al ttulo de Informtico Matemtico;
autorizo a la Biblioteca General de la Universidad Javeriana para que con fines acadmicos, muestre al
mundo la produccin intelectual de la Universidad Javeriana, a travs 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 Catlogos y en otros sitios web, Redes y
Sistemas de Informacin nacionales e internacionales Open Access y en las redes de informacin
del pas y del exterior, con las cuales tenga convenio la Universidad Javeriana.

Permita la consulta, la reproduccin, a los usuarios interesados en el contenido de este trabajo, para
todos los usos que tengan finalidad acadmica, ya sea en formato CD-ROM o digital desde
Internet, Intranet, etc., y en general para cualquier formato conocido o por conocer.

Contino conservando los correspondientes derechos sin modificacin o restriccin alguna; puesto
que de acuerdo con la legislacin colombiana aplicable, el presente es un acuerdo jurdico que en
ningn caso conlleva la enajenacin del derecho de autor y sus conexos.




De conformidad con lo establecido en el artculo 30 de la Ley 23 de 1982 y el artculo 11 de la Decisin
Andina 351 de 1993, Los derechos morales sobre el trabajo son propiedad de los autores , los
cuales son irrenunciables, imprescriptibles, inembargables e inalienables.
X

Firma, nombre completo y documento de identificacin del estudiante
Javier Alejandro Salamanca Pachn
C.C. 79996854
___________________________________________________




NOTA IMPORTANTE: El autor y o autores certifican que conocen las derivadas jurdicas que se
generan en aplicacin de los principios del derecho de autor.

C. C. FACULTAD Ciencias Bsicas PROGRAMA CADMICO Informtica Matemtica




































FORMATO 2 (Anexo No.3)

FORMULARIO DE LA DESCRIPCIN DE LA TESIS DOCTORAL O DEL TRABAJO DE
GRADO

TTULO COMPLETO DE LA TESIS DOCTORAL O TRABAJO DE GRADO:
Implementacin de un sistema posicional con motores tipo paso a
paso y servo controlados por computador.



AUTOR O AUTORES
Apellidos Completos Nombres Completos
Salamanca Pachn


Javier Alejandro

DIRECTOR (ES) TESIS DOCTORAL O DEL TRABAJO DE GRADO
Apellidos Completos Nombres Completos
Daza Figueredo


Jess

TRABAJO PARA OPTAR AL TTULO DE:
Informtico Matemtico

FACULTAD: Ciencias Basicas

PROGRAMA: Carrera X Licenciatura ___ Especializacin ____ Maestra ____ Doctorado ____

NOMBRE DEL PROGRAMA:
Informtica Matemtica

NOMBRES Y APELLIDOS DEL DIRECTOR DEL PROGRAMA:
Patricia A. Hernndez Romero

CIUDAD: BOGOTA AO DE PRESENTACIN DEL TRABAJO DE GRADO: 2009

NMERO DE PGINAS 95

TIPO DE ILUSTRACIONES:

Ilustraciones
Tablas, grficos y diagramas

Nmero de archivos dentro del CD (En caso de incluirse un CD-ROM diferente al trabajo de grado):
_________________________________________________________________________

PREMIO O DISTINCIN (En caso de ser LAUREADAS o tener una mencin especial):

_______________________________________________________________________________


DESCRIPTORES O PALABRAS CLAVES EN ESPAOL E INGLS: Son los trminos que
definen los temas que identifican el contenido. (En caso de duda para designar estos descriptores, se recomienda
consultar con la Unidad de Procesos Tcnicos de la Biblioteca General en el correo biblioteca@javeriana.edu.co, donde se
les orientar).

ESPAOL INGLS
Motor paso a paso ___________________ Steper motor____________________________

Java ____________________________ Java___________________________________

Motor servo_________________________ Servo motor_____________________________

Interface nativa de java________________ Java Native Interface_______________________

Puertos____________________________ Potrs____________________________________

Dinmica de sistemas_________________ System Dynamics__________________________
RESUMEN DEL CONTENIDO EN ESPAOL E INGLS: (Mximo 250 palabras - 1530
caracteres):

Con el uso de los lenguajes computacionales como java, desarrolladores matemticos y mediante
la programacin de protocolos de comunicacin, 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 seales activas para hacer control de sistemas externos. Con el modelamiento matemtico
como una representacin de sistemas fsicos que permite simular mediante el diseo e implementacin
del software que variables afectan un dispositivo y mediante el diseo e implementacin
del software se establece la comunicacin con el dispositivo externo por medio de
los puertos del computador. Las variables establecidas en el modelo matemtico junto al control
sobre cualquier tarea asignada exige una precisin, dependiente de un software que adems de
ser verstil y robusto es de fcil 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.
IMPLEMENTACIN DE UN SISTEMA POSICIONAL
CON MOTORES TIPO PASO A PASO Y SERVO
CONTROLADOS POR COMPUTADOR.
JAVIER ALEJANDRO SALAMANCA PACHN.
TRABAJO DE GRADO
Presentado como requisito parcial
Para optar al titulo de
INFORMTICO MATEMTICO
PONTIFICIA UNIVERSIDAD JAVERIANA
FACULTAD DE CIENCIAS
CARRERA DE INFORMTICA MATEMTICA
Bogot, D.C.
Julio 2009
NOTA DE ADVERTENCIA
Artculo 23 de la Resolucin 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
catlica 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
no.
IMPLEMENTACIN DE UN SISTEMA POSICIONAL
CON MOTORES TIPO PASO A PASO Y SERVO
CONTROLADOS POR COMPUTADOR.
JAVIER ALEJANDRO SALAMANCA PACHN.
APROBADO.
________________________
Jess Daza Figueredo.
Director.
________________________ ________________________
Fernando Novoa. Orlando Acevedo.
Jurado. Jurado.
3
IMPLEMENTACIN DE UN SISTEMA POSICIONAL
CON MOTORES TIPO PASO A PASO Y SERVO
CONTROLADOS POR COMPUTADOR.
JAVIER ALEJANDRO SALAMANCA PACHN.
APROBADO.
________________________ ________________________
Ingrid Schuler, Ph.D. Patricia A. Hernndez Romero, MSc.
Decano Acadmico. Director de carrera.
4
ndice general
1. MARCO TERICO. 16
1.0.1. Resea histrica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.0.1.1. Java. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.0.1.2. Motores elctricos. . . . . . . . . . . . . . . . . . . . . . . 17
1.0.1.3. Dinmica de sistemas. . . . . . . . . . . . . . . . . . . . . . 18
1.0.2. Dinmica de sistemas. . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.0.2.1. Qu es la dinmica de sistemas?. . . . . . . . . . . . . . . . 19
1.0.2.2. Construccin de modelos en la dinmica de sistemas. . . . . 20
1.0.3. API de comunicaciones. . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.0.3.1. Caractersticas 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. Deteccin del tipo de puerto. . . . . . . . . . . . . . . . . . 33
1.0.5.3. Puerto paralelo a nivel fsico. . . . . . . . . . . . . . . . . . 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
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 Elctricos. . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
1.0.9.1. Elementos de los circuitos elctricos.[8] . . . . . . . . . . . 48
1.0.9.2. Leyes de los circuitos elctricos.[8] . . . . . . . . . . . . . . 50
1.0.10. Modelos matemticos. . . . . . . . . . . . . . . . . . . . . . . . . . . 53
1.0.10.1. Elaboracin de modelos matemticos (modelado matemtico). 53
1.0.10.2. Simplicidad contra exactitud. . . . . . . . . . . . . . . . . . 53
1.0.10.3. Observaciones sobre la elaboracin de modelos matemticos. 54
1.0.10.4. Procedimiento para la elaboracin de modelos matemticos.[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. FORMULACIN Y JUSTIFICACIN. 59
2.1. Formulacin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
2.1.1. Justicacin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3. OBJETIVOS. 61
3.0.2. Objetivo general. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.0.3. Objetivos especcos. . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4. METODOLOGA. 62
4.0.4. Procedimiento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.0.5. Desarrollo metodolgico. . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.0.5.1. Anlisis de causas. . . . . . . . . . . . . . . . . . . . . . . . 63
6
NDICE GENERAL NDICE GENERAL
4.0.5.2. La JNI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.0.5.3. El modelo matemtico. . . . . . . . . . . . . . . . . . . . . 65
4.0.5.4. Programacin de aplicaciones. . . . . . . . . . . . . . . . . 65
4.0.5.5. Diseo 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 segn el ngulo de rotacin. . . . . . . . . . . . . . . . . 70
5.2.1.1. Funcionamiento. . . . . . . . . . . . . . . . . . . . . . . . . 71
5.2.2. Movimiento segn 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. Ubicacin 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. Comparacin de motor paso a paso y motor servo. . . . . . . . . . . . 85
5.5. MODELO MATEMTICO. . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
5.5.1. Descripcin fsica motor PaP. . . . . . . . . . . . . . . . . . . . . . . 86
7
NDICE GENERAL NDICE GENERAL
5.5.2. Descripcin fsica servo motor. . . . . . . . . . . . . . . . . . . . . . . 86
5.5.3. Descripcin matemtica. . . . . . . . . . . . . . . . . . . . . . . . . . 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. CONCLUSIN. 90
8
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 libreras dinmicas por SO. . . . . . . . . . . . . . . . . . . 28
1.4. Reglas de bsqueda de libreras de enlace dinmico 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 segn seal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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. Caractersticas comparativas de motor PaP y servo motor. . . . . . . . . . . . 85
9
ndice de guras
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 asignacin movimiento segn ngulo de rotacin. . . . . . . . . . . . 71
5.2. Pantalla asignacin movimiento segn distancia a recorrer. . . . . . . . . . . . 73
5.3. Pantalla de control de dos motores. . . . . . . . . . . . . . . . . . . . . . . . . 78
5.4. Pantalla de ubicacin 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
Nomenclatura
API Application Programmin Interface
Interfaz de Programacion de Aplicaciones
BIOS Basic Imput/Output Services
Servicios bsicos de la entrada-salida
bit/seg bit por segundo
C Capacitancia
C Coulumb
CAD Computer Asisted Desing
Diseo Asistido por Computador
CC Corriente Continua
CCITT Consultive Commitee International Telegraph and Telephone
Comit Consultivo Internacional de Telfonos y Telgrafos
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
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
Asociacin de Electrnica 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 graca 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
Estndar del Mtodo de sealizacin para una interfase paralela bidireccional periferica
para computadoras personales
IRQ Interrupt Request Level
Nivel de demanda de interrupcin
ISA Industry Standard Architecture
Arquitectura estndar industrial
JDK Java Developement Kit
Kit Desarrollador de Java
12
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
Lnea terminal de la impresin
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 Tecnologa de Massachusetts
ms mili segundos
OS Operating System
Sistema operativo
PaP Paso a Paso
PCM Pulse Codied Modulation
Modulacin codicada de Pulsos
PWM Pulse Width Modulation
Pulso con modulacin
R Resistencia
RAM Random Access Memory
Memoria de acceso aleatorio
13
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
Peticin de enviar
S Siemens
SAGE Semi-Automatic Ground Equipment
Equipo de tierra semiautomtico
SPP Standard Parallel Port
Puerto Paralelo Estandar
TTL Transistor to Transistor Logic
Lgica Transistor a Transistor
USB Universal Serial Bus
V Voltio
Vcc Voltaje corriente continua
VM Virtual Machine
Mquina virtual
14
GENERALIDADES.
INTRODUCCIN.
Con el uso de los lenguajes computacionales como java, desarrolladores matemticos y medi-
ante la programacin de protocolos de comunicacin, 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 seales activas para hacer control de sistemas externos. Con el modelamiento matemtico
como una representacin de sistemas fsicos que permite simular mediante el diseo e im-
plementacin del software que variables afectan un dispositivo y mediante el diseo e imple-
mentacin del software se establece la comunicacin con el dispositivo externo por medio de
los puertos del computador. Las variables establecidas en el modelo matemtico junto al control
sobre cualquier tarea asignada exige una precisin, dependiente de un software que adems de
ser verstil y robusto es de fcil manejo, se puede congurar para realizar todo tipo de tareas, y
para diferentes tipos de dispositivos que se le conecten.
Todos los perifricos que establecen comunicacin con los puertos requieren de interfaces que
son diseadas con herramientas tipo CAD
1
y variar su diseo segn las especicaciones del
dispositivo requerido, en este caso el tipo de motor.
1
Computer Asisted Design-Diseo asistido por computador
15
Captulo 1
MARCO TERICO.
1.0.1. Resea histrica.
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 compaa "Sun founder Bill Joy" y tena como
objetivo principal crear un lenguaje de programacin accesible, fcil de aprender y de usar, que
fuera universal, y que estuviera basado en un ambiente C++ ya que haba mucha frustracin por
la complejidad y las limitaciones de los lenguajes de programacin 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 decodicador que mas tarde se convertira en lenguaje Java. Cuando un grupo
de Sum visito un caf local e nombre de java fue sugerido[4].
Para 1992, el equipo ya haba 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 compaa 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 electrnicos smart y las cajas Set-Up en particular, no eran del todo ecaces.
La subsidiaria Proyecto Verde fue amortizada por la compaa Sun a mediados del 94.
16
CAPTULO 1. MARCO TERICO.
Afortunadamente, el cese del Proyecto Verde coincidi con el nacimiento del fenmeno mundial
Web. Al examinar las dinmicas de Internet, lo realizado por el ex-equipo verde se adecuaba a
este nuevo ambiente ya que cumpla con los mismos requerimientos de las set-top box OS que
estaban diseadas con un cdigo de plataforma independiente pero sin dejar de ser pequeas y
conables.
Patrick Naugthon procedi a la construccin del lenguaje de programacin Java que se acciona-
ba con un browser prototipo, ms 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 prctico dentro del lenguaje
Java y demostr que podra proporcionar una forma segura multiplataforma para que el cdigo
pueda ser bajado y corrido del Host del World Wide Web y que de otra forma no son seguros.
Una de las caractersticas ms atractivas del Hot Java fue su soporte para los "applets", que son
las partes del cdigo Java que pueden ser cargadas mediante una red de trabajo para despus
ejecutarlo localmente y as lograr o alcanzar soluciones dinmicas en computacin acordes al
rpido crecimiento del ambiente Web.
Para dedicarse al desarrollo de productos basados en la tecnologa 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 coleccin de componentes bsicos para ayudar a los usuarios de software a con-
struir aplicaciones de Java. Dicha coleccin inclua el compilador Java, un visualizador de ap-
plets, un debugger prototipo y una mquina virtual Java(JVM), necesaria para correr programas
basados en Java, tambin inclua paquetera bsica de grcos, sonido, animacin y trabajo en
red[13].
1.0.1.2. Motores elctricos.
Faraday, Michael (17911867), fue el que descubri el principio de el motor elctrico el des-
cubri la induccin. Induccin es la generacin de una corriente elctrica en un conductor en
movimiento en el interior de un campo magntico fsico. A partir de ese descubrimiento se
potencio el estudio sobre la electrnica[8].
En 1834 anunci el mtodo de descomponer las soluciones salinas, que hoy se conoce con el
nombre de electrlisis, establece que el movimiento de un conductor integrante de un circuito
cerrado en un campo magntico produce corriente en dicho circuito, y en ello se basa el fun-
cionamiento del generador elctrico.
17
CAPTULO 1. MARCO TERICO.
Una corriente elctrica que pasa por un conductor situado en un campo magntico crea una
fuerza que tiende a desplazar al conductor con respecto al campo, esta es la base del motor
elctrico. De modo que, en esencia, una misma mquina puede emplearse como generador o
como motor; si se le aplica energa mecnica, generar electricidad, y si se le aplica electricidad,
producir energa mecnica.[16]
1.0.1.3. Dinmica de sistemas.
A lo largo de los aos cincuenta comenz a desarrollarse en el Instituto de Tecnologa de Mas-
sachusetts (MIT) una destacada metodologa de sistemas, la Dinmica de Sistemas[9]. Jay W.
Forrester, ingeniero electrnico, haba pasado del Laboratorio de Servomecanismos, donde in-
vent las memorias magnticas de ncleos de ferrita, a coordinar un gran proyecto de defensa,
el sistema SAGE (Semi-Automatic Ground Equipment). En la realizacin de este sistema de
alerta en tiempo real se percat de la importancia del enfoque sistmico para concebir y con-
trolar entidades complejas como las que surgen de la interaccin de hombres y mquinas. Tras
esta experiencia, Forrester pasara como profesor a la Sloan School of Management del MIT,
donde observ que en las empresas se producan fenmenos de realimentacin que podan ser
causa de oscilaciones, igual que sucede en los servomecanismos. De esta forma ide la Dinmi-
ca Industrial
1
, una metodologa que permita construir modelos cibernticos de los procesos
industriales. La peculiaridad de estos modelos resida en la posibilidad de simular su evolucin
temporal con la ayuda del ordenador. Posteriormente aplicara su metodologa a problemas de
planicacin urbana
2
y la generalizara para cualquier tipo de sistema continuo, cambiando su
denominacin por la de Dinmica de Sistemas
3
.
La Dinmica de Sistemas alcanz gran difusin durante los aos 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 poblacin y de la actividad humana en un mundo de recursos limitados.
El propio Forrester dirigi la confeccin de un modelo inicial del mundo
4
a partir del cual
se realizara ms tarde el informe denitivo
5
, dirigido por D.L. Meadows y nanciado por la
Fundacin Volkswagen. Un segundo informe, tambin utilizando Dinmica de Sistemas, sera
encargado posteriormente a Mesarovic y Pestel
6
.
1
Industrial Dynamics, 1961.
2
Urban Dynamics, 1969.
3
System Dynamics, 1968.
4
World Dynamics, 1971.
5
The Limits to Growth, 1973.
6
Mankind at the Turning Point, 1974 .
18
CAPTULO 1. MARCO TERICO.
1.0.2. Dinmica de sistemas.
La Dinmica de Sistemas es una metodologa para la construccin de modelos de simulacin
para sistemas complejos, como los que son estudiados por las ciencias sociales, la economa, la
ecologa o la fsica.
1.0.2.1. Qu es la dinmica de sistemas?.
La Dinmica de Sistemas es una metodologa para la construccin de modelos de simulacin
para sistemas complejos, como los que son estudiados por las ciencias sociales, la economa o
la ecologa.
La Dinmica de Sistemas aplica mtodos de sistemas duros, bsicamente las ideas de reali-
mentacin y sistema dinmico, junto con la teora de modelos en el espacio de estados y pro-
cedimientos de anlisis numrico. Por tanto sera una metodologa ms entre las de sistemas
duros. Sin embargo, en su punto de mira estn los problemas no estructurados (blandos), como
los que aparecen en los sistemas socio econmicos.[6] Esto plantea dos tipos de dicultades:
Cuanticacin: En Dinmica de Sistemas se comienza por identicar las variables de in-
ters y las relaciones que ligan entre s a estas variables. A continuacin es imprescindible
cuanticar dichas relaciones, lo que en ocasiones plantea dicultades insalvables.[10, 11]
Validacin: Una vez construido el modelo hay que preguntarse si reeja razonablemente
la realidad. Esta cuestin puede resolverse por ejemplo en caso de que se disponga de
informaciones cuantitativas de la evolucin del sistema real en el pasado. Si el mode-
lo es capaz de generar los comportamientos caractersticos del sistema real, denomina-
dos modos de referencia, entonces obtendremos una cierta conanza en la validez del
modelo.[10, 11]
En Dinmica de Sistemas la simulacin permite obtener trayectorias para las variables inclu-
idas en cualquier modelo mediante la aplicacin de tcnicas de integracin numrica. Sin em-
bargo, estas trayectorias nunca se interpretan como predicciones, sino como proyecciones o
tendencias.[10, 11] El objeto de los modelos de Dinmica de Sistemas es, como ocurre en todas
las metodologas de sistemas blandos, llegar a comprender cmo la estructura del sistema es
responsable de su comportamiento. Esta comprensin normalmente debe generar un marco fa-
vorable para la determinacin de las acciones que puedan mejorar el funcionamiento del sistema
o resolver los problemas observados. La ventaja de la Dinmica 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 prctica sobre el sistema real.[7, 9]
19
CAPTULO 1. MARCO TERICO.
1.0.2.2. Construccin de modelos en la dinmica de sistemas.
Fases en la construccin de un modelo:
1. Conceptualizacin.[11, 10]
Descripcin verbal del sistema.
Descripcin precisa del modelo en el tiempo.
Diagrama causal.
2. Formulacin.[11, 10]
Construccin del diagrama de Forrester.
Establecimiento de las ecuaciones para la simulacin.
3. Anlisis y evaluacin.[11, 10]
Anlisis del modelo (comparacin, anlisis de sensibilidad, anlisis de polticas).
Evaluacin, comunicacin e implementacin.[11, 10]
1.0.3. API de comunicaciones.
El API de comunicaciones es un paquete de java el cual permite la comunicacin mediante el
puerto paralelo o serial con dispositivos externos al computador.
Una API
7
es un conjunto de especicaciones de comunicacin entre componentes software.
Representa un mtodo para conseguir abstraccin en la programacin, generalmente (aunque
no necesariamente) entre los niveles o capas inferiores y los superiores del software. Uno de
los principales propsitos 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 benecian de las ventajas de la API haciendo uso de su funcionalidad, evitndose
el trabajo de programar todo desde el principio.
El API de comunicaciones es una extensin estndar 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].
7
Application Programming Interface - Interfaz de Programacin de Aplicaciones
20
CAPTULO 1. MARCO TERICO.
1.0.3.1. Caractersticas del API de comunicaciones.
En el paquete de comunicaciones javax.comm tenemos una seri de clases que nos permiten
tratar varios niveles de programacin, estos niveles son los siguientes:
Nivel alto: En este nivel tenemos las clases CommPortIdentier y CommPort que nos
permiten el acceso a los puertos de comunicacin[12].
Nivel medio: Con las clases SerialPort y ParallelPort que cubren la interfaz fsica 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 caractersticas.
Abrir y mantener una comunicacin 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 aplicacin lo esta utilizando.
Disponemos de mtodos 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 notique el cambio de cualquier estado.
Programacin a alto nivel. Para esta programacin se cuenta con la clase CommPortIdenti-
er. 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 utilizacin.
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 informacin de esto se debe obtener el objeto de CommPortIdentier
correspondiente al puerto que se realizara con alguno de los siguientes mtodos:
getPortIdentiers() es el mtodo utilizado en nuestro programa y que nos entregar un
enumerado con tantos objetos CommPortIdentier como puertos dispongamos.[12]
21
CAPTULO 1. MARCO TERICO.
getPortIdentier(String) Nos dar el objeto correspondiente al puerto que se le pase como
parmetro, este ser el mtodo que normalmente usaremos ya que lo normal es que siem-
pre nos conectemos por el mismo puerto. Este mtodo deber saber tratar la excepcin
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 mtodos que nos permiten obtener
informacin del puerto y abrirlo para poder iniciar una comunicacin. Estos mtodos son los
siguientes:
getName() dar el nombre del puerto. En el caso de haber utilizado el mtodo getPor-
tIdentier(String) ser el mismo valor que pasamos como parmetro.[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 mtodo 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 excepcin PortInUseException. Los
parmetros que le debemos pasar son un String con el nombre de la aplicacin 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 debern encaminar sus salidas a OutputStream y las entradas
a InputStream una vez realizado esto la escritura y lectura de los puertos ser tan fcil como
utilizar los mtodos de estas clases que pertenecen al estndar del JDK.
addPortOwnershipListener(CommPortOwnershipListener) permite aadir 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 mtodos comunes de comuni-
cacin y sern las clases que hereden de ellas (SerialPort y ParallelPort) la que aadan mtodos
y variables propias del tipo del puerto. Entre los mtodos que se interesa conocer se tienen:
close() nos permitir liberar el puerto que se reservo con open, este noticara el cambio de
dueo a las clases que se hubiesen registrado con el mtodo addPortOwnershipListener
que se explico anteriormente.[12]
22
CAPTULO 1. MARCO TERICO.
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
chero.[12]
getInputBufferSize() nos informa del tamao que tiene el buffer de entrada del puerto.
Este tamao se puede modicar con el mtodo setInputBufferSize(int). Estos mtodos
no siempre dan el resultado esperado ya que ser la memoria disponible y el sistema
operativo quien al nal decida si realizar o no correctamente la operacin.[12]
getOutputBufferSize() nos informa del tamao que tiene el buffer de salida, como en el
caso anterior contamos con un mtodo para modicar el tamao que es setOutputBuffer-
Size(int). Al igual que pasaba con los mtodos 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 estndar
RS-232. En la Tabla 1 se puede ver la descripcin de las patitas del conector de 25 contactos.
En la emisin de un carcter se realizarn las siguientes comprobaciones:
PIN (DB25) PIN (DB9) Descripcin
2 2 TD: Canal de transmisin.
3 3 RD: Canal de recepcin.
4 7 RTS: Peticin para transmitir.
5 8 CTS: Preparado para emitir.
6 6 DSR: Equipo preparado.
7 5 Masa
8 1 DCD: Conexin 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
CAPTULO 1. MARCO TERICO.
5. Enviar datos.
La clase SerialPort hereda de la clase abstracta CommPort y por lo tanto cuenta con sus mtodos
pero adems de estos se dispone de otros mtodos y variables especicas para el tratamiento de
los puertos serie.
setSerialPortParams(int, int, int, int) permite congurar los parmetros del puerto se-
rie, este mtodo deber tratar la excepcin UnsupportedCommOperationException que
saltara en el caso de que se le introduzcan valores no soportados.[12]
Los parmetros del mtodo son:
1. La velocidad en el caso de que se le pase un valor no valido. Si se pasa 1210 se producira
la excepcin y no se modicaran los datos.
2. El segundo parmetro 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 denen estas conguraciones 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 mtodo son:
getBaudrate() da la velocidad a la que esta preparada para transmitir y que se puede
cambiar con el mtodo setSerialPortParams(int, int, int, int).[12]
getDataBits() da la conguracin de nmero de datos y al igual que el mtodo anterior se
puede cambiar con el mismo mtodo, los valores posibles son los mismos que utiliza el
mtodo de conguracin de parmetros.[12]
getStopBits() indica la conguracin de bits de parada y al igual que en los mtodos
anteriores se puede congurar con el mismo mtodo. 4. getParity() indica la paridad que
utiliza.[12]
getParity() indica la paridad que utiliza.[12]
24
CAPTULO 1. MARCO TERICO.
getFlowControlMode() da la conguracin del control de ujo que se puede cambiar con
el mtodo setFlowControlMode(int) y los valores posibles son: FLOWCONTROL_NONE
no existe control de ujo, (FLOWCONTROL_RTSCTS_INo FLOWCONTROL_RTSCTS_OUT)
para el control de ujo por hardware y ( FLOWCONTROL_XONXOFF_IN o FLOW-
CONTROL_XONXOFF_OUT) para control de ujo por software. El mtodo setFlow-
ControlMode(int al igual que pasaba con setSerialPortParams(int, int, int, int) deber de
saber capturar la excepcin UnsupportedCommOperationException.[12]
6. addEventListener(SerialPortEventListener) permite escuchar los cambios de estado del
puerto, si se desea quitar este oyente se utiliza el mtodo removeEventListener().[12]
Mediante los mtodos notifyOnXXX(boolean) permitir habilitar o deshabilitar la noti-
cacin de los diferentes cambios que pueden ser:
DataAvailable existen datos en la entrada.
OutputEmpty el buffer de salida esta vaco.
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 lnea.
La clase oyente deber de tener el mtodo serialEvent(SerialPortEvent) que recibir un objeto
que trata los eventos del puerto serie con tres mtodos 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 mtodo 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
CAPTULO 1. MARCO TERICO.
Clase ParallelPort.
En esta clase tenemos las interfaces de bajo nivel del puerto paralelo que cumple la norma
IEEE-1284. El estndar IEEE-1284 cuenta con 8 lneas de datos, 5 entrada de estado y 4 salidas
de control. Los contactos del conector se denen en la Tabla 2 con sus funciones en el modo
SPP que es el modo compatible de trabajo para la impresora.
PIN NOMBRE Descripcin
1 STROBE Indica que existen datos validos en las lneas de datos D0-7
2 D0 Dato bit 0
3 D1 Dato bit 1
4 D2 Dato bit 2
5 D3 Dato bit 3
6 D4 Dato bit 4
7 D5 Dato bit 5
8 D6 Dato bit 6
9 D7 Dato bit 7
10 ACK Indica que el ultimo carcter 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 lnea.
14 AUTO FD Indica a la impresora que realice una alimentacin de lnea.
15 ERROR Existe algn 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 estndar 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 lnea de datos.
EPP (Extended Parallel Port) es el modo extendido y se utiliza para perifricos 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 perifricos, este modo es una propuesta de Hewlett
Packard y Microsoft.
26
CAPTULO 1. MARCO TERICO.
La clase ParallelPort es una clase que se hereda de CommPort. Esta clase cuenta con una serie
de mtodos que facilitan el uso del puerto paralelo:
addEventListener(ParallelPortEventListener ev) mediante este mtodo se puede asignar
un oyente para cuando aparezca un error en el puerto y no lo notique, exactamente
nos informara de cuando el buffer de salida este lleno o cuando la impresora indique
error. Los mtodos que permiten habilitar o deshabilitar estos avisos son: notifyOn-
Error(boolean) y notifyOnBuffer(boolean). Si se desea quitar el oyente se puede utilizar
el mtodo 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 sea PE 1.2 en la pgina 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 reeja con el estado
de ERROR que esta en el pin 15 1.2 en la pgina anterior.[12]
restart() realiza un reinicio en la impresora.[12]
suspend() suspende la salida.[12]
getMode() dice el modo congurado 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) conguramos el modo del puerto paralelo, los valores que puede tomas
son los anteriores y adems LPT_MODE_ANY que ser el mejor modo disponible. Este
mtodo deber ser capaz de tratar la excepcin UnsupportedCommOperationException
que saltara en el caso de que se introduzca un modo no soportado.[12]
27
CAPTULO 1. MARCO TERICO.
1.0.4. La JNI.
Otra manera de establecer la comunicacin 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 programacin. Esta permite al cdigo de java correr dentro de la
maquina virtual de java (VM) y se interpole con aplicaciones, funciones y libreras escritas en
otros lenguajes de programacin, tales como C, C++ y assembler.[13]
El cdigo nativo son funciones escritas en un lenguaje de programacin 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 cdigo nativo y
viceversa. Es decir JNI soporta dos tipos de interfaces:
1. Native methods.
Que permiten a Java llamar a funciones implementadas en libreras nativas.[13]
2. Invocation Interface.
Nos permite incrustar una maquina virtual Java en una aplicacin nativa. La aplicacin
nativa llama a libreras nativas de la maquina virtual y luego usa el llamado invocation
interface para ejecutar mtodos java en la VM.[13]
Las libreras de enlace dinmico son cheros cuyas funciones no se incrustan en el ejecutable
durante la fase de enlazado, sino que en tiempo de ejecucin el programa busca el chero, carga
su contenido en memoria y enlaza su contenido segn va siendo necesario.
Esto tiene la ventaja de que varios programas pueden compartir las mismas libreras, 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 extensin tambin vara dependiendo del SO en que estemos. Extensiones tpicas son:
Sistema Operativo Extensin
Mac OS X .dylib
UNIX .so
Windows .dll
Cuadro 1.3: Extensiones de la libreras dinmicas por SO.
Para que los programas encuentren las libreras de enlace dinmico, estas deben ponerse en
unos determinados directorios.
28
CAPTULO 1. MARCO TERICO.
Cada SO sigue sus reglas:
Cuadro 1.4: Reglas de bsqueda de libreras de enlace dinmico de cada sistema operativo.
El ms importante benecio de las JNI es que este no posee restricciones en la implementacin
de la subyacente java VM. Mientras se pueda escribir aplicaciones enteramente en java, hay
algunas situaciones donde java slo no encuentra las necesidades de su aplicacin. Los pro-
gramadores usan las JNI para escribir mtodos nativos de java que manejan estas situaciones
cuando una aplicacin no puede ser escrita totalmente en java.
Lo siguiente ilustra cuando se necesita usar los mtodos nativos de java.
Las libreras estndar de java no pueden soportar las caractersticas plataforma-dependientes
necesarias para la aplicacin.
Se tienen libreras escritas en otros lenguajes, y se desea hacer este accesible al cdigo de
java con el JNI.
Se quiere implementar una pequea porcin de cdigo tiempo-critico en un lenguaje de
bajo nivel como assembler.
1.0.5. Arquitectura puerto paralelo.
Fsicamente el puerto paralelo es identicado por el usuario por su caracterstico conector de
25 pines (hembra).[14]
29
CAPTULO 1. MARCO TERICO.
Figura 1.1: Puerto paralelo.
Es posible que una computadora posea ms 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 direccin Base, es decir, una direccin con la que se identica
al puerto, y segn el tipo de puerto de que se trate, podr tener adems otras direcciones
8
.
Actualmente las direcciones por defecto para los puertos son las siguientes:
Puerto Direccin Base
LPT1 0x378
LPT2 0x278
LPT3 0x3BC
Cuadro 1.5: Direcciones base puerto paralelo
8
Base+1, Base+2, ...
30
CAPTULO 1. MARCO TERICO.
El BIOS
9
construye una tabla en memoria cuando arranca la computadora desde la direccin
40:08h a 40:0Dh que contiene las direcciones base de cada puerto paralelo instalado, leyendo
esta tabla ordenada se puede conocer la direccin base de cada puerto.[5]
1.0.5.1. Tipos de puerto.
Es posible encontrar los siguientes tipos de puertos, por orden de aparicin.
1. SPP.
Es el puerto ms sencillo, tiene tres buses o registros, en la direccin Base: bus de datos,
este es de 8 bits y todos sus pines son salidas; en la direccin 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 informacin de papel atascado, falta de papel,... ,
una de las entradas (el bit 7) est complementada; por ultimo en la direccin Base+2: bus
de control, este bus tiene cuatro salidas, de las cuales tres estn negadas.[14]
Direccin Base + 0: registro o bus de datos.
Direccin Base + 1: registro o bus de estado.
Direccin Base + 2: registro o bus de control.
LPT1 LPT2 LPT3
Bus de datos 0x378 0x278 0x3BC
Bus de Estado 0x379 0x279 0x3BD
Bus de Control 0x37A 0x27A 0x3BE
Cuadro 1.6: Direcciones base de los registros.
2. Bidireccional (PS/2).
Este puerto tienen las mismas caractersticas 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 salidas
10
.[14]
Entrada: para congurar 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
10
no se puede congurar algunos pines como entrada y otros como salida
31
CAPTULO 1. MARCO TERICO.
Salida: para congurar 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 caracterstica de ser tan rpido 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 aceptacin 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 estndar denominado EPP 1.7,
que tiempo despus se combin con el estndar IEEE 1284, que describe los puertos
bidireccionales de alta velocidad para impresoras y se formo un estndar que actualmente
se denomina IEEE 1284 EPP. un puerto paralelo del estilo IEEE 1284 soporta mltiples
modos: SPP, bidireccional PS/2, EPP y ECP. otra particularidad de este puerto es que
posee otras cinco direcciones
11
, aunque esto hace que no pueda existir un tercer puerto
den la direccin 3BCh, ya que de ser as se solapara con las direcciones asignadas a
vdeo. es por esto que cuando se creo el puerto EPP, la direccin que antes sola 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 compresin 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 algn bit no utilizado por ECP para la conagracin del puerto
como EPP. el puerto ECP agrega adems los registros desde Base+400h; a Base+402h,
en el cual esta el registro ECR (Extended Control Register), mediante el cual se pueden
congurar los diferentes modos, el signicado de los bits es el siguiente:
11
desde Base+3 a Base+7
32
CAPTULO 1. MARCO TERICO.
Bit Signicado
7:5
000 SPP (compatible ISA)
001 Bidireccional (Compatible PS/2)
010 Centronics rpido (compatible ISA FIFO)
011 ECP
100 Reservado
101 Reservado (EPP)
110 Prueba
111 Conguracin
4 Deshabilita interrupciones de ERROR
3 Habilita DMA
2 Deshabilita el servicio de interrupcin FIFO/Terminal Count
1 Slo lectura (FIFO lleno)
0 Slo lectura (FIFO vaci)
Cuadro 1.7: Conexionado del puerto paralelo en modo ECP
1.0.5.2. Deteccin del tipo de puerto.
El puerto puede ser de tipo SPP, bidireccional
12
, 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 direccin Base+402h y vericar 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, vericar 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 slo 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 vericado 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
12
Compatible con el estndar IBM PS/2
33
CAPTULO 1. MARCO TERICO.
estado y el bit de TimeOut (bit 0 del registro de estado), debido a la diversidad de fabri-
cantes existen diversos mtodos 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 vericar ahora que el bit en cuestin 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 ningn perifrico que responda
a la escritura realizada, el bit de TimeOut deber cambiar su estado lgico 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 congurar el bus de datos como entrada y vericar
que al sacar un dato por el puerto no sea retenido.[5]
Puerto SPP.
Para detectar si un puerto es SPP vericamos la retencin de los daros enviados, para lo
cual enviamos un par de valores al bus de datos y comprobamos (en la direccin base)
que los valores ledos sean los que se escribieron, es decir que el dato enviado haya sido
retenido por el puerto.[5]
34
CAPTULO 1. MARCO TERICO.
1.0.5.3. Puerto paralelo a nivel fsico.
Cuadro 1.8: Conexionado del puerto paralelo
Cuando se transmite informacin por un cable multipar (con varios conductores aislados), cada
conductor genera un campo electromagntico que inuye 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. Tambin
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 elctrica, lo que se
logra con una malla metlica que envuelve a todos los conductores conectada a masa (chasis de
35
CAPTULO 1. MARCO TERICO.
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 transmisin, 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 seal hacia su fuente.
Cuando se diseo el puerto paralelo tambin se dividieron las masas segn las seales como lo
indica la siguiente tabla, aunque actualmente es muy comn observarlas todas unidas, puesto
que los circuitos de salida contienen todos la misma masa, ya que con el nivel de integracin
de hoy en da todos los buffer de salida estn practica mente en un mismo integrado, y de esta
manera la corriente tomar el camino con menor impedancia para su retorno.
Pin Retorno de Masa
Pin 18 Retorno de masa correspondiente a: C0 y D0
Pin 19 Retorno de masa correspondiente a: D1 y D2
Pin 20 Retorno de masa correspondiente a: D3 y D4
Pin 21 Retorno de masa correspondiente a: D5 y D6
Pin 22 Retorno de masa correspondiente a: D7 y S6
Pin 23 Retorno de masa correspondiente a: C3
Pin 24 Retorno de masa correspondiente a: S7
Pin 25 Retorno de masa correspondiente a: C2
Cuadro 1.9: Masas segn seal
1.0.5.4. Interrupciones.
La mayora de los puertos paralelos son capaces de detectar interrupciones generadas por el
perifrico que se encuentre conectado. Para que el microprocesador detecte la interrupcin 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 congurado 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 accin, 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 lgica 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
CAPTULO 1. MARCO TERICO.
del puerto puede tomar valores de hasta 2, 6mA y la entregada hasta un mximo de 24mA. En
cuanto a las tensiones de salida, el nivel bajo corresponde a una tensin entre 0V y 0,8V, y para
el nivel alto la tensin de salida es de 2, 4V a 5, 5V.
En algunos de los puertos se pueden encontrar tambin 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 seal.
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 estndar para realizar la transmisin de datos. El RS-232 consiste
en un conector tipo DB-25 de 25 pines, aunque es normal encontrar la versin de 9 pines DB-9.
Las seales con las que trabaja este puerto son digitales, de 12V(0 lgico) y 12V(1 lgico),
para la entrada y salida de datos, y a la inversa en las seales de control. El estado de reposo en
la entrada y salida de datos es 12V.
37
CAPTULO 1. MARCO TERICO.
Los ordenadores se conectan con cualquier equipo perifrico, a travs de sus puertos paralelo
o serie, o los ms 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
estndar impuesto en todos los equipos informticos.
En un ordenador puede haber varios puertos series, a los que normalmente se les denomina
COM 1, COM 2, COM 3
13
, por defecto el COM 1 suele pertenecer al ratn usando ste el IRQ
4, aunque tambin 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 conexin en serie de datos informacin, se requiere como mnimo un cable
de dos alambres, una conexin del tipo full-duplex como la de telefona.
Si se quiere tener una comunicacin bidireccional por un par de hilos y esta consiste en una
serie de bits de informacin, se requieren otras terminales que indiquen al Interface cul de los
aparatos interconectados transmite y cul recibe, que tipo de informacin es, cundo el aparato
receptor esta listo para recibir, cuando el transmisor esta listo para transmitir, a que velocidad
va ser la comunicacin. Esto hace que el puerto serie tenga otras terminales que se usan para
coordinar la comunicacin entre los equipos.
Los equipos terminales de datos, envan seales en 0s y 1s lgicos binarios, que el mdem
debe convertir a seales analgicas y enviarlas por la lnea telefnica o canal de comunicacin
pero tambin 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
lgico es cuando la terminal est entre +9 y +12 voltios, y un uno lgico cuando este entre -9
y -12 voltios de manera que un puerto serie que no esta transmitiendo, mantiene la terminal de
transmisin en un 1 lgico es decir entre -9 y -12 volts.
El conector estndar RS-232 sea ste hembra macho, es el DB-25, aunque tambin se usa el
DB-9.
1.0.6.1. Estructura de datos del puerto serie RS-232.
La comunicacin de datos en un puerto serie, se usa normalmente para efectuar comunicaciones
asncronas, o sea sin tiempo preestablecido para iniciarse. Los datos llegan en paquetes de
informacin, normalmente cada paquete es de 8 bits=1 byte, algunos equipos envan carcter
por carcter, otros guardan muchos caracteres en la memoria y cuando les toca enviarlos los
envan uno tras otro.
13
muchas veces los puertos serie a partir del COM 2 se denominan puertos virtuales o son debidos a ampliaciones
de los puertos por tarjetas controladoras del tipo PCI
38
CAPTULO 1. MARCO TERICO.
Uno de los parmetros ms importantes en la comunicacin 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 parmetros importantes es el bit de inicio que le indica al puerto receptor que va a
llegar un byte de informacin.
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 estndar RS-232-EIA, es equivalente al V.24 del CCITT
14
.
Las especicaciones elctricas del puerto serie estn contenidas en el EIA
15
RS232C estndar.
En las cuales se encuentran parmetros 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 regin entre +3 y -3 voltios est sin denir.
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 Abreviacin Nombre completo
2 3 TD Transmit data
3 2 RD Receive data
4 7 RTS Request to send
5 8 CTS Clear to send
6 6 DRS Data set ready
7 5 SG Signal ground
8 1 CD Carrier detect
20 4 DTR Data terminal ready
22 9 RI Ring indicador
Cuadro 1.10: Pins del puerto serie conexiones D25 y D9
14
Consultive Commitee International Telegraph and Telephone
15
Electronics Industry Association-Asociacin de Electrnica Industrial.
39
CAPTULO 1. MARCO TERICO.
Abreviacin Nombre completo Funcin
TD Transmit data Salida de datos serie TXD
RD Receive data Entrada de datos serie RXD
CTS Clear to send Indica si el mdem est preparado para recibir y mandar datos
DCD Data carrier detect Detecta si hay una conexin con el otro extremo
DSR Data set ready Dice si la UART est preparada para la conexin
DTR Data terminal ready Dice al mdem si la UART est preparada para la conexin
RTS Request to send Informa que la UART est preparada para la conexin
RI Ring indicator Se activa cuando el mdem 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 construccin de mecanismos en don de se requieren
movimientos que requieran precisin.
A diferencia de los motores de corriente continua (CC) que gira a todo lo que dan cuando
son conectados a la fuente de alimentacin, los motores paso a paso (PaP) solamente giran un
ngulo determinado, los CC slo disponen de dos terminales de conexin, mientras los PaP
pueden tener 4, 5 6, segn el tipo de motor que se trate, por otro lado los motores de corriente
continua no pueden quedar enclavados en una sola posicin, los motores paso a paso tienen la
posibilidad de quedar enclavados en una posicin o bien totalmente libres. Si una o ms de sus
bobinas estn energizadas, el motor estar enclavado en la posicin correspondiente y por el
contrario quedar completamente libre sino circula energa 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 nmero de bobinas exitadoras, bobinas en su estator. Las bobinas son parte del
estator y el rotor es un imn permanente. La exitacin de las bobinas debe ser manejada por un
controlador.
Los motores PaP suelen ser clasicados en dos tipos, segn su diseo y fabricacin pueden ser
bipolares o unipolares:
Bipolar.
40
CAPTULO 1. MARCO TERICO.
Estos tienen, generalmente, cuatro cables de salida. Necesitan ciertos trucos para ser con-
trolados, debido a que requieren del cambio de direccin del ujo de corriente a travs 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 ms simple de controlar. En la gura 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 activacin
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.
16
Activa A, B, C y D.
41
CAPTULO 1. MARCO TERICO.
Figura 1.5: Motor PaP con 6 cables.
1.0.7.2. Secuencia para manejar motores paso a paso bipolares.
Estos motores necesitan una inversin de la corriente que circula en sus bobinas en una secuen-
cia determinada. Cada inversin de la polaridad provoca el movimiento del eje un paso, cuyo
sentido de giro est determinado por la secuencia seguida.[1, 2]
Paso Terminal
1
2
3
4
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 nal. Para revertir el sentido de giro, simplemente se deben
ejecutar las secuencias en modo inverso.[1, 2]
Secuencia Normal.
Es la secuencia ms 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 retencin.
42
CAPTULO 1. MARCO TERICO.
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 slo una bobina a la vez. En algunos motores esto brinda un
funcionamiento ms suave. La contrapartida es que al estar slo una bobina activada, el
torque de paso y retencin es menor.
43
CAPTULO 1. MARCO TERICO.
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 slo 1 y as
sucesivamente.
44
CAPTULO 1. MARCO TERICO.
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
CAPTULO 1. MARCO TERICO.
Debido a que los motores paso a paso son dispositivos mecnicos y como tal deben vencer
ciertas inercias, el tiempo de duracin 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 prx-
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 ningn movimiento en absoluto.
Puede comenzar a vibrar pero sin llegar a girar.
Puede girar errtica 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 aumentndola hasta la velocidad deseada sin superar la mxima
tolerada. El giro en reversa debera tambin ser realizado previamente bajando la velocidad de
giro y luego cambiar el sentido de rotacin.
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 posicin dentro de de su intervalo de operacin.[15]
Un Servo es un dispositivo pequeo que tiene un eje de rendimiento controlado. Este puede
ser llevado a posiciones angulares especcas al enviar una seal codicada. Con tal de que
una seal codicada exista en la lnea de entrada, el servo mantendr la posicin angular del
engranaje. Cuando la seala codicada cambia, la posicin angular de los piones cambia. En la
prctica, se usan servos para posicionar supercies de control como el movimiento de palancas,
pequeos ascensores y timones. Ellos tambin se usan en radio control, tteres, y por supuesto,
en robots.[3]
Los Servos son sumamente tiles en robtica. Los motores son pequeos, tiene internamente
una circuitera de control interna y es sumamente poderoso para su tamao. Un servo normal o
estndar como el HS-300 de Hitec tiene 42 onzas por pulgada o mejor 3kg por cm de torque que
es bastante fuerte para su tamao. Tambin una potencia proporcional para cargas mecnicas.
Un servo, por consiguiente, no consume mucha energa. Podr observar la circuitera de control,
el motor, un juego de piones, y la caja. Tambin puede ver los 3 alambres de conexin externa.
Uno es para alimentacin Vcc
17
, conexin a tierra GND y el alambre blanco es el alambre de
control.[3]
17
+5volts.
46
CAPTULO 1. MARCO TERICO.
1.0.8.1. Funcionamiento de un servo.
El motor del servo tiene algunos circuitos de control y un potencimetro
18
esta es conectada al
eje central del servo motor. Este potencimetro permite a la circuitera 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 direccin
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 vara segn el fabricante. Un
servo normal se usa para controlar un movimiento angular de entre 0 y 180 grados. Un servo
normal no es mecnicamente capaz de retornar a su lugar, si hay un mayor peso que el sugerido
por las especicaciones 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 slo una pequea cantidad, el motor correr a una velocidad ms
lenta. A esto se le llama control proporcional.
El cable de control se usa para comunicar el ngulo. El ngulo est determinado por la duracin
de un pulso que se aplica al alambre de control. A esto se le llama PCM Modulacin codicada
de Pulsos PWM Pulse Width Modulation. La modulacin 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 vara el tiempo que el pulso esta a nivel alto, manteniendo el mismo
periodo, con el objetivo de modicar la posicin del servo segn 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 posicin de 90 grados o posicin 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 enva una
serie de pulsos. En un tiempo ON de pulso indica el ngulo al que debe posicionarse; 1ms = 0
grados, 2.0ms = mx. grados
19
y algn valor entre ellos da un ngulo de salida proporcional.
Generalmente se considera que en 1.5ms est el "centro". Entre los lmites 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 ms.
El factor limitante es el tope del potencimetro y los lmites mecnicos 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]
18
una resistencia variable.
19
Cerca de 120.
47
CAPTULO 1. MARCO TERICO.
El tiempo de OFF en el servo no es crtico; 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 podra escucharse un sonido de zumbido o alguna vibracin en el eje. Si el espacio
del pulso es mayor de 50ms, depende del fabricante, entonces el servo podra estar en modo
SLEEP entre los pulsos. Entrara a funcionar en pasos pequeos y el rendimiento no sera el
ptimo.[15]
1.0.9. Sistemas Elctricos.
Las leyes de Kirchhoff para circuitos elctricos.[8]
Voltaje.
Es la fuerza electromotriz requerida para producir un ujo 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 elctrico de un volt por metro o Coulumb = Newtonmetro/volt.
Corriente.
Es la razn de cambio del ujo de carga. La unidad de corriente es el ampre. si una carga
de dq coulumbs cruza un rea dada en dt segundos, la corriente i es
i =
dq
dt
una corriente de un ampre, la carga es transferencia a razn de un coulumb por segundo.
1.0.9.1. Elementos de los circuitos elctricos.[8]
Resistencias.
La resistencia se dene como el cambio de voltaje requerido para producir un cambio en
la corriente
resistencia R =
cambio en voltaje
cambio en corriente
V
A
La resistencia R lineal se da por
R =
e
R
i
donde e
R
es el voltaje a travs del resitor e i es la corriente que uye por el resistor. La
unidad de resistencia es el Ohm().
48
CAPTULO 1. MARCO TERICO.
El recproco de la resistencia se llama conductancia. La unidad de conductancia es el
siemens(S).
Los resistores no almacenan energa elctrica pero la disipan en forma de calor.
Capacitores.
El capacitancia es el cambio en la cantidad de carga elctrica requerida para producir un
cambio en el voltaje.
Capacitancia C =
cambio en cantidad de carga electrica
cambio en voltaje
C
V
.
La capacitancia de un capacitor puede darse entonces por
C =
q
e
C
donde q es la cantidad de carga de carga almacenada y e
C
es el voltaje a travs del capac-
itor. La unidad de capacitancia es el farad(F).
Como i =
dq
dt
y e
C
=
q
C
entonces i =
de
C
C
dt
despejando
de
C
=
1
C
idt
e
C
(t) =
1
C
t

0
idt +e
C
(0).
Inductancias.
Es la relacin entre el voltaje inducido y la razn de cambio de la corriente
Inductancia=
cambio en voltaje inducido
cambio en corriente por segundo
V
A/s
.
La autoinductancia es la propiedad de una bobina particular que ocurre cuando el campo
magntico establecido por una corriente de la bobina enlazada a la propia bobina, la
razn de cambio del ujo es proporcional a
di
dt
. La autoinductancia L, es la constante de
proporcionalidad entre el voltaje inducido e
L
volts y la razn de cambio de la corriente
L =
e
L
di
dt
La unidad de inductancia es el henry(H).
Como
e
L
= L
di
dt
luego de
i
L
(t) =
1
L
t

0
e
L
dt +i
L
(0).
49
CAPTULO 1. MARCO TERICO.
La inductancia mutua es la inuencia entre inductores que resulta de la interaccin de sus
campos. Cuando un cambio de corriente de un ampre 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 elctricos.[8]
Ley de Ohm.
Establece que la corriente en un circuito es proporcional a la fuerza electromotriz total
que acta sobre el circuito e inversamente proporcional a la resistencia total del circuito.
i =
e
R
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.
i
1
=
e
R
1
, i
2
=
e
R
2
, i
3
=
e
R
3
como i = i
1
+i
2
+i
3
, luego
i =
e
R
1
+
e
R
2
+
e
R
3
=
e
R
donde R es la resistencia combinada, luego
1
R
=
1
R
1
+
1
R
2
+
1
R
3
R =
1
1
R
1
+
1
R
2
+
1
R
3
=
R
1
R
2
R
3
R
1
R
2
+R
2
R
3
+R
3
R
1
.
Resistencia de resistores combinados en serie y paralelo.
50
CAPTULO 1. MARCO TERICO.
Figura 1.7: Resistores combinados en serie y en paralelo caso 1.
La resistencia combinada R
2,3
=
R
2
R
3
R
2
+R
3
luego la resistencia total R = R
1
+R
2,3
= R
1
+
R
2
R
3
R
2
+R
3
.
Figura 1.8: Resistores combinados en serie y en paralelo caso 2.
R
1,2
=
R
1
R
2
R
1
+R
2
R
3,4
=
R
3
R
4
R
3
+R
4
la resistencia combinada R = R
1,2
+R
3,4
=
R
1
R
2
R
1
+R
2
+
R
3
R
4
R
3
+R
4
.
51
CAPTULO 1. MARCO TERICO.
Figura 1.9: Resistores combinados en serie y en paralelo caso 3.
El circuito se puede considerar como paralelo que consta de las resistencias (R
1
+R
3
) y
(R
2
+R
4
), la resistencia combinada R =
(R
1
+R
3
)(R
2
+R
4
)
R
1
+R
2
+R
3
+R
4
.
Corrientes y voltajes de circuitos en serie y en paralelo.
Figura 1.10: Caso 1 corrientes y voltajes.
La cada de voltaje e
2,3
= iR
2,3
donde R
2,3
=
R
2
R
3
R
2
+R
3
de donde la corriente i
1
que uye a travs de la resistencia R
2
es
i
1
=
e
2,3
R
2
= i
R
2,3
R
2
= i
R
3
R
2
+R
3
la corriente i
2
que uye por la resistencia R
3
es
i
2
=
e
2,3
R
3
= i
R
2,3
R
3
= i
R
2
R
2
+R
3
.
52
CAPTULO 1. MARCO TERICO.
Leyes de Kirchhoff.[8]
Ley de corrientes de Kirchhoff.
Un nodo en un circuito elctrico es un punto donde tres o ms 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 elctrico es cero. Se puede expresar
tambin como la suma de las cadas de voltaje es igual a la suma de elevaciones de
voltaje alrededor de una malla.
1.0.10. Modelos matemticos.
El modelado de sistemas fsicos debe empezar a partir de una prediccin de su funcionamien-
to antes de que el sistema pueda disearse en detalle o construirse fsicamente. Tal prediccin
se basa en una descripcin matemtica de las caractersticas dinmicas del sistema. A esta
descripcin matemtica se le llama modelo matemtico.[10] Para los sistemas fsicos, la may-
ora de los modelos matemticos que resultan tiles se describen en trminos de ecuaciones
diferenciales.[7]
1.0.10.1. Elaboracin de modelos matemticos (modelado matemtico).
Al aplicar leyes fsicas a un sistema especico, es posible desarrollar un modelo matemtico
que describa al sistema. Tal sistema puede incluir parmetros desconocidos, los cuales deben
evaluarse mediante pruebas reales. Sin embargo, algunas veces las leyes fsicas que gobiernan
el comportamiento de un sistema no estn completamente denidas, y la formulacin de un
modelo matemtico 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 matemtico.[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 anlisis. Es importante notar que los resultados
obtenidos en el anlisis son validos en la medida en que el modelo se aproxime al sistema fsico
dado.
53
CAPTULO 1. MARCO TERICO.
La rapidez con la cual una computadora digital puede realizar operaciones aritmticas 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 simplicado.
Para determinar un modelo razonablemente simplicado, se necesita decidir cuales de las vari-
ables y relaciones fsicas 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 parmetros distribuidos y las no lineales que pueden estar presentes
en el sistema fsico. Si los efectos que estas propiedades ignoradas tienen en la respuesta son
pequeos , entonces los resultados del anlisis del modelo matemtico y los resultados del estu-
dio experimental del sistema fsico sern satisfactorios. El que cualquiera de las caractersticas
particulares sea importante puede no ser obvio en algunos casos, y en otros, puede requerir de
penetracin fsica en intuicin.[10] En relacin con lo mencionado.
Cuando se resuelve un problema nuevo, usualmente conviene construir primero un modelo sim-
plicado para obtener una idea general entorno a la solucin. Posterior mente puede construirse
un modelo matemtico ms detallado y usarlo para un anlisis ms completo.
1.0.10.3. Observaciones sobre la elaboracin de modelos matemticos.
Ningn modelo matemtico puede representar cualquier componente o sistema fsico con pre-
cisin. Siempre se involucran aproximaciones y suposiciones. Tales aproximaciones y suposi-
ciones restringen el nivel de validez del modelo matemtico. Al hacer una prediccin acerca del
funcionamiento del sistema, debe tenerse presente cualquier aproximacin o suposicin involu-
crada en el modelo.[6]
1.0.10.4. Procedimiento para la elaboracin de modelos matemticos.[6]
1. Dibujar un diagrama esquemtico del sistema y denir las variables.
2. Utilizando leyes fsicas, escribir ecuaciones para cada componente, combinndolos de
acuerdo con el diagrama del sistema y obtener un modelo matemtico.
3. Para vericar la validez del modelo, la prediccin acerca del funcionamiento obtenida
al resolver las ecuaciones del modelo, se compara con resultados experimentales. Si los
resultados experimentales se alejan de la prediccin en forma considerable, debe mod-
icarse 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 prediccin y los resultados experimentales.
54
CAPTULO 1. MARCO TERICO.
1.0.10.5. Etapas del modelo.[10]
Etapa uno: modelado fsico.
El objetivo de la especicacin de sistemas y el modelado fsico consiste en proporcionar
una descripcin del sistema que sea lo ms precisa posible, aunque lo bastante sencilla
como para permitir el anlisis y diseo subsecuentes. En general, un modelo fsico se
construye aislando una parte del universo como el sistema de inters y luego dividiendo
conceptualmente su comportamiento en componentes conocidos. Dos temas dominan las
etapas de modelado fsico y modelado de sistemas: el compromiso y la aproximacin. Los
compromisos se realizan con base en la intencin o meta original del estudio, con el n
de especicar un sistema ms 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 fsico, con el n de aprovechar las
teoras existentes y bien desarrolladas, as como para reducir al mnimo la complejidad
de las herramientas analticas 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 su-
ciente de comportamientos tericos con los cuales poder relacionar los componentes del
comportamiento conceptual.
Etapa dos: construccin de modelos.
El proceso de descomposicin de sistemas es necesario para la construccin sistemtica
de los modelos matemticos de los sistemas dinmicos.
Una vez descompuesto el sistema, la conducta de cada uno de sus componentes e interac-
ciones se pueden aproximar utilizando las teoras conocidas. Las aproximaciones que se
hacen al pasar del modelo fsico al de sistemas tiene ciertas caractersticas bien denidas,
de modo que se pueden estudiar de manera individual.
Descomposicin del sistema.
Es el proceso de separar los componentes ms sencillos y analizar sus partes, puede
hacerse de manera formal as:
Identicar 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 estticos y dinmicos.
Escribir las relaciones de entrada y salida.
55
CAPTULO 1. MARCO TERICO.
Describir el comportamiento de estos componentes. Observar que las rela-
ciones que describen a los elementos estticos son bastantes distintas de las
expresiones dinmicas.
Etapa tres: solucin de modelos.
Se resuelven las ecuaciones representando el modelo del sistema como una forma para
estudiar su comportamiento dinmico. Se determina si el modelo del sistema es bueno o
malo. La solucin del modelo es fundamental para estudiar los sistemas dinmicos.
1.0.10.6. Sistemas lineales.
Los sistemas lineales son aquellos en los que las ecuaciones del moldeo son lineales. Una
ecuacin diferencial es lineal si los coecientes son constantes o funciones nicamente de la
variable independientemente. La propiedad ms importante de los sistemas lineales es que se le
puede aplicar el principio de superposicin, el cual establece que la respuesta producida por la
aplicacin 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 aadiendo 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 dinmicos que son lineales y estn construidos por coecientes 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 coeciente constante), tambin usualmente se utilizan para describir este tipo
de sistemas las siglas LTI, del Ingls Linear Time Invariant. Los sistemas representados por
ecuaciones diferenciales, cuyos coecientes son funciones del tiempo, reciben el nombre sis-
temas lineales variables en el tiempo o LTV, del Ingls Linear Time Variant.[10]
1.0.10.7. Sistemas no lineales.
Sistemas no lineales son aquellos representados por ecuaciones no lineales.
Ejemplo:
z = x
2
+y
3
.
Una ecuacin diferencial recibe el nombre de no lineal si no es lineal.
Ejemplo:
d
2
x
dt
2
+
dx
dt
+x +x
3
= 0.
56
CAPTULO 1. MARCO TERICO.
Aunque muchas relaciones fsicas 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 fsicos indica que an los denominados sistemas lineales son real-
mente lineales solamente en restringidos rangos de operacin.
En la prctica, muchos sistemas electromecnicos, hidrulicos, neumticos, etc., involucran
relaciones no lineales entre las variables. Por ejemplo, la salida de un componente puede satu-
rarse para niveles elevados de seal de entrada. Puede haber una franja o zona muerta que afecta
la seal pequea
20
. En algunos componentes puede haber no linealidades cuadrticas, por ejem-
plo, los amortiguadores utilizados en sistemas fsicos pueden ser lineales para operaciones de
baja velocidad, pero son no lineales en velocidades altas, porque la fuerza de amortiguacin se
vuelve proporcional al cuadrado de la velocidad de funcionamiento.[10]
La caracterstica ms importante de los sistemas no lineales es que no es aplicable el prin-
cipio de superposicin. En general, los procedimientos para hallar soluciones de problemas
que involucran sistemas no lineales, son extremadamente complicados. Debido a sta dicultad
matemtica, 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 vlidos solamente en un restringido rango de operacin. Una vez que se ha aproxi-
mado un sistema no lineal con un modelo matemtico lineal, se puede utilizar cierto nmero de
herramientas lineales para su anlisis y diseo.
1.0.11. Diagrama de causa y efecto.
Un diagrama de causa y efecto es la representacin 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
recoleccin de datos.
Es utilizado para identicar las posibles causas de un problema especco. La naturaleza grca
del diagrama permite que se organice grandes cantidades de informacin 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 identicar las causas principales de un problema?
2. Existen ideas y/u opiniones sobre las causas de un problema?
20
Las franja muerta de un componente no es sensible.
57
CAPTULO 1. MARCO TERICO.
El desarrollo y uso de diagramas de causa y efecto son ms efectivos despus de que el proceso
ha sido descrito y el problema est bien denido.
Los diagramas de causa y efecto pueden ser utilizados para otros propsitos diferentes al anlisis
de la causa principal.
El diagrama causa efecto no ofrece una respuesta a una pregunta, como lo hacen otras her-
ramientas. Herramientas como el anlisis de Pareto
21
, Diagramas Scatter
22
e histogramas, pueden
ser utilizadas para analizar datos estadsticamente.
21
El nombre de Pareto fue dado por el Dr. Joseph Juran en honor del economista italiano Vilfredo Pareto
(18481923)
22
Herramienta de anlisis que dibuja pares relacionados de variables para representar un patrn de relacin o
correlacin.
58
Captulo 2
FORMULACIN Y
JUSTIFICACIN.
2.1. Formulacin.
Con el auge en las ltimas dcadas de la tecnologa en el mundo, surge la necesidad de actualizar
y obtener las herramientas adecuadas para competir a nivel tecnolgico en el rea industrial co-
mo en el rea de la investigacin cientca, de una forma econmica y que cumpla con los
estndares mnimos establecidos. El problema del desarrollo de nuestras tecnologas 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 comunicacin y programacin al
igual que los programas de diseo tipo CAD. Resulta til hacer de estas herramientas un uso
frecuente en tareas de control y precisin en el desarrollo o reconstruccin de equipos con pro-
cesos paralelos y progresivos, es comn considerar a estas funciones como una automatizacin
y control de los sistemas.
2.1.1. Justicacin.
Dado que el control de los motores en desplazamiento posicional se puede realizar desde un
computador, es necesario el uso de lenguajes de programacin de alto nivel, los cuales permiten
implementar las funciones rutinas que controlan el movimiento con la precisin de las tar-
eas a realizar, con la comunicacin por los puertos y mediante el desarrollo e implementacin
computacional de las ecuaciones diferenciales que describen el modelo matemtico del sistema
mecnico que permita la bsqueda de coordenadas con exactitud de posicin y tiempo controla-
da por motores, este proceso permite establecer una interrelacin usuario-dispositivo de forma
amigable y sencilla.
59
2.1. FORMULACIN. CAPTULO 2. FORMULACIN Y JUSTIFICACIN.
Este tipo de control permite ser implementado en interrupciones neumticas seriadas y parale-
las, en ordenes de encendido y apagado en mecanismos de comparacin de estados de posicin
y tiempo manejo de precisiones y vacos y para estados emergentes y de capturas de informa-
cin.
60
Captulo 3
OBJETIVOS.
3.0.2. Objetivo general.
Establecer un mtodo de manejo de perifricos por puertos del computador. Desarrollar e im-
plementar un software capaz de realizar tareas de precisin y ubicar una coordenada especica
por instrucciones sobre diferentes tipos de motores servo y paso a paso por puertos paralelo y
serial del computador.
3.0.3. Objetivos especcos.
Implementar los protocolos para envi de seales desde los puertos del computador.
Determinar el modelo matemtico del sistema mecnico del motor servo y paso a paso.
Manejar secuencia de informacin de variables que intervienen en el control.
Disear e implementar la interfase de conexin entre el puerto y el motor.
Desarrollar algoritmos computacionales encargados del manejo controlado de los mo-
tores.
61
Captulo 4
METODOLOGA.
Las fases propuestas para el estudio metodolgico son: la investigacin del funcionamiento de
las JNI y los paquetes java comm, analizar la estructura mecnica de los motores paso a paso
para determinar las instrucciones que mueven el motor, realizar el modelamiento matemtico
del sistema mecnico del motor, establecer un mtodo de comunicacin con los puertos paralelo
y serial que permite implementar una rutina de enlace para entrada y salida de datos a travs de
los puertos, disear un algoritmo de comunicacin a travs de los puertos para hacer control en
dispositivos externos.
El manejo de las JNI requiere una programacin cuidadosa que no interera 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 ms
comn es la generacin 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 commestn 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 creacin de una aplicacin bsica 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 accin sobre el motor se
regresa y acumula la informacin en el puerto sobrecargndolo. entre dato y dato que se enva
ya que si el motor no alcanza a ejecutar la secuencia anterior se empezara a generar un error de
ejecucin, 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
CAPTULO 4. METODOLOGA.
1. Una implementacin del programa de comunicacin mediante los puertos paralelo o se-
rial.
2. Activacin de bobinas y control de pulso para motor PaP y servo correspondientemente.
3. Elaboracin del modelo matemtico de motor tipo paso a paso y servo.
4. Simulacin del modelo matemtico.
5. Implementacin del programa que controla el motor desde el computador.
4.0.5. Desarrollo metodolgico.
4.0.5.1. Anlisis de causas.
Se realiza el anlisis de causas mediante un diagrama de causa-efecto
1
, para determinar que
factores intervienen en la elaboracin 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 combinacin 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 comn y el que se encuentra en los computadores es el estndar que se
adapta al modo de funcionamiento bidireccional es el que mas se adapta a lo que se realiz. Con
la programacin en java se cuenta con el paquete javacomm con el cual no es sencillo manejar
puertos estndar ya que al inicia la conexin 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 utilizacin de este paquete. Con la
utilizacin de la JNI enlazar la entrada y salida de datos es ms sencilla y es ms verstil ya que
no solo se limita al puerto paralelo sino que cambiando la direccin 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 asignacin del bus de datos otra de lectura y la ultima de escritura.
El programa diseado tiene el protocolo de comunicacin, basado en la JNI, con el puerto
paralelo y las rutinas bsicas para el control de los puertos, diseado de tal forma que cualquier
modicacin futura no afecte el funcionamiento de las funciones existentes, a partir de este se
puede disear los protocolos de comunicacin y de conexin con puertos y dispositivos basados
en conexin USB.
1
Diagrama Ishikawa, Desarrollado en 1943 por el profesor Kaoru Ishikawa
63
CAPTULO 4. METODOLOGA.
Los componentes electrnicos en si no fueron un obstculo para la consecucin de el diseo del
prototipo, uno de los cuidados que se tiene que tener es en la eleccin del cable de conexin a
utilizar que un cable que no cumpla con los estndares, ya que si esto no se cumple la infor-
macin que se enva llegara distorsionada al motor provocando funcionamiento errtico o en
el peor de los caso que la informacin rebote hacia el puerto causando sobrecarga en este, otro
factor es la frecuencia con la que se enva la informacin si esta es muy alta no alcanza a ser
procesada y se provoca funcionamiento errtico o en el peor de los casos que la informacin
que se enva se devuelva hacia el puerto causando daos a este.
Aunque las tarjetas buffer diseadas te tal manera que: protejan al puerto de una sobre carga
esto no garantiza que en algn momento el voltaje sobre este se exceda del mximo que resisten
estos, su otra funcin es de al momento de activar una bobina esta tenga el voltaje de entrada
mximo de la tarjeta y no el voltaje de salida del puerto ya que este solo funciona de indicador
de activacin y es muy bajo para alcanzar el mximo rendimiento del motor.
La programacin de procesos en paralelo para el control de dos motores pap con el uso de mul-
tihilos que inicialmente controlan la velocidad de envo de la secuencia de pulsos de activacin
de las bobinas y mediante la interaccin con interfaz graca la ubicacin espacial en un plano
bidimensional, este pone limitaciones al desplazamiento, si no se colocaran estas limitaciones
se producir un funcionamiento errtico 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 diseo
basado en condiciones ideales del funcionamiento del motor aparte se programo basado en la
utilizacin de motores de 12V con 1.8 de rotacin por pulso, en el caso de cambiar de motor
se vera afectado el funcionamiento correcto del las tareas o procesos ejecutados, la solucin
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 bsicas de comunicacin que estn en el lenguaje nativo del
computador, el cual est en lenguaje C. Para utilizar la JNI es necesario ubicar las libreras
en las cuales estn las funciones que se desean utilizar. Lo primero es la identicacin de los
puertos que se tienen instalados y sus direcciones base, en particular el la direccin del bus de
datos 1.6 en la pgina 31, al identicar la direccin 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 comunicacin.
64
CAPTULO 4. METODOLOGA.
4.0.5.3. El modelo matemtico.
Lo primero es identicar las variables intervienen en el movimiento mecnico del motor luego
mediante que leyes fsicas interactan las variables entre ellas este proceso lleva a la ecuacin
de estado correspondiente con el sistema que se quiere describir. Con la solucin del modelo
matemtico se tiene la funcin de estado con la cual se puede realizar una simulacin y deter-
minar el grado de exactitud del modelo al sistema real.
El sistema al cual se desea identicar las variables es a un sistema rotacional.
Un sistema rotacional esta constituido de un rotor o eje impulsado mediante bobinas.
Para sistemas mecnicos de rotacin se cumple la segunda Ley de Newton de la siguiente forma:
M = J
Donde:
J Momento de inercia.
Aceleracin angular.
M Par, troqu o momento.
Puede formularse en funcin de la variacin angular (w) ya que =
dw
dt
M = J
dw
dt
.
Tambin en funcin de la variacin de la posicin angular ya que =
d
2

dt
2
M = J
d
2

dt
2
.
4.0.5.4. Programacin de aplicaciones.
Con la interfaz nativa de comunicacin con los puertos y el modelo matemtico de cada motor,
se procede a disear los algoritmos que permitan el control de dispositivos mecnicos conec-
tados a los puertos. Como la comunicacin se hace mediante secuencia de bits es necesario
denir 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 denir 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
CAPTULO 4. METODOLOGA.
Aplicacin 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 activacin de las
bobinas del motor y la secuencias deben estar diseadas de modo tal que se acoplen con los
tres modos de funcionamiento de los PaP unipolares 1.0.7.3 en la pgina 42 que son: Secuencia
normal, Wave Drive y Secuencia de Medio paso. Es aqu donde toma fuerza la utilizacin de
vectores y la programacin en JAVA utilizando los hilos como secuencia de control ya que
poseen control de velocidad y permiten el manejo sincrnico y asincrnico de la secuencia de
datos escrita en el puerto.
Para crear la aplicacin 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 mtodos de la clase Thread y lo que se
hace es sobre escribir el mtodo run, que es donde se escribe el cdigo encargado del clculo
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 mtodo run que es donde se
enva el dato calculado.
Este procedimiento de varios hilos uno para clculo del dato y otro de envi de dato es til para
el trabajo de dos motores de modo sincrnico asincrnico, esto se hace variando en cada clase
de calculo del dato a enviar para cada motor el tiempo del mtodo sleep el cual es el intervalo
de espera entre dato y dato, este mtodo es independiente de la clase en que se modique el
tiempo lo cual le da a la aplicacin la facilidad de cambiar la velocidad de envi de datos de
forma individual.
Aplicacin motor servo.
A diferencia del PaP este motor funciona mediante una seal que este dentro de su rango de
trabajo, esto facilita la programacin de la secuencia de datos que se escribe en el puerto ya que
slo 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 fcilmente con la utilizacin 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 duracin del
mismo en el puerto.
Para la implementacin de la aplicacion de control para los servos se crean tres hilos cada uno
extendido de la clase Thread y sobre escribiendo el mtodo run. El primer hilo determinal el
tiempo OFF, el segundo hilo controla el tiempo ON, la seal activa, y este lo hace por control
del primer hilo, cuando el primier hilo est en estado sleep, el segundo hilo enva una seal
durante el tiempo que se encuentre el primer hilo en estado sleep, cuando cambia el estado del
66
CAPTULO 4. METODOLOGA.
primer hilo el segundo hilo deteiene el envio de la seal. El tercer hilo es el encargado de enviar
el dato que esta generando el primer hilo, este hilo enva continuamente el dato generado por el
primer hilo.
4.0.5.5. Diseo tarjeta de enlace.
Por medio del paquete de diseo asistido ORCAD, el cual con el programa Layout permite hacer
el diseo 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 errnea los componentes y cuando se genere
la tarjeta se pueden tener cortos, lo primero es acomodar los componentes de acuerdo con
la disposicin de la entrada de datos y la salida de datos al motor, despus 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 conexin de conexin.
67
Captulo 5
RESULTADOS.
5.1. RUTINA ENCARGADA DE ESCRITURA Y LECTURA EN
PUERTO.
Mediante el uso de las JNI y la librera 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.
Descripcin del cdigo:
La programacin de la JNI:
package j npout 32 ;
p u b l i c c l a s s i o Po r t {
/ / d e c l a r a c i n de l mt odo n a t i v o j npout 32 . d l l
p u b l i c n a t i v e voi d Out32 ( s h o r t Por t Addr es s , s h o r t da t a ) ;
/ / s a l i d a de l v a l o r e s p e c i f i c o de l nombre de l pue r t o
p u b l i c n a t i v e s h o r t I np32 ( s h o r t Por t Addr 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 pue r t o
s t a t i c { Syst em . l o a d Li b r a r y ( " j npout 32pkg " ) ; }
/ / c a r ga de l a l i b r e r a j npout 32 . d l l pa r a e l pa que t e
}
68
CAPTULO 5. RESULTADOS. 5.2. RUTINAS DE CONTROL DE MOTOR PAP.
5.2. RUTINAS DE CONTROL DE MOTOR PaP.
Mediante la programacin de la JNI y la rutina de escritura en el puerto y la modelacin
matemtica se puede disear una algoritmo implementado en java que enve una secuencia de
pulsos por el puerto, el cual puede controlar desde el computador un motor PaP, los algoritmos
diseados son:
Movimiento segn ngulo de rotacin.
Movimiento segn el numero de vueltas a girar.
Movimiento segn distancia a recorrer.
Secuencia para control de dos motores.
Ubicacin de un punto en un espacio bidimensional.
La clase bsica que todas estas rutinas usan para el enlace con el puerto seleccionado es la
siguiente:
c l a s s p ue r t o
{
s t a t i c s h o r t da t o ;
s t a t i c s h o r t addr ;
s t a t i c pPor t p o r t ;
p u b l i c pu e r t o ( )
{
p o r t = new pPor t ( ) ;
addr =0x378 ; / / d i r e c c i n de l pue r t o que deseamos us a r
}
p u b l i c voi d e s c r i b e ( s h o r t da t o )
{
p o r t . o ut put ( addr , da t o ) ; / / l a f unc i n que toma e l da t o
a e n v i a r y e l p ue r t o
}
p u b l i c s h o r t l e e ( )
{
da t o =( s h o r t ) p o r t . i n p u t ( addr ) ; / / c a p t u r a e l da t o
que e s t a a c t ua l me nt e en e l pue r t o
r e t u r n ( da t o ) ;
69
5.2. RUTINAS DE CONTROL DE MOTOR PAP. CAPTULO 5. RESULTADOS.
}
}
5.2.1. Movimiento segn el ngulo de rotacin.
Para esta rutina es necesario conocer el ngulo de rotacin del motor el cual permite establecer
el algoritmo basado en modelo matemtico correspondiente, esta rutina funciona con un solo
hilo de control y un hilo de enlace de datos.
El cdigo es el siguiente:
c l a s s ang / / e s t a es l a c l a s e que r e t o r n a e l nmero
de pul s o s pa r a que e l mot or s e mueva e l ngul 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 Doubl e pul s os ;
s t a t i c i n t pul ;
s t a t i c doubl e ang ;
p u b l i c i n t c a l c ( doubl e angu ) / / e s t e mt odo de l a c l a s e
ang r e c i b e como pa r me t r o l a d i s t a n c i a a r e c o r r e r y
de t e r mi na e l nmero de pul s os pa 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 ( doubl e angu )
{
i f ( angu %0. 9==0) / / de t e r mi na s i e l v a l o r obt e ni do s e a c opl a
con l o s da t os dados s i no r e donde a r
{
pul s os =new Doubl e ( angu / 0 . 9 ) ;
pul =pul s os . i n t Va l u e ( ) ;
}
e l s e
{
pul s os =new Doubl e ( ang / 0 . 9 ) ;
pul =pul s os . i n t Va l u e ( ) ;
}
r e t u r n pul ;
}
}
70
CAPTULO 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
rotacin 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 botn de pausa.
Figura 5.1: Pantalla asignacin movimiento segn ngulo de rotacin.
Este es el funcionamiento interno del aplicativo:
Se inicia en la clase App2Frame es la encargada de la interface graca de recibir y trasformar
el dato que le llega por pantalla y se enva a la clase ang la cual en la funcin calc lo convierte
en pulsos, lo devuelve por medio de esta funcin a la variable vueltas para el ciclo de la accin
donde se envan los datos al puerto.
5.2.2. Movimiento segn distancia a recorrer.
En este caso es tambin es necesario conocer el ngulo de rotacin de un paso del motor y
mediante el clculo de recorrido de este ngulo de rotacin es posible establecer un algoritmo
71
5.2. RUTINAS DE CONTROL DE MOTOR PAP. CAPTULO 5. RESULTADOS.
que permita determinar la rotacin del motor.
c l a s s ang / / e s t a es l a c l a s e que r e t o r n a e l nmero de
pul s os pa r a que e l mot or s e 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 Doubl e pul s os ;
s t a t i c i n t pul ;
s t a t i c doubl e ang ;
p u b l i c i n t c a l c ( doubl e d i s t ) / / e s t e mt odo de l a c l a s e
ang r e c i b e como pa r me t r o l a d i s t a n c i a a r e c o r r e r y
de t e r mi na e l nmero de pul s os pa r a c o n s e g u i r l o
{
ang= d i s t / 0 . 2 5 ; / / 0. 25 es e l r a d i o de e l e j e de r o t a c i n
de l mot or 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 ngul o
i f ( ang %0. 9==0) / / de t e r mi na s i e l v a l o r obt e ni do s e a c opl a
con l o s da t os dados
{
pul s os =new Doubl e ( ang / 0 . 9 ) ;
pul =pul s os . i n t Va l u e ( ) ;
}
r e t u r n pul ;
}
p u b l i c i n t c a l c a n ( doubl e angu )
{
i f ( angu %0.9==0)
{
pul s os =new Doubl e ( angu / 0 . 9 ) ;
pul =pul s os . i n t Va l u e ( ) ;
}
e l s e
{
pul s os =new Doubl e ( angu / 0 . 9 ) ;
pul =pul s os . i n t Va l u e ( ) ;
}
r e t u r n pul ;
}
72
CAPTULO 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 botn de pausa.
Figura 5.2: Pantalla asignacin movimiento segn distancia a recorrer.
Se inicia en la clase App2Frame es la encargada de la interface graca de recibir y enviar el
dato de la distancia a la clase ang la cual trasforma el dato que le llega en la funcin calc y lo
convierte ngulo y luego en pulsos, lo devuelve por medio de esta funcin a la variable vueltas
para el ciclo de la accin donde se envan 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
5.2. RUTINAS DE CONTROL DE MOTOR PAP. CAPTULO 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 comunicacin con el
puerto.
Para el primer motor :
c l a s s h i l o 1 e xt e nds Thr ead i mpl ement s Runnabl e
{
p r i v a t e s h o r t da t oe [ ] ={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 dat o1 ;
p u b l i c h i l o 1 ( l ong 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
{
mi l l i s =m;
nanos =n ;
v u e l t =vu ;
a nt =0;
}
p u b l i c voi d d e t e n e r 1 ( ) / / e s t a f unc i n d e t i e n e e l h i l o de
c o n t r o l de da t os de l pr i me r mot or .
{
t r y {
s us pend ( ) ;
} c a t c h ( Se c u r i t y Ex c e p t i o n e ) {
e . p r i n t St a c k Tr a c e ( ) ;
}
}
p u b l i c voi d c o n t i n u a r 1 ( ) / / Es t a f unc 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 da t os de l pr i mer mot or
{
t r y {
r esume ( ) ;
} c a t c h ( Se c u r i t y Ex c e p t i o n e ) {
e . p r i n t St a c k Tr a c e ( ) ;
}
}
p u b l i c voi d r un ( ) / / Es t e es e l mt odo que s e r e e s c r i b e pa r a
e l e l c a l c u l o de l o s da t os
{
whi l e ( c o r r e r )
74
CAPTULO 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 ont =0; cont <da t oe . l e n g t h ; c ont ++)
{
dat o1=da t oe [ c ont ] ;
t r y {
s l e e p ( mi l l i s , nanos ) ;
} c a t c h ( I n t e r r u p t e d Ex c e p t i o n e ) {
e . p r i n t St a c k Tr a c e ( ) ;
}
}
}
}
}
p u b l i c s h o r t s ec1 ( ) / / Es t a f unc i n es l a que s e l l ama pa r a
poder e n v i a r e l da t o
{
r e t u r n ( dat o1 ) ;
}
}
Para el segundo motor.
c l a s s h i l o 2 e xt e nds Thr ead i mpl ement s Runnabl e
{
p r i v a t e s h o r t da t oe [ ] ={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 dat o1 ;
p u b l i c l ong mi 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 bool ean c o r r e r ;
p u b l i c h i l o 2 ( l ong m, i n t n , i n t vu ) / / a s i gna 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
{
mi l l i s =m;
nanos =n ;
v u e l t =vu ;
c o r r e r = t r u e ;
75
5.2. RUTINAS DE CONTROL DE MOTOR PAP. CAPTULO 5. RESULTADOS.
}
p u b l i c voi d Vmil ( l ong m) / / modi f i c a l a v e l o c i d a d en
mi l i s e gundos de e s t e h i l o
{
mi l l i s =m;
}
p u b l i c voi d Vna ( i n t n ) / / modi 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 s egundos
{
nanos =n ;
}
p u b l i c voi d Vuel ( i n t vu ) / / cambi a e l numero de c i c l o s de l
mot or 2
{
v u e l t =vu ;
}
p u b l i c voi d d e t e n e r 2 ( ) / / d e t i e n e e l pr oc e s o de l h i l o 2
{
t r y {
s us pend ( ) ;
} c a t c h ( Se c u r i t y Ex c e p t i o n e ) {
e . p r i n t St a c k Tr a c e ( ) ;
}
}
p u b l i c voi d c o n t i n u a r 2 ( ) / / r eanuda e l pr oc e s o de l h i l o 2
{
t r y {
r esume ( ) ;
} c a t c h ( Se c u r i t y Ex c e p t i o n e ) {
e . p r i n t St a c k Tr a c e ( ) ;
}
}
p u b l i c voi d r un ( ) / / e s t e e l e l mt odo que s e r e e s c r i b e
pa r a e l c l c u l o de l o s da t os
{
whi l e ( c o r r e r )
{
f o r ( i n t i =0; i <= v u e l t ; i ++)
76
CAPTULO 5. RESULTADOS. 5.2. RUTINAS DE CONTROL DE MOTOR PAP.
{
f o r ( i n t c ont =0; cont <da t oe . l e n g t h ; c ont ++)
{
dat o1=da t oe [ c ont ] ;
t r y {
s l e e p ( mi l l i s , nanos ) ;
} c a t c h ( I n t e r r u p t e d Ex c e p t i o n e ) {
e . p r i n t St a c k Tr a c e ( ) ;
}
}
}
}
}
p u b l i c s h o r t s ec2 ( ) / / mt odo a l que s e l e hace
l l amado pa r a o b t e n e r e l da t o .
{
r e t u r n ( dat o1 ) ;
}
}
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 botn de pausa.
77
5.2. RUTINAS DE CONTROL DE MOTOR PAP. CAPTULO 5. RESULTADOS.
Figura 5.3: Pantalla de control de dos motores.
El funcionamiento de este mucho ms complejo y se estructura diferente de los anteriores ya
que este incluye una ejecucin de procesos en paralelo, inicia con la clase PruebaFrame la cual
se encarga slo de la interface graca en donde mediante las clases Scrollbar se generan las
barras de cambio de velocidad las cuales envan la informacin 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 clculo de dato a enviar.
5.2.4. Ubicacin de un punto en un espacio bidimensional.
Para esta aplicacin se usa la rutina de control de dos motores y se le aade un algoritmo de
retroceso y por medio de la interfaz grca del usuario se le da el control bidimensional, el
cual esta restringido a valores positivos y es una representacin del estado fsico en el cual se
mueven los motores.
El control bidimensional es parte de la interfaz grca, este control se realiza con los mtodos
MouseListener y MouseMotionListener.
pa ne l . addMous eLi s t ener ( / / Se l e a d i c i o n a a l un pa ne l e l
78
CAPTULO 5. RESULTADOS. 5.2. RUTINAS DE CONTROL DE MOTOR PAP.
mt odo Mous eLi s t ener
new Mous eLi s t ener ( ) / / Lo que s e hace es s obr e e s c r i b i r e l mt odo
{
p u b l i c voi d mous ePr es s ed ( MouseEvent e ) / / r e g i s t r a e l l u g a r
donde s e haga c l i k
{
e . consume ( ) ;
x1 = e . get X ( ) ; / / c a p t u r a l a p o s i c i n en x .
y1 = e . get Y ( ) ; / / c a p t u r a l a p o s i c i n en y .
r unne r . d i s t ( x1 , y1 ) ; / / Se l e e nv a a l Hi l o que e s t a encar gado
de e n v i a r l o s da t os pa r a que e s t e l o e nv e a s us
r e s p e c t i v o s h i l o s .
}
p u b l i c voi d mouseEnt er ed ( MouseEvent e )
{
}
p u b l i c voi d mouseExi t ed ( MouseEvent e )
{
}
} ) ;
pa ne l . addMous eMot i onLi s t ener ( / / Se a d i c i o n a e l
mt odo Mous eMot i onLi s t ener
new Mous eMot i onLi s t ener ( ) / / Lo que s e hace es s obr e
e s c r i b i r e l mt odo
{
p u b l i c voi d mouseDragged ( MouseEvent e ) / / r e g i s t r a e l por
donde s e va opr i mi endo c ont i nua me nt e
{
e . consume ( ) ;
x2 = e . get X ( ) ; / / Se c a p t u r a l a p o s i c i n en x
y2 = e . get Y ( ) ; / / Se c a p t u r a l a p o s i c i n en y
r unne r . d i s t ( x2 , y2 ) ; / / Se l e e nv a a l Hi l o que e s t a encar gado
de e n v i a r l o s da t os pa r a que e s t e l o e nv e a s us
r e s p e c t i v o s h i l o s .
}
p u b l i c voi d mouseMoved ( MouseEvent e ) / / r e g i s t r a por
donde s e mueve e l mouse
{
79
5.2. RUTINAS DE CONTROL DE MOTOR PAP. CAPTULO 5. RESULTADOS.
}
p u b l i c voi d mouseEnt er ed ( MouseEvent e )
{
}
p u b l i c voi d mouseExi t ed ( MouseEvent e )
{
}
} ) ;
5.2.4.1. Funcionamiento.
Mediante la seleccin de un punto en la pantalla el programa enva esta informacin y la con-
vierte en el nmero de pulsos para el movimiento de los motores y que estos se ubique en la
posicin 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 botn de pausa.
Figura 5.4: Pantalla de ubicacin en un punto bidimensional.
El de este es parecido al anterior y es una recopilacin de rutinas anteriores, inicia con la clase
80
CAPTULO 5. RESULTADOS. 5.3. RUTINA PARA CONTROL DE UN SERVO MOTOR.
EspacialFrame la cual se encarga slo de la interface graca en donde mediante las clases
Scrollbar se generan las barras de cambio de velocidad y la combinacin de las clases Panel
con MouseListener se enva la informacin a la clase prog de la ubicacin 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 clculo de dato a enviar.
5.3. RUTINA PARA CONTROL DE UN SERVO MOTOR.
Dado que el movimiento del servo motor se requiere de una seal activa de determinada am-
plitud
1
y el modelo matemtico de este tipo de dispositivo es lineal, lo cual facilita su pro-
gramacin, y que se puede enviar una seal activa por el puerto de una determinada amplitud,
permite disear un programa en java que controle en servo dependiendo de los rangos de seales
de los mismos.
El programa esta constituido por tres hilos de control, el hilo general que es el encargado de
enviar la informacin al puerto, los otros dos hilos son lo que determinan la amplitud de la seal
activndose y desactivndose dependiendo del estado del otro hilo.
c l a s s h i l o 1 e xt e nds Thr ead i mpl ement s Runnabl e / / Cl as 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 unne r ;
p u b l i c l ong mi l l i ;
p u b l i c s h o r t dat o1 ;
p u b l i c h i l o 1 ( l ong m) / / Co n s t r u c t o r de l a c l a s e
{
mi l l i =2;
r unne r =new h i l o 2 (m) ;
}
p u b l i c voi d r un ( )
{
r unne r . s t a r t ( ) ;
whi l e ( t r u e )
{
i f ( r unne r . g e t S t a t e ( ) == Thr ead . S t a t e . TIMED_WAITING)
/ / Si e l o t r o h i l o e s t dor mi do e s t e h i l o
1
La cual depende del el fabricante.
81
5.3. RUTINA PARA CONTROL DE UN SERVO MOTOR. CAPTULO 5. RESULTADOS.
e nv a l a s e a l a c t i v a
{
dat o1 =0x01 ;
t r y {
s l e e p ( mi l l i ) ;
} c a t c h ( I n t e r r u p t e d Ex c e p t i o n e ) {
e . p r i n t St a c k Tr a c e ( ) ;
}
}
e l s e / / en cas o c o n t r a r i o apaga l a s e a l a c t i v a
{
dat o1 =0x00 ;
t r y {
s l e e p ( mi l l i ) ;
} c a t c h ( I n t e r r u p t e d Ex c e p t i o n e ) {
e . p r i n t St a c k Tr a c e ( ) ;
}
}
}
}
p u b l i c s h o r t da t oe ( )
{
r e t u r n ( dat o1 ) ;
}
}
c l a s s h i l o 2 e xt e nds Thr ead i mpl ement s Runnabl e
/ / Cl as e que c o n t r o l a e l encendi do de l a s e a l
{
p u b l i c l ong mi l l i ;
p u b l i c h i l o 2 ( l ong m) / / Co n s t r u c t o r de l a c l a s e
{
mi l l i =m;
}
p u b l i c voi d r un ( )
{
whi l e ( t r u e )
{
t r y {
82
CAPTULO 5. RESULTADOS. 5.3. RUTINA PARA CONTROL DE UN SERVO MOTOR.
s l e e p ( mi l l i ) ;
} c a t c h ( I n t e r r u p t e d Ex c e p t i o n e ) {
e . p r i n t St a c k Tr a c e ( ) ;
}
}
}
}
c l a s s e s c r i b i r e xt e nds Thr ead i mpl ement s Runnabl e / / Cl as e
que e nv a l a s e a l a l pue r t o .
{
p r i v a t e p ue 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) / / Co n s t r u c t o r de l a c l a s e e l que
gener a e l e n l a c e con e l pue r t o
{
h1=new h i l o 1 (m) ;
l p t =new p ue r t o ( ) ;
}
p u b l i c voi d r un ( )
{
h1 . s t a r t ( ) ;
whi l e ( t r u e )
{
l p t . e s c r i b e ( h1 . da t oe ( ) ) ;
}
}
}
5.3.0.2. Funcionamiento.
Para este motor, dada la condicin de no poder hacer que se devuelva, solo cuenta con la
variacin 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 botn de pausa.
Figura 5.5: Pantalla rutina de control de servo motor.
83
5.4. VENTAJAS Y DESVENTAJAS DE LOS MOTORES PASO A PASO Y LOS
MOTORES SERVO. CAPTULO 5. RESULTADOS.
5.4. VENTAJAS Y DESVENTAJAS DE LOS MOTORES PASO A
PASO Y LOS MOTORES SERVO.
5.4.1. Motor paso a paso.
5.4.1.1. Ventajas.
Puesto que la operacin del motor paso a paso se sincroniza con las seales de pulso del coman-
do generadas de los pulsos en enviados por los puertos, son convenientes para el control exacto
de su rotacin.
Se puede controlar fcilmente su velocidad desde el computador.
Es fcil de invertir el sentido de rotacin del motor paso a paso.
Bajo costo.
5.4.1.2. Desventajas.
El ujo actual de un driver a la bobina del motor no se puede aumentar o disminuir durante
la operacin. Por lo tanto, si el motor se carga con una carga ms pesada que la caracterstica
diseada del esfuerzo de torsin del motor, saldr de paso con los pulsos.
El motor paso a paso produce mas ruido y vibracin que los servos.
El motor paso a paso no se puede utilizar para tareas de rotacin 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 fcil manejo desde el computador.
Bajo consumo de energa.
2
sin embargo, una carga demasiado pesada puede causar un error.
84
CAPTULO 5. RESULTADOS. 5.5. MODELO MATEMTICO.
5.4.2.2. Desventajas.
Puesto que el servomotor intenta rotar segn los pulsos del comando, pero se retrasa, no es
conveniente para el control de la precisin de la rotacin.
Costo alto.
Cuando est parado, el rotor del motor se contina moviendo hacia adelante y hacia atrs un
pulso, de modo que no sea conveniente si usted necesita prevenir la vibracin.
5.4.3. Comparacin de motor paso a paso y motor servo.
Cuadro 5.1: Caractersticas comparativas de motor PaP y servo motor.
5.5. MODELO MATEMTICO.
El comportamiento fsico del sistema mecnico de los motores paso a paso esta basado en el
tipo la secuencia de seales que se le administre y el servo en el tiempo que se mantenga una
seal activa, ese pulso o seal administrada hace que el motor gire en un ngulo especicado
por el fabricante.
85
5.5. MODELO MATEMTICO. CAPTULO 5. RESULTADOS.
5.5.1. Descripcin fsica motor PaP.
Al recibir una secuencia de seales el motor PaP, este realiza un desplazamiento el cual se
mover un paso completo o medio paso, la distancia del paso depender del ngulo mnimo del
motor.
5.5.2. Descripcin fsica servo motor.
Al recibir una seal de una amplitud que este entre los rangos de funcionamiento del servo este
realiza un desplazamiento dependiendo de el tiempo de amplitud de la seal.
5.5.3. Descripcin matemtica.
Las variables que intervienen en el proceso de movimiento del motor son:
Momento de inercia.
Amortiguacin mecnica.
Constante elstica de la barra.
Momento de torsin aplicado.
Inductancia
Resistencia.
Recproco de la capacidad, llamado elastancia.
Tensin aplicada.
El diagrama de estados del sistema de control del motor es:
La interaccin de las variables elctricas se da mediante las ecuaciones de las leyes de Kirchhoff
:
L
d
2
q
dt
2
+R
dq
dt
+
1
C
q = E (t)
donde q(t) es la carga instantnea del capacitor y E (t) es el voltaje aplicado.
La interaccin de las variables mecnicas son:
I
d
2

dt
2
+c
d
dt
+k = T (t)
donde (t) representa la magnitud de la torsin.
86
CAPTULO 5. RESULTADOS. 5.5. MODELO MATEMTICO.
5.5.3.1. Motor PaP
El modelo matemtico de este motor esta afectado por las siguientes variables: el voltaje con-
stante que induce la rotacin del rotor el cual se enclava en la posicin en donde se activen las
bobinas, este funcionamiento lo que afecta el la velocidad de cambio entre bobina y bobina. La
secuencia de activacin, esta secuencia designa el ngulo de rotacin 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 rotacin, 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 necesitaran 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 matemtico 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 programacin,
luego para conseguir un ngulo de torcin estar dado por la siguiente frmula:
t = +

100
Donde t es el tiempo de duracin de la seal en milisegundos.
es la duracin de seal que pone al servo en posicin inicial 0.
es el ngulo de torcin en grados.
87
5.6. TARJETA DE ENLACE. CAPTULO 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
CAPTULO 5. RESULTADOS. 5.7. FUTURAS MEJORAS.
1. Se enva una seal desde el puerto a la tarjeta, la cual entra por el buffer.
2. La seal sale del buffer hacia la resistencia y de la resistencia al transistor.
3. El transistor al recibir la seal se activa y enva 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 integracin la
integracin con los puertos USB y el diseo de los protocolos de comunicacin utilizando los
mismos.
La visualizacin 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 estn ubicando los motores, hacer
mas interactivo el programa.
89
Captulo 6
CONCLUSIN.
1. Aunque los sevomotores tienen una mayor potencia, para el tamao 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 rotacin e incluso cambiando el intervalo de las seales de activacin lle-
varlo a su mxima velocidad, son motores de gran versatilidad utilizados en todo tipo de
dispositivos desde robots hasta unidades de CD recomendables para cualquier tarea de
precisin.
2. El resultado nal no solo es de componentes electrnicos, si no de la combinacin de la
programacin avanzada y la modelizacin matemtica. En donde la electrnica nos brin-
da la posibilidad de enlazar los motores con el computador, la modelizacin matemtica
nos brinda una descripcin del funcionamiento en forma matemtica y as establecer que
factores afectan el sistema y como a partir de estos hacerlo computable, la programacin
da la posibilidad de controlar y manipular los motores a nuestra voluntad mediante lo
visualizado en el modelo matemtico que permiti crear las rutinas que son de gran fun-
cionalidad debido a su diseo y a sus posibles mejoras.
3. Aunque la mecnica de estos motores sea sencilla al combinarlos para tareas diversas se
convierte en sistemas de gran complejidad, versatilidad y de precisin que junto con los
programas controladores y un sistema funcional y prctico que facilita al usuario nal
realizar tareas de precisin que manualmente no daran los resultados esperados o de
generacin de rutinas las cuales manualmente seria un proceso largo y tedioso.
4. Con la combinacin de las areas de la electrnica de los sistemas y la matemtica de
una forma tan bsica, si se profundiza en esta combinacin los resultados obtenidos sern
90
CAPTULO 6. CONCLUSIN.
grandiosos, dispositivos que realicen tareas ms complejas pero que su valor radique en
la sencillez de los mismos.
91
ANEXOS
Anexo1.
Diagrama causa-efecto del proceso de implementacin del sistema.
92
Bibliografa
[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 robtica. McGraw Hill. Madrid, Espaa, 1997.
[4] H. M. Deitel. Java How to Program. Editorial Prentice Hall, New Jersey, United States,
sexta edicin edition, 2004.
[5] Electrnica 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. Dinmica de Sistemas y Control. Editorial Thomson Learning,
Mxico, 2001.
[8] Arthur Eugene Fitzgerald. Electric machinery. McGraw-Hill, 2003.
[9] Juan Martn Garca. Teora y ejercicios prcticos de Dinmica de Sistemas. Sysware,
2003.
[10] Ogata Katsuhiko. Dinmica de sistemas. Editorial Prentice-Hall, Mxico, 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
BIBLIOGRAFA BIBLIOGRAFA
[14] Virgilio Gmez 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
A J i Al j d S l P h Autor:JavierAlejandroSalamancaPachn
Trabajodegradoparaoptaraltitulode:
InformticoMatemtico.
Trabajo dirigido por:
Ing. J ess Daza Coordinador centro de
microscopia electrnica. Pontificia Universidad p
J averiana Facultad de Ciencias.
INTRODUCCIN
Conelusodeloslenguajes Conelusodeloslenguajes
computacionalescomojava,
desarrolladoresmatemticosy desarrolladoresmatemticosy
mediantelaprogramacinde
t l protocolos
loscualespermitenenlazarlasaliday
entradadedatosdelospuertos entradadedatosdelospuertos
paraleloyseriallocualhaceposible
enviarorecibirpaquetesdedatoso
sealesactivaspormediodeestos
paraelcontroldesistemasexternos.
OBJETIVOS
Objetivo general.
E t bl t d d j d Establecer un mtodo de manejo de
perifricos por puertos del computador.
D ll i l t ft Desarrollar e implementar un software
capaz de realizar tareas de precisin 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.
Objetivos especficos.
Implementar los protocolos para envi de Implementar los protocolos para envi de
seales desde los puertos del computador.
Determinar el modelo matemtico del
sistema mecnico del motor servo y paso a sistema mecnico del motor servo y paso a
paso.
Manejar secuencia de informacin de
variables que intervienen en el control. q
Disear e implementar la interface de Disear e implementar la interface de
conexin entre el puerto y el motor.
Desarrollar algoritmos computacionales
encargados del manejo controlado de los encargados del manejo controlado de los
motores.
Con el auge en las ltimas dcadas de la
tecnologa en el mundo surge la tecnologa en el mundo, surge la
necesidad de actualizar y obtener las
herramientasadecuadaspara competir herramientas adecuadas para competir
a nivel tecnolgico en el rea industrial
como en el rea de la investigacin como en el rea de la investigacin
cientfica, de una forma econmica y
que cumpla con los estndares mnimos q p
establecidos.
El problema del desarrollo de nuestras
tecnologas radica, en el
d i i t d h i t desconocimiento de herramientas que
el mismo computador contiene.
MARCOTEORICO
Puertoparalelo. Puertoparalelo.
CadapuertoparaleloposeeunadireccinBase,esdecir,una p p p , ,
direccinconlaqueseidentificaalpuerto,ysegneltipo
depuertodequesetrate,podrtenerademsotras
direcciones Actualmentelasdireccionespordefectopara direcciones.Actualmentelasdireccionespordefectopara
lospuertossonlassiguientes:
Puerto Direccinbase
LPT1 0x378
LPT2 0x278
LPT BC LPT3 0x3BC
Tiposdepuerto Tiposdepuerto.
SPPEselpuertomssencillo tienetres SPP.Eselpuertomssencillo,tienetres
busesoregistros,enladireccinBase:busde
datos,esteesde8bitsytodossuspinesson datos,esteesde8bitsytodossuspinesson
salidas
Bidireccional(PS/2).Estepuertotienenlas
l l mismascaractersticasqueelSPPconla
diferenciaqueelbusdedatoses
bidi i l d i bi d l bidireccional,esdecirquecambiandoel
estadodealgunosbitsdelbusdecontrolse
puedeactuarsobreelbusdedatoshaciendo puedeactuarsobreelbusdedatoshaciendo
quetrabajeensutotalidadcomoentradaso
comosalidas comosalidas
EPP(EnhacedParallelPort).Estetipode
puertotienelacaractersticadesertanrpido
comoelbusdelsistema,alcanzando
l id d d f i d h Mb velocidadesdetransferenciadehasta1Mb
porsegundo
ECP(ExtendedCapabilitiesPort).Puedeal
igualqueelEPP,escribiryleeralavelocidad
delBus.
P t i l Puertoserial.
ElpuertoseriaoRS232esunestndarpara
realizarlatransmisindedatos.ElRS232
consisteenunconectortipoDB25de25
pines,aunqueesnormalencontrarlaversin
d i DB de9pinesDB9.
L l l b j Lassealesconlasquetrabajaestepuerto
sondigitales,de12V(0lgico)y12V(1
lgico) paralaentradaysalidadedatos ya lgico),paralaentradaysalidadedatos,ya
lainversaenlassealesdecontrol.Elestado
dereposoenlaentradaysalidadedatoses dereposoenlaentradaysalidadedatoses
12V.
Enunordenadorpuedehabervariospuertos p p
series,alosquenormalmenteseles
denominaCOM1,COM2,COM3,por
defectoelCOM1sueleperteneceralratn
usandosteelIRQ4,aunquetambines
posibleencontrarleenelCOM2,asquelo
normalesencontrarnoslibreelpuertoserie
d lCOM tili d lIRQ delCOM2utilizandoelIRQ3.
Motorpasoapaso. Motorpasoapaso.
Adif i d l d i Adiferenciadelosmotoresdecorriente
continua(CC)quegiraatodoloquedan
cuandosonconectadosalafuentede cuandosonconectadosalafuentede
alimentacin,losmotorespasoapaso(PaP)
solamentegiranunngulodeterminado los solamentegiranunngulodeterminado,los
CCslodisponendedosterminalesde
conexin,mientraslosPaP puedentener4,5 conexin,mientraslosPaP puedentener4,5
6,segneltipodemotorquesetrate
Porotroladolosmotoresdecorriente
continuanopuedenquedarenclavadosen
unasolaposicin,losmotorespasoapaso
tienenlaposibilidaddequedarenclavadosen
i i bi l lib unaposicinobientotalmentelibres.
Principiodefuncionamiento. Principiodefuncionamiento.
El i id b Elmotorestconstituidoporunrotorsobre
elquevanaplicadosdistintosimanes
permanentesyporunciertonmerode permanentesyporunciertonmerode
bobinasexitadoras,bobinasensuestator.
Lasbobinassonpartedelestatoryelrotores Lasbobinassonpartedelestatoryelrotores
unimnpermanente.
Bipolar.
Estostienen,generalmente,cuatrocablesde
salida.Necesitanciertostrucosparaser
controlados,debidoaquerequierendel
cambiodedireccindelflujodecorrientea
travsdelasbobinasenlasecuencia
apropiadapararealizarunmovimiento.
U i l Unipolares.
Estosmotoressuelentener65cablesde
l d d d d d d salida,dependiendodesuconexionado
interno.Estetiposecaracterizaporserms
i l d t l simpledecontrolar.
Secuenciaparamanejar Secuenciaparamanejar
motorespasoapaso
bi l bipolares.
A B C D
+V V +V V
+V V V +V
V +V V +V
V +V +V V
Secuenciaparamanejar Secuenciaparamanejar
motorespasoapaso
unipolares.
SecuenciaNormal SecuenciaNormal.
Conestasecuenciaelmotoravanzaunpaso
porvezdebidoaquesiemprehaydos porvezdebidoaquesiemprehaydos
bobinasactivadas,seobtieneunaltotorque
depasoyderetencin depasoyderetencin.
PASO BOBINAA BOBINAB BOBINAC BOBINAD
1 ON ON OFF OFF 1 ON ON OFF OFF
2 OFF ON ON OFF
3 OFF OFF ON ON
ON OFF OFF ON 4 ON OFF OFF ON
S i d l i d i Secuenciadeltipowavedrive.
Enestasecuenciaseactivaslounabobinaa
l l b d lavez.Enalgunosmotoresestobrindaun
funcionamientomssuave.Lacontrapartida
l t l b bi ti d l esquealestarslounabobinaactivada,el
torquedepasoyretencinesmenor.
PASO BOBINAA BOBINAB BOBINAC BOBINAD
1 ON OFF OFF OFF
2 OFF ON OFF OFF
3 OFF OFF ON OFF
4 OFF OFF OFF ON
S i d l i di Secuenciadeltipomediopaso.
Enestasecuenciaseactivanlasbobinasdetal
f d b d l l formadebrindarunmovimientoigualala
mitaddelpasoreal.Paraelloseactivan
i b bi l l primero2bobinasyluegoslo1yas
sucesivamente.
PASO BOBINAA BOBINAB BOBINAC BOBINAD
1 ON OFF OFF OFF
2 ON ON OFF OFF
3 OFF ON OFF OFF
4 OFF ON ON OFF 4 O O O O
5 OFF OFF ON OFF
6 OFF OFF ON ON
OFF OFF OFF ON 7 OFF OFF OFF ON
8 ON OFF OFF ON
ServoMotores. ServoMotores.
L i i ld d Losservossonuntipoespecialdemotorde
C.C.quesecaracterizanporsucapacidad
paraposicionarsedeformainmediataen paraposicionarsedeformainmediataen
cualquierposicindentrodede suintervalo
deoperacin deoperacin.
UnServoesundispositivopequeoquetiene
unejederendimientocontrolado.Estepuede
ll d i i l fi serllevadoaposicionesangularesespecficas
alenviarunasealcodificada.Contaldeque
unasealcodificadaexistaenlalneade unasealcodificadaexistaenlalneade
entrada,elservomantendrlaposicin
angulardelengranaje Cuandolaseala angulardelengranaje.Cuandolaseala
codificadacambia,laposicinangulardelos
pionescambia. pionescambia.
Funcionamientodeunservo. Funcionamientodeunservo.
Elmotordelser otienealg noscirc itosde Elmotordelservotienealgunoscircuitosde
controlyunpotencimetroestaesconectada
alejecentraldelservomotor alejecentraldelservomotor.
METODOLOGA
Lasfasespropuestasparaelestudio as ases p opuestas pa a e estud o
metodolgicoson:lainvestigacin
delfuncionamientodelasJNIylos delfuncionamientodelasJNIylos
paquetesjavacomm,analizarla
t t i d l t estructuramecnicadelosmotores
pasoapasoparadeterminarlas
instruccionesquemuevenelmotor,
realizarelmodelamiento matemtico
delsistemamecnicodelmotor
establecerunmtododecomunicacin estab ece u todo de co u cac
conlospuertosparaleloyserialque
permiteimplementarunarutinade permiteimplementarunarutinade
enlaceparaentradaysalidadedatos
t d l t di atravsdelospuertos,disearun
algoritmodecomunicacinatravs
delospuertosparahacercontrolen
dispositivosexternos. p
Procedimiento.
Elprogramaqueadministraelmovimientode p g q
motoresdebecontemplar:
1. Unaimplementacindel p
programadecomunicacin
mediantelospuertosparaleloo mediantelospuertosparaleloo
serial.
2. Activacindebobinasycontrol
depulsoparamotorPaP yservo depulsoparamotorPaP yservo
correspondientemente.
3. Elaboracindelmodelo 3
matemticodemotortipopasoa
pasoyservo pasoyservo.
4. Simulacindelmodelo 4
matemtico.
5 Implementacindelprograma 5. Implementacindelprograma
quecontrolaelmotordesdeel
computador.
1. Aunquelossevomotores tienenuna 1. Aunquelossevomotores tienenuna
mayorpotencia,paraeltamaoqueestos
tienen,algunoscarecendelaposibilidad tienen,algunoscarecendelaposibilidad
decambiarsusentidoderotacin,aun
assontilesparatrabajospesadosenlos assontilesparatrabajospesadosenlos
queserequierandevelocidadypotencia.
LosmotoresPaP tienenunagranventaja g j
queradicaensumaneradefuncionarya
queesmuysencillocambiarelsentidode q y
rotacineinclusocambiandoelintervalo
delassealesdeactivacinllevarloasu
mximavelocidad,sonmotoresdegran
versatilidadutilizadosentodotipode p
dispositivosrecomendablesparacualquier
tareadeprecisin. p
2. Elresultadofinalnosoloesde
componenteselectrnicos sinodela componenteselectrnicos,sinodela
combinacindelaprogramacin
avanzadaylamodelizacinmatemtica avanzadaylamodelizacinmatemtica.
Endondelaelectrnicanosbrindala
posibilidaddeenlazarlosmotoresconel
computador,lamodelizacinmatemtica
nosbrindaunadescripcindel
funcionamientoenformamatemticayas
establecerquefactoresafectanelsistemay
comoapartirdeestoshacerlocomputable
laprogramacindalaposibilidadde
controlarymanipularlosmotoresa
nuestravoluntadmediantelo
visualizadoenelmodelomatemtico
quepermiticrearlasrutinasqueson
degranfuncionalidaddebidoasu
diseoyasusposiblesmejoras.
3. Aunquelamecnicadeestosmotores
seasencillaalcombinarlosparatareas p
diversasseconvierteensistemasde
grancomplejidad,versatilidadyde g p j , y
precisinquejuntoconlosprogramas
controladoresyunsistemafuncional y
yprcticoquefacilitaalusuariofinal
realizartareasdeprecisinque
manualmentenodaranlosresultados
esperadosodegeneracinderutinaslas
l l cualesmanualmenteseriaunproceso
largoytedioso.
4. Conlacombinacindelasareasdela 4. Conlacombinacindelasareasdela
electrnicadelossistemasyla
matemticadeunaformatanbsica,si matemticadeunaformatanbsica,si
seprofundizaenestacombinacinlos
resultadosobtenidosserngrandiosos resultadosobtenidosserngrandiosos
dispositivosquerealicentareasms
complejasperoquesuvalorradiqueenla complejasperoquesuvalorradiqueenla
sencillezdelosmismos.
RECOMENDACIONES
U d l j l d li l Unadelasmejorasqueselepuederealizaral
programayaldispositivoeslaintegracinla
i t i l t USB ldi integracinconlospuertosUSByeldiseo
delosprotocolosdecomunicacinutilizando
l i losmismos.
Lavisualizacinenelaplicativobidimensionalno
veresapantallagrissinopoderenlazarlasalida veresapantallagrissinopoderenlazarlasalida
devideoyeneseespaciovisualizarelpunto
dondeseestnubicandolosmotores hacermas dondeseestnubicandolosmotores,hacermas
interactivoelprograma.

You might also like