polibits vol. 31, 2005 - polibits journal · tecnologías xdsl ing. patricia pérez romero...

51
9 17 Interfaces para el Puerto Paralelo de la PC, en Modo Bidireccional M. en C. Juan Carlos Herrera Lozada, M en C. Agustín Cruz Contreras, M. en C. Juan Carlos González Robles (CIDETEC-IPN) Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales de Trabajo José Rodolfo Martínez y Cárdenas, Jaime Díaz Altamirano, Fidel Diego Nava (CIDIIR-OAXACA) 3 Implementación de Hardware / Software para Control Difuso M. en C. Romeo Urbieta Parrazales, M. en C. Pablo Manrique Ramírez, Ing. Antonio Hernández Zavala (CIC-IPN). 23 Algoritmo de Escape para Crear un Fractal Utilizando MPI Ing. Jesús Antonio Álvarez Cedillo. (CIDETEC - IPN). 30 Programación de Sistemas de Cómputo Móviles M. en C. Juan Carlos Herrera Lozada, M. en C. Israel Rivera Zárate (CIDETEC - IPN); Rodrigo Morales Alvarado (Alumno de la Maestría en Tecnología de Cómputo del CIDETEC - IPN) 38 Oxímetro de Pulso Basado en una Palm Parte I: Fundamentos M. en C. Israel Rivera Zárate, M. en C. Juan Carlos Herrera Lozada (CIDETEC-IPN); Victor Jalil Ochoa (Estudiante UPIICSA-IPN). 45 49 Una Técnica para la Localización de Ojos Humanos en una Imagen Bidimensional Luna Esteban Bruce Leroy, Mendoza Campa Juan Manuel, Parra Bautista Roberto (ESIME Culhuacan - IPN); M. en C. Aguilar Jáuregui María Elena (CIC-IPN). Contenido

Upload: buikhue

Post on 26-Sep-2018

227 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

9

17

Interfaces para el Puerto Paralelo de la PC, en Modo BidireccionalM. en C. Juan Carlos Herrera Lozada, M en C. Agustín Cruz Contreras, M. en C. Juan Carlos

González Robles (CIDETEC-IPN)

Tecnologías xDSLIng. Patricia Pérez Romero (CIDETEC-IPN).

Diseño de un Termómetro Digital para Análisis Clínico en Animalesde Trabajo

José Rodolfo Martínez y Cárdenas, Jaime Díaz Altamirano, Fidel Diego Nava (CIDIIR-OAXACA)3

Implementación de Hardware / Software para Control DifusoM. en C. Romeo Urbieta Parrazales, M. en C. Pablo Manrique Ramírez,

Ing. Antonio Hernández Zavala (CIC-IPN).

23

Algoritmo de Escape para Crear un Fractal Utilizando MPIIng. Jesús Antonio Álvarez Cedillo. (CIDETEC - IPN).

30

Programación de Sistemas de Cómputo MóvilesM. en C. Juan Carlos Herrera Lozada, M. en C. Israel Rivera Zárate (CIDETEC - IPN);

Rodrigo Morales Alvarado (Alumno de la Maestría en Tecnología de Cómputo del CIDETEC - IPN)

38Oxímetro de Pulso Basado en una Palm

Parte I: FundamentosM. en C. Israel Rivera Zárate, M. en C. Juan Carlos Herrera Lozada (CIDETEC-IPN);

Victor Jalil Ochoa (Estudiante UPIICSA-IPN).45

49Una Técnica para la Localización de Ojos Humanos en una Imagen

BidimensionalLuna Esteban Bruce Leroy, Mendoza Campa Juan Manuel,

Parra Bautista Roberto (ESIME Culhuacan - IPN); M. en C. Aguilar Jáuregui María Elena (CIC-IPN).

Contenido

Page 2: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

XV 1 31 polibits

Diseño de un Termómetro Digital para Análisis Clínico en Animales de Labor

3

Diseño de un Termómetro Digitalpara Análisis Clínico en Animales

de Labor

L

Diseño de un Termómetro Digitalpara Análisis Clínico en Animales

de LaborJosé Rodolfo Martínez y Cárdenas,Jaime Díaz Altamirano,Fidel Diego [email protected][email protected]@ipn.mxProfesores del CIIDIR Oaxaca-IPN

os métodos empleados en elsureste mexicano para la pro-ducción en el campo son ob-

soletos; no es conveniente introdu-cir maquinaria pesada, por razoneseconómicas y orográficas, lo que obli-ga a realizar un refinamiento y redi-seño de las técnicas y herramientasactualmente empleadas, para podermejorar la producción. El CIIDIROaxaca ha implementado un pro-yecto cuyo objetivo es el diseño yevaluación de un apero de tracciónanimal, para mejorar la labranza,conservando fértil y útil la tierrapara siembras posteriores. Para eva-luar el desempeño del apero se re-quieren instrumentos de mediciónque valoren el esfuerzo de los anima-les de tiro, monitoreando su tempe-ratura corporal y otras variablesfísicas. El equipo apropiado es inexis-tente o escaso, y muchas veces sóloadquirible en el extranjero. Para po-der medir la temperatura de los ani-males de tiro, mientras trabajanarrastrando un apero, se desarrollóun sistema de tele termometría que,de manera inalámbrica, puede mo-nitorear la temperatura corporal delas bestias empleadas para el arras-tre. Dicho sistema está constituidopor dos partes: la primera contieneal sensor, un acondicionador de se-ñal, un convertidor analógico-digi-

tal, un microcontrolador y un trans-misor de RF. En esta etapa el sensortoma la temperatura de la oreja delanimal, y entrega una señal eléctricaproporcional a ésta, la cuál es digita-lizada, procesada y enviada vía RF ala segunda sección, que contiene, unreceptor de RF, un microcontrola-dor, y un Despliegue de Cristal Lí-quido (LCD). En esta sección se recibey procesa la información enviadapor la primera etapa, para finalmen-te desplegar el dato en el LCD.

INTRODUCCIÓN

Uno de los sectores económicosde México que más necesitan de tec-nologías propias es la agricultura delos estados del sureste del país, endonde aún se aplican con éxito rela-tivo los arados de madera de trac-ción animal. Desarrollados por losegipcios en la antigüedad y los euro-peos durante la edad media, no per-miten un aprovechamiento máxi-mo de la potencia de los animales detrabajo.

La renovación de las técnicas delabranza de estos campesinos no sig-nifica que se deba planear la intro-ducción de tractores y maquinariapesada, pues la economía y orogra-fía del estado no lo permiten; es porello que en el CIIDIR-Oaxaca, se rea-lizó el proyecto �Desarrollo y eva-luación de un apero de tracción ani-mal para labranza de conservación�,el cual tiene como objetivos el mejo-

ramiento de la técnica de labranzade los campesinos para elevar la efi-ciencia de los animales de trabajo y,al mismo tiempo, permitir la con-servación de la fertilidad y utilidaddel suelo de siembra. Para tal efectose necesita evaluar las labranzas conel arado de madera y el apero dise-ñado, con el fin de comparar la res-puesta de los animales de trabajo. Enambos casos se debe vigilar que elesfuerzo realizado por los animalesde tiro al arrastrar el artefacto seamoderado, y no les provoque agota-miento excesivo o lesiones cardio-vasculares. Para ello, se hacen nece-sarios el monitoreo y vigilancia delas principales variables fisiológi-cas de los animales en plena activi-dad, tales como: ritmo cardiaco, rit-mo respiratorio y temperatura cor-poral.

Para lograr estas mediciones nose pueden emplear las técnicasconvencionales utilizadas por los ve-terinarios, puesto que estas exigenque el animal se encuentre estático.Tampoco se pueden usar para medi-ciones contínuas porque se puedealterar el comportamiento del ani-mal. Pero no existe en el mercadonacional un instrumento adecuadoa las necesidades que plantea lamedición de dichas variables; enrespuesta a esa falta de instrumen-tación, se diseñó un sistema de tele-metría de temperatura.

El proyecto tiene la finalidad dedesarrollar un dispositivo que, me-diante un sensor de temperatura,

id4573515 pdfMachine by Broadgun Software - a great PDF writer! - a great PDF creator! - http://www.pdfmachine.com http://www.broadgun.com

Page 3: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

4 polibits 2005

Diseño de un Termómetro Digital para Análisis Clínico en Animales de Labor

permita monitorear a distancia latemperatura corporal de los anima-les de labranza, mientras éstosarrastran un apero. Estas medicio-nes tienen la finalidad de indicar quétan grande es el esfuerzo realizadopor las bestias al arrastrar determi-nado modelo de apero. Estos datospermitirán rediseñar el apero, con elfin de buscar aquel que proporcioneun mejor rendimiento.

OBJETIVOS DEL PROYECTO

OBJETIVO GENERAL

Desarrollar un sistema automá-tico que permita realizar medicio-nes, a distancia y de manera inalám-brica, de la temperatura corporal delos animales de labranza mientrasarrastran un apero, con el fin deregistrar dichas mediciones para suuso posterior.

OBJETIVOS ESPECÍFICOS

� Crear un instrumento de medi-ción de temperatura, útil y decosto razonable.

� Realizar un sistema inalámbricode transmisión de datos, para po-der conocer a distancia la tempe-ratura registrada por el instru-mento de medición.

� Diseñar el sistema para que pue-da ser adaptado para monito-rear otras variables (ritmo car-diaco, ritmo respiratorio, etc.),usando como base el medidor detemperatura.

MATERIALES Y PROCEDIMIENTOS

Los mamíferos son los vertebra-dos de organización más elevada.No obstante la variabilidad en su

forma, organización y género devida, que dan origen al estableci-miento de grupos u órdenes muydistintos unos de otros, estos ani-males pueden caracterizarse por tresrasgos fundamentales: la piel reves-tida de pelos, la presencia de glándu-las mamarias, y la constancia de latemperatura de su cuerpo. Un cambio enla temperatura cambia también elcarácter de procesos biológicos máscomplejos. Esto hace que una tempe-ratura relativamente constante seauna necesidad para el eficaz funcio-namiento del complicado encéfalode los animales superiores (aves ymamíferos) adultos.

Durante la evolución, los anima-les superiores han desarrollado undispositivo termorregulador que loscapacita para mantener bajo condi-ciones ordinarias una temperaturaorgánica interior constante, inde-pendientemente de la temperaturadel ambiente. Estos animales, homeo-termos o de sangre caliente, son capa-ces de llevar a cabo sus actividadesusuales bajo límites amplios de tem-peratura externas, mientras que losanimales poiquilotermos o de sangrefría, cuyas temperaturas varían di-rectamente con las del ambiente,dependen totalmente de la tempera-tura externa.

Los mamíferos muy jóvenes enlos que la función integradora delencéfalo no se ha desarrollado toda-vía, muestran una gran tolerancia alos cambios de temperatura orgáni-ca. Esto parece confirmar la idea deque es la complejidad de organiza-ción lo que hace necesaria la homeo-termia.

Muchas son las condiciones quepueden causar variaciones norma-les en la temperatura orgánica delos homeotermos; entre otras, estánla edad, el sexo, la estación, la horadel día, la temperatura ambiente, elejercicio, la ingestión de alimentos,la digestión y la bebida de agua.

En el hombre y los animales exis-ten gradientes de temperatura en lasangre, los tejidos y el recto; las tem-peraturas son más bajas hacia elexterior del cuerpo. También exis-ten variaciones considerables en lasdiferentes partes del núcleo centraly partes periféricas del cuerpo, porlo que los miembros pueden estar a10C o más por debajo de la tempe-ratura central.

En los animales se obtiene conmayor facilidad un índice de la tem-peratura orgánica profunda por in-serción de un termómetro en el rec-to. Aunque la temperatura rectal norepresenta siempre un promedio dela temperatura orgánica profunda,generalmente deberá considerarsemejor medir la temperatura en estesitio, que utilizar diversos puntos.

La temperatura rectal en los ani-males domésticos más comunes seencuentra dentro de un rango redu-cidoque va desde los 37.5C hasta los41C en promedio. Es evidente quesería muy poco práctico tratar detomar la temperatura rectal a unespécimen que se encuentra en plenaactividad física, que es como estaránlos animales que se deberán monito-rear en este proyecto: el sensor nopodría hacer un buen contacto conla mucosa rectal del animal, dandolecturas erróneas; además, el cuerpoextraño activaría un reflejo excreto-rio en el animal.

Por otra parte, la temperatura nodebe de tomarse sobre ningún mús-culo del animal durante la actividadfísica de éste, pues la temperaturadel músculo tiene la tendencia a ele-varse considerablemente, reducien-do la fiabilidad de las medicionesobtenidas de este modo. La tempe-ratura podría tomarse también demanera oral. El único inconvenientede hacerlo de este modo, es que seríamuy difícil mantener el sensor den-tro del hocico del animal sin que éste

Page 4: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

XV 1 31 polibits

Diseño de un Termómetro Digital para Análisis Clínico en Animales de Labor

5

mastique los cables, escupa o tragueel dispositivo.

Es bien sabido que en la mayorparte de los mamíferos las orejas,además de cumplir con la funciónauditiva, son un elemento de granimportancia en el mecanismo de con-trol de temperatura corporal de losanimales. Dicho en otras palabras,las orejas son una ventana a la tem-peratura corporal del animal y, porlo tanto, una buena opción para to-mar las mediciones necesarias. Ade-más, la medición de la temperaturaen las orejas del animal, si bien no estan precisa, es una alternativa a lamedición de la temperatura rectal .Tomando esta idea, se determinó queel sensor se colocaría en una oreja delespécimen.

En cuanto al sensor a utilizar, sedeberá utilizar uno de los llamados�sensores eléctricos�, es decir, quesu funcionamiento se basa en laspropiedades eléctricas de los mate-riales de que están fabricados.

La banda de temperaturas a me-dir en el proyecto está determinadapor las temperaturas corporales delos animales de interés; el rango esrealmente estrecho, lo cuál hace ade-cuado el uso de un sensor basado ensemiconductores. El más adecuadoes el denominado sensor de circuitointegrado: los sensores de circuitosintegrados son muy lineales, ofre-cen altos niveles de rendimiento, sonrelativamente económicos y bastan-te precisos en temperaturas cerca-nas a la temperatura ambiente, aun-que requieren de una fuente de ali-mentación.

Por sus caracteristicas, el sensorseleccionado fue el LM35D, ya que esfácil de adquirir en el mercado na-cional.

Este sensor entrega a su salida unvoltaje proporcional a la tempera-

tura que registra, a una razón de10mV por cada grado Celsius, te-niendo por lo tanto una relación li-neal de voltaje y temperatura; lagráfica es una línea recta. La ecua-ción que describe el comportamien-to del sensor con respecto a la tempe-ratura es:

V T mVs C ( )10

En donde Vs es la salida delsensor, en milivolts, y Tc es la tempe-ratura en grados Celsius. El LM35 escapaz de medir temperaturas quevan de los -55C, hasta los +150C,como un rango máximo de opera-ción.

Una de las mayores ventajas delLM35 es que sus conexiones son ex-tremadamente sencillas, además deser muy versátil, pues puede ser con-figurado de distintas maneras. Eneste caso, como el rango de tempera-tura a medir es relativamente pe-queño, se eligió una configuraciónsencilla: las terminales de alimenta-ción y tierra se conectan a la fuentede manera directa, y la terminal dela salida de la señal, se conecta atierra por medio de una resistenciatal que la corriente que circula porella debido al voltaje de alimenta-ción sea de 50 microamperes.

Cuando se trabaja con sensores,es muy común que la informaciónque envía el sensor sea demasiadodébil para manipularla en las si-guientes etapas, por lo que se debe deacondicionar para ello. Para la im-plementación del acondicionamien-to de señal, lo más adecuado es el usode amplificadores operacionales(circuitos integrados lineales), loscuáles facilitan y hacen más efectivoel proceso de acondicionamiento; eldiseño de circuitos con amplificado-res operacionales presenta grandesbondades, pues permite obtener sis-temas estables, con buena fidelidad

a la salida, que consumen poca ener-gía y ocupan poco espacio; además,no son difíciles de conseguir en elmercado, y su costo es bajo. Haymodelos de amplificadores opera-cionales que se han especializado yse les llama amplificadores de ins-trumentación. Estos tienen básica-mente las mismas características delos operacionales en general, peroson capaces de detectar y manipularseñales muy pequeñas. La única des-ventaja del uso de amplificadoresoperacionales en circuitos portáti-les es que exigen el uso de mas de unapila, o bien la construcción de unsimetrizador de fuente. Para el acon-dicionamiento de la señal fue elegidoel amplificador operacional cuádru-ple TL064.

Se sabe que el rango de tempera-turas a medir va de 37.5C a 43C. Aeste rango se le debe agregar unatolerancia mínima y máxima. Da-das las características de la circuite-ría a utilizar (Microcontroladorescon datos de 8 bits), es convenienteque el rango no rebase una temp. de25.5C; es por esto que se decidió quela temperatura mínima manejablepara el sistema fuera de 30.0C, y lamáxima, de 55.5C, lo que deja unmargen de tolerancia inferior de7.5C, y un margen superior de12.5C; de esto, se deduce que losvoltajes máximo y mínimo que semanejarán serán:

V30ºC = 30ºC(10mV/ºC) = 300mV

V55.5ºC = 55.5ºC(10mV/ºC) = 555mV

V = (55.5ºC � 30ºC)(10mV/ºC)= 25.5ºC(10mV/ºC) = 255mV

El convertidor Analógico-Digital,por su parte, será ajustado para quea la entrada un voltaje de cero voltscorresponda a un valor de cero a lasalida (00000000002), y para un va-lor igual al voltaje positivo de ali-mentación del PIC16F874, de un va-lor de 1023 (11111111112).

Page 5: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

6 polibits 2005

Diseño de un Termómetro Digital para Análisis Clínico en Animales de Labor

MICROCONTROLADORES YELECTRÓNICA DIGITAL

El uso de señales digitales permi-te realizar procesos complejos con lainformación, en los cuales se produ-ce un mínimo de errores, y es por esoque en este caso se debe digitalizar laseñal acondicionada. Para lograrlose requiere un Convertidor Analógi-co Digital (ADC); los ADC más co-munes entregan a su salida núme-ros compuestos por 8 bits (un Byte),con lo cual dan un total de 256 esta-dos posibles. Se usará el ADC inter-no del PIC16F874, de esta manera elPIC realizará dos funciones: digita-lización y procesamiento de infor-mación, volviendose el sistema máscompacto y menos propenso a erro-res.

Dicho ADC empleará como vol-tajes de referencia los voltajes dealimentación del PIC (0-5V). Debehacerse notar que este ADC entregaa la salida números de 10 bits; en elproyecto se utilizarán sólo los 8 bitsmenos significativos, por lo que lasalida del acondicionador de señalcorrespondiente a 55.5V debe de sermucho menor a 5V.

Los cálculos para dicho voltajeson:

5

1023 255

V xV

xVV

V 5 255

102312463343

( ).

Para que el sistema proporcionesiempre lecturas correctas, la ali-mentación debe estabilizarse con unregulador de voltaje, pues de otraforma, el voltaje de referencia supe-rior sería inestable.

Cuando el ADC ha realizado sufunción, el PIC16F874 inicia una

transmisión serial de los 8 bits me-nos significativos del resultado ob-tenido, siendo éstos antecedidos porun doble bit de inicio.

Para realizar la transmisión se-rial inalámbrica se usaron módulosde RF para el enlace. Los módulosusados son:

Transmisor: TXM-433-LC-RReceptor: RXM-433-LC-S

Estos módulos tienen una modu-lación ASK; a pesar de esto, al teneruna transmisión digital se obtieneuna buena calidad en el enlace ina-lámbrico, y un alcance de aproxima-damente 40 metros. Los módulos deRF usados también son muy flexi-bles en cuanto a la velocidad detransmisión, pues pueden ser usa-dos con velocidades que van desdeunos cuantos bits hasta 5 kilobitspor segundo.

El receptor ASK detecta los bitsenviados por el transmisor y los en-trega en forma de niveles de voltaje(dos niveles lógicos), pues es unatransmisión digital. Un PIC16F84 losprocesará para visualizar la infor-mación sobre un Despliegue de Cris-tal Líquido, modelo DMC16249 de lamarca Optrex. Generalmente, losdespliegues de este tipo tienen unmicrocontrolador del tipo HD44780,de la marca japonesa Hitachi, o unomuy similar, y ésta no es la excep-ción.

El PIC16F84 realizará el proceso

de la información para su posteriorvisualización de esta. Se usará estemodelo de PIC por ser uno de los máseconómicos y manejables; el núme-ro de terminales destinadas a entra-da/salida, es ideal para la funciónque realizará. El PIC16F84 debe serprogramado para que, cuando de-tecte en bit de inicio en la terminalusada como entrada serial, inicie unproceso de captura de los 8 bits por-tadores de informacion. Después dehaber obtenido esta información, loúnico restante es mandar a impri-mir los caracteres; para ello, se em-plea la última etapa del programadel PIC16F84. Es necesario incluir enel programa rutinas de control parael LCD; estas rutinas deben de go-bernar las acciones del LCD pormedio de las tres líneas de control deéste.

