0% encontró este documento útil (0 votos)
20 vistas158 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.
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
0% encontró este documento útil (0 votos)
20 vistas158 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.
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
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 cl DESCRIPTORES © 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 toi IMPLEMENTACION 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 2009 NOTA 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 40 108, 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 6 4.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 85 5.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 90 Indice 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 28 Indice 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 88 Nomenclatura 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 ul ECP 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 Java INI 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 13 RPM 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 4 GENERALIDADES. 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 15 Capitulo 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, 16 Afortunadamente, el cese del Proyecto Verde coincidié con el nacimiento del fenémeno mundial Web, Al examinar las dinémicas de Internet, lo realizado por el ex-equipo verde se adecuaba a este nuevo ambiente ya que 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. 7 Una corriente eléctrica que pasa por un conductor situado en un campo magnético crea una fuerza que tiende a desplazar al conductor con respecto al campo, esta es la base del motor elé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 18 1.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. 23 5. 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 Microsoft La clase ParallelPort es una clase que se hereda de CommPort, Esta clase cuenta con una serie de métodos que facilitan el uso del puerto paralelo: + 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] 2 1.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 Basev7 Bit ‘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? 3 estado 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 35 Ja 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 36 del 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, 37 Los 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, 40 Estos tienen, generalmente, cuatro cables de salida, Necesitan ciertos trucos para ser con- trolados, debido a que requieren del cambio de direccién del flujo de 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. at Figura 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, 42 Faso [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. 44 Paso [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. 45 Debido a que los motores paso a paso son dispositivos mecénicos y como tal deben vencer ciertas inercias, el tiempo de duracién y la frecuencia de los pulsos aplicados es un punto muy importante a tener en cuenta, En tal sentido el motor debe alcanzar el paso antes que la préx- ima secuencia de pulsos comience. Si la frecuencia de pulsos es muy elevada, el motor puede reaccionar en alguna de las siguientes formas 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°, a7 El 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) 48 El 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 49 La inductancia mutua es la influencia entre inductores que resulta de la interaccién de sus campos. Cuando un cambio de corriente de un ampére por segundo en cualquiera de dos inductores induce una fem de un volt en el otro inductor, su inductancia mutua M es de 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. 50 RI 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 si R1 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, 55 Describir 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, 37 El 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. 58 Capitulo 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, 60 Capitulo 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, 61 Capitulo 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: 62 1. 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 63 Los 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, 65 Aplicacién motor PaP. Para este tipo de motor es necesario enviar un arreglo de bits para el control del mismo, el arreglo de datos debe estar ordenado de acuerdo con el orden de secuencia de 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 66 primer 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. 67 Capitulo 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 68 5.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); 69 5.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