0 calificaciones 0% encontró este documento útil (0 votos) 20 vistas 158 páginas Servos 5
El documento presenta una tesis doctoral sobre la implementación de un sistema posicional utilizando motores paso a paso y servo controlados por computadora, escrita por Javier Alejandro Salamanca Pachón en 2009. Se detalla el uso de lenguajes de programación como Java para establecer comunicación entre dispositivos y puertos de computadora, así como la formulación de modelos matemáticos para simular sistemas físicos. La investigación incluye un marco teórico, metodología, resultados y conclusiones sobre el control de motores y su aplicación en sistemas automatizados.
Título y descripción mejorados con IA
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido,
reclámalo aquí .
Formatos disponibles
Descarga como PDF o lee en línea desde Scribd
Ir a elementos anteriores Ir a siguientes elementos
Guardar SERVOS_5 para más tarde
FORMATO 2 (Anexo No.3)
FORMULARIO DE LA DESCRIPCION DE LAT!
GRADO
'$ DOCTORAL. 0 DEL TRABAJO DE.
‘THTULO COMPLETO DE LA TESIS DOCTORAL © TRABAJO DE GRADO:
Implementaci6n de un sistema posicional con motores tipo paso a
paso y servo controlados por computador.
AUTOR © AUTORES
Tpellidos Completos ‘Nomibres Completos
Salamanca Pachon Javier Alejandro
DIRECTOR (ES) TESIS DOCTORAL O DEL TRABAJO DE GRADO.
‘Apellidos Completos Nombres Completos
Dara Figoeredo [Jesus
‘TRABAJO PARA OPTAR AL TITULO DE
Informético Matematica
FACULTAD: Ciencias Basicas
PROGRAMA: Carrera X Licenciatura__Especializacién _Maestria__ Doctorado.
NOMBRE DEL PROGRAMA:
Informatica Mat
NOMBRES Y APELLIDOS DEL DIRECTOR DEL PROGRAMA:
Patricia A. Hernandez Romero
CIUDAD: BOGOTA _ANO DE PRESENTACION DEL TRABAJO DE GRADO: 2009
NUMERO DE PAGINAS 95
‘TIPO DE ILUSTRACION
Tustraciones
“Tablas, grificos y diageamas
Nameto de archivos dentro del CD (En cxso de incluirse un CD-ROM diferente al trabsjo de grado):
PREMIO 0 DISTINCION (Ex cede or LAUREADAS o oer ana mes clDESCRIPTORES © PALABRAS CLAVES EN ESPANOL E INGLES: Son los términos que
definen los temas que identifican el contenido. (Fn ca de duda para designar esos desrptores, se comida
consular con la Unidad de Procsns Técnicas de la Biblioteca General en el core bilintca(@javerianatd.c, donde st
Jes renter).
ESPANOL INGLES
Motor paso a paso Steper motor
Motor servo
Interface oativa de ava java Native Interface
Puestos Pours
Dinimica de sistemas System Dynamics
RESUMEN DEL CONTENIDO EN ESPANOL E INGLES: (inarn0 250
eres)
alabras - 1530
Jos puertos del computador. Las variables estableccas en el modelo matemitico junto al eontral
ser versity cobusto es de fieil mancio, se puede eonfigurar para zealizar todo tipo de tareas, v
‘pam diferentes tipos de dispositivos que se le conecten,
With the use of computer languages like Java, developers and through mathematica
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 10 control external systems, With the mathematical model
8.4 lepresentation of physical ystems thar can simulate che design and implementation cheough
software variable thar affect a device and through the design and implementation
software establishes communication with the extemal 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
‘e-versstile and robust it is exsy co use, can be configured to perform all kinds of tasks, and
for different gypes of devices connected toiIMPLEMENTACION DE UN SISTEMA POSICIONAL
CON MOTORES TIPO PASO A PASO Y SERVO
CONTROLADOS POR COMPUTADOR.
JAVIER ALEJANDRO SALAMANCA PACHON.
TRABAJO DE GRADO
Presentado como requisite parcial
Para optar al titulo de
INFORMATICO MATEMATICO
PONTIPICIA UNIVERSIDAD JAVERIANA
FACULTAD DE CIENCIAS
CARRERA DE INFORMATICA MATEMATICA
Bogoté, D.C.
Julio 2009NOTA DE ADVERTENCIA,
Articulo 23 de la Resoluci6n N° 13 de Julio de 1946
“La Universidad no se hace responsable por los conceptos emitidos por sus alumnos en sus
trabajos de tesis. Solo velaré por que no se publique nada contrario al dogma y a la moral
catélica y por que las tesis no contengan ataques personales contra persona alguna, antes bien
se vea en ellas el anhelo de buscar la verdad y Ia justicia”.IMPLEMENTACION DE UN SISTEMA POSICIONAL
CON MOTORES TIPO PASO A PASO Y SERVO
CONTROLADOS POR COMPUTADOR.
JAVIER ALEJANDRO SALAMANCA PACHON,
APROBADO.
Testis Daza Figueredo.
Director.
Fernando Novoa, Orlando Acevedo.
Jurado. Jurado.IMPLEMENTACION DE UN SISTEMA POSICIONAL
CON MOTORES TIPO PASO A PASO Y SERVO
CONTROLADOS POR COMPUTADOR.
JAVIER ALEJANDRO SALAMANCA PACHON.
APROBADO.
Ingrid Schuler, Ph.D. Patricia A. Hernandez Romero, MSc.
Decano Académico. Director de carrera.Indice general
1, MARCO TEORICO.
10.1
1.0.2,
1.04.
1.05,
1.06.
1.07.
Resefia histori
10.1.1, Java,
[Link]. Motores eléctricos
[Link]. Dinémica de sistemas.
Dindmica de sistemas.
[Link]. (Quées la dinémica de sistemas?.
[Link]. Construccién de modelos en la dinamica de sistemas.
API de comunicaciones.
1.03.1. Caracteristicas del API de comunicaciones.
LaJNL
Arquitectura puerto paralelo. .
1.05.1. Tipos de puerto,
[Link], Deteccién del tipo de puerto.
[Link]. Puerto paralelo a nivel fisico.
[Link], Intetrupciones.
105.5
les DMA.
1.05.6. El puerto y su hardware.
Arquitectura puerto serial
[Link], Estructura de datos del puerto serie RS-232.
Arquitectura motor paso a paso.
16
16
36
36
37
40108,
1.09,
1.0.10.
[Link]
10.7.2.
[Link],
Principio de funcionamiento.
Secuencia para manejar motores paso a paso bipolares.
Secuencia para manejar motores paso a paso unipolares.
Servo Motores.
108.1
Funcionamiento de un servo,
Sistemas Eléctricos.
10.9.1
[Link].
Elementos de los circuitos eléctricos.[8]
Leyes de los circuitos eléctricos.[8] .
Modelos matemiticos.
[Link],
[Link],
[Link],
10.104,
10.105.
10.106.
[Link],
Elaboracién de modelos mateméticos (modelado matemético).
‘Simplicidad contra exactitud.
Observaciones sobre la elaboracién de modelos mateméticos.
Procedimiento para la elaboracin de modelos matemsticos.(6]
Etapas del modelo [10]
Sistemas lineales.
Sistemas no lineales.
1.0.11. Diagrams de causa y efecto.
2, FORMULACION Y JUSTIFICACION.
2.1, Formulacién,
211
Justificacién,
3. OBJETIVOS.
3.0.2. Objetivo general
3.03.
Objetivos especificos. .
4, METODOLOGIA.
4.0.4, Procedimiento.
405.
Desarrollo metodolégice.
405.1
Anilisis de causas.
6
40
42
42
46
61
61
61
62
62
63
64.05.2. LaINI
[Link]. Elmodelo matematico.
[Link]. Programacién de aplicaciones.
4.05.5. Disefto tarjeta de enlace.
5. RESULTADOS.
5.1
52.
53.
55.
RUTINA
RUTINAS DE CONTROL DE MOTOR Pa.
5.2
5.2.2.
5.23,
Movimiento segtin el éngulo de rotacién.
[Link]. Funcionamiento,
Movimiento segtin distancia a recorrer.
[Link]. Funcionamiento.
Secuencia para el control de dos motores.
[Link]. Funcionamiento,
Ubicacién de un punto en un espacio bidimensional
[Link], Funcionamiento,
RUTINA PARA CONTROL DE UN SERVO MOTOR.
[Link]. Funcionamiento.
VENTAJAS Y DESVENTAJAS DE LOS MOTORES PASO A PASO Y LOS
MOTORES SERVO,
SA.
3.4.2.
5.43,
Motor paso a paso.
$4.11. Ventajas.
S412. Desventajas
Servomotor.
$42.1. Vemtajas
54.2.2. Desventajas.
‘Comparacién de motor paso a paso y motor servo.
MODELO MATEMATICO,
55.1
Descripcién fisica motor PaP.
64
65
65
67
68
68
9
70
n
n
1
8
80
81
83
84
84
84
84
84
84
855.5.2. Descripeisn fisica servo motor.
5.5.3, Descripcién matemitica.
[Link]. Motor PaP
[Link], Servo motor.
5.6. TARJETA DE ENLACE.
5.7. FUTURAS MEJORAS.
6, CONCLUSI
36
86
87
87
88,
89
90Indice de cuadros
1.
12,
13,
15.
16.
17,
18,
19,
Su
Conexiones DB25 y DB9 del interfaces RS-252
Conexiones DB25 del interfaces IEEE-1284 en modo SPP.
Extensiones de la librerias dindmicas por SO.
Reglas de buisqueda de librerfas de enlace dindmico de cada sistema operativo.
Direcciones base puerto paralelo
Direcciones base de los registros
Conexionado del puerto paralelo en modo ECP
Conexionado del puerto paralelo .
‘Masas segiin sefial
Pins del puerto serie conexiones D25 y D9
Funciones de los pins
Secuencia para controlar motores paso a paso tipo bipolar.
Secuencia normal.
Secuencia wave drive
Secuencia medio paso.
Caracterfsticas comparativas de motor PaP y servo motor,
23
26
28Indice de figuras
LL
13.
14.
16.
17.
13,
19.
1.10.
5.
56.
Puerto paralelo,
Puerto RS-232.
Conexionado mediante el uso de un ULN2803.
Motor PaP con 5 cables.
Motor PaP con 6 cables.
Circuito en paralelo.
Resistores combinados en serie y en paralelo caso 1
Resistores combinados en serie y en paralelo caso 2.
Resistores combinados en serie y en paralelo caso 3.
Caso I cortientes y voltajes.
Pantalla asignacién movimiento segiin angulo de rotacién,
Pantalla asignacién movimiento segiin distancia a recorrer.
Pantalla de control de dos motores.
Pantalla de ubicacién en un punto bidimensional.
Pantalla rutina de control de servo motor.
Tarjeta de enlace entre el computador y el motor.
10
37
4L
41
42
50
n
B
8
80
83
88Nomenclatura
APL Application Programmin Interface
Interfaz de Programacion de Aplicaciones
BIOS Basic Imput/Output Services
Servicios bésicos de la entrada-salida
bit/seg bit por segundo
C — Capacitancia
© Coulumb
CAD Computer Asisted Desing
Diseito Asistido por Computador
CC Corriente Continua
CCITT Consultive Commitee International Telegraph and Telephone
Comité Consultivo Internacional de Teléfonos y Telégrafos
COM puerto de comunicaciones
CTS Clear to Send
Limpiar para enviar
DMA Direct Memory Access
Acseso Directo a la Memoria
DSR Data Set Ready
Conjunto de datos listo
DTR Data Terminal Ready
Teminal de Datos Lista
E/S Entrada Salida
ulECP
ECR
FIA
EPP
fem
FIFO
GND
IBM
IRQ
ISA.
Enhanced Capabilities Port
Puerto de capacidades realzado
Extended Control Register
Registro Extendido de Control
Electronics Industry Association
Asociaci6n de Blectr6nica Industrial,
Extended Parallel Port
Puerto paralelo extendido
Faradio
Fuerza electro motriz
First In First Out
Primero en Entrar Primero en Salir
Ground
Tierra
Graphic user interfece
Interface grafica de usuario
Hentios
Contiente
International Business Machines
1284 Standard Signaling Method for a Bi-directional Parallel Periphetral Interface for
Personal Computers
Esténdar del Método de sefalizacién para una interfase paralela bidireccional periferica
para computadoras personales
Interrupt Request Level
Nivel de demanda de interrupcién
Industry Standard Architecture
Arquitectura esténdar industrial
Java Developement Kit
Kit Desarrollador de JavaINI
kg.
LAN
LPT
Lm
LIV
mA
Mb/s
MIT
ms
os
PaP
PWM
RAM
Java Native Interface
Interfaz Nativa de Java
Kilo gramos
Inductancia
Local Area Network
Red de rea local
Line Print Terminal
Linea terminal de la impresi6n
Linear Time Invariant
Tiempo lineal invariante
Linear Time Variant
Tiempo lineal variante
Inductancia mutua
mili amperios
Megabits por segundo
Massachusetts Institute Tecnology
Instituto de Tecnologia de Massachusetts
mili segundos
Operating System
Sistema operativo
Paso a Paso
Pulse Codified Modulation
Modulacién codificada de Pulsos
Pulse Width Modulation
Pulso con modulacién
Resistencia
Random Access Memory
Memoria de acceso aleatorio
13RPM REVOLUCIONES POR MINUTO
rpm Revoluciones por minuto
rpm Revoluciones por minuto
EVOLUCIONES POR PULSO
1p Revoluciones por pulso
mp Revoluciones por pulso
RS-232 Recommended Standard 232
Estandar Recomendado 232
RTS Request To Send
Peticién de enviar
S Siemens
SAGE Semi-Automatic Ground Equipment
Equipo de tierra semiautomtico
SPP Standard Parallel Port
Puerto Paralelo Estandar
TTL Transistor to Transistor Logic
Légica Transistor a Transistor
USB Universal Serial Bus
Vv Voltio
Vee Voltaje corriente continua
VM Virtual Machine
‘Maquina virtual
4GENERALIDADES.
INTRODUCCION.
Con el uso de los lenguajes computacionales como java, desarrolladores mateméticos y medi-
ante la programacién de protocolos de comunicacién, que permiten enlazar la salida y entrada
de datos de los puertos paralelo y serial. Esto hace posible enviar o recibir paquetes de datos
© sefiales activas para hacer control de sistemas externos. Con el modelamiento matem:
como una representacidn de sistemas fisicos que permite simular mediante el disefio © im-
plementacién del software que variables afectan un dispositivo y mediante el disefio ¢ imple-
mentacién del software se establece 1a comunicacién con el dispositivo externo por medio de
los puertos del computador.
as variables establecidas en el modelo matemitico junto al control
sobre cualquier tarea asignada exige una precisiGn, dependiente de un software que ademas de
ser versitil y robusto es de fécil manejo, se puede configurar para realizar todo tipo de tareas, y
para diferentes tipos de dispositivos que se le conecten,
‘Todos los periféricos que establecen comunicacién con los puertos requieren de interfaces que
son disefiadas con herramientas tipo CAD! y variaré su disefio segtin las especificaciones del
dispositivo requerido, en este caso el tipo de motor.
"Computer Asisted Design-Diseho asistida por computador
15Capitulo 1
MARCO TEORICO.
1.0.1, Reseiia histérica.
[Link]. Java.
En Diciembre de 1990, Patrick Naughton, un empleado de la empresa Sun, reclut6 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 compaifa "Sun founder Bill Joy" y tenfa como
objetivo principal crear un lenguaje de programacién accesible, fécil de aprender y de usar, que
fuera universal, y que estuviera basado en un ambiente C++ ya que habia mucha frustracién por
Ja complejidad y las limitaciones de los lenguajes de programacién existentes.
En abril de 1991, el equipo decidié introducir sistemas de software con aplicaciones para con-
sumiidores smart como plataforma de lanzamiento para su proyecto, James Gosling escribis el
compilador original y lo denominé "Oak", y con la ayuda de Jos otros miembros del equipo
desarrollaton un decodificador que mas tarde se convertirfa en Jenguaje Java, Cuando un grupo
de Sum visito un café local e nombre de java fue sugerido[4].
Para 1992, el equipo ya habfa 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 remot.
Por su parte el presidente de la compaiiia 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 lanz6 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-Warer, sin embargo el equipo concluyé que el mercado
para consumidores electrénicos smart y las cajas Set-Up en particular, no eran del todo eficaces.
La subsidiaria Proyecto Verde fue amortizada por la compaifa Sun a mediados del 94,
16Afortunadamente, el cese del Proyecto Verde coincidié con el nacimiento del fenémeno mundial
Web, Al examinar las dinémicas de Internet, lo realizado por el ex-equipo verde se adecuaba a
este nuevo ambiente ya que cumplia con los mismos requerimientos de las set-top box OS que
estaban disefiadas con un cédigo de plataforma independiente pero sin dejar de ser pequefias y
confiables.
Patrick Naugthon procedié a la construccién del lenguaje de programacién Java que se acciona-
ba con un browser prototipo, mas tarde se le fueron incorporando algunas mejoras y el browser
Hot Java fue dado a conocer al mundo en 1995.
Con el paso del tiempo el Hot Java se convirtié en un concepto préctico dentro del lenguaje
Java y demostr6 que podria proporcionar una forma segura multiplataforma para que el cédigo
pueda ser bajado y corrido del Host del World Wide Web y que de otra forma no son seguros.
Una de las caracteristicas més atractivas del Hot Java fue su soporte para los "applets", que son
las partes del c6digo Java que pueden ser cargadas mediante una red de trabajo para después
ejecutarlo localmente y asi lograr o alcanzar soluciones dinémicas en computacién acordes al
répido crecimiento del ambiente Web.
Para dedicarse al desarrollo de productos basados en la tecnologia 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 asf 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 (IDK) 1.0[13], una
rudimentaria coleccién de componentes bisicos para ayudar a los usuarios de software a con-
struir aplicaciones de Java. Dicha coleccién inclufa el compilador Java, un visualizador de ap-
plets, un debugger prototipo y una méquina virtual Java(IVM), necesaria para correr programas
basados en Java, también inclufa paqueteria basica de gréficos, sonido, animaci6n y trabajo en
red[13]
[Link]. Motores eléctricos.
Faraday, Michael (1791-1867), fue el que descubrié el principio de el motor eléctrico el des-
cubrié la inducci6n. Induccién es la generacién de una corriente eléetrica en un conductor en
movimiento en el interior de un campo magnético fisico. A partir de ese descubrimiento se
potencio el estudio sobre la electrSnical8}
En 1834 anuncié el método de descomponer las soluciones salinas, que hoy se conoce con el
nombre de electrdlisis, establece que el movimiento de un conductor integrante de un circuito
cerrado en un campo magnético produce corriente en dicho circuito, y en ello se basa el fun-
cionamiento del generador eléctrico.
7Una corriente eléctrica que pasa por un conductor situado en un campo magnético crea una
fuerza que tiende a desplazar al conductor con respecto al campo, esta es la base del motor
elécttico, De modo que, en esencia, una misma méquina puede emplearse como generador o
‘como motor; sise le aplica energfa mecénica, generaré electricidad, y si se le aplica electricidad,
produciré energia mecénica.(16]
[Link]. Dindmica de sistemas.
A lo largo de los aos cincuenta comen76 a desarrollarse en el Instituto de Tecnologia de Mas-
sachusetts (MIT) una destacada metodologia de sistemas, la Dindmica de Sistemas(9]. Jay W.
Forrester, ingeniero electrOnico, habia pasado del Laboratorio de Servomecanismos, donde in-
vent6 las memorias magnéticas de micleos de ferrita, a coordinar un gran proyecto de defensa,
el sistema SAGE (Semi-Automatic Ground Equipment). En la realizacién de este sistema de
alerta en tiempo real se percaté de la importancia del enfoque sistémico para concebir y con-
trolar entidades complejas como las que surgen de la interaccién de hombres y méquinas, Tras
esta experiencia, Forrester pasarfa como profesor a la Sloan School of Management del MIT,
donde observé que en las empresas se producfan fenémenos de realimentacién que podfan set
causa de oscilaciones, igual que sucede en los servomecanismos. De esta forma ides la Dinémi-
ca Industrial!, una metodologia que permitia construir modelos cibeméticos de los procesos
industriales. La peculiatidad de estos modelos residfa en a posibilidad de simular su evoluci6n
temporal con la ayuda del ordenador, Posteriormente aplicarfa su metodologia a problemas de
planificacién urbana” y la generalizaria para cualquier tipo de sistema continuo, cambiando su
denominacién por la de Dindmica de Sistemas®
La Dindmica de Sistemas al
1n26 gran difusién durante los afios setenta, al servir de base para
los estudios encargados por el Club de Roma a Forrester y su equipo para valorar el efecto
del crecimiento de la poblacién y de la actividad humana en un mundo de recursos limitados.
El propio Forrester dirigié 1a confeccién de un modelo inicial del mundo‘ a partir del cual
se realizaria més tarde el informe definitivo’, dirigido por D.L. Meadows y financiado por la
Fundacién Volkswagen. Un segundo informe, también utilizando Dindmica de Sistemas, seria
encargado posteriormente a Mesarovic y Pestel’.
Tindustial Dynamics, 1961
Urban Dynamics, 196.
System Dynamics, 1968
World Dynamics, 1971
SThe Limits to Growth, 1973.
Mankind atthe Turing Point, 1974
181.0.2, Dinmica de sistemas.
La Dinimica de Sistemas es una metodologia para la construccién de modelos de simulacién
para sistemas complejos, como los que son estudiados por las ciencias sociales, 1a economfa, la
ecologia o la fisica
[Link], {Qué es la dindmica de sistemas?.
La Dinémica de Sistemas es una metodologia para la construccién de modelos de simulacién
para sistemas complejos, como los que son estudiados por las ciencias sociales, la economia o
Ia ecologia,
La Dindmica de Sistemas aplica métodos de sistemas duros, biésicamente las ideas de reali-
mentacién y sistema dindmico, junto con a teoria de modelos en el espacio de estados y pro-
cedimientos de anilisis numérico. Por tanto seria una metodologia més entre las de sistemas
duros. Sin embargo, en su punto de mira estin los problemas no estructurados (blandos), como
los que aparecen en los sistemas socio econdmicos.(6] Esto plantea dos tipos de dificultades:
= Cuantificaci6n: En Dindmiica de Sistemas se comienza por identificar las variables de in-
terés y las relaciones que ligan entte sf estas variables, A continuacién es imprescindible
‘cuantificar dichas relaciones, lo que en ocasiones plantea dificultades insalvables.[10, 11]
‘= Validacién: Una vez. construido el modelo hay que preguntarse si refleja razonablemente
1a realidad, Esta cuestign puede resolverse por ejemplo en caso de que se disponga de
informaciones cuantitativas de 1a evolucién del sistema real en el pasado. Si el mode-
Jo es capaz de generar los comportamientos caracteristicos del sistema real, denomina-
dos modos de referencia, entonces obtendremos una cierta confianza en Ia validez del
modelo,[10, 11]
En Dindmica de Sistemas la simulacién permite obtener trayectorias para las variables inclu-
idas en cualquier modelo mediante la aplicacién de técnicas de integracién numérica. Sin em-
bargo, estas trayectorias nunca se interpretan como predicciones, sino como proyecciones 0
tendencias.{10, 11] El objeto de los modelos de Dindmica de Sistemas es, como ocurre en todas
las metodologias de sistemas blandos, llegar a comprender cémo la estructura del sistema es
responsable de su comportamiento. Esta comprensién normalmente debe generar un marco fa-
vorable para la determinacién de las acciones que puedan mejorar el funcionamiento del sistema
o resolver los problemas observados. La ventaja de la Dindmica de Sistemas consiste en que es-
tas acciones pueden ser simuladas a bajo coste, con lo que es posible valorar sus resultados sin
necesidad de ponerlas en préctica sobre el sistema real.[7, 9]
19[Link], Construccién de modelos en la dindmica de sistemas.
Fases en la construccién de un modelo:
1. Conceptualizacién.{11, 10]
= Descripcién verbal del sistema,
‘= Descripcién precisa del modelo en el tiempo.
= Diagrama causal.
2. Formulacién (11, 10]
= Construceisn del diagrama de Forrester.
1 Establecimiento de las ecuaciones para la simulacién
3. Andlisis y evaluacién.[11, 10]
= Andlisis del modelo (comparacién, andlisis de sensibilidad, andlisis de politicas).
= Evaluaci6n, comunicacién e implementaci6n_[11, 10]
1.0.3. API de comunicaciones.
EL APT de comunicaciones es un paquete de java el cual permite la comunicacién mediante el
puerto paralelo o serial con dispositivos externos al computador.
Una APY’ es un conjunto de especificaciones de comunicacién entre componentes software.
Representa un método para conseguir abstraccién en la programacién, generalmente (aunque
no necesariamente) entre los niveles 0 capas inferiores y los superiores del software. Uno de
los principales propésitos de una API consiste en proporcionar un conjunto de funciones de uso
general, por ejemplo, para dibujar ventanas o iconos en Ia pantalla, De esta forma, los progra-
madores se benefician de las ventajas de la API haciendo uso de su funcionalidad, eviténdose
el trabajo de programar todo desde el principio.
EL API de comunicaciones es una extensidn esténdar que petmite realizar comunicaciones con
los puertos serie RS-232 y el paralelo IEFE-1284, esto permite realizar aplicaciones de comu-
nicaciones que utilizan los puertos de comunicaciones independientes de la plataforma| 12]
TApplistion Programming Interface -Intertar de Programacin de Aplicaciones
20[Link], Caracteristicas del API de comunicaciones.
En el paquete de comunicaciones [Link] tenemos una serié de clases que nos permiten
tratar varios niveles de programacién, estos niveles son los siguientes:
= Nivel alto:
este nivel tenemos las clases CommPortIdentifier y CommPort que nos
permiten el acceso a los puertos de comunicacién{112).
«Nivel medio: Con las clases SerialPort y ParallelPort que cubren la interfaz fisica 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:
1 Poder obtener los puertos disponibles asf como sus caracterfsticas,
= Abrir y mantener una comunicacién en los puertos.
+ Resolver colisiones entre aplicaciones. Gracias a este servicio podremos tener vatias apli-
caciones Java funcionando y utilizando los mismos puertos y no solo sabremos que el
puerto esta ocupado sino que podremos saber que aplicacién lo esta utilizando,
= Disponemos de métodos para el control de los puertos de entrada / salida a bajo nivel, de
esta forma no solo nos limitamos a enviar y recibir datos sino que podemos saber en que
estado esta el puerto, Asf en un puerto serie podremos no solo cambiar los estados sino
que podemos programar un evento que nos notifique el cambio de cualquier estado.
Programacién a alto nivel. Para esta programacisn se cuenta con la clase CommPortidenti-
fier. Se encuentra ante la clase principal del paquete ya que lo primero que se debe hacer antes
de empezar a utilizar un puerto es descubrir si esta libre para su utilizacién,
Lo primero que se debe hacer antes de intentar abrir un puerto serd ver si ya tiene o no un propi-
etario y para obtener la informacién de esto se debe obtener el objeto de CommPortldentifier
correspondiente al puerto que se realizara con alguno de los siguientes métodos
= getPortIdentifiers() es el método utilizado en nuestro programa y que nos entregaré un
‘enumerado con tantos objetos CommPortIdentifier como puertos dispongamos.[12]
2= getPortIdemtifier(String) Nos dard el objeto correspondiente al puerto que se le pase como
pardmetro, este serd el método que normalmente usaremos ya que lo normal es que siem-
pte nos conectemos por el mismo puerto, Este método deberd saber tratar la excepeién
NoSuchPortkixception que saltara en el caso de que solicitemos un puerto inexistente.[12]
Una ver que se tiene el objeto del puerto se tiene una serie de métodos que nos permiten obtener
informacién del puerto y abrirlo para poder iniciar una communicacién, Estos métodos son los
siguientes:
= getName() dard el nombre del puerto. En el caso de haber utilizado el método getPor-
{Udentifier(String) serd el mismo valor que pasamos como parémetro.[12]
+ getPortType() devuelve un entero que nos informa del tipo de puerto (serie o paralelo),
para no tener que acordamos del valor de cada tipo de puerto disponemos de las con-
stantes PORT_PARALLEL y PORT_SERIAL (12]
= isCurrentlyOwned() nos informa si esta libre o no el puerto. En caso de que este ocupado
se podré saber quien lo esta utilizando mediante el método getCurrentOwner().{12]
= open(String, int) abre y por lo tanto reserva un puerto, en el caso de que intentemos
abrir un puerto que ya se encuentre en uso saltara la excepcién PortInUseException. Los
pardmetros que le debemos pasar son un String con el nombre de la aplicacién que reserva,
el puerto y un int que indica el tiempo de espera para abrir el puerto.[12]
Una vez que se tiene este objeto se deberdn encaminar sus salidas a OutputStream y las entradas
a InputStream una vez realizado esto la escritura y lectura de los puertos seré tan fécil como
utilizar los métodos de estas clases que pertenecen al esténdar del JDK.
addPortOwnershipL istener(CommPortOwnershipListener) permite afiadir una clase que escuche
los cambios de propietarios en los puertos. Si una vez que se tiene registrado un oyente de even
tos se quiere eliminar se debe de utilizar el comando
removePortOwnershipListener(CommPortOwnershipListerner) {12]
Clase CommPort. Esta es una clase abstracta que describe los métodos comunes de comuni-
cacién y serdin las clases que hereden de ellas (SerialPort y ParallelPort) la que atadan métodos
y variables propias del tipo del puerto, Entre los métodos que se interesa conocer se tienen’
+ close() nos permitiré liberar el puerto que se reservo con open, este notificarael cambio de
duefio a las clases que se hubiesen registrado con el método addPortOwnershipListener
que se explico anteriormente.[12]= getInputStream() nos permitiré enlazar la entrada del puerto al InputStream que nos de-
vuelve para leer del puerto.[12]
= getOutputStream() nos permitira enlazar la salida del puerto al OutputStream que nos
devuelve para poder escribir en el puerto de la misma forma que si se escribiera en un
fichero [12]
= getInputBufferSize() nos informa del tamafio que tiene el buffer de entrada del puerto.
Este tamaiio se puede modificar con el método setInputButferSize(int). Estos métodos
no siempre dan el resultado esperado ya que seré Ia memoria disponible y el sistema
operativo quien al final decida si realizar 0 no correctamente la operaci6n.{12]
= getOutputBufferSize() nos informa del tamaiio que tiene el buffer de salida, como en el
caso anterior contamos con un método pata modificar el tamafio que es setOutputBuffer-
Size(int). Al igual que pasaba con los métodos anteriores su correcto funcionamiento
depencden del sistema operativo en sf y del desarrollo del driver. [12]
Clase SerialPort .
Enesta clase encontramos las interfaces de bajo nivel del puerto paralelo que cumple el esténdar
RS-232, En la Tabla 1 se puede ver la descripcisn de las patitas del conector de 25 contactos.
En la emisién de un cardcter se realizardn las siguientes comprobaciones:
PIN (DB25) | PIN (DB) Descripcion.
2 2 TD: Canal de transmisidn,
3 3 RD: Canal de recepeion,
4 7 RIS: Poticion para transmit
5 8 CTS: Preparado para emitir.
6 6 DSR: Equipo preparado.
7 3 Masa
3 T DCD: Conexidn establecida
20 + DTR: Terminal preparado.
2 3 RE Indicador de Hamada
Cuadro 1.1: Conexiones DB25 y DB9 del interfaces RS-232
1, Poner el DTR. Indicando que estamos preparados.
2. Poner RIS. Solicito permiso para emitir.
3. Comprobar que esta DSR. Mira si el destinatario esta listo.
4, Esperar a CTS. Se espera a que me autoricen a enviar datos.
235. Enviar datos,
La clase SerialPort hereda de La clase abstracta CommPort y por lo tanto cuenta con sus métodos
pero ademas de estos se dispone de otros métodos y variables especificas para el tratamiento de
los puertos serie.
1 setSerialPortParams(int, int, int, int) permite configurar los parémetros del puerto se-
rie, este método deberd watar la excepcién UnsupportedCommOperationException que
saltara en el caso de que se le introduzcan valores no soportados.{12]
Los parémetros del método son:
1. La velocidad en el caso de que se le pase un valor no valido. Si se pasa 1210 se produciria
a excepcisn y no se modificarian los datos,
2. Bl segundo parametro son los bit de datos, Para indicar el valor se utilizaran las constantes
de la clase que se tiene para lo mismo (DATABITS_S, DATABITS_6, DATABITS_7 0
DATABITS_8).
3. El bit o bits de stop que se utilizan y que puede ser 1,2 0 uno y medio, Las constantes
que definen estas configuraciones son: STOPBITS_1, STOPBITS_2 y STOPBITS_1_S
respectivamente.
4, Patidad que se utilizard y que puede ser PARITY_NONE en el caso de no utilizar paridad,
PARITY_ODD para la paridad impar, PARITY_EVEN paridad par, PARITY_MARK
paridad por marca y PARITY_SPACE paridad por espacio.
Las funciones del método son:
= getBaudrate() da la velocidad a la que esta preparada para transmitir y que se puede
cambiar con el método setSerialPortParams(int, int int, int). [12]
= getDataBits() da la configuracién de ntimero de datos y al igual que el método anterior se
puede cambiar con el mismo método, los valores posibles son los mismos que utiliza el
método de configuracién de parémetros.(12]
= getStopBits() indica la configuracién de bits de parada y al igual que en los métodos
anteriores se puede configurar con el mismo método. 4. getParity() indica la paridad que
utiliza.(12]
= getParity() indica la paridad que utiliza.[12]
24+ getFlowControlMode() da la configuracién del control de flujo que se puede cambiar con
el método setFlowControlMode(int) y los valores posibles son: FLOWCONTROL_NONE
no existe control de flujo, (FLOWCONTROL_RTSCTS_IN o FLOWCONTROL_RISCTS_OUT)
para el control de flujo por hardware y ( FLOWCONTROL_XONXOFF_IN o FLOW-
CONTROL_XONXOFF_OUT) para control de flujo por software. El método setFlow-
ControlMode(int al igual que pasaba con setSerialPortParams(int, int, int, int) deberd de
saber capturar la excepcién UnsupportedCommOperationException [12]
= 6, addEventListener(SerialPortEventListener) permite escuchar los cambios de estado del
puerto, si se desea quitar este oyente se utiliza el método removeEventListener0. [12]
Mediante los métodos notifyOnXXX (boolean) permitiré habilitar o deshabilitar la notifi-
cacién de los diferentes cambios que pueden ser:
+ DataAvailable existen datos en la entrada
+ OutputEmpty el buffer de salida esta vacfo
+ CTS cambio de Clear To Send.
+ DSR cambio de Data Set Ready.
+ RingIndicator cambio en RI.
+ CarrierDetect cambio en CD.
+ ParityBrror se ha producido un error de patidad.
+ BreakInterrupt se detecta una rotura en la linea.
La clase oyente debers de tener el método serialEvent(SerialPortEvent) que recibiré un objeto
que trata los eventos del puerto serie con tres métodos importantes:
getEventType() informara del evento que se ha producido.[12]
= getNewValue() devuelve el nuevo estado.[12]
1 getoldValue() dard el estado anterior al cambio.{12]
1 isDTRO informaré del estado terminal que se podré cambiar con setDTR (boolean) [12]
= isRTSQ dice si ha solicitado permiso para transmitir 0 no y para cambiar su estado ten-
emos el método setRTS(boolean).{12]
« isCTSQ) informa si podemos transmitir, isDSR() daré el estado en el que se encuentra el
pin DSR. IsRIQ informa de sf esta el indicador de timbre, isCD() nos indicara si tenemos
portadora.[12]Clase ParallelPort.
En esta clase tenemos las interfaces de bajo nivel del puerto paralelo que cumple la norma
IEE]
1284, El estindar IEEE-1284 cuenta con 8 lineas de datos, 5 entrada de estado y 4 salidas
de control, Los contactos del conector se definen en la Tabla 2 con sus funciones en el modo
SPP que es 1 modo compatible de trabajo para la impresora
PIN | NOMBRE Deseripeion
|_| STROBE | Indica que existen datos validos en las lineas de datos DO-7
2 DO. Dato bitO
3 DI Dato bit 1
4 D2, Dato bit2
3 D3, Dato bit3
6 D4 Dato bit
7 DS, Dato bit
8 D6 Dato bit 6
9 D7, Dato bit7
10 [ACK Tndica que el ultimo cardcter se recibid
TI_| BUSY | Indica que la impresora esta ocupada y no puede recoger datos
2 PE Sin papel.
13_| SUCT Tadica que Ta impresora esta en linea.
14 [AUTO FD | Indicaa la impresora que realice una alimentacién de linea.
15_| ERROR Existe algin error en la impresora.
16 | INIT Pide ala impresora que se inicie.
17 | SLCTIN Tndica a la impresora que esta seleccionada
Cuadro 1.2: Conexiones DB25 del interfaces I
1284 en modo SPP,
Este estindar 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 linea de datos.
= EPP (Extended Parallel Port) es e] modo extendido y se utiliza para periféricos que prin-
cipalmente no son impresoras.
+ ECP (Enhanced Capabilities Port) al igual que el modo EPP es bidireccional y se utiliza
para comunicar diversos tipos de periféricos, este modo es una propuesta de Hewlett
Packard y MicrosoftLa clase ParallelPort es una clase que se hereda de CommPort, Esta clase cuenta con una serie
de métodos que facilitan el uso del puerto paralelo:
+ addEventL istener(ParallelPortEventListener ev) mediante este método se puede asignar
un oyente para cuando aparezca un error en el puerto y no lo notifique, exactamente
nos informara de cuando el buffer de salida este Hleno 0 cuando la impresora indique
error. Los métodos que permiten habilitar o deshabilitar estos avisos son: notifyOn-
Error(boolean) y notifyOnBuffer(boolean). Si se desea quitar el oyente se puede utilizar
el método removeEventListener(.{12]
= getOutputBufferFree() informa de los bytes que se tienen disponibles en el buffer de
salida,[12]
1 isPaperOut() devolvers 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 sefia PE 1.2 en la pagina anterior.{12]
1 isPrinterBusy() devolverd un valor true en el caso de que la impresora este ocupada y se
corresponde con el estado BUSY.{12]
+ isPrinterSelected() informa sf la impresora esta seleccionada.[12]
+ isPrinterError() chequea si ocurre un error en Ia impresora y esto se refleja con el estado
de ERROR que esta en el pin 15 1,2 en la pagina anterior [12]
1 restart() realiza un reinicio en la impresora.[12]
1 suspend() suspende la salida [12]
= getMode() dice el modo configurado del puerto paralelo y los valores posibles son:{12]
LPT_MODE_SPP modo compatible unidireccional.
LPT_MODE_PS2 modo Byte.
LPT_MODE_EPP modo extendido.
+ LPT_MODE_ECP modo mejorado.
LPT_MODE_NIBBLE modo nibble.
1 setMode(int) configuramos el modo del puerto paralelo, los valores que puede tomas
son los anteriores y ademas LPT_MODE_ANY que sera el mejor modo disponible. Este
método deberd ser capaz de tratar la excepcién UnsupportedCommOperatio
que saltara en el caso de que se introduzca un modo no soportado.{12]
21.0.4. La JNI.
Otra manera de establecer Ia communicacién por medio de los puertos serial o paralelo desde el
computador a un dispositivo externo es mediante el uso de la INI
La INI es una interfase de programacién, Esta permite al cédigo de java correr dentto de la
‘maquina virtual de java (VM) y se interpole con aplicaciones, funciones y librerfas escritas en
ottos lenguajes de programacién, tales como C, C++ y assembler.[13]
El cédigo nativo son funciones escritas en un lenguaje de programacién como C 0 C+ para el
sistema operativo (SO) donde se esta ejecutando la maquina virtual.
INI tiene un interfaz bidireccional que permite a las aplicaciones Java llamar cédigo nativo y
viceversa, Es decir JNI soporta dos tipos de interfaces:
1. Native methods,
‘Que permiten a Java llamar a funciones implementadas en librerias nativas.{13]
2. Invocation Interface.
Nos permite incrustar una maquina virtual Java en una aplicacién nativa. La aplicacién
nativa lama a librerfas nativas de la maquina virtual y Iuego usa el llamado invocation
interface para ejecutar métodos java en la VM.[13]
Las librerfas de enlace dindmico son ficheros cuyas funciones no se incrustan en el ejecutable
durante la fase de enlazado, sino que en tiempo de ejecucién el programa busca el fichero, carga
su contenido en memoria y enlaza su contenido segiin va siendo necesario.
Esto tiene la ventaja de que varios programas pueden compartir las mismas librerias, 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 extensi6n también varfa dependiendo del SO en que estemos. Extensiones tipicas son
Sistema Operative | Extensign
Mac OSX ——>«pe
———»«s
ACK =————_ ————«p4a
Busy > >———><3
PAPER END > p> <2
SELECT IN — pr
>< bo
isfiz[iifio 9]s]7f6) 5/4 [3l2]1
Bale Heese STROBE
yee a Stats
Stats A opts fH 6] 5%]
AUTO FEED
'< ERROR
Masa
{__ INIT
______,. SELECT
Figura 1.1: Puerto paralelo.
Es posible que una computadora posea mas de un puerto paralelo, generalmente se pueden
tener hasta tres, aunque Windows y otros programas tienen la capacidad para manejar hasta
cuatro de ellos.
Cada puerto paralelo posee una direccién Base, es decir, una direccién con la que se identifica
al puerto, y segiin el tipo de puerto de que se trate, podré tener ademés otras direcciones®
Actualmente las ditecciones por defecto para los puertos son las siguientes:
Puerto | Direccion Base
LPTI Ox378
LPT2 ON278
LPTS Ox3BC
Cuadro 1.5: Direcciones base puerto paralelo
Base+, Base+2,EI BIOS? construye una tabla en memoria cuando arranca la computadora desde la direccién
40:08h a 40:0Dh que contiene las direcciones base de cada puerto paralelo instalado, leyendo
cesta tabla ordenada se puede conocer la direccién base de cada puerto.{5]
[Link]. Tipos de puerto.
Es posible encontrar los siguientes tipos de puertos, por orden de aparicisn.
1. SPP,
Es el puerto més sencillo, tiene tres buses o registros, en la diteccién Base: bus de datos,
este es de 8 bits y todos sus pines son salidas; en la direccién Base+1: bus de estado, en
este registro solo 5 pines se encuentran cableados al conector, y todos ellos son entradas,
cen las impresoras son los que levan la informacién de papel atascado, falta de papel,
una de las entradas (el bit 7) esta complementada; por ultimo en la direccién Base+2: bus
de control, este bus tiene cuatro salidas, de las cuales tres estén negadas.{14]
= Direccién Base + 0: registro o bus de datos
= Direccién Base + 1: registro o bus de estado.
= Direccién Base + 2: registro o bus de control,
LPT | LPT2 | LPTs
Bus de datos_| Ox378 | 0x278 | Ox3BC
Bus de Estado | 0x379 | 0x279 | Ox3BD
Bus de Control | Ox37A | Ox27A | Ox3BE
Cuadro 1.6: Direcciones base de los registros.
2. Bidireccional (PS/2).
Este puerto tienen las mismas caracteristicas 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
‘0 como salidas!® [14]
= Entrada: para configurar el bus de datos como entradas, se deben poner en nivel alto
del bit 5 y 7 del bus de control y en nivel bajo el bit 6 del bus de control
Basic ImpuvOutput Services
"qo se puede configura algunos pines como entrada y ros como salida
31= Salida: para configurar el bus de datos como entradas, se deben evar 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 caracteristica de ser tan rapido como el bus del sistema (ISA),
aleanzando velocidades de transferencia de hasta IMb por segundo, fue desarrollado por
Intel, Xircom y Zenith y tuvo amplia aceptacién por el resto de los fabricantes, quienes
comenzaron a construir sus puertos de tipo EPP, aunque no totalmente compatibles, con
los creados por Intel, to que Hevo a que se produjera un esténdar denominado EPP 1.7,
que tiempo después se combiné con el esténdar IEEE 1284, que describe los puertos
biditeccionales de alta velocidad para impresoras y se formo un estndar que actualmente
se denomina IEEE 1284 EPP, un puerto paralelo del estilo IBEE 1284 soporta multiples
modos: SPP, bidireccional PS/2, EPP y ECP. otra particularidad de este puerto es que
posee otras cinco direcciones"!, aunque esto hace que no pueda existir un tercer puerto
den la direccién 3BCh, ya que de set asf se solaparfa con las direcciones asignadas a
video. es por esto que cuando se creo el puerto EPP, la direccién que antes solfa ser el
primer puerto, paso al tercero,[14]
4. ECP (Extended Capabilities Port)
Puede al igual que el EPP, escribir y leer a la velocidad del Bus, fue desarrollado por
Microsoft y Hewlett Packard, y se distingue del anterior por tener DMA (Direct Memory
Access), FIFO (First In First Out) y compresién de datos. A su vez puede emular los
puertos de tipo SPP y bidireccional, y si bien 1a norma no contempla los EPP, algunos
fabricantes suelen usar algtin bit no utilizado por ECP para la conflagracién del puerto
como EPP. el puerto ECP agrega ademés los registros desde Base+400h; a Basc+402h,
en el cual esta el registro ECR (Extended Control Register), mediante el cual se pueden
configurar los diferentes modos, el significado de los bits es el siguiente:
Tdesde Based a Basev7Bit ‘Significado
(000 SPP (compatible ISA)
001 Bidireccional (Compatible PS/2)
‘O10 Centronics rapido (compatible ISA FIFO)
Ee
100 Reservado
TOI Reservado (EPP)
110 Prueba
TH Configuracién
Deshabilita interrupciones de ERROR
Habilita DMA
Deshabilita el servicio de interrupeién FIFO/Terminal Count
‘Slo Tectura (FIFO Teno}
‘Solo lectura (FIFO vacis)
1S
wl al
|||
Cuadro 1,7; Conexionado del puerto paralelo en modo ECP
[Link]. Deteccién del tipo de puerto.
El puerto puede ser de tipo SPP, bidireccional'?, EPP o ECP, para conocer que tipo de puerto es
cel que se tiene se debe comenzar testeando el de mayor complejidad y seguir en orden hasta el
de menor complejidad,
= Puerto ECP,
Para detectar si el puerto es de tipo ECP se debe leer el registro de control extendido
(ECR) en la direccién Base+402h y verificar que el bit 0 este en uno y el bit 1 este en
cero; estos bits no deben ser susceptibles de los cambios producidos en los bits 0 y 1
del bus de control, por lo que otra prueba a realizar es poner en bajo el bit Oy en alto el
bit 1 del bus mencionado, verificar que los bits del registro extendido de control no haya
cambiado; por tltimo, los bits 0 y 1 del registro extendido de control son de sélo Lectura,
Jo que implica que no sera posible hacerlos cambiar de estado, entonces podemos escribir
uun dato que conmute los estados de los bits Oy 1 y Iuego leer el estado de esos bits, como
lo que se lee es lo que hay en el registro y no lo que se envi6, podemos decir que si los
bits no han cambiado de estado y se han verificado las pruebas anteriores, estamos en
presencia de un puerto ECP{5]
= Puerto EPP.
Sil puerto fallase en las pruebas para determinar si es ECP, debemos proseguir efectuan-
do pruebas para determinar si es EPP. Pata esto, se pone en nivel bajo el bit 7 del bus de
Compatible con el estindar IBM PSI?
3estado y el bit de TimeOut (bit 0 del registro de estado), debido a la diversidad de fabri-
cantes existen diversos métodos pata limpiar este ultimo bit, por eso debemnos contemplar
todos ellos para asegurar el funcionamiento en la mayor cantidad de maquinas posible,
lo primero que haremos seré escribir el bit dos veces con un uno y luego pasarlo a cero,
podemos verificar ahora que el bit en cuestiOn este en el nivel bajo, de no ser asf, 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 ningsin periférico que responda
a la escritura realizada, el bit de TimeOut deberé cambiar su estado légico a un uno, de
no ser asf debemos seguir con las pruebas para determinar si el puerto es bidireccional 0
SPP{S]
= Puerto Bidireccional (PS2 Compatible)
En esta prueba lo que haremos sera configurar el bus de datos como entrada y verificar
que al sacar un dato por el puerto no sea retenido.[5]
= Puerto SPP.
Para detectar si un puerto es SPP verificamos la retencién de los daros enviados, para lo
cual enviamos un par de valores al bus de datos y comprobamos (en la direccién base)
que los valores lefdos sean los que se escribieron, es decir que el dato enviado haya sido
retenido por el puerto.{5][Link]. Puerto paralelo a nivel fisico.
Direccién del puerto - - Emclia Fane
(hexadecimal) Pin DB-25| Entrada o Salida _ | Funcion Especia
it
vpT1 | LpT2 | LPT3
0 2 Entrada/Salida =
1 3 Entrada/Salida :
3 2 4 Entrada/Salida
4 " [3 5 Entrada/Salida =
g] 578 | 278 | 982 a é EntradalSalida =
3 5 7 Entrada/Salida :
6 é Entrada/Salida 7
7 3 Entrada/Salida :
0 NC LecturalEscritura -
7 7 NG z z
3 2 NC ; :
a 3 Entrada Error
| P| 2) BR 13 Enirada Printer On line
s 5 2 Entrada Outof Paper
s 6 10 Entrada ‘Acknowledge
7 11__ [Entrada Complementada Busy
0 1__| Salida Complementada Strobe
5 1 14__ | Salida Complemeniada [Line Feed
£ 2 16 Salida Initiaize Printer
8] sa. | aaa: | sae 2 17__ | Salida Compiementada | Select Printer
$ 4 NC - =
7 5 [NG = =
7 6 NG. - -
7 NC = =
Cuadro 1.8: Conexionado del puerto paralelo
Cuando se transmite informacién por un cable multipar (con varios conductores aislados), cada
conductor genera un campo electromagnético que influye en los otros conductores, para reducir
tal efecto se confecciona enroscando un conductor sobre su entomo, de manera que los campos
generados por cada conductor se anulen entre si y no afecten a los otros; a su ves estos pares
trenzados se enroscan nuevamente para evitar la interferencia con los otros cables. También
hay otras opciones que complementan la antes mencionada a la hora de transmitir datos por
‘un cable: para poder aumentar la longitud del cable es necesario que el mismo posea mayor
inmunidad al ruido, especialmente los de baja frecuencia como los de la red eléctrica, lo que se
ogra con una malla metilica que envuelve a todos los conductores conectada a masa (chasis de
35Ja 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 transmisi6n, 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 sefial hacia su fuente,
Cuando se disefio el puerto paralelo también se dividieron las masas segiin las sefiales como lo
indica la siguiente tabla, aunque actualmente es muy comin observarlas todas unidas, puesto
que los circuitos de salida contienen todos la misma masa, ya que con el nivel de integracién
de hoy en dia todos los buffer de salida estén practica mente en un mismo integrado, y de esta
‘manera la corriente tomaré el camino con menor impedancia para su retomno.
Pin Retomo de Masa
Pin 18 | Retomo de masa correspondiente a: CO y DO
Pin 19 | Retomo de masa correspondiente a: DI y D2
Pin 20 | Retomo de masa correspondiente a: D3 y D4
Pin 21 | Retomo de masa correspondiente a: D5 y D6
Pin 22 | Retorno de masa correspondiente a: D7 y $6
Pin 23 | Retorno de masa correspondiente a: C3
Pin 24 |__ Retomo de masa correspondiente a: S7
Pin 25 | _ Retomo de masa correspondiente a: C2
‘Cuadro 1.9: Masas segiin seital
[Link], Interrupciones.
La mayorfa de los puertos paralelos son capaces de detectar interrupciones generadas por el
periférico que se encuentre conectado. Para que el microprocesador detecte la interrupcién el
puerto debe tener asignado un Interrupt Request Level (IRQ). Generalmente se utiliza IRQ7
para LPT! ¢ IRQS para LPT2, aunque este ultimo suele estar asociado con la placa de sonido,
por lo que es posible observar que los puertos tengan configurado otro IRQ.[14]
[Link]. 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 esta libre
para ejecutar otra accién, el rango que utiliza el puerto paralelo es de cero a tres.{14]
[Link]. El puerto y su hardware.
El puerto trabaja con légica TTL de baja potencia de tipo Schottky, aunque en puertos viejos es
posible encontrar algunos que trabajen con salidas de tipo colector abierto. La corriente drenada
36del puerto puede tomar valores de hasta 2,6mA y Ia entregada hasta un méximo de 24mA. En
cuanto a las tensiones de salida, el nivel bajo corresponde a una tensién entre OV y 0,8V, y pata
el nivel alto la tensidn de salida es de 2,4V a 5,5V.
En algunos de los puertos se pueden encontrar también capacitores de 2,2nF entre las lineas de
F/S y masa, lo que ayuda a establecer los tiempos de subida y de bajada de la sefial
En el bus de control, generalmente, las salidas son de tipo TTL a colector abierto, con resisten-
cias de colector de 4, 7K2y 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 seri
123 4 65
6 7 8 9
PIN Sehial PIN Seital
1_[ Detector canal de datos. |_6 [Conjunto de datos listo.
2_| Recibir datos. 7_| Peticién de envio.
3_[ Transmitir datos: 3_[Limpiar para enviar
[Terminal de datos lista, [9 [Indicador de timbre.
3_| Tierra.
Figura 1.2: Puerto RS-232,
El puerto seria o RS-232 es un estindar para realizar la transmisién de datos. ELRS-232 consiste
en un conector tipo DB-25 de 25 pines, aunque es normal encontrar la versiGn de 9 pines DB-9.
Las sefiales con las que trabaja este puerto son digitales, de 12V(0 légico) y —12V(1 légico),
para la entrada y salida de datos, y a la inversa en las seftales de control. El estado de reposo en.
Ia entrada y salida de datos es —12V,
37Los ordenadores se conectan con cualquier equipo periférico, a través de sus puertos paralelo
© setie, o los més recientes como el USB (Universal Serial Bus, el cual deja desbancados a
los otros con 12 Mb/s), pero en éste caso solo analizaremos el puerto serie RS-232 por set un
esténdar impuesto en todos los equipos informéticos,
En un ordenador puede haber varios puertos series, a los que normalmente se les denomina
COM 1, COM 2, COM 3", por defecto el COM 1 suele pertenecer al ratén usando éste el IRQ
4, aunque también es posible encontrarle en el COM 2, asf que lo normal es encontramos libre
el puerto serie del COM 2 utilizando el IRQ 3
Para realizar una conexién en serie de datos 6 informaciér
se requiete como mfnimo un cable
de dos alambres, una conexién del tipo full-duplex como la de telefonia.
Si se quiere tener una comunicacién bidireccional por un par de hilos y esta consiste en una
serie de bits de informacién, se requieren otras terminales que indiquen al Interface cual de los
aparatos interconectados transmite y cuil recibe, que tipo de informacién es, cudndo el aparato
receptor esta listo para recibir, cuando el transmisor esta listo para transmitir, a que velocidad
va ser la comunicacién. Esto hace que el puerto serie tenga otras terminales que se usan para
coordinar la comunicacién entre los equipos,
Los equipos terminales de datos, envian sefiales en 0°s y 1’s I6gicos binarios, que el médem
debe convertir a sefiales anal6gicas y enviarlas por la linea telefénica o canal de comunicacién
pero también es posible que se comuniquen siempre en digital,
fste Interface o puerto RS-232 trabaja entre +12 voltios y -12 voltios, de manera que un cero
I6gico es cuando la terminal esté entre +9 y +12 voltios, y un uno légico cuando este entre -9
y -12 voltios de manera que un puerto serie que no esta transmitiendo, mantiene la terminal de
transmisién en un 1 légico es decir entre -9 y -12 volts
El conector esténdar RS-232 sea éste hembra 6 macho, es el DB-25, aungue también se usa el
DB-9.
[Link]. Estructura de datos del puerto serie RS-232.
La comunicacién de datos en un puerto serie, se usa normalmente para efectuar comunicaciones
asincronas, 0 sea sin tiempo preestablecido para iniciarse, Los datos legan en paquetes de
informacién, normalmente cada paquete es de 8 bits=1 byte, algunos equipos envian carécter
por carécter, otros guardan muchos caracteres en la memoria y cuando les toca enviarlos los
envfan uno tras otto.
TWpuchas veces los puewos see a pari del COM 2 se denominan puerts vrtleso son debidos a ampliaciones
de los puertos por tarjetas controladoras del tipo PCL
38.Uno de los pardmetros més importantes en la comunicacién serie, es la velocidad con la que los
datos se transmiten, para el caso del RS-232, pueden transmitir de los 300 bit/seg hasta 115,200
bitiseg
Otro de los pardmetros importantes es el bit de inicio que le indica al puerto receptor que va a
Megar un byte de informacién.
Hay dos tipos de paridad adicional que se usan y estos son:
= Marca (mark)
EI 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
Las especificaciones eléctricas del puerto serie estén contenidas en el EIA! RS232C estindar.
En las cuales se encuentran parémetros como:
1. A "Space" que es por defecto 0 esté entre +3 y +25 Voltios.
2. A "Mark" que es por defecto 1 esté entre -3 y -25 Voltios.
3. La regién entre +3 y -3 voltios esta sin definir.
4, Un circuito de voltaje abierto no debe superar 25 voltios,
5. Un circuito corto de corriente no debe exceder los S00mA. El driver debe utilizarse sin
problema.
Pin DB-25 | Pin DB-9 | Abreviacién | Nombre completo
2 3 TD Transmit data
3 2 RD Receive data
4 T RTS Request to send
5 8 CTs Clear to send
6 6 DRS Data set ready
7 3 SG Signal ground
8 T cD Carrier detect
20 a DIR___| Data terminal ready
2 9 RI Ring indicador
‘Cuadro 1.10: Pins del puerto serie conexiones D25 y D9
TConsulve Commie Intemational Telegraph and Telephone
'Sectronics Industry Association-AsocisciGn de Electrénica Industrial
39‘Abreviacion | Nombre completo Funcign,
1D, Transmit data’ Salida de datos serie TXD
RD. Receive data Entrada de datos serie RXD
CTs Clear to send __| Indica si el médem esta preparado para recibir y mandar datos
DCD__| Data carrier detect Detecta si hay una conexiGn con el oro extremo
DSR Data set ready Dice si la UART esté preparada para la conexion
DIR | Data terminal ready | Dice al médem si la UART esté preparada para la conexion
RIS Request to send Taforma que la UART esta preparada para Ia conexion
RI Ring indicator | Se activa cuando el médem detecta wna Hamada 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 construcci6n de mecanismos en don de se requieren
movimientos que requicran precisi6n.
A diferencia de los motores de corriente continua (CC) que gira a todo lo que dan cuando
son conectados a la fuente de alimentacién, los motores paso a paso (PaP) solamente giran un
Angulo determinado, los CC s6lo disponen de dos terminales de conexién, mientras los PaP
pueden tener 4, 5 6 6, segtin el tipo de motor que se trate, por otro lado los motores de corriente
continua no pueden quedar enclavados en una sola posicién, los motores paso a paso tienen la
posibilidad de quedar enclavados en una posicién o bien totalmente libres. Si una o més de sus
bobinas estén enetgizadas, el motor estaré enclavado en la posicién correspondiente y por el
contrario quedard completamente libre sino circula energfa por ninguna de sus bobinas.[1, 2]
El Angulo de giro de estos motores es muy variado pasando desde los 90 hasta los 1,8 e incluso
0,72, cada angulo de giro, se afecta enviando un pulso en una de sus terminales.
[Link]. Principio de funcionamiento.
El motor esté constituido por un rotor sobre el que van aplicados distintos imanes permanentes
¥ por un cierto mémero de bobinas exitadoras, bobinas en su estator, Las bobinas son parte del
stator y el rotor es un imn permanente. La exitacién de las bobinas debe ser manejada por un
controlador.
Los motores PaP suelen ser clasificados en dos tipos, segtin su disefio y fabricacién pueden ser
bipolares o unipolares:
= Bipolar,
40Estos tienen, generalmente, cuatro cables de salida, Necesitan ciertos trucos para ser con-
trolados, debido a que requieren del cambio de direccién del flujo de comtiente a través de
las bobinas en la secuencia apropiada para realizar un movimiento [1, 2]
= Unipolares.
Estos motores suelen tener 6 6 5 cables de salida, dependiendo de su conexionado interno.
Este tipo se caracteriza por ser més simple de controlar. En la figura 2 se puede apreciar
tun ejemplo de conexionado para controlar un motor paso a paso unipolar mediante el
uso de un ULN2803, el cual es un arreglo de 8 transistores tipo Darlington capaces de
‘manejar cargas de hasta 500mA. Las entradas de activacién !° pueden ser directamente
activadas por un microcontrolador 1, 2]
¥
3
03 Motor n>
1 fin ory ae
‘Astivac = m2 our 2 Te 4 >
3 ns outs | | es
‘ActivaD a4 our 4 +.
Ss ours F# Se
5 ne oure - > 1)
ee our? |}? alle
To ms 2 ours
Figur 1.3: Conexionado mediante el so de un ULN2803,
a 0
° ‘8
Figura 1.4: Motor PaP con 5 cables.
pave A,B,C yD.
atFigura 1.5: Motor PaP con 6 cables.
[Link]. Secuencia para manejar motores p:
a paso bipolares.
Estos motores necesitan una inversién de la corriente que circula en sus bobinas en una secuen-
cia determinada. Cada inversidn de la polaridad provoca el movimiento del eje un paso, cuyo
sentido de giro esta determinado por la secuencia seguida [1,2]
Paso Terminal
ATBTCTD]
WV |v
WV ev av
Wav av
Wh vv
eye] -]
Cuadro 1.12: Secuencia para controlar motores paso a paso tipo bipolar:
[Link]. Secuencia para manejar motores paso a paso unipolares.
Existen tres secuencias posibles para este tipo de motores. Todas las secuencias comienzan por
el paso I una ve
7 alcanzado el paso final. Para revertir el sentido de gio, simplemente se deben
ejecutar las secuencias en modo inverso[1, 2]
= Secuencia Normal,
Es la secuencia més usada y la que generalmente recomienda el fabricante.
Con esta secuencia el motor avanza un paso por vez debido a que siempre hay dos bobinas
activadas, se obtiene un alto torque de paso y de retencién,
42Faso [Home A [Bote B [ota C [Homme
v [on | on | on | ow
2 Off On On Off
3 | on | oc | om | o |
Os
Se
+ | on | on | ot | on {|
Cuadro 1.13:
Secuencia del tipo wave drive
‘Secuencia normal,
En esta secuencia se activa sélo una bobina a la vez. En algunos motores esto brinda un
funcionamiento més suave. La contrapartida es que al estar s6lo una bobina activada, el
torque de paso y retencién es menor,Paso [Bobina A | Robina B [Robina C [ BobinaD 7
ul
SO eS
dl)
SQOe
AU
S30
oh
+ | oe | of | of | on il
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 Iuego sdlo 1 y asi
sucesivamente.
44Paso [Bobina A | Robina B [Robina C [ Boba.
BOE
t_|_on on | of | of
2 | on On of | off |
3 | on | on ot | of |
AND
BSQe&
4 | om On on | om |
Ey
=
5 Off off On oft |
wy
S3Ve
6 | ot | of | on On |
7 | of | on | of | on |
J
Se
s | on | on | of | on I
Cuadro 1.15: Secuencia medio paso.
45Debido a que los motores paso a paso son dispositivos mecénicos y como tal deben vencer
ciertas inercias, el tiempo de duracién y la frecuencia de los pulsos aplicados es un punto muy
importante a tener en cuenta, En tal sentido el motor debe alcanzar el paso antes que la préx-
ima secuencia de pulsos comience. Si la frecuencia de pulsos es muy elevada, el motor puede
reaccionar en alguna de las siguientes formas
1 Puede que no realice ningiin movimiento en absolute.
+ Puede comenzar a vibrar pero sin Hegar a girar
= Puede girar errética mente.
Puede llegar a girar en sentido opuesto.
Para obtener un atrangue suave y preciso, es recomendable comenzar con una frecuencia de
pulso baja y gradualmente ir aumenténdola hasta la velocidad deseada sin superar la méxima
tolerada, El giro en reversa deberia también ser realizado previamente bajando la velocidad de
giro y luego cambiar el sentido de rotacién.
1.0.8. Servo Motores.
Los servos son un tipo especial de motor de C.C. que se caracterizan por su capacidad para posi-
cionarse de forma inmediata en cualquier posicién dentro de de su intervalo de operaci6n.{15]
Un Servo es un dispositive pequefio que tiene un eje de rendimiento controlado, Este puede
set llevado a posiciones angulares especificas al enviar una seal codificada. Con tal de que
una sefal codificada exista en la linea de entrada, el servo mantendré la posicién angular del
engranaje. Cuando la sefiala codificada cambia, la posicién angular de los pifiones cambia. En la
Pr
pequefios ascensores y timones. Ellos también se usan en radio control, titeres, y por supuesto,
ica, se usan servos para posicionar superficies de control como el movimiento de palaneas,
cen robots.[3]
Los Servos son sumamente stiles en robstica. Los motores son pequefios, tiene internamente
una circuiteria de control interna y es sumamente poderoso para su tamaiio, Un servo normal 0
estindar como el HS-300 de Hitec tiene 42 onzas por pulgada o mejor 3kg por em de torque que
¢s bastante fuerte para su tamaiio. También una potencia proporcional para cargas mecénicas.
Un servo, por consiguiente, no consume mucha energia. Podré observar la citcuiterfa de control,
el motor, un juego de pifiones, y la caja. También puede ver los 3 alambres de conexisn externa,
Uno es para alimentacién Vec'”, conexién a tierra GND y el alambre blanco es el alambre de
control [3]
TSvolts
46[Link], Funcionamiento de un servo.
El motor del servo tiene algunos circuitos de control y un potencismetro'® esta es conectada al
eje central del servo motor. Este potencidmetro permite a la circuiterfa 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 angulo no es el correcto, el motor girard en la direccién
adecuada hasta legar al éngulo correcto. El eje del servo es capaz de Megar alrededor de los
180 grados. Normalmente, en algunos llega a los 210 grados, pero varfa segsin el fabricante, Un
servo normal se usa para controlar un movimiento angular de entre 0 y 180 grados. Un servo
normal no es mecénicamente capaz de retornar a su lugar, si hay un mayor peso que el sugerido
por las especificaciones del fabricante.[3]
La cantidad de voltae 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 regtesar s6lo una pequeita cantidad, el motor correrd a una velocidad mas
lenta, A esto se le lama control proporcional
El cable de control se usa para comunicar el éngulo. El angulo esté determinado por la duracién
de un pulso que se aplica al alambre de control. A esto se le llama PCM Modulacién codificada
de Pulsos 6 PWM Pulse Width Modulation. La modul
in 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 varia el tiempo que cl pulso esta a nivel alto, manteniendo el mismo
periodo, con el objetivo de modificar la posicién del servo segtin se desce. [3, 11, 15]
El servo espera ver un pulso cada 20 milisegundos 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 tome a
Ia posicién de 90 grados 0 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.5ims, el eje se acercard alos 180 grados.
Para controlar un servo, se le ordena un cierto dngulo, medido desde 0 grados. Se le envia una
0
‘grados, 2.0ms = méx. grados!” y algin valor entre ellos da un ngulo de salida proporcional.
serie de pulsos. En un tiempo ON de pulso indica el éngulo al que debe posicionarse; 1ms
Generalmente se considera que en [Link] esté el "centro". Entre los limites de 1 ~ 2ms son las
recomendaciones de los fabricantes; normalmente se puede usar un rango mayor de [Link] para
obtener un éngulo mayor ¢ incluso de 2ms para un Angulo de rendimiento de 180 grados o més.
EL factor limitante es el tope del potenciémetro y los limites mecénicos construidos en el servo.
Un sonido de zumbido normalmente indica que se est forzando por encima al servo, entonces
debe disminuir un poco.[3, 15]
Tyga resistencia variable,
Cerca de 120°,
a7El tiempo de OFF en el servo no es critico; puede estar alrededor de los 20ms. Los pulsos que
curren frecuentemente en el tiempo de OFF pueden interferir con el sincronismo interno del
servo y podria escucharse un sonido de zumbido o alguna vibracién en el eje. Si el espacio
el pulso es mayor de SOms, depende del fabricante, entonces el sezvo podria estar en modo
SLEEP entre Jos pulsos, Entrarfa a funcionar en pasos pequeiios y el rendimiento no seria el
6ptimo[15]
1.0.9, Sistemas Eléctricos.
Las leyes de Kirchhoff para circuitos eléctricos.{8]
= Voltaje.
Es la fuerza electromotriz requerida para producir un flujo de corriente, La unidad de
voltaje es el volt(V)
= Carga.
Es la integral de corriente con respecto al tiempo. La unidad de carga es el coulumb(C)
Un coulumb es la cantidad de carga que experimenta una fuerza de un Newton en un
campo eléctrico de un volt por metro 0 Coulumb = Newton-metro/volt
= Corriente.
Es larazén de cambio del flujo de carga. La unidad de corriente es el ampére. si una carga,
de dq coulumbs cruza un drea dada en dr segundos, la corriente i es
i-4
@
una corriente de un ampére, la carga es transferencia a razén de un coulumb por segundo,
[Link]. Elementos de los circuitos eléctricos.[8]
= Resistencias,
La resistencia se define como el cambio de voltaje requerido para producir un cambio en
la comtiente
resistencia R — —£2mbio en voltaje_y
Tambio on Coren
La resistencia R lineal se da por
R=2
donde eg es el voltaje a través del resitor ¢ i es la cortiente que fluye por el resistor. La
unidad de resistencia es el Ohm(2)
48El recfproco de la resistencia se lama conductancia. La unidad de conductancia es el
siemens(S).
Los resistores no almacenan energfa eléctrica pero la disipan en forma de calor.
Capacitores.
El capacitancia es el cambio en la cantidad de carga eléctrica requerida para producir un
cambio en el voltaje.
+ _ cambio en cantidad de carga electrica ¢
Capacitancia C= "~ cambio en voliaje——
La capacitancia de un capacitor puede darse entonces por
donde q es la cantidad de carga de carga almacenada y ec es el voltaje a través del capac-
itor. La unidad de capacitancia es el farad(F).
ay
Como i= #
entonces i= “66
despejando
dec = bidt
ec(t)= afi bec (0)
Inductancias.
Es la relacién entre el voltaje inducido y la razén de cambio de la corriente
Inductancia— Cambio en voltaje inducido __y
Subs on ecrHeate por segusd
La autoinductancia es la propiedad de una bobina particular que ocurre cuando el campo
magnético establecido por una corriente de 1a bobina enlazada a la propia bobina, 1a
ai
a
proporcionalidad entre el voltaje inducido e, volts y la raz6n de cambio de la corriente
raz6n de cambio del flujo es proporcional a 4. La autoinductancia L, es la constante de
L=¢
La unidad de inductancia es el henry(#)
Como
luego de
int) =} ferdt +i, (0)
3
49La inductancia mutua es la influencia entre inductores que resulta de la interaccién de sus
campos. Cuando un cambio de corriente de un ampére por segundo en cualquiera de dos
inductores induce una fem de un volt en el otro inductor, su inductancia mutua M es de
wun henry.
[Link]. Leyes de los circuitos eléctricos.[8]
= Ley de Obm
Establece que la corriente en un circuito es proporcional a la fuerza electromotriz total
que acta sobre el circuito ¢ inversamente proporcional a la resistencia total del circuito.
imk
donde ies la corriente , ¢ ¢s 1a 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.
RI R2 RS.
Figura 1.6: Circuito en paralelo.
hs
como i= i, +i + is, luego
Het + iG = § donde R es la resistencia combinada, luego
1 RyyRs
Ro Tog ORs aR
= Resistencia de resistores combinados en serie y paralelo.
50RI
R3
Figura 1.7: Resistores combinados en serie y en paralelo caso 1
La resistencia combinada Ra3 = g25¢- luego la resistencia total R= Ry + Ro3 = Ri +
BR,
Be
R1 R3.
v1
+
°
Figura 1.8: Resistores combinados en serie y en paralelo caso 2.
Ras fe Re BE
laresistencia combinada R = Ri + Rss = fs + Bk
Bye * Rei
siR1 R3
v1
“0
Figura 1.9: Resistores combinados en serie y en paralelo caso 3.
El circuito se puede considerar como paralelo que consta de las resistencias (Ry +Rs) y
(Ro + Rs), la resistencia combinada R
= Cortientes y voltajes de circuitos en serie y en paralelo,
RI
R3
Figura 1.10: Caso 1 corrientes y voltajes.
La caida de voltaje ¢2,3 = iRa,3
onde Ras =
de donde la corriente i; que fluye a través de la resistencia Re es
i, = =i =i gh
a TE te
la comtiente iz que fluye por la resistencia Rs es* Leyes de Kirchhoff [8]
+ Ley de cotrientes de Kirchhoff.
Un nodo en un eircuito elécttico es un punto donde tres 0 més conductores se nen
entre si, La ley establece que la suma algebraica de todas las corrientes que entran
al nodo o salen del él, es cero.
+ Ley de voltajes de Kirchhoff.
Establece que en cualquier instante dado el tiempo la suma algebraica de los voltajes
alrededor de una malla cualquiera en un circuito eléctrico es cero. Se puede expresar
también como la suma de las caidas de voltae es igual a la suma de elevaciones de
voltaje alrededor de una malla
1.0.10. Modelos matemiaticos.
EI modelado de sistemas fisicos debe empezar a partir de una prediccién de su funcionamien-
to antes de que el sistema pueda disefiarse en detalle o construirse fisicamente. Tal prediccién
se basa en una descripcién matemitica de las caracteristicas dindmicas del sistema. A esta
descripcién matemética se le Hama modelo matematico.[10] Para los sistemas fisicos, la may-
oria de los modelos matemsticos que resultan titiles se describen en términos de ecuaciones
diferenciales.(7]
[Link]. Elaboracién de modelos matemiticos (modelado matemitico).
Al aplicar leyes fisicas a un sistema especifico, es posible desarrollar un modelo matematico
que describa al sistema, Tal sistema puede incluir parémetros desconocidos, los cuales deben
evaluarse mediante pruebas reales. Sin embargo, algumas veces las leyes fisicas que gobiernan
el comportamiento de un sistema no estén completamente definidas, y la formulacién de un
modelo matemético puede resultar imposible. Debe ser asi, 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 matemstico [10]
[Link], Simplicidad contra exactitud.
Cuando se intenta construir un modelo, debe establecerse un equilibrio entre la simplicidad
del modelo y 1a exactitud de los resultados del andlisis. Es importante notar que los resultados
obtenidos en el anilisis son validos en la medida en que el modelo se aproxime al sistema fisico
dado.La rapidez con la cual una computadora digital puede realizar operaciones aritméticas nos per-
mite incluir cientos de ecuaciones para describir un sistema y para construir un sistema exacto,
pero muy complicado, Si no se requiere de una exactitud extrema, es preferible desarrollar un
modelo razonablemente simplificado.
Para determinar un modelo razonablemente simplificado, se necesita decidir cuales de las vari-
ables y relaciones fisicas pueden despreciarse y cuales son cruciales en la exactitud del modelo,
Con el objeto de obtener un modelo en Ia forma de ecuaciones diferenciales lineales, se deben
despreciar cualesquiera pardmettos distribuidos y las no Lineales que pueden estar presentes
en el sistema fisico, Si los efectos que estas propiedades ignoradas tienen en la respuesta son
pequefios , entonces los resultados del andlisis del modelo matemético y los resultados del estu-
dio experimental del sistema fisico serdn satisfactorios. Bl que cualquiera de las caracteristicas
particulares sea importante puede no set obvio en algunos casos, y en otros, puede requerit de
penetracién fisica en intuicién.{10] En relacién con lo mencionado.
Cuando se resuelve un problema nuevo, usalmente conviene construir primero un modelo sim-
plificado para obtener una idea general entorno a la solucién. Posterior mente puede construirse
un modelo matemitico més detallado y usarlo para un andlisis més completo.
[Link]. Observaciones sobre la elaboracién de modelos matematicos.
Ningtin modelo matemético puede representar cualquier componente o sistema fisico con pte~
cisi6n. Siempre se involucran aproximaciones y suposiciones, Tales aproximaciones y suposi-
ciones restringen el nivel de validez del modelo matemético. Al hacer una prediccién acerca del
fncionamiento del sistema, debe tenerse presente cualquier aproximacién o suposicién involu-
crada en el modelo.{6]
[Link]. Procedimiento para la elaboracién de modelos matematicos.[6]
1. Dibujar un diagrama esquemitico del sistema y definir las variables.
2. Utilizando leyes fisicas, escribir ecuaciones para cada componente, combindndolos de
acuerdo con el diagrama del sistema y obtener un modelo matemitico.
3. Para verificar la validex 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 prediccién en forma considerable, debe mod-
ificarse el modelo. Entonces se obtiene un nuevo modelo y las nuevas predicciones se
comparan con los resultados experimentales. El proceso se repite hasta que se obtiene
una concordancia satisfactoria entre la predicci6n y los resultados experimentales.
54[Link]. Etapas del modelo.{10]
= Etapa uno: modelado fisico.
El objetivo de la especificacisn de sistemas y el modelado fisico consiste en proporcionar
tuna descripeién del sistema que sea lo mas precisa posible, aunque lo bastante sencilla
como para permitir el andlisis y diseiio subsecuentes. En general, un modelo fisico se
construye aistando una parte del universo como el sistema de interés y luego dividiendo
conceptualmente su comportamiento en componentes conocidos. Dos temas dominan las
cetapas de modelado fisico y modelado de sistemas: el compromiso y la aproximacién. Los
compromisos se realizan con base en la intencidn o meta original del estudio, con el fin
de especificar un sistema més sencillo o un conjunto de interacciones simples en el limite
centre el sistema y el resto del mundo. Las aproximaciones se hacen en las descripciones
del comportamiento de los componentes del modelo fisico, con el fin de aprovechar las
teorfas existentes y bien desarrolladas, asf como para reducir al minimo la complejidad
de las herramientas analiticas necesatias,
El primer paso en el aislamiento del sistema del resto del mundo es inherente al concepto
de sistemas. El segundo paso es el proceso de enlace. Es preciso tener un conjunto sufi
ciente de comportamientos tedricos con los cuales poder relacionar los componentes del
comportamiento conceptual.
+ Etapa dos: construccién de modelos.
El proceso de descomposicién de sistemas es necesario para la construccisn sistemética
de los modelos mateméticos de los sistemas dinamicos,
‘Una vez descompuesto el sistema, la conducta de cada uno de sus componentes ¢ intera
ciones se pueden aproximar utilizando las tcorfas conocidas. Las aproximaciones que se
hacen al pasar del modelo fisico al de sistemas tiene ciertas caracteristicas bien definidas,
de modo que se pueden estudiar de manera individual
+ Descomposicién del sistema.
Es el proceso de separar los componentes mas seneillos y analizar sus partes, puede
hacerse de manera formal ast
© Identificar los componentes.
Asignar nombre y trazar un diagrama de cuerpo libre que muestre las entradas
y las salidas, asf como las interacciones intemnas y externas. Indicar todos las
variables necesarias.
© Separar los componentes en sus elementos estéticos y dindmicos.
© Escribir las relaciones de entrada y salida,
55Describir el comportamiento de estos componentes, Observar que las rela-
ciones que describen a los elementos estéticos son bastantes distintas de las
expresiones dindmicas,
= Etapa tres: solucién de modelos.
Se resuelven las ecuaciones representando el modelo del sistema como una forma para
estudiar su comportamiento dinémico, Se determina si el modelo del sistema es bueno o
malo, La solucién del modelo es fundamental para estudiar los sistemas dinémicos.
[Link]. Sistemas lineales.
Los sistemas lineales son aquellos en los que las ecuaciones del moldeo son lineales. Una
ecuacién diferencial es lineal si los coeficientes son constantes o funciones tinicamente de la
variable independientemente. La propiedad més importante de los sistemas lineales es que se le
puede aplicar el principio de superposicién, el cual establece que la respuesta producida por la
aplicacién simultanea de dos funciones excitadoras distintas, es la suma de las dos respuestas
individuales, Por tanto, para sistemas lineales se puede calcular la respuesta a diversas entradas,
tratando una entrada por vez y afiadiendo 0 sumando los resultados. Este principio es el que
nos permite construir complicadas soluciones a las ecuaciones diferenciales lineales, a partit
de soluciones simples. Los sistemas lineales pueden ser invariables en el tiempo y variables en
el tiempo. Los sistemas dinémicos que son lineales y estin construidos por coeficientes con-
centrados ¢ invariables en el tiempo, pueden ser desctitos por ecuaciones diferenciales lineales,
invariantes en el tiempo. Estos sistemas reciben el nombre de lineales e invariantes en el tiem-
po (0 lineales de coeficiente constante), también usualmente se utilizan para describir este tipo
de sistemas las siglas LTI, del Inglés “Linear Time Invariant”. Los sistemas representados por
ecuaciones diferenciales, cuyos coeficientes son funciones del tiempo, reciben el nombre sis-
temas lineales variables en el tiempo o LTV, del Inglés “Linear Time Variant” [10]
[Link]. Sistemas no lineales.
Sistemas no lineales son aquellos representados por ecuaciones no lineales.
Ejemplo:
vay
‘Una ecuaci6n diferencial recibe el nombre de no lineal sino es lineal.
Ejemplo:Aungue muchas relaciones fisicas son frecuentes representadas por ecuaciones lineales, en la
mayor parte de los casos realmente las relaciones no son muy lineales. De hecho, un estudio
cuiidadoso de los sistemas fisicos indica que ain los denominados sistemas lineales son real-
‘mente lineales solamente en restringidos rangos de operacién.
En la préctica, muchos sistemas electromecénicos, hidréulicos, neuméticos, etc., involucran
relaciones no lineales entre las variables. Por ejemplo, la salida de un componente puede satu-
rarse para niveles elevados de sefial de entrada. Puede haber una franja 0 zona muerta que afecta
la seftal pequefia®, En algunos componentes puede haber no linealidades cuadréticas, por ejem-
plo, los amortiguadores utilizados en sistemas fisicos pueden ser lineales para operaciones de
baja velocidad, pero son no lineales en velocidades altas, porque la fuerza de amortiguacién se
vuelve proporcional al cuadrado de la velocidad de funcionamiento,[10]
La caracteristica mas importante de los sistemas no lineales es que no es aplicable el prin-
cipio de superposicién. En general, los procedimientos para hallar soluciones de problemas
que involucran sistemas no lineales, son extremadamente complicados. Debido a ésta dificultad
‘matemitica, 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 validos solamente en un restringido rango de operacién. Una vez que sc ha aproxi-
mado un sistema no lineal con un modelo matems
ico lineal, se puede utilizar cierto nimero de
herramientas lineales para su andlisis y diseft.
1.0.11. Diagrama de causa y efecto.
Un diagrama de causa y efecto es la representacién de varios elementos de un sistema que
pueden contribuir a un problema.
Es una herramienta efectiva para estudiar procesos y situaciones, y para desarrollar un plan de
recoleccién de datos.
Es utilizado para identificar las posibles causas de un problema especitico. La naturaleza grética
del diagrama permite que se organice grandes cantidades de informacién sobre el problema y
determinar exactamente las posibles causas.
El diagrama de causa y efecto se debe utilizar cuando se pueda contestar “si” a una o a las dos
preguntas siguientes:
1, gEs necesario identificar las causas principales de un problema?
2. (Bxisten ideas y/u opiniones sobre las causas de un problema?
Las franja mera de un componente no es sensible,
37El desarrollo y uso de diagramas de causa y efecto son més efectivos después de que el proceso
ha sido deserito y el problema esté bien definido.
Los diagramas de causa y efecto pueden ser utilizados para otros propésitos diferentes al anélisis,
de la causa principal
El diagrama causa efecto no oftece una respuesta a una pregunta, como lo hacen otras her-
ramientas. Herramientas como el anslisis de Pareto", Diagramas Scatter”? ¢ histogramas, pueden
ser utilizadas para analizar datos estadisticamente.
TEL nombre de Pareto fue dado por el Dr Joseph Juran en honor de] economista italiano Vilredo Pareto
(1848 ~ 1923)
Herramienta de andlisis que dibuja pares relacionados de variables para representar un patrén de relacién 0
correlacin.
58Capitulo 2
FORMULACION Y
JUSTIFICACION.
2.1. Formulacién.
Con el auge en las tiltimas décadas de la tecnologia en el mundo, surge la necesidad de actualizar
y obtener las herramientas adecuadas para competir a nivel tecnolégico en el rea industrial co-
mo en el érea de la investigacién cientifica, de una forma econémica y que cumpla con los
estindares minimos establecidos. El problema del desarrollo de nuestras tecnologias radica, en
el desconocimiento de herramientas que el mismo computador contiene. Pocos usuarios cono-
cen el manejo de los puertos del computador, las rutinas de comunicacién y programacién al
igual que los programas de disefio tipo CAD. Resulta uitil hacer de estas herramientas un uso
frecuente en tareas de control y precisién en el desarrollo o reconstruccién de equipos con pro-
cess paralelos y progresivos, es comtin considerar a estas funciones como una automatizacién
yy control de los sistemas.
2.1.1. Justificacién.
Dado que el control de los motores en desplazamiento posicional se puede realizar desde un
computador, es necesario el uso de lenguajes de programacién de alto nivel, los cuales permiten
implementar las funciones 6 rutinas que controlan el movimiento con la precision de las tar-
eas a realizar, con la comunicacién por los puertos y mediante el desarrollo ¢ implementacién
computacional de las ecuaciones diferenciales que describen el modelo matemético del sistema
-mecénico que permita la biisqueda de coordenadas con exactitud de posicién y tiempo controla-
da por motores, este proceso permite establecer una interrelacién usuario-dispositivo de forma
amigable y sencilla.Este tipo de control petmite ser implementado en intetrupciones neuméticas seriadas y parale-
las, en ordenes de encendido y apagado en mecanismos de comparacién de estados de posicién
y tiempo manejo de precisiones y vacios y para estados emergentes y de capturas de informa-
isn,
60Capitulo 3
OBJETIVOS
Objetivo general.
Establecer un método de manejo de periféricos por puertos del computador. Desarrollar e im-
plementar un software capaz. de realizar tareas de precisiGn y ubicar una coordenada especifica
por instrucciones sobre diferentes tipos de motores servo y paso a paso por puertos paralelo y
serial del computador,
3.0.3. Objetivos especificos.
Implementar los protocolos para envié de sefiales desde los puertos del computador,
= Determinar ¢! modelo matemitico del sistema mecénico del motor servo y paso a paso.
Manejar secuencia de informacién de variables que intervienen en el control.
Disefiar ¢ implementar la interfase de conexién entre el puerto y el motor.
Desarrollar algoritmos computacionales encargados del manejo controlado de los mo-
tores,
61Capitulo 4
METODOLOGIA.
Las fases propuestas para el estudio metodol6gico son: la investigacién del funcionamiento de
las INI y los paquetes java comm, analizar la estructura mecénica de los motores paso a paso
para determinar las instrucciones que mueven el motor, realizar el modelamiento matemstico
del sistema mecénico del motor, establecer un método de comunicacién con los puertos paralelo
y serial que permite implementar una rutina de enlace para entrada y salida de datos a través de
los puertos, disefiar un algoritmo de comunicacién a través de los puertos para hacer control en
dispositivos externos.
EI manejo de las INI requiere una programacién cuidadosa que no interfiera con el control
interno del ordenador, por medio de esta herramienta se tiene acceso a la RAM a la LAN alos
discos duros y a todos los dispositivos y recursos del computador,
Al programar en JAVA, se tienen dos maneras de generar aplicaciones, Ia primera y la mis
comin es la generacién de un applet el cual es utilizado en aplicaciones tipo web, este tipo de
aplicaciones no admite el uso de las INI y los paquetes java comm estén restringidos al comando
de puertos ya que no es permitido y pierde la seguridad de acceso a los recursos internos del
computador desde la web. La segunda es Ia creacién de una aplicacién bésica la cual y puede
usar las INT y los paquetes java comm,
Al ptogramar la rutina de movimiento de los motores hay que tener en cuenta el tiempo de
retardo entre dato y dato, si el primer dato no alcanza a ejecutar una accién sobre el motor se
regresa y acumula la informacién en el puerto sobtecargéndolo. entre dato y dato que se envia
ya que si el motor no alcanza a ejecutar la secuencia anterior se empezara a generar un error de
ejecucién, que el dato enviado rebote devuelta al puerto sobrecargando este.
4.0.4. Procedimiento.
El programa que administra el movimiento de motores debe contemplar:
621. Una implementacién del programa de comunicacién mediante los puertos paralelo 0 se-
rial
2. Activacién de bobinas y control de pulso para motor PaP y servo correspondientemente.
3. Elaboracién del modelo matemético de motor tipo paso a paso y servo.
4, Simulaci6n del modelo matemético.
5. Implementacién del programa que controla el motor desde el computador,
4.0.5. Desarrollo metodolégico.
4.05.1. Anilisis de causas.
Se realiza el anslisis de causas mediante un diagrama de causa-efecto!, para determinar que
factores intervienen en la elaboracién del dispositivo.
Con solo el manejo de correcto de los datos por puertos, no garantiza la correcta funcionalidad
del prototipo con el programa, este se garantiza con la combinacién de las rutinas controladoras
y la tarjeta de enlace.
El primer factor que afecta el funcionamiento y el ideal a alcanzat 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 comiin y el que se encuentra en los computadores es el esténdar que se
adapta al modo de funcionamiento bidireccional es el que mas se adapta a lo que se realiz6. Con
a programacién en java se cuenta con el paquete javacomm con el cual no es sencillo manejar
puertos esténdar ya que al inicia la conexidn desde el paquete este inicia en modo unidireccional
yal intentar cambiar el modo quesera un mensaje de el hardware no es compatible con modo, la
tinica manera de llegar al modo bidireccional es pasando del modo unidireccional a modo byte
y por altimo a bodo bidireccional, lo que hace frustrante la utilizacién de este paquete. Con la
utilizacién de la JNI enlazar la entrada y salida de datos es mas sencilla y es mas versétil ya que
no solo se limita al puerto paralelo sino que cambiando la direccién base este puede enlazar el
serial y el USB, no es necesario cambiar de modo, su funcionamiento se basa en tres funciones
sencillas: una de asignacién del bus de datos otra de lectura y 1a ultima de escritura.
El programa disefiado tiene el protocolo de conunicacisn, basado en Ia INI, con el puerto
paralelo y las rutinas bésicas para el control de los puertos, disefado de tal forma que cualquier
‘modificaci6n futura no afecte el funcionamiento de las funciones existentes, a partir de este se
puede diseiiar los protocolos de comunicacién y de conexién con puertos y dispositivos basados
en conexién USB.
"Dingrama Ichikawa, Desarellado en 1943 por el profesor Ksor Ishikawa
63Los componentes electrénicos en si no fueron un obstéculo para la consecucién de el disefio del
prototipo, uno de los cuidados que se tiene que tener es en la eleccién del cable de conexién a
utilizar que un cable que no cumpla con los esténdares, ya que si esto no se cumple la infor-
macién que se envia llegarfa distorsionada al motor provocando funcionamiento errético 0 en
el peor de los caso que la informacién rebote hacia el puerto causando sobrecarga en este, otto
factor es la frecuencia con la que se envia la informacisn si esta es muy alta no alcanza a ser
procesada y se provoca funcionamiento erritico 0 en el peor de los casos que la informacién
que se envia se devuelva hacia el puerto causando daiios a este.
Aunque las tarjetas buffer disefiadas te tal manera que: protejan al puerto de una sobre carga
esto no garantiza que en algin momento el voltaje sobre este se exceda del maximo que resisten
estos, su otra funcién es de al momento de activar una bobina esta tenga el voltaje de entrada
maximo de la tarjeta y no el voltaje de salida del puerto ya que este solo funciona de indicador
de activaci6n y es muy bajo para alcanzar el maximo rendimiento del motor.
La programacién de procesos en paralelo para el control de dos motores pap con el uso de mul-
tihilos que inicialmente controlan la velocidad de envfo de la secuencia de pulsos de activacién
de las bobinas y mediante la interaccién con interfaz grafica la ubicacién espacial en un plano
bidimensional, este pone limitaciones al desplazamiento, si no se colocaran estas limitaciones
se produciré un funcionamiento errético no solo de los motores sino del aplicativo en sf
Una de tareas es 1a de calibrar el programa con los motores, ya que el programa se diseiio
basado en condiciones idcales del funcionamiento del motor aparte se programo basado en Ia
utilizacién de motores de 12V con 1.8° de rotacién por pulso, en el caso de cambiar de motor
se veria afectado el funcionamiento correcto del las tareas © procesos ejecutados, la solucién
es sencilla ya que intenamente se pueden cambiar las variables encargadas de esto 0 que por
medio de la GUT se realice este cambio sin que esto afecte el resto de procesos que este realiza,
Ver anexo L
4.05.2. LaJNI
Con la JNI se tienen Jas rutinas bisicas de comunicacién que estin en el lenguaje nativo del
computador, el cual esta en lenguaje C. Para utilizar la INI es necesario ubicar las librert
cen las cuales estén las funciones que se desean utilizar. Lo primero es la identificacién de los
puertos que se tienen instalados y sus direcciones base, en particular el la direccién del bus de
datos 1.6 en la pagina 31, al identificar la direccién base ya se puede enlazar Ia entrada y la
salida de datos del puerto, Una limitante de la INI es que no se puede detectar si el puerto esta
© no disponible por lo cual se puede presentar errores de comunicacién,
64[Link]. El modelo matematico.
Lo primero es identificar las variables intervienen en el movimiento mecénico del motor luego
mediante que leyes fisicas interactian las variables entre ellas este proceso leva a la ecuacién
de estado correspondiente con el sistema que se quiere describir. Con la solucién del modelo
-matemidtico se tiene Ia funcién de estado con la cual se puede realizar una simulacién y deter-
‘minar el grado de exactitud del modelo al sistema real
EI sistema al cual se desea identificar las variables es a un sistema rotacional.
Un sistema rotacional esta constituido de un rotor 0 eje impulsado mediante bobinas,
Para sistemas mecénicos de rotacién se cumple la segunda Ley de Newton de la siguiente forma:
EM =Ja
Donde:
«J Momento de inercia.
= @ Aceleracién angular.
# -M Par, troqué o momento.
Puede formularse en funcién de la variacién angular (w) ya que a = 4
a
mM =e
V ci6 20
‘También en funcién de la variacién de la posicién angular ya que a = ‘2
£0
zm = 788.
Programacién de ap!
Con la interfaz nativa de comunicacién con los puertos y el modelo matemético de cada motor,
se procede a disefar los algoritmos que permitan el control de dispositivos mecénicos conec-
tados a los puertos. Como la comunicacién se hace mediante secuencia de bits es necesario
definir el tipo de datos en el algoritmo. La interfaz nativa toma los datos de tipo hexadecimal
para enviarlos ya que C trabaja de esta forma. Para definir la secuencia de datos a enviar hay
«que tener en cuenta los bits que tienen que estar activos en el puerto en el cual se escriben, si es
el puerto paralelo se tienen 8 bits de salida, en el serial RS-232 se tienen 4 bits de salida,
65Aplicacién motor PaP.
Para este tipo de motor es necesario enviar un arreglo de bits para el control del mismo, el
arreglo de datos debe estar ordenado de acuerdo con el orden de secuencia de activacisn de las
bobinas del motor y la secuencias deben estar disefiadas de modo tal que se acoplen con los
tres modos de funcionamiento de los PaP unipolares [Link] en la pagina 42 que son: Secuencia
normal, Wave Drive y Secuencia de Medio paso. Es aqui donde toma fuerza la utilizacién de
vectores y la programacién en JAVA utilizando los hilos como secuencia de control ya que
poseen control de velocidad y permiten el manejo sincrénico y asincrénico de la secuencia de
datos escrita en el puerto.
Para crear la aplicacién se crea una clase tipo hilo para el control del motor, esta clase se
extiende la de clase Thread por lo tanto hereda todos los métodos de la clase Thread y Io que se
hace es sobre escribir el método run, que es donde se escribe el cédigo encargado del célculo
del dato de la secuencia a enviar. Luego se crea otra clase de control tipo hilo extendida de la
clase Thread y al igual que la anterior clase se sobre escribe el método run que es donde se
envia el dato calculado,
Este procedimiento de varios hilos uno para célculo del dato y otro de envis de dato es witl para
el trabajo de dos motores de modo sincrénico 6 asincrénico, esto se hace variando en cada clase
de calculo del dato a enviar para cada motor el tiempo del método sleep el cual es el intervalo
de espera entre dato y dato, este método es independiente de Ia clase en que se modifique el
tiempo lo cual le da a la aplicacién la facilidad de cambiar la velocidad de envi6 de datos de
forma individual
Aplicacién motor servo.
‘A diferencia del PaP este motor funciona mediante una s
al que este dentro de su rango de
trabajo, esto faclita la programacisn de la secuencia de datos que se escribe en el puerto ya que
sélo hay que utiliza un dato a diferencia del PaP que hay que utilizar un arreglo de datos, el
tiempo del dato enviado se puede controlar facilmente con la utilizacién de dos hilos los cuales
permiten mantener el dato el tiempo necesario para hacer mover el servo el angulo deseado,
para esto un hilo se encarga de la escritura en el puerto y el otro se encargara de la duracién del
mismo en el puerto.
Para la implementacién de la aplicacion de control para los servos se crean tres hilos cada uno
extendido de la clase Thread y sobre escribiendo el método run. El primer hilo determinal el
tiempo OFF, el segundo hilo controla el tiempo ON, la sefial activa, y este lo hace por control
del primer hilo, cuando el primier hilo est en estado sleep, el segundo hilo envia una sefial
durante el tiempo que se encuenttre el primer hilo en estado sleep, cuando cambia el estado del
66primer hilo el segundo hilo deteiene el envio de la sefial. El tercer hilo es el encargado de enviar
el dato que esta generando el primer hilo, este hilo envia continuamente el dato generado por el
primer hilo,
40.
Disefio tarjeta de enlace.
Por medio del paquete de disefio asistido ORCAD, el cual con el programa Layout permite hacer
el disefio de la tarjeta, inicialmente solo muestra los componentes de la tarjeta desconectados y
acomodados por defecto, una de las precauciones que hay que tener es al realizar las conexiones,
ya que se pueden estar conectando de manera errénea los componentes y cuando se genere
la tarjeta se pueden tener cortos, lo primero es acomodar los componentes de acuerdo con
la disposicién de 1a entrada de datos y la salida de datos al motor, después de colocados los
componentes se procedié al ruteado de los mismos. Para esto se puede utilizar el Autoroute que
posee el Layout o utilizar SPECCTRA, otro de los programas que hacen parte de ORCAD, el
cual hace un ruteado optimizado, Otra posibilidad para esto es hacer el ruteado manualmente,
Layout tiene la capacidad de cambiar el grosor de los caminos de conexién de conexién.
67Capitulo 5
RESULTADOS.
5.1. RUTINA ENCARGADA DE ESCRITURA Y LECTURA EN
PUERTO.
Mediante el uso de las INI y la librerfa [Link] se desarrollo una rutina la cual permite
enlazar la salida del puerto paralelo para enviar las serie de datos los cuales permiten al motor
tipo paso a paso y al servo cambiar de estado.
El programa se desarrollo en java con el editor jcreator.
Descripcién del cédigo:
La programacién de la INI
package jnpout32;
public class ioPort {
J/declaracién del método nativo jnpout32. dll
public native void Out32(short PortAddress, short data);
JIsalida del valor especifico del nombre del puerto
public native short Inp32(short PortAddress);
/Tasignacién de un valor a una direccién de un puerto
static { System. loadLibrary (" jnpout32pkg");}
Ilearga de la librerfa [Link] para el paquete
d
685.2, RUTINAS DE CONTROL DE MOTOR PaP.
Mediante 1a programacién de la JNI y la rutina de escritura en el puerto y la modelacién
‘matemidtica se puede disefiar una algoritmo implementado en java que envie una secuencia de
pulsos por el puerto, el cual puede controlar desde el computador un motor PaP, Jos algoritmos
diseitados son:
= Movimiento segiin angulo de rotacién.
+ Movimiento segtin el numero de vueltas a girar,
= Movimiento segiin distancia a recorrer.
= Secuencia para control de dos motores.
= Ubicacién de un punto en un espacio bidimensional.
La clase basica que todas estas rutinas usan para el enlace con el puerto seleccionado es la
siguiente
class puerto
{
static short dato;
static short addr
static pPort port
public puerto ()
{
ports new pPort ();
addr=0x378 ;//direccién del puerto que deseamos usar
)
public void escribe(short dato)
{
port. output(addr dato );//1a funcién que toma el dato
a enviar y el puerto
}
public short lee()
{
dato=(short) port. input(addr);//captura el dato
que esta actualmente en el puerto
return (dato);
695.2.1. Movimiento segiin el Angulo de rotaci
Para esta rutina es necesatio conocer el Angulo de rotacién del motor el cual permite establecer
el algoritmo basado en modelo matemético correspondiente, esta rutina funciona con un solo
hilo de control y un hilo de enlace de datos.
El cédigo es el siguiente:
class ang//esta es la clase que retorna el mémero
de pulsos para que el motor se mueva el Angulo requerido
por el usuario
{
static Double pulsos
static int pul;
static double ang
public int cale(double angu)//este método de la clase
ang recibe como pardmetro la distancia a recorrer y
determina el niimero de pulsos para conseguirlo
public int calcan(double angu)
{
if(angu %0.9==0)//determina si el valor obtenido se acopla
con los datos dados sino redondear
{
pulsos=new Double(angu/0.9)
pul=[Link] ();
}
else
{
pulsos=new Double(ang/0.9);
pul=pulsos. intValue ();
}
return pul;
}
}
70
También podría gustarte Reporte 3 U2 PDF
Aún no hay calificaciones
Reporte 3 U2
5 páginas
Lab 6 Guia PDF
Aún no hay calificaciones
Lab 6 Guia
3 páginas
UD1 Tarea01 PDF
Aún no hay calificaciones
UD1 Tarea01
4 páginas
Servos 4 PDF
Aún no hay calificaciones
Servos 4
10 páginas
Servos 3 PDF
Aún no hay calificaciones
Servos 3
15 páginas