El LCD usado en este proyecto esuno de los más comunes, y no esdifícil de conseguir en el mercadonacional; se trata de un LCD de ca-racteres matriciales, con dos líneasy 16 caracteres por línea.

DIAGRAMAS GENERALES

A continuación se anexan losdiagramas generales, con sus valo-res y características, correspondien-tes al proyecto tratado en este infor-me. La Figura 1 es el diagrama abloques del sistema en su totalidad;el Diagrama 1 corresponde a la par-te del sistema que realiza la medi-

Figura 1.- Diagrama a bloques del sistema propuesto

Page 6: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

XV 1 31 polibits

Diseño de un Termómetro Digital para Análisis Clínico en Animales de Labor

7

ción y la transmisión de la informa-ción, y el Diagrama 2 muestra alsubsistema encargado de recibir losdatos transmitidos y desplegar lainformación.

CONCLUSIONES

1.- El sistema desarrollado en elpresente proyecto se apega a las ne-cesidades reales.

2.- El desarrollo de un sistema dela naturaleza del aquí descrito, re-quiere de una inversión regular, de-bido a la importación de los módu-los de RF empleados, que no se pue-den adquirir en el mercado nacional.Si éstos fueran comerciales en el país,el costo total del sistema sería muybajo, especialmente si se le comparacon el costo de un sistema similar depresentación comercial.

3 El sistema descrito a lo largodel presente reporte, es funcional enel trabajo de campo, y cuenta con ungran número de posibles aplicacio-nes adicionales a aquella para la cuálfué creado; además, es fácilmenteadaptable a otras situaciones querequieran modificarlo. Una de susmejores características, es que con

una reducida inversión se puede am-pliar su funcionalidad, para em-plearlo en más de una aplicación a lavez.

Con base en las experiencias per-sonales adquiridas a lo largo de larealización del presente proyecto, yobservando las carencias generali-zadas en los laboratorios escolares yde instituciones de investigación, serecomienda que:

1 Las instituciones de educa-ción superior e investigación adquie-ran el equipo necesario para apoyarel trabajo que se realice en sus labo-ratorios, pues la carencia de és-tos impide el correcto desarrollode las investigaciones y prácti-cas escolares y profesionales.

2Se implemente el apoyoeconómico a los residentes e in-vestigadores para la compra demateriales, en especial cuandoéstos sean de alto costo y/o de-ban ser adquiridos fuera del país.Asimismo, que se ayude al in-vestigador para que, con el res-paldo de la institución le sea másfácil la adquisición de materia-les de importación.

3Se hagan llegar los resulta-dos de las investigaciones, sean pro-totipos o conocimientos, a aquellos alos que sea de utilidad, para que deeste modo el trabajo realizado tengacontinuidad y utilidad.

4.- Se instituyan en los centrosde investigación y las escuelas supe-riores, áreas especializadas en el de-sarrollo de equipos de instrumenta-ción para su empleo en las activida-des científicas y/o didácticas de lamisma institución.

Diagrama 1. Sección de medición y transmisión de información

Diagrama 2. Subsistema de recepción dedatos y despliegue de información

Page 7: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

8 polibits 2005

Diseño de un Termómetro Digital para Análisis Clínico en Animales de Labor

BIBLIOGRAFÍA

[1] Angulo Usategui, José Ma. yCo. Microcontroladores PIC 1ªparte. 2ª ed. México. Ed. Mc.Graw-Hill. 2000.

[2] Angulo Usategui, José Ma. yCo. Microcontroladores PIC 2ªparte. 3ª ed. México. Ed. Mc.Graw-Hill. 2000.

[3] Boylestad, Robert L. y Co. Elec-trónica: teoría de circuitos. 6ª Ed.México. Ed. Prentice Hall. 1997.

[4] Coughlin, Robert F. y Co. Am-plificadores operacionales y circui-tos integrados lineales. 4ª ed.México. Ed. Prentice Hall. 1993.

[5] Fanjul, María Luisa y Co. Bio-logía funcional de los animales. 1ªed. México. Ed. Siglo XXI. 1998.

[6] Dukes, H. H. y Co. Fisiología delos animales domésticos Tomo II;funciones de integración y repro-ducción. 4ª ed. México. Ed. Agui-lar. 1981.

[7] Floyd, T. L. Fundamentos de sis-temas digitales. 6ª ed. España.Ed. Prentice Hall.1997.

[8] García Molina, José Carlos.Seminario de proyecto sistema au-tomático de medicón de la tempera-tura cutánea promedio. México.1982

[9] Rioja Lo Bianco, Enrique y Co.Tratado elemental de zoología. 8ªed. México. Ed. E.C.L.A.L.S.A.1968.

PÁGINAS EN INTERNET

[1] www.microchip.com

[2] www.rentron.com

[3] members.fortunecity.es/te-lectronica/

[4] www.miguelo.com.ar

Page 8: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

XV 1 31 polibits

Interfaces para el Puerto Paralelo de la PC, en Modo Bidireccional

9

Interfaces para el PuertoParalelo de la PC, en Modo

Bidireccional

E

Interfaces para el PuertoParalelo de la PC, en Modo

BidireccionalM. en C. Juan Carlos Herrera Lozada,M. en C. Juan Carlos González Robles,Ing. Agustín Cruz Contreras;Profesores del CIDETEC � IPN

ste es el primero de una serie de artículos enfoca-dos al uso del puerto paralelo de la PC, parapropósitos especiales y con tendencias actuales.

En esta primera entrega se explica de manera concreta,cómo manejar el puerto de impresión de la PC en modobidireccional, con la intención de interactuar con unhardware externo. Se aportan soluciones mínimas ensoftware bajo Windows en todas sus versiones, inclu-yendo Windows XP. La metodología expuesta paraconfigurar el puerto se hace extensiva para aplicacionesdiversas con requerimientos similares.

INTRODUCCIÓN

El puerto paralelo se apega al estándar IEEE 1284,liberado en 1994 y que define 4 modos de operaciónsoportados aún en la actualidad:

1. Puerto Paralelo Estándar (SPP)2. Puerto Paralelo PS/2 (Bidireccional)3. Puerto Paralelo Mejorado (EPP)4. Puerto Paralelo con Capacidades Extendidas (ECP).

La mayoría de las computadoras personales recien-tes, tanto de escritorio como portátiles1, presentan poromisión una configuración del puerto paralelo en dosdirecciones de datos (bidireccional) para cualquier sis-tema operativo. Los sistemas operativos menos recien-tes, Windows 98 y anteriores, también son capaces desoportar este tipo de esquema para recibir y enviardatos por el puerto de impresión, siempre y cuando seconfigure manualmente dicha característica, preferen-temente desde el SETUP.

El motivo central de este artículo es discutir el modode operación bidireccional. Para el análisis mostrado seconsideran dos vertientes: la programación del puertobajo el modo MS �DOS (Micrososft Disk Operating System �Sistema Operativo en Disco), y como segunda derivación, laprogramación en Modo Windows. En ambos casos serevisan interfaces unidireccionales y bidireccionales.

PROGRAMACIÓN DEL PUERTO PARALELO EN MODO

MS - DOS

El modo MS- DOS es válido en Windows 98 y versio-nes anteriores (95, 3.1, etc.). En esta condición es posibleescribir directamente a los registros del puerto.

PUERTO PARALELO UNIDIRECCIONAL

Considerando el modo de una sola dirección, común-mente llamado Puerto Paralelo Estándar (SPP), existentres direcciones consecutivas asociadas con un puertoparalelo; estas direcciones pertenecen al registro dedatos (Data Register), el registro de estado (Status Register)y el registro de control (Control Register). Se le denominadirección base a la que indica la propia del registro dedatos, por lo general 0x378; así se tendría para el registrode estado la dirección inmediata siguiente 0x379 y parael registro de control la dirección 0x37A

Existen alternativas diferentes para encontrar ladirección de los puertos, dado que ésta puede cambiardependiendo de la arquitectura y organización internade la PC. Es posible acceder directamente al panel de controlde Windows y verificar el sistema; dentro de los recursoshardware se encuentra el administrador de dipositivos. El puer-to paralelo se utiliza para la conexión de impresoras, porlo que aparecen etiquetados como LPT1, LPT2, LPT3 óLPT4, según las características de la PC.

1 En las portátiles, se tiende a encaminar todos los periféricos hacia USB, eliminando en algunos casos el puerto paralelo y el puerto de juegos;así como la unidad de disco flexible, obligando a que ésta sea externa, o bien, utilizar la alternativa del disco compacto.

id13259937 pdfMachine by Broadgun Software - a great PDF writer! - a great PDF creator! - http://www.pdfmachine.com http://www.broadgun.com

Page 9: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

10 polibits 2005

Interfaces para el Puerto Paralelo de la PC, en Modo Bidireccional

Es importante recordar que en el modo estándar, elpuerto de datos sólo es de salida, de ahí que se le conozcacomo unidireccional, y es de 8 bits. El puerto de estado esde sólo entrada con 5 bits referidos en el conector y elpropio de control tiene 4 bits de sólo salida. En resumen,bajo este modo se tienen 12 líneas de salida (de las cuales,3 son de tipo activo bajo) y sólo 5 de entrada (con una solalínea de tipo activo bajo), tal y como se aprecia en laFigura 1.a.

El puerto paralelo utiliza un conector hembra claseD de 25 terminales (DB-25), definido como TIPO A por elestándar IEEE 1284 (obsérvese la Figura 1.b). Este conec-tor es el de interes en este artículo.

En las Figuras 1.a y 1.b, se aprecia la distribuciónfísica de los pines en el conector DB-25. Para fines de

análisis, se considera que los tres registros del puerto sonde 8 bits, por lo que se tiene un orden significativo que esnecesario respetar cuando se forma una palabra deconfiguración; por ejemplo, en el caso del registro deestado, se tiene disponible a partir del bit 4 y hasta el bit8 (S7, S6, S5, S4, S3), los demás están comprometidos oreservados para otros propósitos. De acuerdo al diagra-ma interno aproximado mostrado en la Figura 1.b, el bitmás significativo del registro de estado (S7), trabaja conlógica negativa y está físicamente ubicado en la terminal11 del conector. Si se requiere leer una palabra de entradaa través de este registro, es importante considerar conqué lógica funciona cada línea.

El registro de control, para fines prácticos en el diseñode interfaces en modo estándar, es sólo de salida y utilizalos primeros cuatro bits (C3, C2, C1, C0) del registro, losrestantes cuatro están reservados. En este registro, losbits C3, C1 y C0, trabajan con lógica invertida y estánlocalizados físicamente en las terminales 17, 14 y 1 delconector.

Como ya se comentó, los ocho bits del registro dedatos se utilizan sólo como salidas y todos trabajan conlógica positiva, ubicándose en orden significativo de lalínea 2 a la 9 del conector, tal y como se aprecia en laFigura 1.a.

El siguiente programa escrito en Lenguaje C, muestrade manera sencilla cómo se envían y reciben datos. Elcircuito secuenciador de la Figura 2 se activa con el botónexterno conectado al bit 4 del registro de estado (S3),ubicado físicamente en la terminal 15 del conector.

/* {jcrls, acruz, jgrobles}@ipn.mx */

/*Se incluyen las bibliotecas generales, No se utilizan todas en esteejemplo*/

#include <stdio.h>#include <stdlib.h>#include <conio.h>#include <dos.h>

void main(void){int entrada;int leds[9] = {0,1,2,4,8,16,32,64,128}; /*Datos de la secuencia, en

decimal*/int i;

while(1) { entrada = inportb(0x379); if (((entrada)&0x08)==0) /*Si el bit S3 está en 0, el botón está

presionado*/

{

Figura 1.a. Puerto Paralelo Estándar, disposición determinales del conector DB25.

Figura 1.b. Conexiones Internas del ConectorDB25.

Page 10: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

XV 1 31 polibits

Interfaces para el Puerto Paralelo de la PC, en Modo Bidireccional

1 1

for(i = 0; i < 9; i++) {

outport(0x378,leds[i]);/*Recorre uno a uno los bits de izquierdaa derecha*/

sleep(1); } } else outportb(0x378,0x00);

/*Si el botón no es presionado, los LEDse apagan*/

}}

Las conexiones bási-cas requieren de las ter-minales 2, 3, 4, 5, 6, 7, 8 y9 del conector, D0, D1,D2, D3, D4, D5, D6 Y D7del registro de datos, porlo que se conectarán ledstal y como lo indica eldiagrama de la Figura 2.Para la conexión del bo-tón de activación se uti-lizará la línea 15 del co-nector. Se recomiendautilizar una fuente ex-terna de 5 volts y aco-plar las tierras.

Como ya se indicó, este programa sólo funciona enmodo MS- DOS. Para que funcione también sobre siste-mas operativos superiores a Windows 98, es necesariauna biblioteca de enlace dinámico (dll) que declare nue-vas funciones para acceder al puerto paralelo, esta cues-tión se detallará más adelante en este mismo documen-to.

PUERTO PARALELO BIDIRECCIONAL

En algunas aplicaciones prácticas se requieren máslíneas de entrada que las disponibles en el puerto deestado; por ejemplo, leer los 8 bits de un convertidoranalógico � digital paralelo o interactuar con una pan-talla de LCD. Dado que las entradas del puerto de estadoestán restringidas a sólo 5 bits, es necesario adecuar elprograma escrito hacia una lógica de multiplexaje quelea un dato de 4 bits, se almacene en una localidad dememoria y después de un tiempo se lea la otra parte deldato, pensando en una entrada de 8 bits ó más.

Es admisible configurar el puerto de datos para quesus ocho terminales puedan ser también entradas. Estose logra accediendo al puerto de control y cambiando el

bit número 6 del regis-tro de un estado natu-ral bajo a un estado alto.Cuando C5 está a 0 ló-gico, las 8 líneas delpuerto de datos son sa-lidas y cuando C5 estáa 1 lógico, se compor-tan como entradas. LaFigura 3, muestra ladisposición física de lospines del registro delpuerto de control.

Considerando una dirección base 378H para el puer-to de datos, se lista el siguiente fragmento en lenguaje Cpara explicar de manera más concreta la idea anterior.

{unsigned int Valor, temp;outportb(0x37A, 0x20);Valor=inport(0x378);printf («Valor Leído: %u \n», Valor);getch();

}

Obsérvese que en la primera instrucción outportb(0x37A, 0x20) se escribe al puerto de control con ladirección 0x37A un valor hexadecimal 0x20, traducidoa binario de 8 bits como 00100000, especificando que elbit número 6 se establece a un nivel lógico alto, por lo queel puerto de datos (0x378) está configurado como entra-da. En la siguiente instrucción Valor=inport(0x378) seleen las 8 líneas de datos y se asignan a una variable sinsigno previamente definida.

Como ejemplo práctico, se considera un ADC0804supervisado a través del puerto paralelo en modo bidi-reccional, como lo expone el diagrama de la Figura 4. Eneste artículo no se expone a detalle el funcionamiento delconvertidor por lo que se recomienda consultar la hojade especificaciones del dispositivo. Para este diseño enparticular, la entrada analógica a convertir provienedirectamente de una resistencia variable; sin embargo,ésta se puede sustituir (con las adecuaciones necesarias)por algún sensor, por ejemplo, un dispositivo LM35 paraconcebir un termómetro digital.

Para las señales de control WR y RD, se consideran losbits 2 y 0, respectivamente del puerto de control (0x37A).

Como ya se mencionó, C5 es el bit que permite confi-gurar el puerto de datos como entrada o salida, por lo queno tiene una línea exterior.

Figura 3. Puerto de Control

Res

erve

d

Res

erve

d

Dir

ectio

n

IRQ

Ena

ble

____

___

Sel

ect I

n

____

___

Aut

ofee

d__

___

Str

obe

INIT

C7

C6

C5

C4

C3

C2

C1

C0

Figura 2. Circuito secuenciador enmodo estándar.

Page 11: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

12 polibits 2005

Interfaces para el Puerto Paralelo de la PC, en Modo Bidireccional

En el programa en lenguaje C listado a continuación,se decidió utilizar C2 para Write y C0 para Read en el ADC.Físicamente, y con referencia a la Figura 3, C2 estáasignado a la terminal 16 del conector y C0 a la línea 1 delmismo. Nótese que el hardware interno del puerto decontrol especifica que la línea 1 del conector tiene lógicanegativa, por lo que se debe considerar este aspecto en elmomento de generar las señales de escritura y lectura.

Para leer el bit correspondiente a la señal INTR queindica el fin de la conversión del ADC, se utiliza el bit S3del puerto de estado (0x379), ubicado en la terminal 15del conector.

Para capturar un dato convertido, se utilizan los 8bits del puerto de datos (0x378) conectados de maneratradicional, del menos significativo al más significativo;en otras palabras, DB0 corresponderá al D0 del puerto(terminal 2), DB1 a D1 (terminal 3) y así, sucesivamente,hasta DB7 que corresponderá a D7 (terminal 9).

Al principio del programa listado se solicita el núme-ro de muestras a convertir (cuántas veces se repetirá elprograma). Es una manera sencilla de terminar el pro-grama después de �n� lecturas. También es posibleasignar una tecla para salir. Se recomiendan pocasmuestras cuando el retardo es de un valor alto.

/* ADC0804 por el puerto paralelo, {jcrls, acruz, jgrobles}@ipn.mx8-bits utilizando modo bidireccional (ECP).*/

#include <stdio.h>#include <dos.h>

main()

{unsigned int pdatos, pestado, pcontrol, temp, dato_leido;

int contador, muestra;pdatos=0x378;pestado=pdatos+1; pcontrol=pdatos+2;temp=inportb(pcontrol); /*permite restaurar elvalor original del puerto*/

clrscr(); /* «muestra» indica el número de lecturas quedeseas realizar*/ for (muestra=0; muestra<50; muestra++) { /* Comienza la conversión poniendo en bajo«write» y manteniendo C5 en alto para labidireccionalidad.Posteriormente pondremos en alto «write» paradeshabilitarlo; así se genera el pulso negativopara accionar «write»*/ outportb(pcontrol, 0x20); delay(10000); outportb(pcontrol, 0x24);

/* Espera hasta que la conversión haya concluido recibiendo el bit INTRproveniente del ADC*//* «contador» permite terminar el programa después de 256 ciclos sino se ha conectado el ADC al puerto*/ contador=0; do { contador++; } while (((inportb(pestado) & 0x08)==0) && (contador!=256)); if (contador==256) printf («No hay convertidor!!!\n»); else { delay(10000); /*Es posible omitir el retardo*/ outportb(pcontrol, 0x25); delay(10000); dato_leido=inportb(pdatos); outportb(pcontrol, 0x24); clrscr(); printf («ADC value:%i»,dato_leido); getch(); /* Únicamente espera por una tecla, una vez que concluyóel programa*/ } }outportb(pcontrol, temp); /*restaura puerto de control a su valororiginal*/return 0;}

De igual forma que en el modo unidireccional, estecódigo funciona correctamente sólo en modo MS-DOS.

PROGRAMACIÓN DEL PUERTO PARALELO EN

MODO WINDOWS

Windows NT, 2000 y XP no permiten manejar elpuerto paralelo en modo MS-DOS, como sucedía con lasversiones anteriores de este mismo sistema operativo.Para solucionar este inconveniente, y dar acceso al puer-to en cualquier versión de Windows (en modo Windo-ws) se requieren bibliotecas de enlace dinámico (dll) quegestionan ante el sistema operativo el manejo del puerto.

Figura 4. Diagrama del convertidor conectado al puerto paralelo.

Page 12: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

XV 1 31 polibits

Interfaces para el Puerto Paralelo de la PC, en Modo Bidireccional

13

Una dll se diseña, por lo general, en C++ y se utiliza enlenguajes de alto nivel como el mismo C++, Delphi o Java,entre otros. En este artículo se utiliza una dll freeware (usolibre, no comercial) para crear interfaces en Visual Basic6.0.

Ninguno de los compiladores para Windows haincluido un componente para el manejo de puertos enforma general sólo para comunicaciones e impresión. Laventaja que tiene Visual.

Basic sobre otros lenguajes es la facilidad del entornovisual. La biblioteca io.dll se descarga gratuitamente dehttp://www.geekhideout.com y se copia al directorio ubica-do en C:/Windows/System32/. En Internet existendisponibles otras bibliotecas similares; la que aquíse indica es la que se ha probado con éxito en todoslos diseños presentados.

El siguiente paso consiste en crear un proyectoestándar en Visual Basic y adicionar un móduloque incluya los prototipos de la dll para VisualBasic, listados en la misma página web de dondese descargó dicha dll (referirse a la Tabla 1).

Lo anterior se logra activando la opción delmenú Proyecto y seleccionando Adicionar Módulo. Enel espacio de edición del mismo módulo se escribenlos prototipos de la Tabla 1. Para salvar el proyec-to completo se requiere nombrar primeramente laForma, después el Proyecto y finalmente el Módulo.Obsérvese la pantalla de la Figura 5.

Básicamente y en correspondencia con los prototi-pos de la dll, se tienen 13 funciones para manejo delpuerto paralelo; nos enfocaremos sólo a cuatro: PortOut,PortIn, SetPortBit y ClrPortBit. Las dos primeras permitenenviar y recibir respectivamente un byte por el puertoindicado. SetPortBit y ClrPortBit, manipulan sólo un bitdel registro, ya sea para establecerlo o para limpiarlo.

PROGRAMACIÓN UNIDIRECCIONAL EN VISUAL BASIC

Considerando el mismo ejemplo en modo estándarpropuesto por el diagrama de la Figura 2; en Visual Basicno se tienen las directivas Sleep ni Delay, propias de C, porlo que para temporizar se requiere un Timer sincronizadoen milisegundos. La pantalla mostrada en la Figura 6, esla que se utilizó para concretar el secuenciador de ejemplo.

Una vez creado el proyecto, ydespués de haber adicionado elmódulo de declaraciones de la dll,se procede a colocar una caja detexto (TextBox) que por omisiónllevará el nombre Text1.

Después se colocará debajo dela caja una etiqueta (Label) que pordefault está referida como Label1.Dentro de las propiedades de esteTabla 1. Prototipos de io.dll a escribirse en un módulo de Visual Basic.

Figura 5. Pantalla de diseño en Visual Basic 6.0,adicionando un módulo.

Figura 6. Pantalla en tiempo de diseño para el secuenciador.

Page 13: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

14 polibits 2005

Interfaces para el Puerto Paralelo de la PC, en Modo Bidireccional

objeto se debe buscar la que se refiere a Caption(Texto de etiqueta) y escribir �Valor enviado alpuerto�.

Se coloca un botón de acción (CommandBo-tton) que por omisión se llamará Command1.Dentro de sus propiedades, y en Caption, seescribe �Inicio�.

Por último, se inserta un Timer, con el nom-bre Timer1. Este objeto sólo se visualiza entiempo de diseño, es decir, en la aplicaciónejecutable no se verá.

En el editor de la forma (View Code) se copia el códigosiguiente y se presiona el botón Run para ejecutar laaplicación.

�{jcrls; acruz; jgrobles}@ipn.mxOption Explicit �Programa que envía y recibe datos del puerto

paralelo de la PC. Se utiliza io.dll.'Dim i As IntegerDim ValorIn As ByteDim Compara As Byte

Private Sub Form_Load()�no hagas nada, cuando se abra la aplicación'End Sub

Private Sub Command1_Click() �Cuando se presione elbotón «Inicia»se valida el comienzo delprograma'

While (1)ComienzaWendEnd Sub

Sub Comienza()ValorIn = PortIn(&H379) �Lee puerto de datos'Compara = ValorIn And &H8 �Comprobamos que s3 esté

a cero (Botón presionado)'If Compara = 0 Then escribe_pto �Rutina del secuenciador' Else Text1.Text = «Presiona el botón» �No está presionado el botón'End IfEnd Sub

Sub escribe_pto()PortOut &H378, 0For i = 0 To 7 �Inicia ciclo para establecer (poner a 1) el bit

�correspondiente'Espera 0.5SetPortBit &H378, iText1.Text = 2 ^ iNext iEnd Sub

Sub Espera(t As Double) �Rutina de tiempo'Timer1.Interval = t * 1000 �Milisegundos'Timer1.Enabled = True �Habilitamos timer'

Do While Timer1.Enabled DoEventsLoopEnd Sub

Private Sub Timer1_Timer() �Habilitación del timer1, relacionado conla rutina Espera'

Timer1.Enabled = FalseEnd Sub

Private Sub Form_OKClick() �Salir de la aplicación' App.EndEnd Sub

El siguiente código, diseñado para una interfaz enmodo unidireccional, permite enviar un dato escrito enla caja de texto correspondiente a �Enviar dato� direc-tamente al puerto de datos (0x378). También es posibleleer un dato del puerto de estado (0x379) en la caja detexto correspondiente a �Leer dato�. La pantalla entiempo de diseño se muestra en la Figura 7.

Option Explicit �Programa que envía y recibe datos del puerto{jcrls; acruz; jgrobles}@ipn.mx'

Private Sub Form_Load() �Condiciones al momento de abrir laaplicación'

PortOut &H378, 0 'Limpia el puerto de datos'End Sub

Private Sub Command1_Click() 'Al hacer click en el botón Command1(«Envía») El dato que se escriba enla caja de texto, en decimal'

Dim dato_out As Variantdato_out = datoout.TextPortOut &H378, dato_out �Limpia puerto'End Sub

Private Sub Command2_Click() �Al hacer click en el botón Command2(«Lee Puerto») El resultado se asignará a la variable ValorIn'

Dim ValorIn As ByteValorIn = PortIn(&H379)dato_in.Text = ValorIn & « , 'está en decimal»End SubPrivate Sub Form_OKClick() �Salir de la aplicación' App.EndEnd Sub

Figura 7. Interfaz unidireccional de propósito general.

Page 14: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

XV 1 31 polibits

Interfaces para el Puerto Paralelo de la PC, en Modo Bidireccional

15

PROGRAMACIÓN BIDIRECCIONAL EN VISUAL BASIC

Para la programación bidireccional del puerto dedatos se sigue la misma lógica descrita en los programasen Lenguaje C anteriores, es decir, se establece el bit 6 (C5)del puerto de control para que el registro de datos acepteun byte proveniente del exterior y se limpia el mismo bitsi se desea que el registro de datos sea sólo de salida.

Retomando la interfaz para monitorear el ADC0804,algunos autores desestiman utilizar todas las señalesdel ADC. Con una frecuencia sustentable, mucho menorque los 8KHz naturales del dispositivo, es posible obte-ner circuitos más simples como el denominado FreeRunning que propone utilizar un inversor hacia RD de laseñal WR, obligando a que RD siempre sea el comple-mento de WR y viceversa (ver Figura 8). El inversor sepuede implementar dentro de código, y dado que lafrecuencia de trabajo para reportar lecturas se conside-ra lenta, es posible omitir la espera de la respuesta de laseñal INTR. Se recomienda reestablecer el puerto decontrol a su estado original, antes de salir de la aplica-ción.

La preparación del puerto desde el SETUP es funda-mental para que funcione correctamente este programa.

El siguiente código en Visual Basic muestra la solu-ción propuesta. Obsérvese que sólo se envía la señal dereloj por el puerto de control, a la vez que se reciben deforma paralela los 8 bits del ADC por el puerto de datosde la PC.

�{jcrls; acruz; jgrobles}@ipn.mx

Option Explicit �Programa que recibe datos de un ADC0804Dim DatoPuerto As Byte �con conexiones mínimas Free RunningDim Temporal As Byte �Modo del puerto paralelo: ECP (Bidireccional)

Private Sub Form_Load() �Limpia puerto de datos al cargar la aplica-ciónPortOut &H378, 0

End Sub

Private Sub Command1_Click() �Con el botón «Inicio»Temporal = PortIn(&H37A) �Almacena el valor del puerto de controlWhile (1) �se valida el comienzo de la adquisiciónComienzaWendEnd Sub

Private Sub Command2_Click() �Botón «Restaurar Puerto»PortOut &H37A, Temporal �Regresa a la configuración original pto. decontrolPortOut &H378, 0 �Limpia nuevamente el puerto de datos; detieneprogramaEnd Sub

Sub Comienza()PortOut &H37A, &H20 �Configura C5, bidireccional y genera flanconegativoEspera 0.5 �Rutina de espera (1/2 segundo)PortOut &H37A, &H24 �Mantiene bidireccionalidad y genera flancopositivoEspera 0.5DatoPuerto = PortIn(&H378) �Lee puerto de datos y escribe equivalen-te en VoltsText1.Text = DatoPuerto * 0.0196 & « Volts» �255 binario = 5 VoltsanalógicosEnd Sub

Sub Espera(t As Double) �Rutina de tiempoTimer1.Interval = t * 1000 �MilisegundosTimer1.Enabled = True �Habilitamos timerDo While Timer1.Enabled DoEventsLoopEnd Sub

Private Sub Timer1_Timer() �Habilitación del timer1, relacionadaTimer1.Enabled = False �con la rutina EsperaEnd Sub

Private Sub Form_OKClick() �Salir de la aplicaciónApp.EndEnd Sub

Las Figuras 9a y 9b, muestran de manera respectiva,las pantallas correspondientes al tiempo de diseño y altiempo de ejecución de la interfaz en dos direccionespara el ADC0804. Particularmente en 9b se aprecia elresultado arrojado por la aplicación para un dato de25510 equivalente a 5 Volts, enviado por el ADC trabajan-do sobre Windows XP.

Figura 8. Conexión Free Running para el ADC0804.

Page 15: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

16 polibits 2005

Interfaces para el Puerto Paralelo de la PC, en Modo Bidireccional

CONCLUSIONES

Se presentó una metodología sencilla para crear in-terfaces para el puerto paralelo de la PC, utilizandoLenguaje C para modo MS-DOS y Visual Basic 6.0 paramodo Windows. Las soluciones aportadas son adapta-bles sin cambios drásticos en el código a cualquier apli-cación similar o más sofisticada, que requiera intercam-bio de datos en una o dos direcciones.

Todos los ejercicios mostrados se implementaronfísicamente en dos PC con distinto sistema operativo.Las aplicaciones creadas en Lenguaje C se ejecutaron enmodo MS-DOS bajo Windows 98 y las de Visual Basicbajo Windows XP. En ambos casos, para la bidireccio-nalidad de los datos, se configuró el modo ECP en elSETUP.

Cabe mencionar que es posible encontrar en Internetbibliotecas de enlace dinámico para diferentes lengua-jes, como se puede advertir en el mismo sitio de donde sedescargó io.dll (www.geekhideout.com) y en otros comowww.zealsoftstudio.com, por mencionar algunos.

Se presentó el caso particular de un ADC0804 en unesquema bidireccional. La solución disminuye la canti-dad de hardware y aumenta la velocidad de la respues-ta, tomando en consideración que para plataformassuperiores a Windows 98 existen dos modos de veloci-dad para acceso a puertos: Normal y Fast.

En un próximo artículo se detallará cómo utilizar elpuerto paralelo como una alternativa al extinto bus ISAde la PC.

Figura 9a. Pantalla en modo de diseño para la conexión Free Running delADC0804.

Figura 9b. Aplicación bajo WindowsXP.

REFERENCIAS BIBLIOGRÁFICAS E INTERNET

[1] Hans-Peter Messmer. The indispensable PC hardwarebook. Ed. Addison-Wesley, 1999.

[2] Dhananjay V. Gadre.Programming the Parallel Port:Interfacing the PC for Data Acquisition & Process Con-trol. Ed. CMP Books, 1999.

[3] David I. Schneider. An Introduction to Programmingwith Visual Basic 6.0. Ed. Prentice � Hall, 2000.

[4] Francisco J. Ceballos. Visual Basic 6, Curso de Progra-mación. Ed. AlfaOmega-Rama, 2002.

[5] http://www.geekhideout.com.

[6] Datasheet, National Semiconductor.http:// www.national.com/pf/AD/ADC0804.html.

[7] http://www.doc.ic.ac.uk/~ih/doc/par/ : Interfacing tothe IBM-PC Parallel Printer Port.

[8] http://www.lvr.com/parport. htm : Parallel Port Cen-tral

[9] http://www.beyondlogic.org/ecp/ecp.htm

[10] http://www.epanorama.net/links/pc_inter face.html

[11] http://www.logix4u.net/para llelport1.htm

[12] http://www.zealsoftstudio. com

Page 16: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

XV 1 31 polibits 17

Tecnologías xDSL

Tecnologías xDSLTecnologías xDSL

L

Ing. Patricia Pérez RomeroProfesor del CIDETEC-IPN

os sistemas de telecomunica-ciones actuales están consti-tuidos por un conjunto va-

riado de redes que abarcan todos losservicios de Voz, Datos y Video,mismos que ahora son posibles gra-cias a la digitalización.

Sin embargo, se sigue teniendouna limitante en el lado del cliente,ya que entre éste y las centrales te-lefónicas existe un par de cobre queefectúa su comunicación en formaanalógica. Pero con la introducciónde la fibra óptica hasta el cliente y lanueva era de tecnología digital lasituación está cambiando rápida-mente.

INTRODUCCIÓN

Los volúmenes de tráfico de da-tos ya están excediendo el tráfico devoz en muchos países y se observaque ésta es la tendencia mundial. Porello, los usuarios requieren actual-mente de servicios que necesitangran ancho de banda: para el accesoa Internet, Intranets, y acceso remo-to a Redes de Área Local.

Esta demanda de servicios evo-luciona a dos claras tendencias: lanecesidad de mayor capacidad y labúsqueda de mayor sencillez en eltransporte y gestión de la variedadde tipos de información.

Los proveedores de equipo de te-lecomunicaciones están desarro-llando arquitecturas de red que pro-porcionan una fácil evolución de lasredes telefónicas publicas actuales,a una red centrada en datos y basa-da en conmutación de paquetes noorientados a conexión, los cualesgarantizan la calidad de servicio,además de incluir otras ventajascomo el uso eficiente de los disposi-tivos instalados, escalabilidad y lahabilidad de implementar nuevosprotocolos de señalización de lla-madas y servicios. También el con-trol y sistema de administración ten-drán un papel importante, pero so-bre todo el hacer llegar estas facili-dades al cliente a través de la red decobre existente y de fibra óptica em-pleando para ello tecnología xDSL (xDigital Suscriber Line) que permiteaccesarse a la red con mayor veloci-dad.

¿QUÉ ES XDSL?

xDSL (x Digital Suscriber Line, la�x� se utiliza para diferenciar lostipos de servicios y/o tecnologíasDSL) se refiere a un grupo con tecno-logía similar que provee gran anchode banda y alta velocidad de accesosobre circuitos locales de cable decobre, sin amplificadores o repeti-dores de señal a lo largo de la ruta delcableado, entre la conexión del clien-te y el primer nodo en la red. xDSL seproporciona sobre circuitos localesde cobre no cargados (cables sin nin-

gún tipo de inducción de voltaje oseñal).

La Tecnología xDSL soporta for-matos y velocidades de transmisiónespecificados, como lo son T1 (1.544Mbps) y E1 (2.048 Mbps), y es losuficientemente flexible para sopor-tar velocidades y formatos adicio-nales como sean especificados (ej. 6Mbps asimétricos para transmisiónde alta velocidad de datos y video).xDSL puede coexistir en el circuitocon el servicio de voz; como resulta-do, todos los tipos de servicios, in-cluyendo el de voz, video, multime-dia y datos pueden ser transporta-dos sin el desarrollo de nuevas es-trategias de infraestructura. xDSLes una tecnología «Modem-Like»(muy parecida a la tecnología de losmódem), donde se requiere un dis-positivo xDSL terminal en cada ex-tremo del circuito de cobre. Estosdispositivos aceptan flujo de datos,generalmente en formato digital, ylo sobreponen a una señal análogade alta velocidad. Las dos técnicasde modulación más usadas actual-mente para xDSL son:

· CAP-Carrier-less AmplitudePhase Modulation

· DMT-Discrete Multitone Modu-lation.

CAP (CARRIER-LESS AMPLITUDE

MODULATION)

Esta modulación está basada enla Modulación en Amplitud en Cua-dratura QAM. El receptor de QAM

id3484953 pdfMachine by Broadgun Software - a great PDF writer! - a great PDF creator! - http://www.pdfmachine.com http://www.broadgun.com

Page 17: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

18 polibits 2005

Tecnologías xDSL

necesita una señal de entrada quetenga la misma relación entre espec-tro y fase que la señal transmitida,pero las líneas telefónicas instala-das no garantizan esta calidad. LaCAP es una implementación de QAMpara xDSL, de bajo costo debido a susimplicidad y con una velocidad de1.544 Mbps (ver Figura 1).

La CAP divide la señal moduladaen segmentos que después almacenaen memoria. La señal portadora sesuprime, puesto que no aporta nin-guna información. La onda trans-mitida se genera al pasar cada unode los segmentos por dos filtros digi-tales transversales con igual ampli-tud, pero con una diferencia de fasede p/2. En la recepción se reensam-blan los segmentos, volviendo a ob-tener la señal modulada. De estemodo, obtenemos la misma formadel espectro que con QAM, siendo laCAP más eficiente que QAM en im-plementaciones digitales.

DMT (DISCRETE MULTI-TONE

MODULATION)

Es un tipo de modulación multi-portadora, que elimina el problemade las altas frecuencias que aumen-tan considerablemente las pérdidasdebido al ruido en las líneas de co-bre, dividiendo el ancho de bandadisponible en 256 subcanales, queson comprobados para determinarsu capacidad portadora (Figura 2).

PROCESO DE MODULACIÓN

· La modulación DMT emplea latransformada discreta de Fourierpara crear y demodular cada unade las 256 portadoras individua-les, dividiendo el ancho de bandadisponible en unidades más pe-queñas.

· La línea se comprueba para de-terminar qué banda de frecuen-cias es posible y cuántos bits pue-den ser transmitidos por unidadde ancho de banda.

· Los bits se codifican en el trans-misor mediante la transformadarápida iversa de Fourier y des-pués pasan a un conversor ana-lógico/digital.

· Al recibirse la señal, ésta se pro-cesa mediante una transforma-da rápida de Fourier para deco-dificar la trama de bits recibida.

La DMT ha sido seleccionada enun primer borrador del grupo deestandarización T1E1 de ANSI, so-bre la CAP y QAM.

Las últimas modificaciones a losestándares sobre ADSL han llevadoal desarrollo de una nueva genera-ción de módems capaces de trans-mitir hasta 8,192 Mbps en sentidodescendente y hasta 0,928 Mbps ensentido ascendente. La separaciónde los trayectos en ADSL se efectúapor Multiplexación por División enFrecuencias (FDM) o por Cancela-

Figura 1. Modulación CAP.

Figura 2. Modulación DMT.

Figura 3. Modulación ADSL DMT con FDM.

Page 18: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

XV 1 31 polibits 19

Tecnologías xDSL

ción de Eco, siendo esta última lamás empleada (Figuras 3 y 4).

En las dos figuras anteriores sehan presentado las modalidadesexistentes dentro del ADSL con mo-dulación DMT: FDM y cancelaciónde ecos. En la primera, los espectrosde las señales ascendente y descen-dente no se traslapan, lo que simpli-fica el diseño de los módems, aunquereduce la capacidad de transmisiónen sentido descendente, no tanto porel menor número de subportadorasdisponibles sino por el hecho de quelas de menor frecuencia, aquéllaspara las que la atenuación del par decobre es menor, no están disponi-bles. La segunda modalidad, basadaen un cancelador de ecos para laseparación de las señales correspon-dientes a los dos sentidos de trans-misión, permite mayores caudales acosta de una mayor complejidad enel diseño.

En la Figura 3 (Modulación ADSLDMT con FDM) y en la Figura 4 (Mo-dulación ADSL DMT con cancela-

ción de ecos) se muestran los espec-tros de las señales transmitidas porlos módems ADSL tanto en sentidoascendente como descendente. Comose puede ver, los espectros nunca setraslapan con la banda reservadapara el servicio telefónico básico(POTS o «Plain Old Telephone Servi-ce»), y en cambio sí lo hacen con loscorrespondientes al acceso básicoRDSI. Por ello el ADSL y el accesobásico RDSI son incompatibles.

ESTRUCTURA Y CARACTERÍSTICAS

TÉCNICAS

La línea sobre la cual se soporta elADSL es la línea de cobre; para quesobre esta línea analógica puedanprestarse servicios DSL es necesariointroducir cambios tanto en el do-micilio del usuario como en la cen-tral telefónica. A continuación seenumeran los diferentes equipos ydispositivos que componen la es-tructura del DSL desde el usuariohasta la central.

EL SEPARADOR

La tecnología ADSL permite lasimultaneidad, por el mismo medio,de los servicios tradicionales de vozy de los nuevos servicios de trans-misión de datos a alta velocidad.Como es ya sabido, los servicios devoz operan en la banda baja de fre-cuencia que va desde los 0 KHz hastalos 4000 Khz. A partir de los 4000KHz queda a disposición de la trans-misión de datos. Nos encontramospor tanto con dos bandas de fre-cuencias de transmisión claramen-te diferenciadas y no traslapadasque se transmiten por el mismomedio físico: el hilo de cobre.

El separador es un pequeño apa-rato que se instala en el domicilio delcliente (generalmente cerca del PTR)y que discrimina entre un tipo deseñal u otro, es decir identifica la

Figura 4. Modulación ADSL DMT con cancelación de ecos.

Figura 5. Esquema de situación del Splitter.

Page 19: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

20 polibits 2005

Tecnologías xDSL

señal de voz (0 - 4000 KHz) y la dedatos, y las diferencia para su poste-rior tratamiento. Al Separador seconecta el hilo de cobre que sube aldomicilio desde el registro de sus-criptores del edificio y de él sale otropar de hilos de cobre que irán a unatoma de teléfono a la cual se conecta-ra el modem ADS o ATU-R (Figura5).

El separador está compuesto bá-sicamente por dos filtros: un filtropaso bajo que identifica las señalesque no superen la frecuencia de los4000 KHz y un filtro paso alto querealiza la misma función pero conseñales que superan los 4000 KHz, esdecir con las señales de datos (Figu-ra 6). El separador lo instala y esresponsabilidad de la compañíaoperadora que explote el circuito desuscriptor.

En la central se coloca tambiénun splitter que realiza las mismasfunciones para realizar el filtro en lacentral y discriminar entre lo que escomunicación de voz y de datos, yaque no se les da el mismo tratamien-to ni acceden a la misma red de trans-porte.

EL ATU-R

(ATU-R o «ADSL Terminal Unit-Remote) El ATU-R es el equipo que seencarga de realizar la conexión encasa del cliente. También es conoci-do como módem ADSL y se conectapor un lado al PC del usuario, y en el

otro extremo al separador (Figura7). Como cualquier modem, puedeser externo o interno, comerciali-zándose mayoritariamente los ex-ternos.

En la central, al igual que ocurríacon el separador hay un equipo si-milar llamado ATU-C (ATU-C o«ADSL Terminal Unit-Central»). To-dos los ATU-C de la central se con-centran en un equipo llamado DS-LAM del cual hablaremos a conti-nuación.

DSLAM

(Digital Subscriber Line AccessMultiplexer). Como ya se vió, en eldomicilio del usuario es necesarioinstalar, aparte del separador, el mo-dem ADSL o ATU-R. Además, en lacentral por cada línea ADSL que lellegue es necesario un ATU-C cuyasfunciones son similares (no idénti-cas) a las del ATU-R. Resulta eviden-te pensar que sería complicado teneren una central telefónica tantos apa-ratos ATU-C del tamaño de los ATU-

R como líneas ADSLhubiese, ya que la in-fraestructura dedi-cada a ello resultaríaexcesiva y no seríapráctico. Por ello enlas centrales estánlas llamadas DSLAM(Figura 8).

El DSLAM agrupatodas las tarjetas ATU-C de la cen-tral, optimizando su uso y gestión.Sin embargo la función del DSLAMno es solo esa. EL DSLAM se componeademás de un conmutador ATM, lasinterfaces para las líneas ADSL y lainterface para la conexión a la red detransporte ATM. Por tanto, se dedu-ce que la función principal del DS-LAM, aparte de agrupar la ATU-C,es la de enrutar todo el tráfico de esastarjetas (tráfico que será exclusiva-mente de datos, ya que previamenteel separador de la central se habráencargado de separar las señales)hacia la red de transporte.

SERVICIOS QUE SE PUEDEN OFRECER CON UN

SISTEMA DE COMUNICACIÓN XDSL:

· Navegación Internet· Intranet· Video Conferencia· Servicios Transparentes LAN

para Clientes Corporativos· Acceso Remoto LAN para Clien-

tes Corporativos· Educación a Distancia· Video bajo Demanda / Televisión

Interactiva· Juegos Interactivos

Considerando lanecesidad de sopor-tar el incremento enla demanda del acce-so a Internet combi-nada con teleconmu-tación e interconec-tividad de las RedesLAN, podemos verque xDSL ofrece a losproveedores de ser-

Figura 6. Funcionamiento del separador. Figura 7. Conexión de un ATU-R.

Figura 8. DSLAM.

Page 20: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

XV 1 31 polibits 21

Tecnologías xDSL

vicios Internet (ISP�s) y proveedoresde acceso competitivo, una oportu-nidad de ampliar sus recursos.

Los accesos a Internet y a RedesLAN, pueden ser soportados por lacompatibilidad de xDSL con los es-tándares tradicionales de comuni-cación. Dados esos desarrollos im-portantes y difíciles de alcanzar, estaclaro que la tecnología xDSL será elmayor componente de la infraes-tructura del proveedor de servicios.Usando estas capacidades, los pro-veedores podrán ofrecer un rangocompleto de servicios, organizán-dolos rápidamente, y asegurándoseun servicio excelente.

La UIT-T (Sector de Normaliza-ción de las Telecomunicaciones de laUIT) ha elegido la tecnología ATMcomo base de las redes de bandaancha. Esta elección se debe a la fle-xibilidad que ofrece para el manejode servicios que exigen una gamaheterogénea de velocidades de tráfi-co binario, variando desde variosKbps hasta cientos de Mbps. Sinembargo, del lado del cliente con unalínea convencional debe utilizarsela tecnología xDSL para cumplir conlos requerimientos de ancho de ban-da.

VARIANTES DE XDSL

A continuación se enlistan algu-nas variantes del xDSL; además, enlas Figuras 9a y 9b se muestran dostablas indicando otros datos técni-cos.

ADSL.- Es la más popular formade tecnología xDSL. La clave de ADSLes que el ancho de banda «upstream»y «downstream» es asimétrico. Enla práctica, el ancho de banda delproveedor al usuario (downstream)será el camino para mayor veloci-dad. Downstream corre típicamen-te en un rango de 64 Kbps a 1.5 Mbps.

ADSL Lite.- Es una versión develocidad más baja de ADSL, ha sidopropuesta como una extensión parael estándar ANSI T1.413 por el Gru-po de Trabajo ADSL Universal(UAWG) dirigido por Microsoft, In-tel y Compaq. Utiliza el mismo es-quema de modulación de ADSL, peroelimina el sistema telefónico viejo(POTS) de las premisas del usuario.

HDSL.- Es generalmente usadacomo un sustituto de T1/E1. Es unasolución para proveer comunicaciónde datos simétrica full-duplex convelocidades arriba de 1.544 Mbps(2.048 Mbps en Europa) sobre dis-

tancias moderadas, vía par de ca-bles trenzados convencionales.

HDSL.- Tiene un rango mayorque T1/E1, sin el uso de repetidorespara permitir transmisión en dis-tancias mayores a 4 Km. Utiliza mo-dulación de amplitud de pulso(PAM) y es una técnica para anchode banda alto, bidireccional sobrecableado de cobre para servicios T1y E1.

RADSL.- Es una variación de ve-locidad de módem xDSL, pero se re-fiere específicamente a un estándarde modulación propietario designa-do por Semiconductores Globespan.Utiliza modulación de fase y ampli-

Figura 9a. Variantes de xDSL

Figura 9b. Variantes de xDSL

Page 21: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

22 polibits 2005

Tecnologías xDSL

tud menor de portadora (CAP). Losmódem DMT T1.413 estándar sontambién técnicamente RADSL.

Es una tecnología de transmisiónque tiene ambas aplicaciones simé-trica y asimétrica sobre una línea depar de cobre trenzado simple y convelocidades de datos arriba de 7Mbps.

SDSL.- Es una implementaciónde HDSL de 2 cables. Soporta T1/E1en un par simple a una distancia decasi 4 Km. El nombre se refiere a unservicio simétrico en una variedadde velocidades sobre un simple en-lace. Es simétrico porque la veloci-dad de datos es la misma en ambasdirecciones.

VDSL.- Es propuesto para enla-ces locales más cortos, quizá hasta 1Km. La velocidad de datos es de 10Mbps.

CONCLUSIONES

La tecnología xDSL se ha conver-tido en un instrumento que está per-mitiendo la posibilidad de un resur-gimiento a las redes telefónicas decobre, en el preciso momento que laindustria de multipares telefónicoscomenzaba a cerrar sus puertas, y lade cables de fibra óptica y coaxialincrementaba día a día. xDSL per-mite a los proveedores ofrecer nue-vos servicios a través de los pares decobre, como son el acceso de bandaancha a Internet, transmisión dedatos a alta velocidad y servicio devideo en demanda. Para implemen-tar esta tecnología sólo se necesitanlos terminales xDSL apropiados,tanto en la oficina, casa o empresa yla central telefónica, y que las líneasde multipares se encuentren en buenestado. El acceso a Internet, el accesoa Redes LAN y otras necesidades de

servicio, son soportados debido a lacompatibilidad de xDSL con los es-tándares tradicionales de los equi-pos de comunicaciones instalados.Usando estas capacidades, los pro-veedores podrán ofrecer un rangocompleto de servicios, organizán-dolos rápidamente, y asegurándosede un servicio excelente. Las solucio-nes xDSL también ofrecen a los pro-veedores de servicios la habilidadde maximizar los recursos de perso-nal, utilizando empleados y habili-dades existentes con gran eficiencia.Consecuentemente, sus clientes ten-drán alto nivel de satisfacción y losproveedores podrán potencialmen-te experimentar una ganancia salu-dable sobre su inversión.

BIBLIOGRAFÍA

[1] "Seminario de Nuevas Tecnolo-gías", ALCATEL UNIVERSITYMÉXICO, Junio 2000.

[2] Gerald P. Ryan. "ADSL, SDSLCopper Phone Line Tecnologie forMultimedia". Applied Tecnolo-gie Group. 1995.

[3] Daniel Minoli and Robert Kei-nath, "Distributed MultimediaThrough Broadband Comunicatio-ns", Artech House, 1994.

[4] Alan Steward, "ADSL: Facingup to the de Future", Comunica-tion International, Septiem-bre de 1994.

[5] T. Van Landegem, M. de Pryc-ker, "Comunicaciones Eléctricas,2005, Una visión de la red delfuturo".

[6] K. Sistanizadeh, P. S. Chow, J.M. Cioffi, "Multi-Tone Transmis-sion for Asymmetric Digital Subs-criber Lines", (ADSL) ICC93.

[7] V. K. Bhagavath and B. Khas-nabish. Emerging, "High-Speed xDSL Access Services:Architectures", Issues, Insig-hts, and Implications, IEEECommunications Magazine,Nov. 1999

[8] Marcelino Llano. "ADSL a Pun-to de su Implantación", Byte (Win-dows Magazine), Mayo. 1999

[9] DSL and xDSL, http://whatis.com/dsl.htm

[10] Ildefonso M. "Testing xDSL Li-nes", Polo Sunrise Telecom.Inc. Oct.1999

[11] "Ultima versión de la serie xDSL:Very High Speed Digital Subscri-ber Lines (VDSL)". Janse G. Judi-th T.

[12] http//neutron.ing.ucv.ve/re-vista-e/No4/VDSL.html

Page 22: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

XV 1 31 polibits 23

Programación de Sistemas de Cómputo Móviles

Programación de Sistemas deCómputo Móviles

E

Programación de Sistemas deCómputo Móviles

M. en C. Juan Carlos Herrera Lozada,M. en C. Israel Rivera Zárate,Profesores del CIDETEC � IPNRodrigo Morales Alvarado,Alumno de la Maestría en Tecnología deCómputo del CIDETEC - IPN

e-mails: {jcrls; irivera}@ipn.mx;[email protected]

ste es el primero de una seriede artículos enfocados a laprogramación de sistemas de

cómputo móviles, en particular losPDA. En esta entrega inicial se reali-za un compendio de los términoscomunes involucrados en este con-texto, así como una aproximación ala programación de aplicacionesbajo Windows CE utilizando Em-bedded Visual Basic.

INTRODUCCIÓN

En la actualidad, los dispositivosmóviles representan un campo tec-nológico muy fuerte en cuanto a in-fraestructura y aplicaciones. La te-lefonía móvil y sobre todo las com-putadoras de bolsillo, también co-nocidas como PDAs (Personal DigitalAssistant � Asistente Digital Personal),resultan elementos indispensablesen la informática contemporáneapara el intercambio y proceso deinformación.

De manera formal, considerandola entrada de datos hacia el sistema,la mayoría de los conocedores coin-

ciden que los PDA son las computa-doras de bolsillo que admiten datosa través de un teclado gráfico esti-mulado a través de una pantallatáctil (touch screen). Cuando el tecladoes físico se dice que se trata de unhandheld. Dada la proliferación ac-tual, se tiende a hacer referencia deforma indistinta cuando se trata condispositivos de estas característi-cas.

Para algunos otros autores, sedebe estimar a las agendas electró-nicas y a las calculadoras conven-cionales como otro tipo primitivo dehandhelds o PDA, con la particulari-dad de que no tienen sistema opera-tivo.

Aunque existen otras alternati-vas, como la posibilidad de instalarLinux, la competencia en el mercadode los PDA se libra actualmente en-tre las plataformas hardware queutilizan Palm OS y Windows CE.

Palm OS es un sistema operativodiseñado y actualizado por Palm.,para computadoras de mano de estefabricante y algunos otros como Sony,Kyosera, Samsung y Handspring, quehan adoptado este mismo adminis-trador de recursos. Surgió en 1996de la mano de la primera máquinaPalm Pilot. La versión que más se estáempleando hoy día es Palm OS 5,también referida como Garnet y, en-tre otras mejoras, soporta un mayorrango de resoluciones de pantalla ytransmisión bluetooth.

En unos meses se liberará PalmOS 6.1, también denominada Cobalt,un sistema operativo de 32 bits com-pletamente nativo y funcional diri-gido a procesadores portátiles ARM(herederos de los antiguos procesa-dores Dragonball, más rápidos y efi-cientes); su principal novedad es queel sistema funcionará sobre Linux.

Windows CE (Compact Edition) re-presenta la evolución de la experien-cia de Microsoft sobre dispositivosmóviles. Desde sus inicios, éste hasido la base para algunas actualiza-ciones o estandarizaciones depen-dientes del fabricante del PDA, comopor ejemplo Windows Pocket PC. En laactualidad Microsoft dirige este Sis-tema Operativo no sólo hacia losPDA, sino también a Smartphones, vi-deojuegos de última generación ycomputadoras de automóviles; portal motivo, ha denominado WindowsMobile a la última versión de Windo-ws CE (NET) cuya característica ra-dica en unificar el sistema operativode los dispositivos portátiles. Losprincipales fabricantes de PDA bajoeste administrador de recursos sonHP (fusionado con Compaq), Dell, Tos-hiba, Viewsonic y Casio.

El sistema operativo WindowsCE está basado en la interfaz de pro-gramación para aplicaciones Win32(API). Como en las otras versiones deWindows, Windows Pocket poseeun modelo de programación orien-tado a eventos: recibe mensajes, in-terpreta mensajes y actúa sobre los

id13377968 pdfMachine by Broadgun Software - a great PDF writer! - a great PDF creator! - http://www.pdfmachine.com http://www.broadgun.com

Page 23: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

24 polibits 2005

Programación de Sistemas de Cómputo Móviles

mensajes. Estos programas tienenuna o más ventanas que reciben yprocesan mensajes en un ciclo.

De acuerdo a diversos estudioscomparativos publicados en línea,Palm OS es más compacto y estableque Windows CE, pero menos ver-sátil en cuanto a soporte de comuni-caciones, manejo de recursos y com-plejidad de procesamiento. Toman-do en consideración que los PDA notienen disco duro y que, por consi-guiente el sistema operativo se al-macena en una memoria en circuitointegrado, Windows Mobile requie-re utilizar más memoria que PalmOS, tanto al iniciar como al ejecutaraplicaciones.

En nuestro país en particular, exis-te más soporte de software y hard-ware para Palm OS que para Win-dows CE. A nivel mundial, segúndatos de International Data Consulting,PALM OS acapara un 50% del mer-cado tecnológico basado en PDA,Windows CE tiene sólo un 25% y elresto se divide entre otros competi-dores.

PRESTACIONES DE LOS PDAS

Indistintamente del sistema ope-rativo, los PDAs incluyen softwarebásico de manera precargada: co-rreo electrónico, agenda, editores detexto, hojas de cálculo, navegadorweb, sincronizador (intercambio dearchivos entre la Computadora deescritorio y el PDA), entre otros. Paracomunicaciones poseen varios puer-tos, entre los que destacan el puertoserie con estándar RS � 232, el puertode infrarrojo y la ranura de expan-sión para tarjetas SD (Secure DigitalMemory Card). En la actualidad se hanincorporado puertos para tarjetasPCMCIA (Personal Computer MemoryCard International Association) y Com-pact Flash.

El soporte en software opcionalincluye editores de presentaciones,juegos, visualización de aplicacio-nes Flash y Java, visor de archivostipo pdf y reproducción de música yvideos directamente en formatosmultimedia convencionales, entreuna gran variedad. Algunos de losmás recientes y sofisticados inclu-yen hardware integrado para co-nexión Wireless (inalámbrica), Bluetoo-th (inalámbrico con enlace a travésde radiofrecuencia), GSM para tele-fonía celular y cámara fotográfica.

A continuación se tiene un glosa-rio de términos comunes que se uti-lizan alrededor de este tipo de recur-sos de cómputo. En la Tabla 1, esposible advertir con mayor detalledónde aplican los recursos defini-dos.

Memoria RAM. Es la memoriadonde se pueden almacenar archi-vos de datos del usuario y correrprogramas. En la mayoría de PDA setrata de memorias SDRAM (RAMDinámica Síncrona), donde a mayorcantidad de memoria es posible te-ner más archivos abiertos al mismotiempo o guardar más información.

Memoria ROM. Es la memoriaprincipal del PDA, donde normal-mente se almacena el sistema opera-tivo. En la mayoría de PDA es de tipoFLASH ROM, que permite actuali-zarse vía software sin necesidad dedesprender el circuito de la tarjetamadre.

Multimedia. Se refiere a la repro-ducción y/o grabación de música,voz, imágenes y video, así como a laposibilidad de utilizar juegos elec-trónicos. Las PDA actuales reprodu-cen archivos MP3 y permiten visua-lizar gráficos en diferentes forma-tos, entre éstos el JPEG. La Pocket PCsoporta Windows Media Player y lareproducción de videos WM y MPEG.

Navegación. Este aspecto se re-fiere a los pasos que se deben realizarcon el lápiz óptico sobre la pantallatáctil (touchscreen) para pasar de unprograma a otro, administrar y vi-sualizar archivos, etc. También esposible realizar algunas opciones denavegación con las teclas de accesodirecto que tiene el PDA.

Puertos de comunicación (Co-nectividad). Son los circuitos elec-trónicos que permiten el intercam-bio de información entre el PDA yotros dispositivos como computa-doras, teléfonos celulares, impreso-ras, cámaras digitales, otro PDA, etc.

A continuación se explican losprincipales puertos:

USB. El Bus Serial Universal es elestándar más comúnmente utili-zado para sincronizar el PDA conla computadora.

Serial. Soporta el protocolo RS-232 para la transmisión serieasíncrona. Este puerto se detalla-rá en un articulo posterior.

Infrarrojo o IrDA. Validado porla Asociación de Datos Infrarro-jos (Infrared Data Association), setrata de un estándar desarrolla-do por un grupo de fabricantes dedispositivos para transmitir da-tos a través de ondas de luz. Estaconexión inalámbrica se trans-mite a muy baja velocidad y, aligual que un control remoto deTV, se debe tener línea de vistacon el receptor ya que cualquierdesviación u obstáculo impide laconexión.

Bluetooth. Es una nueva formade transmisión por radiofrecuen-cia entre aparatos electrónicosque cuenten con tarjeta de estemismo tipo; es más rápida, tieneun alcance de hasta 10 metros yno requiere de línea de vista. Se

Page 24: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

XV 1 31 polibits 25

Programación de Sistemas de Cómputo Móviles

trata de un estándar WirelessLAN (inalámbrico para redestipo LAN) que surge con la finali-dad de simplificar el mecanismopara intercambiar informaciónen una forma serial; además, estáoptimizado para aplicaciones enInternet.

Wi-Fi (Fidelidad Inalámbrica -Wireless Fidelity) (estándar 802.11 b).Es una conexión inalámbrica porradiofrecuencia con un alcancede hasta 100 metros que se em-plea principalmente para teneracceso a una red de cómputo LANo a una conexión inalámbrica aInternet. En México ya hay pun-tos de acceso Wi-Fi (llamados hotspots) en algunas escuelas, tien-das y cafés, que permiten conec-tarse a Internet dentro de sus ins-talaciones, sin mayor complica-ción.

Ranuras (slot) y memorias deexpansión. Es el espacio físico o co-nector que ofrece el PDA para insertaruna tarjeta de memoria electrónicay disponer de mayorespacio para almace-nar información. Otrafunción, es la de ade-cuar una conexión (in-terfaz hardware) haciaun dispositivo externo,como podría ser unacámara digital, un mó-dem, una tarjeta de red,un lector de código debarras, etc.

En el caso de inser-tar una tarjeta de me-moria u otro dispositi-vo, éste debe coincidircon el tipo de ranura enla que se insertará. Lasmemorias y las ranu-ras correspondientesse indican a continua-ción:

CF (CompactFlash tipo I y tipo II). Esgrande en dimensiones respectoa los otros tipos, a pesar de ello esla más rápida en su funciona-miento y tiene capacidades quevan de los 8 MB hasta los 4 GB. Esla más barata, aunque en algunoscasos se requiere de una tarjetade expansión, propiciando que sevea sacrificada la portabilidaddel PDA.

MS (Memory Stick estandarizadapor Sony). Es pequeña y delgada,aunque no tan rápida como la CF,y con capacidad máxima de 256MB. La versión MS PRO alcanzahasta 1 GB de capacidad, pero noes compatible con las primerasranuras MS originales. Se tratade las memorias que utilizan lamayoría de las cámaras digita-les.

SD (Secure Digital). Es la más del-gada �del tamaño de un timbrepostal�, pero no es tan rápidacomo la CF, y su capacidad máxi-ma actual es de 1 GB. Este tipo de

memoria, así como su respectivaranura, son las más utilizadas enel mercado actual de las PDA.

MMC (Multimedia Card). Es simi-lar en dimensiones a la SD, por loque se puede insertar en ranurasSD; sin embargo, es más lenta y sucapacidad puede ser de 128 MB o512 MB. Su propósito específicoes aligerar el trabajo del procesa-dor, con respecto a aplicacionesmultimedia, incluidas en éstas.

SDIO Card (Secure Digital Input/Output). Son tarjetas SD que agre-gan otras funciones como accesoa redes inalámbricas (Wi-Fi oBluetooth), receptores GPS ( Glo-bal Positioning System) o cáma-ras digitales. Algunas tarjetasSDIO son compatibles con las ra-nuras SD convencionales.

Resolución de la pantalla. Es lacantidad de puntos de imagen (píxe-les) que pueden visualizarse en lapantalla del PDA; se indica como lacantidad de puntos horizontales

Tabla 1. Comparación de prestaciones entre diferentes PDAs.

PDA Sistema Operativo

Procesador @

velocidad

Conectividad Integrada Expansión SDRAM FLASH

ROM Duración

de la Batería

Resolución de Pantalla

Táctil Adicionales

iPAQ h3950 Pocket

PC

Microsoft Windows Pocket PC

2002

Intel PXA250

@400MHz

IrDA, USB, serial

SD, PCMCIA 64MB 32MB 10 hrs

240 x 320 pixels,

Transflective TFT, 65000

colores

HP iPAQ rx3417

Microsoft Windows Mobile 2003

Second Edition

Samsung S3C 2440 @300MHz

WLAN 802.11b,

Bluetooth, IrDA, USB,

serial

SD, SDIO 128MB 32MB 10 hrs

240 x 320 pixels,

Transflective TFT, 65000

colores

Cámara Digital,

Photosmart, 1.3 MP 1280 x 960, Zoom

digital 4x

iPAQ h5550 Pocket

PC

Windows Mobile 2003

Intel XScale

@400MHz

WLAN 802.11b,

Bluetooth, IrDA, USB,

serial

SD, PCMCIA 128MB 48MB 10 hrs

240 x 320 pixels,

Transflective TFT, 65000

colores

Sistema de seguridad,

identificación huella

dactilar

iPAQ h2210 PPC

Microsoft Windows Mobile 2003

Premium Edition

Intel XScale

@400 MHz ARM

Bluetooth, IrDA, USB,

serial

SD, SDIO, MMC,

Compact Flash tipo

I y II

64MB 32MB 10 hrs

240 x 320 pixels,

Transflective TFT, 65000

colores

palmOne Tungsten

C

Palm OS 5.2.1

Intel XScale @ 400 MHz

ARM

WLAN 802.11b,

IrDA, USB, serial

SD, MMC 64MB 16MB 20 hrs

320 x 320 pixels,

Transflective TFT, 65000

colores

palmOne Zire 72s (Silver)

Palm OS 5.2.8

Intel PXA270

@312MHz

Bluetooth, IrDA, USB,

serial

SD, MMC, SDIO 32MB 8MB 20 hrs

320 x 320 pixels,

Transflective TFT, 65000

colores

Cámara Digital,

1280 x 960, Zoom digital

2x Dell Axim X50

Pocket PC

Microsoft Windows Mobile 2003

Second Edition

Intel XScale PXA270

@520MHz

WLAN 802.11b,

Bluetooth, IrDA, USB,

serial

SD, SDIO, MMC,

Compact Flash tipo

I y II

64MB 128MB,

Intel StrataFlash

10 hrs

240 x 320 pixels,

Transflective TFT, 65000

colores

Page 25: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

26 polibits 2005

Programación de Sistemas de Cómputo Móviles

contra la cantidad de puntos verti-cales.

PROGRAMACIÓN DE APLICACIONES

Como ya se mencionó con ante-rioridad, en dependencia a la plata-forma del PDA, ya sea Palm OS oWindows CE (en cualquiera de susestandarizaciones), es necesario ele-gir la herramienta de programaciónadecuada considerando la versióncorrecta del sistema operativo.

Para complementar este artícu-lo, se realiza la programación de dosaplicaciones simples bajo WindowsCE. El PDA utilizado es una iPAQPocket PC de Compaq, modelo 3950(primer PDA de la Tabla 1) con siste-ma operativo Windows Pocket PC 2002precargado de fábrica.

Para el sistema operativo especi-ficado se encontraron las siguientesherramientas de desarrollo: Em-bedded Visual Tools (utilizada en el desa-rrollo de este artículo), Mobility Java Tech-nology, PocketC, Visual CE, Co-deWarrior, CASL, entre otras.

La decisión de utilizar EmbeddedVisual Tools estuvo determinada porcinco puntos favorables:

1. Su compatibilidad directa conWindows, al pertenecer al mis-mo fabricante.

2. Es de distribución gratuita, pre-vio registro.

3. En el caso de Embedded Visual Basic,se tiene un lenguaje visual que esde fácil manejo.

4. No tiene dificultades para reali-zar la sincronización entre el PDAy la PC de escritorio, permitiendola evaluación y depuración di-recta de programas.

5. Incluye un emulador del PDA,que funciona correctamentesiempre y cuando la aplicaciónno requiera mostrar imágenes.En esta situación, lo recomenda-ble es comprobar el funciona-miento del programa directamen-te en la iPAQ.

Este ambiente de desarrollo con-tiene Microsoft Embedded Visual C++3.0 y Microsoft Embedded Visual Basic3.0, con los kits de desarrollo (SDK)para Pocket PC 2002 y Smartphone 2002.Permite crear, probar y depurar unaaplicación diseñada para WindowsCE o Pocket PC; los diseñadores queestén familiarizados con Visual Ba-sic o Visual C, se encontrarán coninterfaces muy similares a las res-pectivas versiones para PC, pero conlas limitaciones lógicas del disposi-tivo portátil, razón por la cual es unade las herramientas más populares.

Para programar sobre WindowsPocket 2002, la versión apropiada deEmbedded Visual Tools es la 3.0, quese puede obtener de los siguientessitios:

http://www.microsoft.com/windows/embe-dded/ce/tools/factsheet.asp

http://www.microsoft.com/mobile/downloads/emvt30.asp

De acuerdo al fabricante, los re-querimientos mínimos especificantener instalado Windows 98 ó supe-rior. Para poder acceder al emula-dor de PDA, se requiere Windows2000 ó superior, así como una co-nexión activa TCP/IP.

EMBEDDED VISUAL BASIC

Pequeño y ligero, Embedded VisualBasic (EVB) es un subconjunto de laversión de escritorio, combinandoel poder y la robustez de Visual Ba-sic con la portabilidad y fácil mane-jo, de VBScript.

El IDE (Integrated Development En-vironment - Ambiente Integrado de Desa-rrollo) provee muchas opciones parala generación de aplicaciones: sepueden usar los paquetes de formu-larios estándares, o se pueden dise-ñar aplicaciones sin formularios ointerfaces visibles. Adicionalmente,se pueden usar controles ActiveXpara extender las capacidades bási-cas de una aplicación.

EVB se instala en una PC y desdeésta se programa la aplicación queposteriormente se descargará al PDAa través del cable de sincronización.

Generalmente, desarrollar enEmbedded Visual Basic es similar adesarrollar aplicaciones de VisualBasic estándar, es decir, no se gene-ran programas ejecutables directa-mente (.exe), sino que se generan ar-chivos con la extensión *.vb, estosarchivos son una especie de scriptmuy optimizado con los datos exac-tos para ser mostrados en la interfazgrafica del PDA.

Los archivos *.vb son enlazados aun programa ejecutable (pvbload. exe)de manera similar a como se enlazanlos archivos *.doc a Word. Este pro-grama se encarga de interpretar loscomandos que se encuentran en elarchivo *.vb, traduciéndolos y ejecu-tándolos con ayuda de bibliotecasde enlace dinámico (*.dll) en Windo-ws CE. El runtime de Embedded Vi-sual Basic está presente en la ROMdel sistema operativo.

DESARROLLO DE APLICACIONES

La metodología lógica infiere pro-gramar la aplicación en EVB y pos-teriormente descargarla en el PDA.De manera similar a Visual Basic, elambiente de desarrollo está basadoen la generación de un proyecto. Alacceder a EVB, se obtendrá la panta-lla de la figura 1. En ésta se declara un

Page 26: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

XV 1 31 polibits 27

Programación de Sistemas de Cómputo Móviles

nuevo proyecto con la opción VisualBasic Windows CE for Pocket PC 2002.

La pantalla de la figura 2 mues-tra el IDE en tiempo de diseño paracrear la aplicación; se han resaltadocuatro secciones:

1. Explorador de Proyectos.

2. Ventana de Propiedades.

3. Barra de herramientas estándar(Toolbox).

4. Área de trabajo, donde es posibleconmutar entre la ventana de có-digo y la ventana del diseño deformulario.

Como una primera aplicación, sepropone un cálculo sencillo para es-timar las cantidades desglosadas deun recibo de honorarios para efectosde retenciones y pago de impuestos

causados. El Formulario o Forma (Form)sólo contiene componentes intrín-secos seleccionables de la Toolbox:cajas de texto (TextBox), etiquetas(Label) y un botón de comando (Com-mandButton) para validar el cálculo.La figura 3 muestra el formulario entiempo de diseño y el código que loconforma.

Es importante mencionar que enemulación no resulta sencillo tra-bajar con imágenes debido a que esnecesario configurar el IDE, a la vezde que no es garantía de que en todaslas versiones de Windows para PCfuncione correctamente, por lo quelos controles PictureBox, ImageCon-trol y similares no se deben indicaren código para emular una aplica-ción. En la aplicación real descarga-da al PDA, el uso de estos controlesno presenta ningún inconveniente.

En el código EVB listado parale-lamente con el formu-lario de la Figura 3, seestán utilizando doscontroles PictureBoxpara acceder a los logo-tipos del CIDETEC y delIPN. En la emulaciónfue necesario suprimirestas líneas del código,así como configurar laspropiedades del pro-yecto, tal y como seaprecia en las Figuras4 y 5.

Obsérvese que la opción Targetespecifica si se trabajará en emula-ción (Pocket PC 2002 Emulation) o si sedescargará el diseño hacia un PDA,en este caso, la Pocket PC 2002 (De-fault Device). La ruta donde de des-cargará la aplicación se debe especi-ficar en el campo Remote Path, consi-

Figura 1. Pantalla de inicio.

Figura 2. Pantalla en Tiempo de Diseño.

Option ExplicitDim Dato As Variant

Private Sub Command1_Click()Dato = Text1.TextText2.Text = Dato * 0.15Text3.Text = (Dato * 0.15) + DatoText4.Text = Dato * 0.1Text5.Text = Dato * 0.1Text6.Text = (Dato * 0.15) + Dato - (Dato * 0.2)Text7.Text = Dato * 0.05End Sub

Private Sub Form_Load()PictureBox1.Picture = App.Path & «\cidetec_ipaq.bmp»PictureBox2.Picture = App.Path & «\ipn_ipaq.bmp»End Sub

Private Sub Form_OKClick()App.EndEnd Sub

Figura 3. Aplicación sencilla con código de Forma.

Figura 4. Propiedades del Proyecto.

Figura 5. Accediendo al emulador.

Page 27: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

28 polibits 2005

Programación de Sistemas de Cómputo Móviles

derando que será diferente para eldispositivo físico. A través de la op-ción Run (Start Debug) dentro delmenú, se inicia la emulación o ladescarga del archivo hacia el PDA,según se haya elegido. La Figura 6muestra la pantalla de emulación,sin imágenes. En la Figura 7 se obser-va a la iPAQ ejecutando la aplica-ción.

Con la intención de mostrar unaaproximación a los métodos de gra-ficación, se generó una segunda apli-cación que permite seleccionar fun-ciones trigonométricas. Dentro delformulario de diseño, se adiciona uncontrol PictureBox donde se graficarála función; este componente se debeadecuar con los siguientes valoresen el área de propiedades (sección 2de la Figura 2):

Name PBPlanoHeight 1575Width 3000ScaleHeight -2.4ScaleWidth 25.2ScaleLeft -12.3ScaleTop 1.2

Se requieren tres botones de op-ción (OptionButton), llamados tam-bién de radio; dos botones de co-mando (CommandBotton) y algunasetiquetas (Label). El formulario entiempo de diseño se muestra en laFigura 8. Cabe mencionar que aligual que en la aplicación anterior,las imágenes utilizadas sólo son vi-sibles en tiempo de ejecución y sobrela iPAQ; el formato soportado esmapa de bits de 16 colores.

Figura 6. Resultados de Emulación.

Figura 7. Aplicación ejecutándosesobre la iPAQ.

Las propiedades ScaleHeight yScaleTop determinan la escala del ejede las ordenadas (Y) con el propósito derepresentar los valores -1.2 y 1.2,forzando a utilizar unidades defini-das por el diseñador (PicUser). De lamisma manera se determina la esca-la del eje de las abscisas (X) entre -12.6y 12.6.

La Figura 9 exhibe la graficaciónde funciones trigonométricas entiempo de ejecución.

CONCLUSIONES

Hoy en día, el campo de los Siste-mas de Cómputo móviles presentaun panorama atractivo para los pro-gramadores debido a la amplia gamade dispositivos y diferentes tecnolo-gías disponibles que van desde sen-cillas aplicaciones stand-alone hastaaplicaciones más complejas comocelulares y bases datos en tiemporeal.

La programación de aplicacio-nes para PDA se facilita cuando seutiliza un lenguaje como EmbeddedVisual Basic, debido a la similitudque tiene con Visual Basic para PC.

Figura 8. Forma para la graficación defunciones trigonométricas

Figura 9. Graficación de funcionestrigonométricas sobre iPAQ.

Page 28: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

XV 1 31 polibits 29

Programación de Sistemas de Cómputo Móviles

Es importante entender que,en lo general, las restriccionesprincipales de los PDA radi-can en el sistema operativo yen la memoria de usuario, porlo que se debe buscar la mane-ra de comprometer lo menosposible el trabajo del procesa-dor a través de un programabien estructurado.

Dados los alcances intro-ductorios de este artículo, nose han analizado otras facili-dades de EVB para generaraplicaciones más sofisticadasque se ejecuten sobre algunaversión de Windows CE; sinembargo, la metodología aquíexpuesta es la misma que seseguiría para programar ydescargar una aplicación máscompleta.

Se deja abierta la posibili-dad de probar los programasdesarrollados en este docu-mento sobre otro PDA. Seríainteresante utilizar una pla-taforma Windows actual; a lavez, considerando las respec-tivas diferencias en cuanto asistemas operativos y herra-mientas de programación, in-vestigar la plataforma PALM.

En un próximo artículo sedetallará cómo diseñar una in-terfaz hardware que envíe da-tos hacia la iPAQ a través delpuerto serie de la misma.

Option ExplicitDim X, Y

Sub Graph_plano() PBPlano.DrawLine -12.6, 0, 12.6, 0, vbGreen PBPlano.DrawLine 0, 1.2, 0, -1.2, vbGreenEnd Sub

Private Sub bt_clear_Click()PBPlano.ClsEnd Sub

Private Sub Bt_Graficar_Click() Graph_plano If Op_sen.Value = True Then Graph_Sen ElseIf Op_cos.Value = True Then Graph_Cos ElseIf Op_tan.Value = True Then Graph_Tan Else MsgBox «Selecciona una función!» End IfEnd Sub

Private Sub Form_OKClick() App.EndEnd Sub

Sub Graph_Sen() �Dibuja la curva For X = -12.6 To 12.6 Step 0.05 Y = Sin(X) PBPlano.DrawPoint X, Y, vbYellow NextEnd Sub

Sub Graph_Cos() �Dibuja la curva For X = -12.6 To 12.6 Step 0.05 Y = Cos(X) PBPlano.DrawPoint X, Y, vbWhite NextEnd Sub

Sub Graph_Tan() �Dibuja la curva For X = -12.6 To 12.6 Step 0.05 Y = Tan(X) PBPlano.DrawPoint X, Y, vbRed NextEnd Sub

Private Sub Form_Load()PictureBox1.Picture = «Windows/Inicio/cidetec_ipaq.bmp»PictureBox2.Picture = «Windows/Inicio/ipn_ipaq.bmp»End Sub

BIBLIOGRAFÍA

[1] Fco. Javier Ceballos; "Curso deProgramación de Visual Basic 6".Alfaomega Ra-Ma. México.2003

[2] "Diseño de aplicaciones inalámbri-cas móviles".ht tp: / /www.intel .com/espanol /update/contents/mo 11031.htm

[3] "eMbedded Visual Basic OnlineDocumentation".h t t p : / / w w w . m i c r o s o f t . c o m /embedded/h t t p : / / w w w . m i c r o s o f t . c o m /windows/embedded/tools/

[4] FORO de usuarios Palm.http://www.piensaen palm.com/fo-ros/

[5] "Introduction to Pocket PC 2002Programming".http://www.devhood.com/tutorials/tutorial_details.aspx? tutorial_id=272

[6] "Portal Visual Basic"http://www.portalvb.com/articulos

[7] "Welcome to Trajecto's Win 32API Programming Tutorial for Poc-ket PC (Really Fast Graphics Pro-gramming)"http://www.trajectory labs.com/win32_proto type.html

Page 29: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

Algoritmo de Escape para Crear un Fractal Utilizando MPI

polibits 200530

Algoritmo de Escape para Crearun Fractal Utilizando MPI

S

Algoritmo de Escape para Crearun Fractal Utilizando MPI

Ing. Jesús Antonio Álvarez Cedillo.Profesor del CIDETEC-IPN.

e define como fractal a aquellos objetos cuyacreación depende de las reglas de irregularidado de fragmentación al ser estudiadas por un

proceso matemático determinado, es definida tambiéncomo un objeto matemático de dimensión no entera.

Según B. Mandelbrot [1] se considera fractal a aquelobjeto o estructura que consta de fragmentos con orien-tación y tamaño variable pero de aspecto similar. Estacaracterística la da al fractal algunas propiedades geomé-tricas especiales en que dependen de su longitud y larelación entre el área de su superficie y su volumen.

Estas propiedades especiales hacen que se requieranotras herramientas matemáticas diferentes a las comu-nes para poder explicar sus características. En el cuerpohumano existen estructuras con geometría fractal, comoson la red vascular, las ramificaciones bronquiales, lared neuronal, la disposición de las glándulas, etc.

La importancia que tiene esta geometría fractal en elorganismo es que permite optimizar la función de lossistemas debido a que en el mínimo espacio tienen lamáxima superficie. Al existir estructuras con geometríafractal deducimos que deben ser posibles los fenómenoscon características fractales al poder poseer estos fenó-menos unos patrones que se repiten constantemente endiferentes escalas de tiempo. Es importante mencionarque cumple con las reglas de paralelización al tener lacaracterística antes mencionada.

Estos fenómenos son analizados por lo general con eluso de herramientas matemáticas de la geometría frac-tal. De acuerdo a H. P. Koch [2], la teoría fractal puede serconsiderada como una herramienta válida y útil para elestudio de fenómenos dinámicos en el cuerpo humano o

en la naturaleza y nos permite una aproximación másacorde con la complejidad y la ausencia de linealidadexistente en dichos procesos.

APLICACIONES DE LOS FRACTALES

Aunque puedan parecer simples figuras creadas parauso y entretenimiento de los matemáticos, existen mu-chas aplicaciones de los fractales tanto a nivel teóricocomo en el práctico. Considerando la gran variedad deáreas de estudio científico y su gran importancia esimposible hacer una lista de aplicaciones por lo queconsideré para este trabajo solo las más importantes.

Su aplicación en el campo de las ciencias abstractasha sido realmente grande y una de sus aplicaciones endonde se ha comportado como una innovación, es elestudio de las soluciones de sistemas de ecuaciones desegundo grado. Aunque se han hecho consideracionesdonde son utilizados los fractales para resolver ecuacio-nes.

El matemático John Hubbard, de nacionalidad esta-dounidense, presento un trabajo utilizando el métodode Newton [3], para resolver ecuaciones, para realizaresto evaluó desde diferentes puntos iniciales a cada unade las soluciones. Usando su computadora para realizarla exploración y asignando un color a cada cuenca,Hubbard comprobó que los límites de estas regiones delplano no estaban bien definidos. En estos límites seencontraba puntos de un color dentro de otros puntos decolor y conforme la rejilla de números y se iba ampliandoa medida que más compleja se iba revelando la frontera.En realidad, podía considerarse que no existía tal fron-tera.

Generalmente las aplicaciones más comunes songeneradas por la física o la sismología, pero el campodonde más aplicaciones se han encontrado ha sido en eltratamiento de las imágenes.

id13424843 pdfMachine by Broadgun Software - a great PDF writer! - a great PDF creator! - http://www.pdfmachine.com http://www.broadgun.com

Page 30: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

Algoritmo de Escape para Crear un Fractal Utilizando MPI

XV 1 31 polibits 31

Michael Barnsley fue el pionero en el tratamiento deimágenes a partir de su denominada transformaciónfractal [4]. Ésta consiste en el proceso contrario a laformación de un fractal, es decir, en lugar de crear unafigura a partir de unas reglas determinadas, se buscanlas reglas que forman una figura más determinada. Losfractales se utilizan para comprimir imágenes digitali-zadas de forma que ocupen menos espacio y puedan sertransmitidas a una mayor velocidad y con menoresrecursos de computo.

En la industria del cine es de gran utilidad a la horade crear los espectaculares efectos especiales de las gran-des producciones, ya que es fácil crear todo tipo depaisajes y fondos a través de los fractales.

En la figura 1 se ve un fractal generado por unprograma de alto rendimiento en gráficos que simula unárbol.

En el mundo de la música los fractales juegan unpapel muy importante en la composición, en especial, demúsica tecno o de bases rítmicas para cualquier otro tipode música. En el mundo de la biología., Se pueden apre-ciar grandes ejemplos de estructuras fractales en elcuerpo humano como la red de venas y arterias. A partirde un vaso sanguíneo grande como la aorta va saliendovasos más pequeños hasta la aparición de los finísimoscapilares de forma que cubran el mayor espacio posiblepara llevar nutrientes a las células. Por otro, se creeadivinar cierta similitud entre la generación de fractalesy el código genético, ya que en ambos casos a partir deuna información muy reducida en apariencia, surgencomplejas estructuras.

MARCO TEÓRICO

FRACTALES Y CAOS

La dimensión fractal es un índice matemático que esposible calcular y que nos permite cuantificar las carac-terísticas de los objetos o fenómenos fractales. Este índi-ce puede calcularse de varias formas. Por lo general esutilizado un modelo matemático llamado el exponentede Hurst.

La concepción de dimensión que nosotros usamosnormalmente en la euclidiana clásica, es la que unadimensión es una recta, dos dimensiones forman unplano y tres dimensiones forman un objeto con volu-men. A estas coordenadas les llamamos el eje X o largo,el eje Y o alto y el eje Z profundidad o espesor. Ver figura2.

La geometría fractal y los descubrimientos de laciencia del Caos se basan en los números complejos. Adiferencia del resto de los números, los números comple-jos no existen sobre la recta numérica en lo absoluto, nisiquiera en aproximación, como en el caso de los núme-ros reales. Los números complejos solo existen en unplano de x-y que involucra a los llamados númerosimaginarios. Tienen únicamente una referencia indirec-ta con la recta numérica.

LOS NÚMEROS COMPLEJOS

Los números complejos son una combinación denúmeros imaginarios que no tienen lugar físico sobre la

Figura 1. Simulación de un árbol utilizando un fractal.

Figura 2. Representación de una dimensión en la eucli-diana clásica.

Page 31: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

Algoritmo de Escape para Crear un Fractal Utilizando MPI

polibits 200532

recta numérica, y de cualquier otro tipo de número quesi tenga un lugar definido sobre la recta numérica. En lasmatemáticas los números complejos se representan me-diante una letra z, la cual define al número complejocomo:

z= a + bi

donde:

a= número real

bi= número imaginario

Tanto las partes real como la imaginaria del númerocomplejo pueden ser positivas o negativas, y cualquierade los dos puede ser entero o fraccional. Los númeroscomplejos pueden fácilmente sumarse, restarse, multi-plicarse o dividirse. El uso de x y y proporciona unareferencia al plano cartesiano, lo cual ayuda al mejorentendimiento de los números complejos.

El eje x es la representación de la recta numérica, quese representa en forma horizontal. Mientras que el eje yrepresenta la línea de los números imaginarios, de raícescuadradas negativas. El eje y se muestra verticalmentepara crear un plano de números complejos.

como z= x + Hill

x= número real

yi= número imaginario

Todo número no-complejo tiene un lugar sobre launidimensional recta numérica, mientras que todo nú-mero complejo tiene un lugar sobre el plano más ampliode dos dimensiones de los números que se denominacomo el plano complejo. De manera que para localizar unnúmero complejo hay que referirse al eje horizontal paralocalizar su parte numérica real y al eje vertical paraubicar su parte numérica imaginaria. Esto contrasta contodos los números que pueden localizarse en un puntoque se encuentra sobre una línea recta unidimensional.

La representación de un numero en el plano porejemplo 2-3i complejo seria mostrado en la figura 3.

Si ahora consideramos que existe una línea irregular,esta tiende a formar una superficie, y si se dobla seconvierte en un volumen; esta es una técnica muy gene-ral de convertir un objeto en un plano en un objeto contres dimensiones. Muchas estructuras naturales tienen

estas características; por lo que, geométricamente, estasestructuras podrían tener una dimensión no enteraentre dos y tres dimensiones.

De esta forma la dimensión fractal es un índice quenos permite analizar mejor las características geométri-cas de los objetos usando la geometría fractal. Los fenó-menos con comportamiento fractal pueden ser repre-sentados por medio de gráficos de líneas, y en estosgráficos se mide su dimensión fractal y de esta forma elanálisis de la complejidad de su dinámica caótica. Esposible considerar que la relación más importante entreel caos y los fractales, esta en que los fractales son larepresentación grafica del caos.

La relación existente entre el caos y los fractales esposible ya que los fractales son figuras geométricas conun cierto patrón que se repite infinitamente y a múltiplesescalas, si son observadas detenidamente se podrá des-cubrir que en ese patrón se encontrarán los mismoscomponentes hasta el infinito. Esto lo podemos verificarsi observamos el fractal a diversas escalas cada vez máspequeñas. Un fractal sin dimensión entera representa laforma grafica en la solución de las ecuaciones caóticas.

De manera simple entonces es posible definir unfractal como una figura geométrica con una estructuramuy compleja y pormenorizada a cualquier escala lacual tiene las siguientes características:

1. Los fractales son figuras geométricas, aunque no seajusten y sea imposible su definición por medio de losconceptos y métodos clásicos vigentes desde Eucli-des.

Figura 3. Representación de 2-3 i sobre el planocomplejo.

Page 32: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

Algoritmo de Escape para Crear un Fractal Utilizando MPI

XV 1 31 polibits 33

2. Se originan a partir de unas situaciones iniciales oreglas muy básicas, que darán lugar a figuras extre-madamente complejas.

3. La autosemejanza.. Es definida como la simetría exis-tente dentro de una escala, esta característica losvuelve recurrentes y paralelizables.

ANÁLISIS DEL ALGORITMO Y SU SOLUCIÓN PARALELA

EL FRACTAL DE MANDELBROT

El fractal mas conocido y sin duda él mas analizadoes el fractal de Mandelbrot. Para muchos expertos setrata del objeto más complejo de todas las cienciasexactas. Resulta increíble observar su infinita comple-jidad, y su belleza la cual es indescriptible. Ver figura 4.

El descubrimiento y su definición formal fue un pro-ceso muy complejo y fue precedido por los estudios deGaston Julia y Pierre Gatou durante la I Guerra Mundial.Estos estudios originaron los fractales de Julia y fueronredescubiertos por Benoit Mandelbrot a finales de los 70.

El fractal de Mandelbrot consiste en una serie denúmeros complejos que cumplen una propiedad mate-mática en la cual, cada numero está compuesto por unaparte real y otra imaginaria representada por i, que esigual a la raíz cuadrada de �1, de la siguiente forma:

2 + 3i.

Entonces, tomamos, un número cualquiera C y loelevamos al cuadrado. Al número obtenido le sumamosC y lo volvemos a elevar al cuadrado y continuamos unay otra vez con el mismo proceso:

Esto genera la siguiente ecuación:

z z2 + C (1)

Es posible que puedan existir dos resultados en esteproceso iterativo:

a. El número puede escapar al infinito alejándose delcentro del plano y no pertenece al fractal de Mandel-brot.

b. El numero obtenido y el punto se encuadre se encuen-tran dentro del fractal.

CONSTRUCCIÓN DEL ALGORITMO

Los puntos que pertenecen al Conjunto de Mandel-brot son aquellos puntos que hacen que partiendo delorigen,mantienen al menos de 2 unidades del origen,independientemente del número de puntos a evaluarque se realicen.

Para saber si un punto P(a,b) del plano pertenece alConjunto de Mandelbrot debemos seguir el siguienteprocedimiento:

a. Siempre se evalúa del origen de coordenadasZ0 = (0,0)

b. De este punto se dirige al primer punto a evaluarZ1 = (a,b)

c. El próximo punto a evaluar será el punto Z2 = (x2,y2),cuyas coordenadas están definidas por el siguientealgoritmo:

Z2 = (Z1)2 + (a, b)

De esto se deduce que para el «enésimo punto de evalua-ción n» :

Zn = ( Zn - 1 )2 + (a,b)

es decir xn = ( x n - 1 ) 2 - ( y n - 1 )

2 + a

yn = 2 xn - 1 yn - 1 + b

Si después de realizar la gráfica, el punto Zn se en-cuentra a una distancia menor que 2 unidades del origen,Figura 4. Fractal Mandelbrot realizado en MPI.

Page 33: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

Algoritmo de Escape para Crear un Fractal Utilizando MPI

polibits 200534

entonces el punto P(a,b) pertenece al Conjunto de Man-delbrot.

En la práctica puede resultar complicado realizar unnumero muy grande de iteraciones, de forma que se debede evaluar el conjunto de Mandelbrot por aproximacio-nes, existen dos aspectos de este proceso que se debe desaber,cuando se encuentra el punto dentro del conjuntoo cuando no lo está.

A continuación veremos dos ejemplos de este proce-so, para conocer el funcionamiento correcto del algorit-mo, se le darán valores y se solucionará la ecuacióncuando:

EL PUNTO PUEDE ESCAPAR AL INFINITO ALEJÁNDOSE DEL CENTRO DEL

PLANO Y NO PERTENECE AL FRACTAL DE MANDELBROT

Veamos como se comporta un punto con un colorparticular dentro del plano, empezaremos con un puntofuera del conjunto del Mandelbrot:

C = -0.5 + i

Iteracionando la función Zn = Zn-12 + C produce los

siguientes valores

Numero de Valor actual Distancia delPaso origen

1 -0.5 + i 1.122 -1.25 1.253 1.06 + I 1.464 -0.37 + i * 3.1 3.15

En la tercera iteración se aprecia que la distancia deel punto de origen es mas grande de dos. Esto nos indica

que el punto C no se mantiene dentro del conjunto delMandelbrot, ver figura 5.

EL NUMERO OBTENIDO Y EL PUNTO SE ENCUADRE SE ENCUENTRAN

DENTRO DEL FRACTAL

Si se hace el mismo procedimiento con un puntodentro del conjunto del Mandelbrot C = 0.2 + i * 0.5. Eneste caso, la distancia de el punto de origen nunca serámayor a dos . Cuando se alcanza el numero máximo deiteraciones por ejemplo 200 es asumido que el puntoinicial C se encuentra dentro del conjunto Mandelbrot yes pintado en negro.

Numero Valor actual Distancia delde Paso origen

1 0.2 + i *0.5 0.542 -0.01 + i * 0.7 0.73 -0.29 + I * 0.49 0.574 0.05 + I *0.22 0.225 0.15 + i * 0.52 0.546 -0.05 + i * 0.66 0.667 -0.23 + i * 0.44 0.488 0.06 + i * 0.3 0.3

.. ....................... ...................

Ver figura 6.

La función equivalente en lenguaje C seria la siguien-te:

void compute(double x, double y, double c_real, double c_imag, double *ans_x, double *ans_y){ *ans_x = x*x - y*y + c_real; *ans_y = 2*x*y + c_imag;}

C

Figura 5. Gráfica que muestra el comportamiento de unpunto fuera del Mandelbrot.

Figura 6. Gráfica que muestra el comportamiento de unpunto dentro del Mandelbrot.

C

Page 34: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

Algoritmo de Escape para Crear un Fractal Utilizando MPI

XV 1 31 polibits 35

Como se puede observar esta función es definida demanera tal que pueda re utilizarse en un proceso recur-sivo.

RESULTADOS

Un problema que se presento en el desarrollo delproyecto fue la manera de poder almacenar el resultadoen un archivo gráfico, es importante reconocer el entor-no de programación MPI contiene aun, un limitadoentorno gráfico y aunque existe el entorno MPE, no seriaposible guardarlo en un archivo.

Investigando la manera de generar este archivo seencontró la manera de crear archivos PGM (Portablegreyscale images) ya que es simple, bajo el inconvenientede que genera archivos en escalas de grises.

Para esto se le agrego al algoritmo la librería pgm.h.

La función pgmWriterHeader es utilizada con la decla-ración de una variable tipo archivo para generar lacabecera del lectura y la función converttoworld con-vierte cada dato calculado en pixeles que son escritos acontinuación de la cabecera.

La funciones descritas son las siguientes :

a. Funcion de creación de cabecera:

void pgmWriteHeader ( FILE *f, int width, int height, int maxval ){fprintf ( f, «P5\n%d %d\n%d\n», width, height, maxval );}

b. Función de escritura de datos :

void convertToWorld ( int ix, int iy, int imgsize, double xmin, doublexmax, double ymin, double ymax, double *xw, double *yw ){ double x, y; x = ix; y = imgsize - iy; x /= imgsize; // normaliza y /= imgsize; x = ( x * (xmax-xmin) + xmin ); y = ( y * (ymax-ymin) + ymin ); *xw = x; *yw = y;

}

Como resultado de este análisis se deriva el siguienteprograma

#include <stdio.h>#include <math.h>#include <sys/time.h>#include «mpi.h»

Se incluye una función que calcule la distancia entrex y y:

double distance(double x, double y){ return(x*x + y*y);}

Por último se hace la integración de mpi sobre laecuación de donde se tiene el siguiente programa:

/* Autor: M.C. Jesús Antonio Alvarez Cedillo CIDETEC-IPNDibujo de un Mandelbrot usando comandos MPI y MPE*/

void compute(double x, double y, double c_real, double c_imag, double *ans_x, double *ans_y){ *ans_x = x*x - y*y + c_real; *ans_y = 2*x*y + c_imag;}

double distance(double x, double y){

/* calcula la distancia entre x y y. * Recibe: doubles x y y. * Regresa x^2 + y^2. */

return(x*x + y*y);}

/* salida de la cabecera del archivo PGM*/void pgmWriteHeader ( FILE *f, int width, int height, int maxval ){ fprintf ( f, «P5\n%d %d\n%d\n», width, height, maxval );}

void convertToWorld ( int ix, int iy, int imgsize, double xmin, doublexmax,

double ymin, double ymax, double *xw, double *yw ){ double x, y; x = ix; y = imgsize - iy; x /= imgsize; // normaliza y /= imgsize;

x = ( x * (xmax-xmin) + xmin ); y = ( y * (ymax-ymin) + ymin );

*xw = x; *yw = y;

}

/* Programa principal */

Page 35: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

Algoritmo de Escape para Crear un Fractal Utilizando MPI

polibits 200536

int main(int argc, char* argv[]){ const int IMAGE_SIZE = 1024; const int MAX_ITER = 255;

int n, ix, iy;

double r_min, r_max; double i_min, i_max; double x, y, c_real, c_imag;

MPI_Init(&argc,&argv);

/* Ingreso printf(«\nIngresa el rango sobre la exis REAL (ej, -2,2): «); scanf («%lf,%lf», &r_min, &r_max ); printf(«\n Ingresa el rango sobre la exisIMAGINARIO(ej, -2,2):»); scanf («%lf,%lf», &i_min, &i_max );

FILE *f = fopen ( «mandel.pgm», «w» ); pgmWriteHeader ( f, IMAGE_SIZE, IMAGE_SIZE, 255 );

for (iy = 0; iy < IMAGE_SIZE; iy++) { for (ix = 0; ix < IMAGE_SIZE; ix++) {

convertToWorld ( ix, iy, IMAGE_SIZE, r_min, r_max, i_min, i_max, &c_real, &c_imag );

x = y = 0.0; n = 0;

while (n < MAX_ITER && distance(x,y) < 4.0) { compute(x,y,c_real,c_imag,&x,&y); n++; }

if (n < MAX_ITER ) fputc ( n%2?255:100, f );

else fputc ( 0, f );

} }

fclose ( f );

MPI_Finalize();}

El algoritmo trabajó muy bien para diferentes ran-gos de evaluación del conjunto de Mandelbrot, a unavelocidad muy aceptable y con resultados mas queestupendos, un ejemplo de esto se muestra en la figura7 donde se genera un fractal en el rango de x real (-0.25,-0.125) y en el rango de x imaginario (-0.125,-0.62).

Como puede observarse se debe de ingresar un rangode valores en los Reales y en los Imaginarios para que enrelación a estos valores se puedan realizar las iteracio-nes.

CONCLUSIONES

La construcción de un algoritmo paralelo ya es unatarea compleja que involucra la manera como los datosdeberán de ser manejados, el manejo de las iteracionesy el desempeño óptimo que mejore la velocidad de pro-cesamiento. Por otro lado la cuarta dimensión es el hogarde los números complejos y de la geometría fractal.. Setrata del continuo espacio-temporal del hombre y lanaturaleza, en donde existe un constante cambio basadoen la retroalimentación. Como lo descubrió Mandelbrot,la cuarta dimensión incluye no solo a las tres primerasdimensiones, sino también a los intervalos existentesentre ellas, las dimensiones fractales.

Figura 7. fractal de prueba generado por el algoritmo.

Page 36: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

Algoritmo de Escape para Crear un Fractal Utilizando MPI

XV 1 31 polibits 37

La fórmula de Mandelbrot es un resumen de susdescubrimientos en la geometría fractal de la naturaleza[1], en el mundo real de la cuarta dimensión. Esto con-trasta con el mundo idealizado de las formas euclidianasde las dimensiones primera, segunda y tercera. Estasformas habían preocupado a la casi totalidad de losmatemáticos anteriores a Mandelbrot. La geometríaeuclidiana estaba relacionada con una perfección abs-tracta que es prácticamente inexistente en la naturaleza.Esta era incapaz de describir la forma de una nube, deuna montaña, de una playa o de un árbol. El uso denuevos algoritmos que utilicen MPI para resolver pro-blemas de fractales proporcionan al investigador nue-vas herramientas de referencia .

En su libro �The Fractal Geometry of Nature� (LaGeometría Fractal de la Naturaleza), Mandelbrot men-ciona [1]: �las nubes no son esferas, las montañas no sonconos, las playas no son círculos, y los ladridos no sonagradables, ni la luz viaja en línea recta.�

A cual comentario anexo : �Nada en este mundo es loque aparenta ser�

5.BIBLIOGRAFÍA

[1] Mandelbrot, B. The fractal geometry of nature. Free-man and Co. 1977.

[2] Prusinkiewicz, P.; Sandness, G. Koch curves as at-tractors and repellers. IEEE Computer, 1988

[3] Hubbard and Schleicher and Sutherland. How ToFind All Roots of Complex Polynomials by Newton�sMeted. INVMATH: Inventiones Mathematica, 2001

[4] Michael Barnsley. Fractals Everywhere. AcademicPress Inc., second edition 1993. BRIGGS, J. PEAT,F. D. Turbulent Mirror. Harper & Row Pub. USA.1989.

Page 37: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

Implementación de Hardware / Software para Control Difuso

polibits38 2005

Implementación de Hardware /Software para Control Difuso

E

Implementación de Hardware /Software para Control Difuso

M. en C. Romeo Urbieta Parrazales,M. en C. Pablo Manrique Ramírez,Ing. Antonio Hernández Zavala;Profesores del CIC-IPNe-mail: [email protected]

ste artículo trata el diseño e implementación dehardware/software de control difuso usando tec-nología avanzada de microcontroladores. El di-

seño de control difuso usa un esquema de dos variablesde entrada: el error de velocidad y su respectiva deriva-da, y una salida, el voltaje de armadura del motor. Lasvariables de entrada fueron convertidos a valores difu-sos en tres funciones de membresía triangulares cadauna, mientras la variable de salida en cinco funciones demembresía puntuales. La base del conocimiento vieneexpresada mediante el método de la composición max-min, produciendo una matriz de 4x4 reglas. La imple-mentación de hardware viene representada en undiagrama a bloques: un microcontrolador cop8cdr comonúcleo del sistema de hardware y sus respectivos peri-féricos: teclado, despliegue y adquisición, mientras queel software está representado en diagramas de flujo delas rutinas de control y periféricos.

INTRODUCCIÓN

Un sistema es uan conjunción de procesos, desde losmás simples hasta los más complejos, con entradas,funciones y salidas.[1]

Con el paso del tiempo surgen diversas teorías que seencargan de mejorar el desempeño de los sistemas; en elcaso de sistemas inciertos (ya sean industriales, huma-nos o naturales) existe la Lógica Difusa, que es unaherramienta matemática para modelación o control delos procesos.[2]

Aunque en este artículo se utilizan la Lógica y elControl Difuso como herramientas para control de pro-cesos eléctricos; no se abordará la base teórica en la que

se sustentan. Sin embargo, se detalla la realización de unSistema de Control Difuso que maneja un motor decorriente directa implementado en un microcontrola-dor.[3]

Todo proceso de control, requiere que el usuarioasigne un valor de operación para la variable a contro-lar, debe existir también un sistema que lleve al procesoa las condiciones indicadas por el usuario de modo fácily preciso .

Para lograr lo anterior, se utiliza un motor de CD y untacómetro analógico; en el cual mediante un dispositivoelectrónico, el usuario define la velocidad a la que deseaopere el motor. Posteriormente, un dispositivo se encar-ga de manejar el motor de forma automática según loespecificado manteniendo la velocidad hasta que el usua-rio determine lo contrario.[4]

DISEÑO

Problema. Se desea controlar la velocidad de unmotor de corriente directa, mediante una interfaz deusuario electrónica; para conocer la velocidad actual delmotor se cuenta con un tacómetro analógico que me-diante un transductor entrega la lectura. Para asignar elvoltaje de operación en la entrada del motor se cuentacon un transductor de entrada.

Análisis. Como se puede observar, mediante unaseñal de entrada en el rango de 0 a 6 Vcc, se puedecontrolar al motor a velocidades en el rango de 0 a2000@Rpm. Debido a las especificaciones del motor no sedeben rebasar las 1700@Rpm. Por ello, el motor seráoperado en el rango de 0 a 5 Vcc. El valor equivalente envoltaje a la velocidad actual del motor, es entregado porel driver del tacómetro en el que la salida se encuentra enel mismo rango de voltaje de entrada, por lo que para laentrada y la salida se utilizarán los valores de la Tabla1:[5]

id11515296 pdfMachine by Broadgun Software - a great PDF writer! - a great PDF creator! - http://www.pdfmachine.com http://www.broadgun.com

Page 38: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

Implementación de Hardware / Software para Control Difuso

XV 1 31 39polibits

En la tabla, la señal de entrada para el sistema ana-lógico del motor recibe el nombre de OUT, al dato desalida del tacómetro se le asignará el nombre de TACH,y al dato de referencia asignado por el usuario se lellamara REF. Estos son los nombres de variable queutilizará el controlador.

En el diagrama general (Figura 1) se puede notar queel modelo de control es de lazo cerrado, esto es, el dato desalida del controlador depende directamente del dato de

entrada; a partir de esta referencia y el dato tomado deltacómetro por el convertidor A/D (TACH) se obtiene unerror, el cual se usa en el algoritmo de control difuso paraobtener una salida de control que será enviada a travésde un convertidor D/A hacia el motor, repitiendo itera-tivamente el procedimiento anterior.

Cabe señalar que solo será tratada la parte digital,misma que comprende los conversores A/D y D/A, launidad de control difuso y la referencia de usuario, porlo que el motor, tacómetro y actuadores no se abordarana detalle; esto es, se presupone su conocimiento.[6]

El Sistema recibe un par de datos de entrada prove-nientes del exterior; el primero de ellos es el introducidopor el usuario REF y el segundo es la velocidad actual delmotor dada por el tacómetro TACH.

Al restar al valor de referencia el dato del tacómetro,se obtiene el valor del ERROR,

ERROR = REF - TACH

La derivada del error se obtiene de la siguiente ope-ración

DERROR = ERRORi - ERROR i-1

Donde ERRORt-1 es el error en el instante anterior, quese asigna a la variable AUX; el cálculo de la derivada delerror permite al controlador seguir la ruta correcta deevaluación. Lo anterior se puede apreciar en la Figura 2.

Control Difuso. El Control Difuso, esta compuestopor tres etapas: la primera es la fuzzificación, aquí seconvierten los valores de entrada a valores difusos; lasegunda es la evaluación de los valores fuzzificados enla base de reglas de control; y la última es la desfuzzifi-cación, en la que se obtiene un valor de salida no difuso.Una vez identificado el modelo del control difuso, sepuede detallar ampliamente el sistema a realizar.[7]

La Figura 3, muestra las partes que componen alsistema en su totalidad.

Vin REF Motor (@Rpm)

Vout TACH

Valor decimal

0 0 0 0 0.25 0 0.25 12 0.5 0 0.5 25

0.75 36 0.75 38 1 160 1 51

1.25 260 1.25 63 1.5 360 1.5 76

1.75 460 1.75 89 2 560 2 102

2.25 660 2.25 114 2.5 760 2.5 127

2.75 860 2.75 140 3 960 3 153

3.25 1060 3.25 165 3.5 1160 3.5 178

3.75 1260 3.75 191 4 1360 4 204

4.25 1460 4.25 216 4.5 1560 4.5 229

4.75 1660 4.75 242 5 1760 5 255

Tabla 1. Valores de entrada y salida del proceso.

Unidadde

Control Difuso

A/D D/A

Actuador

Tacometro Motor

Actuador

OUTTACH

Referencia REF

Figura 1. Diagrama general.

-

DE---------

Dt

REF

TACH DERROR

ERROR

CONTROLADORDIFUSO

OUT

Figura 2. Variables involucradas en el diseño.

Page 39: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

Implementación de Hardware / Software para Control Difuso

polibits40 2005

Fuzzificación. Un controlador di-fuso utiliza números difusos de la for-

ma ))(,( xxA , para los quea cada valor de entrada x, le corres-

ponde un valor de )(x . Para lasvariables de entrada ERROR y DE-RROR, se tienen los siguientes núme-ros difusos con sus correspondientesvariables lingüísticas (ver también lasFiguras 4 y 5).

Para ERROR:

ERROR-NEGATIVO

0,255,255

2551

xEN

..... (E0)

ERROR-ZERO

55,0,55

1

0,55,55

55

x

x

EZ

.....(E1) (E2)

ERROR-POSITIVO

255,0,255

xEP .....(E3)

Para DERROR:

DERIVADA_ERROR-NEGATIVA

55,255,200

2551

xDEN .....(DE0)

DERIVADA_ERROR-ZERO

110,0 ,110

110

0,110,110

110

x

xDEZ

.....(DE1) (DE2)

DERIVADA_ERROR-POSITIVA

255,55,200

55xDEP .....(DE3)

Se utilizan un par de vectores que contienen los datoscalculados en esta etapa, con el propósito de poderrealizar el método de composición; cada localidad co-rresponde a la formula que se indica. Los vectores semuestran a continuación.

CONTROL DIFUSO

FUZZIFICADOR

BASEDE

REGLAS

DACADC

DEFUZZIFICADOR

+

DE---------

Dt

REF

TACH

ERROR

DERROR

MOTOR&

TACOMETRO

SISTEMA DIGITAL

SISTEMA ANALOGICO

Figura 3. Modelo de Control difuso.

-255 255

EN EP

-55 55

EZ

Figura 4. Variable lingüística del error.

Figura 5. Variable lingüística de la derivada del error.

-255 255

DEN DEP

-55 55

DEZ

-110 110

Page 40: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

Implementación de Hardware / Software para Control Difuso

XV 1 31 41polibits

Método de Composición max�min. Para evaluar undato en la base de reglas, se debe contar con un métodoque permita elegir de entre el conjunto de datos deentrada, cuál será utilizado; para esto se realiza la com-posición MAX-MIN entre ERROR y DERROR, el datoobtenido debe indicar qué posición de la base de reglasse debe utilizar.[8]

Esta composición, mediante un proceso similar a lamultiplicación de matrices, produce como resultadouna matriz de 4x4 (Tabla 2), mediante evaluación demínimos y máximos de acuerdo a la siguiente formula:

)))),(),,(((),,(( zyyxminmaxzxDEE DEEy

Dado que la composición dejará un solo resultadodiferente de cero, este corresponde a la localidad en labase de reglas que determinará la salida. La base dereglas utilizada se muestra en la Tabla 3.

A cada una de las variables, le corresponde un valorde salida según se muestra:

NL = -64NM = -31Z = 2PM = 31PL = 64

El resultado se carga en la variable de programa RES.La Figura 6 es la forma gráfica de representación de losresultados de salida.

Desfuzzificación. Esta etapa se encarga de sumar orestar, según el caso, el valor obtenido de la etapa ante-rior con el valor de la salida actual.

RESOUT

IMPLEMENTACIÓN DE HARDWARE/SOFTWARE

El sistema se implementará en un microcontroladorCOP8 con conversor A/D integrado, la salida será dadaa través de un conversor D/A y los resultados se presen-tarán en una pantalla LCD.

El diagrama general del sistema controlador difusoen hardware se muestra en la Figura 7.

Tabla 2. Matriz alfa resultante.

Tabla 3. Base de reglas óptimas.

-64 64

NL EP

-31 31

NM Z PM

Figura 6. Variable lingüística de salida.

Figura 7. Hardware del sistema de control difuso.

Page 41: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

Implementación de Hardware / Software para Control Difuso

polibits42 2005

De manera general, el algoritmo que se utiliza es elsiguiente:

1. Lee referencia del usuario.2. Lee dato del ADC.3. Cálculo de error y derivada del error.4. Fuzzificación.5. Composición MAX � MIN.6. Evaluación de reglas.7. Defuzzificación.8. Envío de salida a DAC.9. Repite desde 1.

En la Figura 8 se muestra el diagrama de flujo delprograma y en la Figura 9 se tiene el diagrama deconexiones del sistema.

· FUNCIÓN DE LECTURA DE REFERENCIA.

Para esta función se requiere leer un dato que elusuario ha colocado en el puerto de entrada, al momentode presionar un botón. Para la entrada se utilizan los bitsde acuerdo a la tabla siguiente:

Puerto A1 A2 A3 A4 A5 A6 A7 E0REF 0 1 2 3 4 5 6 7

Para leer el dato se requiere realizar un desplaza-miento en A, y probar el bit 0 de E.

Un botón conectado en el puerto G0, sirve como señalde interrupción; al generarse esta, el dispositivo realizala rutina de servicio a interrupción externa, para obte-ner la lectura correspondiente.

· FUNCIÓN DE LECTURA DE DATO DE ADC.

El registro de configuración del convertidor integra-do, cuenta con el bit ADBSY; el cual al ser establecidoinicia la conversión, esto tarda un período de 15 ciclos dereloj, por lo que el algoritmo es el siguiente:

1. Establecer ADBSY.2. Mientras ADBSY=1, esperar3. Hacer TACH = ADRSTH4. Fin.

· FUNCIÓN DE CÁLCULO DE ERROR Y DERIVADA DE ERROR.

El error es igual al dato de referencia menos la lecturadel ADC; y la derivada del error es igual al error calcu-lado menos el error anterior. Como el resultado puedeser positivo o negativo, existe un vector de signo (SIG-

NO), en donde el bit 7 corresponde al signo del error y elbit 6 al signo de la derivada de error.

· FUNCIÓN DE FUZZIFICACIÓN.

Dado que esta función será implementada en hard-ware las operaciones deben ser menos complejas, por loque se utilizan las siguientes formulas equivalentes a lasvistas anteriormente.

Puerto D4 D5 D6 D7 E4 E5 E6 E7 F0 F1DAC D0 D1 D2 D3 D4 D5 D6 D7 WR CS

E0255-ERROR = RES255-RES=RES

E155- ERROR =RESRES x 4 = RES

E2ERROR x 4 = RES255 � RES = RES

E3ERROR = RES

DE0

255 � DERROR = RES255 - RES = RES

DE1110 � DERROR = RESRES x 2 = RES

DE2DERROR x 2 = RES255 � RES = RES

DE3DERROR � 55 = RES

· FUNCIÓN DE COMPOSICIÓN MAX � MIN.

La composición entre los vectores ERROR y DE-RROR, utiliza apuntadores (EPTR, DEPTR respectiva-mente) a las localidades donde se encuentran los arre-glos, y la matriz de alfa es apuntada por ALPTR. Elmétodo realiza las comparaciones entre ERROR X DE-RROR, colocando el resultado en la matriz de alfa; al finalse realiza una segunda vuelta de búsqueda de máximo,para así solo tener un valor diferente de 0, que será elutilizado por la función siguiente.

· FUNCIÓN DE EVALUACIÓN DE REGLAS.

Esta función lee cada localidad de la matriz de alfa, siel contenido de ésta es diferente de cero, realiza la eva-luación correspondiente, cargando en la variable RES elresultado obtenido; se utilizan la tabla y los valores desalida descritos anteriormente.

Page 42: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

Implementación de Hardware / Software para Control Difuso

XV 1 31 43polibits

· FUNCIÓN DE DESFUZZIFICACIÓN.

Mediante la utilización de RES y el bit de signo deERROR, se realiza ya sea una suma o una resta de OUT+/- RES, utilizando OUT como un acumulador.

· ENVÍO DE SALIDA A DAC.

El contenido de OUT, se transfiere a puertos, la entra-da del DAC, posteriormente se genera la señal de cargay retención de datos, con lo que se genera la señal decontrol en el voltaje deseado. Los puertos y las entradasal DAC se muestran en la tabla. Se utiliza un DACTLC7524 configurado en modo voltaje.

CONCLUSIONES

1. El control difuso puede ser aplicado a cualquier pro-blema que requiera la utilización de control.

2. El método MAX � MIN proporciona de manera fácily precisa el resultado deseado de la base de reglas,pero si éste no está bien definido, conduce a errores.

3. La definición de los números difusos de entrada eslabor compleja, por lo cual se hace uso de otrasherramientas matemáticas, tales como Redes Neu-ronales, Algoritmos Genéticos, etc.

4. No es necesario el uso de punto flotante como tal enlas operaciones, se puede dar un resultado precisotrabajando con números enteros.

5. El verdadero poder de aplicación del control difuso seencuentra en problemas para los cuales las salidas norequieran un gran número de valores de salida, sinopara los cuales exista un rango al cual se le puedaasignar un valor fijo.

I N IC IO

L E ER E F

C O N V E R S IÓ NA /D

C A L C U L AE R R O R

D E R R O R

F U Z Z IF I C A C IO N

C O M P O S IC IO NM A X - M IN

E V A L U A C IO ND E

R E G L A S

D E F U Z Z IF IC A C I Ó N

C O N V E R S IO ND / A

Figura 8. Flujo del programa completo.

L5

F1

L6

F0

L7

G0

B0

E7

B1

E6

B2

E5

B3

E4

B4

D7

B5

D6

B6

D5

B7

D4

A0 A

1 A2

A3

A4 A

5 A6

A7

E0

R

S

R

/W

E

D

0

D1

D

2

D3

D

4

D5

D

6

D7

LCD

COP8

CDR

CS

REF

WR

OU

T1

O

UT2

D7

D6

D5

D4 D3

D2

VDD

D1

D0

GN

D

SEÑA

L DE

INTE

RR

UPC

ION

SEÑA

L ANA

LOGI

CAD

E EN

TRAD

A

B7 B

6 B5

B4

B3 B

2 B1

B0

DAT

OS

DE E

NTRA

DA

+5V

GN

D

GND+5V

SEÑA

LAN

ALO

GIC

AD

E SA

LID

A

Figura 9. Diagrama de conexiones del sistema controla-dor difuso.

Page 43: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

Implementación de Hardware / Software para Control Difuso

polibits44 2005

REFERENCIAS

[1] Peter Harriott. Process Control. Capítulo 3. Open-LoopResponse of Simple Systems. Mc Graw-Hill Book Com-pany. 1964.

[2] George Bojadziev & Maria Bojadziev. Fuzzy Sets,Fuzzy Logic, Applications. Cápitulo 11. Fuzzy Logic andApplications. World Scientific. 1995.

[3] Jeremy Binfet & Bogdan M. Wilamowsky. Micro-processor of Fuzzy Systems and Neural Network. Página234-239. 2001 IEEE.

[4] José Ramón Alique López, Elena Agüero Gutié-rrez, Leonardo C. Rosa. A Fuzzy Logic Based Aproachto Machine-Tool Control Optimization. Páginas 524-539 del libro Fuzzy Control Systems. 1994.

[5] Steve G. Romanink and Lawrence O. Hill. LearningFuzzy Control Rules from Examples. Páginas 376-395del libro Fuzzy Control Systems. 1994.

[6] Ramiro Aduviri Velasco. Comparación de Controla-dores Convencionales y Controladores Difusos. Univer-sidad de San Andrés. La Paz Bolivia. Agosto 2003.

[7] George Bojadziev & Maria Bojadziev. Fuzzy Sets,Fuzzy Logic, Applications. Cápitulo 6 Fuzzy Sets. WorldScientific. 1995.

[8] George Bojadziev & Maria Bojadziev. Fuzzy Logic,Applications. Cápitulo 7 Fuzzy Relations. Fuzzy Sets.World Scientific. 1995.

Page 44: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

Oxímetro de Pulso Basado en una Palm Parte I: Fundamentos

XV 1 31 polibits 45

Oxímetro de Pulso Basado enuna Palm

Parte I: Fundamentos

L

Oxímetro de Pulso Basado enuna Palm

Parte I: FundamentosM. en C. Israel Rivera Zárate,M. en C. Juan Carlos Herrera Lozada,Profesores del CIDETEC-IPN.Victor Jalil Ochoa;Estudiante UPIICSA-IPN.

a importancia del estudio delas variables involucradascon la salud de la sangre de

algún paciente, tales como los nive-les de pH, Po2, Pco2, hematocrito,hemoglobina total, saturación de O2, etc., ha llevado a desarrollar instru-mentos para medir y analizar todosestos parámetros por diferentes mé-todos. Sin embargo, presentan el in-conveniente de ser por lo generalmétodos invasivos. En el desarrollode este trabajo se verá un método noinvasivo para la medición de la sa-turación de oxígeno en la sangre pormedio de la interpretación de la ab-sorción de luz de longitudes de ondaespecíficas, que dependerá de la pro-porción existente entre hemoglobi-na oxigenada (HbO2) y la hemoglo-bina desoxigenada (Hb).

TERMINOLOGÍA UTILIZADA EN

ESPECTROSCOPIA DE ABSORCIÓN

En la Tabla 1 se enumeran lostérminos y símbolos empleados conmayor frecuencia en espectroscopiade absorción. Recientemente se hahecho un esfuerzo considerable porla American Society for Testing Materialspara crear una nomenclatura uni-forme. Los términos y símbolos quese enumeran en las dos primeras

columnas de la Tabla 1, se basan enestas recomendaciones [1]. La terce-ra columna contiene otros símbolosque podrán encontrarse en la biblio-grafía más antigua.

TRANSMITANCIA

Al hacer pasar un haz de radia-ción luminosa a través de una capade solución con cierto grado de con-centración, y que contiene una espe-cie molecular que posee un coeficien-te de absorción ante tal longitud deonda radiante, se observa, que comoconsecuencia de las interaccionesentre los fotones y las partículas ab-sorbentes, la potencia del haz dismi-nuye de Po a P. La transmitancia T dela solución es la fracción de la radia-ción incidente transmitida por lasolución:

T = P/Po

Por lo general, la transmitanciase expresa como porcentaje.

ABSORBANCIA

La absorbancia de una soluciónestá definida por la ecuación:

A = -log10 T= log Po/P

Obsérvese que, a diferencia de latransmitancia, la absorbancia deuna solución aumenta a medida queaumenta la atenuación del haz.

ABSORTIVIDAD Y ABSORTIVIDAD

MOLAR

Como se verá a continuación, laabsorbancia es directamente pro-porcional a la trayectoria de la ra-diación a través de la solución y a laconcentración de la especie molecu-lar que produce la absorción. Es de-cir:

A= abc

donde a es una constante de pro-porcionalidad llamada absortivi-

Término y símbolo Definición. Otros nombres y símbolos

Potencia radiante, P, Po Energía de la radiación en ergs incide en el detector, por cm2 de superficie y por segundo.

Intensidad de la radiación, I, Io.

Absorción, A log Po/P Densidad óptica, D; extinción, E

Transmitancia, T Po/P Transmisión, T

Trayectoria b de la radiación, en cm.

- l, d

Absortividad, a A/(bc) Coeficiente de extinción, k

Absortividad molar, e A/(bc) Coeficiente de extinción molar

Tabla 1. Símbolos y terminos más importantes utilizados en las medidas de absorcion.

id12255843 pdfMachine by Broadgun Software - a great PDF writer! - a great PDF creator! - http://www.pdfmachine.com http://www.broadgun.com

Page 45: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

Oxímetro de Pulso Basado en una Palm Parte I: Fundamentos

46 polibits 2005

dad. Resulta evidente que la magni-tud de a depende de las unidadesutilizadas para b y c. Cuando seexpresa la concentración en molespor litro y la trayectoria a través dela celda en centímetros, la absortivi-dad se denomina absortividad molar yse representa con el símbolo e . Enconsecuencia cuando b se expresa encentímetros y c en moles por litro:

A = e bc

LEY DE BEER-LAMBERT

Esta ley indica que para una cier-ta concentración de absorbente, laintensidad de la luz transmitida, quepreviamente se ha logrado que seaparalela plana y que entre al medioabsorbente, formando ángulos rec-tos con el plano, disminuye logarit-micamente a medida que la longituddel trayecto aumenta en forma arit-mética.[1]

La relación entre la intensidad yla concentración de la especie absor-bente tiene mucho más interés, porlo que Beer determinó que, al au-mentar la concentración del absor-bente, se produce el mismo efectoque un aumento proporcional en lalongitud del trayecto de absorciónde la radiación. De esta forma, laconstante de proporcionalidad k dela ecuación es a su vez, proporcionala la concentración de soluto absor-bente, esto es:

k = aC

Sí la longitud de trayecto de lamuestra se expresa en centímetros yla concentración en gramos de ab-sorbente por litro de solución, laconstante a, llamada absorbancia rela-tiva especifica o coeficiente de absor-ción, tiene por unidades litro g-1 cm-

1 .

Con frecuencia se desea especifi-car C en términos de concentracio-nes molares, manteniendo b en uni-

dades de centímetros, Entonces laecuación se escribe como:

bCPP

0log

donde , en unidades de:

L mol-1 cm-1,

se llama coeficiente molar o coefi-ciente molar de absorción. Una grá-fica de la absorbancia en función dela concentración es una línea rectaque pasa por el origen, tal como semuestra en la Figura1.

Las escalas de lectura y de medi-ción de los espectofotómetros suelenestar calibradas para leer absorban-cia y transmitancia. La sensibilidadde un espectómetro depende de lamagnitud de la absorbancia especí-fica y de la absorbancia mínima quepuede medirse con el grado de certi-dumbre requerido.

PRINCIPIOS DE LA OXIMETRÍA

Oximetría es un término generalrelativo o aplicable a las diferentestecnologías capaces de medir la sa-turación de la hemoglobina (Hb) porel oxígeno. De manera general, lastécnicas oximétricas se pueden divi-dir en: 1) Espectrofotometría para elanálisis de la Hb in vitro; 2) Oximetría

de pulso (SpO2) para medición noinvasiva de la saturación de la Hb y3) Oximetría fibróptica para medi-ción invasiva de la saturación de laoxihemoglobina in vivo.[2]

Todas estas técnicas de oxime-tría se basan en principios espectro-fotométricos que miden las porcio-nes de luz transmitida y/o absorbi-da por parte de la Hb. Para los finesde este trabajo, nos ocuparemos dela oximetría de pulso que se puedeconceptuar como una técnica demonitoreo no invasivo que determi-na de manera continua y relativa-mente confiable la saturación arte-rial de oxígeno (SaO2), en el momentopreciso en que está sucediendo.

La oximetría básicamente es lainterpretación de la coloración san-guínea que depende de la SaO2. Elcambio de color de la sangre al satu-rarse de oxígeno, se debe a las pro-piedades ópticas de la molécula deHb (específicamente de la porciónheme). A medida que la sangre sedesoxigena se vuelve menos permea-ble a la luz roja, el tejido pierde en-tonces su apariencia rosada, toman-do un tinte azulado; de manera quevisto de una manera simplista, eloxímetro sólo tiene que medir lo rojode la sangre arterial e interpretarloen términos de saturación, pudien-do entonces establecer que el oxíme-tro de pulso mide la absorción de luz

T = 10 -abC

Pendiente = ab

A = abC

Concentración Concentración2 4 6 8 10108642

2

0

1

0

20

40

60

80

100

Figura 1. Representación de la Ley de Beer

Page 46: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

Oxímetro de Pulso Basado en una Palm Parte I: Fundamentos

XV 1 31 polibits 47

concentraciones relativas de HbO2 yHb y sus coeficientes de absorción alas dos longitudes de onda medidas,entonces la intensidad de la luz sereducirá logarítmicamente con lalongitud de la trayectoria conformelo establece la ley de Beer � Lambert.Ver Figura 3.

A la longitud de onda 1

lCCin

rrooII )(11

1110

A la longitud de onda 2lCC

inrrooII )(

222210

Donde:

C0 es la concentración de oxihemo-blogina (HbO2).

Cr es la concentración de la hemoglo-bina reducida (HbO).

aon es el coeficiente de absorción deHbO2 a la longitud de onda ln

arn es el coeficiente de absorción deHb a la longitud de onda ln

De acuerdo con la ley de Beer-Lambert :

)/(log

)/(log

2210

1110

in

in

IIIIR

Se puede observar que:

)()(

SaO

011022

12

0

02

rr

rr

r

RR

CCC

de longitudes de onda específicasque dependerá de la proporción exis-tente entre Hb oxigenada y Hb des-oxigenada.

Resulta fundamental recordarque, de manera general, existen nor-malmente dos tipos de Hb en la san-gre, las llamadas hemoglobinas fun-cionales (la oxihemoglobina o Hbligada al oxígeno, y la hemoglobinareducida (HbR), que si bien se en-cuentra desoxigenada, tiene la capa-cidad de unirse al oxígeno transfor-mándose en oxihemoglobina); lashemoglobinas denominadas disfun-cionales, las cuales presentan otrotipo de comportamiento no fisioló-gico cuando interactúan con el oxí-geno (carboxihemoglobina, metahe-moglobina y sulfahemoglobina). Esimportante considerar este últimoseñalamiento, dado que bajo condi-ciones normales las hemoglobinasdenominadas funcionales son lasmás abundantes en la sangre, por loque teóricamente se acepta para fi-nes de oximetría de pulso que la san-gre se compone solamente por dosabsorbedores de luz, la oxihemoglo-bina (HbO2) y la HbR.

Partiendo deeste fundamentoexclusivamenteteórico, es que enla oximetría depulso, se utilizaluz con sólo dosdiferentes longi-tudes de onda.[3]

Las característi-cas del espectro de absor-ción de la luz de la HbO2 yde la HbR, presentan dife-rencias que son máximasen la región roja e infrarro-ja del espectro como semuestra en la Figura 2.

Así, a una longitud deonda de 660 nm, la luz rojavisible se absorbe más porla HbR que por la HbO2, y

a una longitud de onda de 940 nm, laluz infrarroja se absorbe más por laHbO2 que por la HbR. Estas dos lucesde diferente longitud de onda (roja einfrarroja) se hacen pasar a travésdel árbol arterial y los porcentajesde HbO2 y HbR se determinan por lamedición de la proporción de luzroja e infrarroja transmitida hastael foto-detector. Existe oxigeno den-tro la sangre que circula por las ve-nas y arterias de todo sistema circu-latorio.

Este oxígeno es llevado en la san-gre en dos estados separados. Nor-malmente, el 98% del oxígeno, estacombinado con hemoglobina (Hb)en las células rojas de la sangre. Elrestante 2% esta físicamente disuel-to en el plasma. La cantidad de satu-ración de oxígeno (Saturación, S) ad-herida a la hemoglobina en la sangrearterial esta definida como el por-centaje de concentración de oxihe-moglobina (HbO2) en la concentra-ción total de Hemoglobina.

Si se asume que la transmisión dela luz a través de la sangre arterial esinfluenciada exclusivamente por las

Figura 3. Parametrización del modelo.

l

arteria

Iin I

Hb

HbO2

Punto Isobástico

Longitud de Onda660 800 940

Rojo Infrarrojo

Figura 2. Radiación luminosa de dos longitudesde onda diferentes en tejidos vascularizados.

Page 47: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

Oxímetro de Pulso Basado en una Palm Parte I: Fundamentos

48 polibits 2005

Lo anterior permite proponer unsistema de procesamiento que per-mita calcular la SaO2 con base en laecuación anterior; sistema que seráexpuesto en detalle en los artículossiguientes.

BIBLIOGRAFIA

[1] J. F. Kelleher, Pulse oximetry,J. Clin. Monit., vol. 5, pp. 37�62,1989.

[2] J. W. Severinghaus and J. F.Kelleher, Recent develop-ments in pulse oximetry, Anes-thesiology, vol. 76, pp. 1018�1038, 1992.

[3] J. T. B. Moyle, Pulse Oximetry,1st ed. London, U.K.: BMJ,1994.

Page 48: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

XV 1 31 polibits 49

Una Técnica para la Localización de Ojos Humanos en una Imagen Bidimensional

Una Técnica para la Localizaciónde Ojos Humanos en una Imagen

Bidimensional

Una Técnica para la Localizaciónde Ojos Humanos en una Imagen

BidimensionalLuna Esteban Bruce Leroy,Mendoza Campa Juan Manuel,Parra Bautista Roberto,ESIME Culhuacan - IPNM. en C. Aguilar Jáuregui María ElenaProfesora del CIC-IPN

l presente trabajo propone una técnica para lalocalización de ojos de personas en una imagenbidimensional. Los vectores característicos del

ojo humano se obtuvieron a partir de una base de datosde imágenes de 300 X 300 píxeles.

El sistema fue desarrollado bajo una plataforma C++e implementado en una PC con un procesador PentiumIV a 2.40 GHz.

INTRODUCCIÓN

Dentro del campo de la visión artificial, la deteccióny el rastreo de ojos juegan un papel muy importante yaque con estas funciones se puede identificar a una perso-na y/o interpretar su estado emocional. Por lo tanto, escrucial un sistema de detección y/o rastreo de ojos efi-ciente para poder tener una mejor interacción humano� computadora.

A pesar de muchos esfuerzos todavía no existenmétodos robustos y 100% precisos para detectar y ras-trear ojos humanos.

El desarrollo actual se puede dividir en dos catego-rías: los que se basan sobre imágenes en línea y los defuera de línea.

Este trabajo se enfoca en la segunda categoría, ya quefue necesario considerar la complejidad de los algorit-mos y los tiempos de procesamiento.

Aún cuando existe una gran variedad de tipos de ojoshumanos en cuanto a rasgos se refiere, es posible obtenersus características propias o descriptores, los cualespermiten afirmar que en verdad se trata de un ojo y node algún objeto parecido en cuanto a forma.

EXTRACCIÓN DE CARACTERÍSTICAS

La forma de los ojos brinda características muyimportantes para su reconocimiento. Debido a que estasformas son muy variadas, en la metodología propuestala segmentación se realizó de forma manual, como semuestra en la figura1.

Los formatos de imágenes que se evaluaron fueron:bmp (Bitmap), jpeg (Joint Photographic Expert Group) ygif (Graphics Interchange Format) debido a que son losmás usados en computación. Bmp consiste en un forma-to sin pérdida de información; por otra parte, jpeg es unformato de compresión de imagen que no produce pér-dida de color aunque la compresión elimina datos, mien-tras que gif es un formato con un alto grado de compre-sión y mayor pérdida de color[2].

Para lograr mejores resultados en cuanto al funcio-namiento del sistema se utilizó el formato bmp para laextracción de características.

Aunque el sistema visualiza las imágenes en colorverdadero, el traba-jo del sistema se basaúnicamente en el ca-nal verde que es elque presenta infor-mación con menosruido.

Para la selecciónde la información Figura 1. Selección de rasgos

E

id12481390 pdfMachine by Broadgun Software - a great PDF writer! - a great PDF creator! - http://www.pdfmachine.com http://www.broadgun.com

Page 49: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

50 polibits 2005

Una Técnica para la Localización de Ojos Humanos en una Imagen Bidimensional

cuantitativa de nuestro interés se deben obtener losvalores de brillo de cada pixel en sus coordenadas (x, y);la manera de realizar esto es mediante el uso de unamatriz bidimensional (x, y). Considerando que la formadel ojo es casi elíptica, es difícil representar la intensidadde brillo de los píxeles en forma matricial.

La figura 2 representa la forma (aproximada) de unojo en una imagen digital, en la que se muestran lascoordenadas (x, y) de la misma. Los píxeles en color grisrepresentan ruido o información inútil para describirun ojo, por consiguiente se consideran como un valor X(sin importancia) en la matriz. Dado esto, fue necesariotransformar la matriz resultante en un vector siguiendolos criterios siguientes:

1. Se consideran los pixeles pertenecientes o internos alborde.

2. Se descartan los pixeles externos al borde.3. Los primeros valores del vector corresponden a los

pixeles que radican en la primera fila y que obedecenal criterio número 1.

4. Los valores posteriores del vector corresponden a losvalores obtenidos a partir de la n fila y así sucesiva-mente hasta la última fila que obedezca al criterio 1.

OJO = [a11,�, a1m, a21,�, a2m,�.........an1, anm,]

Donde:

a cualquier valor de intensidad de brillo.n las filas pertenecientes o internas al borde.m son las columnas pertenecientes o internas al

borde.

Una vez obtenido el vector se obtiene el histogramao función de densidad que corresponde a una funcióndiscreta p(r

k) = n

k/n, donde r

k, es el k-ésimo nivel de gris,

nk es el número de píxeles de la imagen con ese nivel de

gris, n es el número total de píxeles de la imagen y k es elrango de niveles de gris [0,255] [1]. Como se mencionó

anteriormente, para este trabajo se utiliza el canal verdede las imágenes RGB en lugar de los niveles de gris, peroel rango sigue siendo el mismo.

La figura 3 muestra el histograma del área del ojoseleccionado.

MOMENTOS INVARIANTES

Estos momentos codifican la superficie del objeto yson invariantes a traslación, rotación y escala. Estosmomentos de orden p+q de una imagen I(x, y) se definencomo:

N

x

M

y

qpqp yxIyxM

1 1, ),(

Para realizar una descripción del objeto indepen-dientemente de su posición se utilizan los momentoscentrales que se obtienen a partir de la fórmula siguiente:

N

x

M

y

qpqp yxIyyxx

1 1, ),()()(

Los momentos centrales normalizados se utilizanpara describir al objeto, independientemente del tama-ño que tengan, y están definidos por la fórmula:

0,0

,,

qpqp 1

2

qp

Figura 2. Representación de un ojo en unaimagen digital

Figura 3. Histograma.

Page 50: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

XV 1 31 polibits 51

Una Técnica para la Localización de Ojos Humanos en una Imagen Bidimensional

Posteriormente se extraen los momentos invarian-tes de Hu por medio de las fórmulas siguientes:

1 =

20 +

02

2 = (

20 +

02 )2 + 4

12

1

3 = (

30 + 3

12 )2 + ( 3

21 +

03 )2

4 = (

30 +

12 )2 + (

21 +

03 )2

5 = (

30 - 3

12) (

30 +

12 ) [ (

30 +

12 )2 -

3( 21

+ 03

)2] + ( 321

- 03

) ( 21

+ 03

)[ 3(

30 +

12 )2 - (

21 +

03 )2 ]

6 = (

20 -

02 ) [(

30 +

12 )2 - (

21 +

03 )2] +

411

( 30

+ 12

) ( 21

+ 03

)

7 = ( 3

21 -

30 ) (

30 +

12 ) [ (

30 +

12 )2 -

3( 21

+ 03

)2] + (312

- 30

) ( 21

+ 03

)[ 3(

30 +

12 )2 - (

21 +

03 )2 ]

Wu Yan[3] propone añadir información del borde ydel histograma del objeto para obtener característicasque son invariantes a cambios en el nivel de gris de laimagen[4]. Estos momentos se obtienen a partir de losmomentos unidimensionales de la imagen y se definencomo:

1 =

4 /

22

2 =

5 /

2

3

3 =

6 /

2

4

De esta forma, el vector característico que va a repre-sentar un ojo esta formado por 4 momentos de Hu y los3 momentos de Yan.

En cada uno de los vectores característicos no seconsideraron los tres últimos momentos de Hu debidoa que tienen valores muy pequeños en comparación conlos restantes, por tal motivo se optó por descartarlos.

Vector característico =[ö1, ö2, ö3, ö4, 1, 2, 3]

RED NEURONAL DE RETROPROPAGACIÓN

Una de las aplicaciones más extendidas de la redneuronal de retropropagación (BPN, Back PropagationNetwork) es el reconocimiento o clasificación de patro-nes[5].

Para éste trabajo la red diseñada se compone de sieteneuronas de entrada debido a que el vector caracterís-tico tiene siete momentos y una neurona de salida convalor igual a 1 (describe a un ojo).

Para el entrenamiento de la red neuronal se varía elnúmero de capas ocultas y el número de neuronas porcapa con el propósito de verificar que arquitectura esmás eficiente para disminuir el error de aprendizaje(figura 4).

En lo que respecta a la fase de prueba de la BPN, seutilizarán imágenes de igual tamaño que las imágenesque sirvieron como muestra para la extracción de carac-terísticas; para ello será necesario realizar un barridosobre la magen pixel por pixel hasta que la red encuentrelas coordenadas (x, y) de la imagen que describan a unojo.

Las imágenes a utilizar para la prueba del sistemaserán en formato bmp para la evaluación de la eficienciadel mismo; posteriormente se emplearan los formatosde compresión para comparar los resultados obtenidostomando en cuenta diferentes tamaños de imagen.

CONCLUSIONES

Para el funcionamiento óptimo del sistema se evalúael número de capas ocultas necesarias que se emplean enla red neuronal, con esto se esperan resultados satisfac-torios y una reducción de costos en cuanto a tiempo deprocesamiento y complejidad de programación.

El uso de este sistema puede servir como una basepara el desarrollo de diversos sistemas que se basen en

Figura 4. Red Neuronal de Retropropagación.

Page 51: Polibits vol. 31, 2005 - POLIBITS journal · Tecnologías xDSL Ing. Patricia Pérez Romero (CIDETEC-IPN). Diseño de un Termómetro Digital para Análisis Clínico en Animales

52 polibits 2005

Una Técnica para la Localización de Ojos Humanos en una Imagen Bidimensional

la extracción de características de rostros humanos y elreconocimiento de los patrones resultantes en imágenesdigitales. Las aplicaciones posibles de este sistema pue-den ser el reconocimiento de personas y en un futuro laautenticación de las mismas, esto a partir de sus ojos.

REFERENCIAS

[1] González, R. C., Woods, R. E.; "Tratamiento Digital deImágenes", Addison Wesley, 1996.

[2] Margulis, Dan; "Professional Photoshop, Color Correc-tion, Retouching and Image manipulation with AdobePhotoshop", Wiley, 1995.

[3] Wu Yan, Ding Mingyue, Ann Peng Jiaxiong; "Re-search on using moment invariants in scene matching",Institute of Image Recognition and Artificial Inte-lligence, HuaZhong. University of Science andTechnology, WuHan, Hubei, China, 430074).

[4] Ming-Kuei Hu; "Visual pattern recognition by momentinvariants", Information Theory, IEEE Transactio-ns on, Volume: 8, Issue: 2, Feb 1962, Pages:179 �187.

[5] José R. Hilera, Víctor J. Martínez; "Redes NeuronalesArtificiales, fundamentos, modelos y aplicaciones", Al-faomega Ra-ma, 2000.

[6] Kennet R. Castleman; "Digital Image Processing",Prentice Hall, 1996.

[7] Maria Petrou, Panagiota Bosdogianni; "Image Pro-cessing, The fundamentals", Wiley, 1999.

[8] A. Pérez, M. L. Córdoba, A. García, R. Méndez, M.L. Muñoz, J. L. Pedraza, Sánchez; "A Precise Eye-Gaze Detection and Tracking System", Departamentode Arquitectura y Tecnología de Sistemas Infor-máticos (DATSI), Universidad Politécnica deMadrid.

[9] D. Davies, P. Palmer, & M. Mirmehdi; "Detection andTracking of Very Small Low Contrast Objects", Schoolof Electrical Engineering, Information Theory &Mathematics, University Surrey, England.

[10] T. D�Orazio, M. Leo, A. Distante; "Eye detection in faceimages for a driver vigilance system", CNR-ISSIA ,Italia.

[11] R. Thilak kumar, S. Kumar Raja and A. G. Ra-makrishnan; "Eye Detection using color cues and pro-jection functions", Departament of Electrical Engi-neering, Indian Institute of Science.

[12] Aguilar Ma. Elena, Sossa Humberto, "Detección yLocalización de Rostros Humanos en Imágenes Usandodescriptores invariantes y Redes Neuronales", InformeTécnico, serie Azul, CIC-IPN,2000.

[13] Christian Bird and Bhaskar Shrestha; "Trackingthe Human Eye", University of Vermont.