Anda di halaman 1dari 125

UNIVERSIDAD AUTNOMA DEL ESTADO DE HIDALGO INSTITUTO DE CIENCIAS BSICAS E INGENIERA

CENTRO DE INVESTIGACIN EN TECNOLOGAS DE INFORMACIN Y SISTEMAS

CONTROL SUPERVISORIO VIRTUAL Y ADQUISICIN DE DATOS DE UN INVERNADERO AUTOMATIZADO

T QUE PARA

I EL

S TTULO DE

OBTENER

MAESTRO EN CIENCIAS COMPUTACIONALES P R JORGE ASESOR: E S E N T A

HERNNDEZ

CAMACHO

DR. VIRGILIO LPEZ MORALES1

CO-ASESOR: DR. RAMN SOTO DE LA CRUZ2

PACHUCA DE SOTO, HIDALGO. DICIEMBRE DE 2007


1 2

Investigador de la UAEH-ICBI-CITIS Investigador de la Universidad Autonma del Estado de Sonora

i A G R A D E C I M I E N T O S

A la Universidad Autnoma del Estado de Hidalgo por haberme dado la oportunidad de estudiar la Maestra en Ciencias Computacionales en el Centro de Investigacin de Tecnologas e Informacin y Sistemas. A los directores del CITIS, Coordinadores, y al Director de Postgrado. A mis asesores de tesis, Dr. Virgilio Lpez Morales, y al Dr. Ramn Soto de la Cruz por haberme dirigido y orientado en todo el trascurso de este trabajo. A los Sinodales de Tesis, que me apoyaron en la revisin y poder contar con sus puntos de vista y as ampliar ms la visin y alcance de este trabajo. A mis queridos padres: por el apoyo que me han dado en el transcurso de la vida. Les agradezco todo el esfuerzo que hicieron por darme lo ms preciado en toda mi vida, el amor incondicional y la educacin, familiar. Gracias por apoyarme, los quiero mucho. A mi hermana: por existir y as tambin aprender de ella, que la perseverancia es lo mejor de una buena disciplina para poder llegar a nuestras metas propuestas. Tambin por el cario que siempre me ha otorgado, y por ser tambin una buena amiga y consejera. A mis amigos los cuales solo Dios sabe, por apoyarme incondicionalmente, como tambin por compartir hermosos momentos con ellos de su vida. A mis compaeros los cuales me estuvieron acompaando en el transcurso de toda mi estancia en el CITIS. Al Dr. Julio Waissman que no le gusta que le digan Doc., a Don Hector y Doa Crystina mis caseros, a M.C. Anita y su familia. A mis amigos del CITIS, del CIMA, CEVIDE, ICBI, Biolgicas, Qumica. A todos las personas que me dieron la oportunidad de convivir y compartir un tiempo en sus vidas. Gracias. A los trabajadores de la Universidad, a todo el personal de la UAEH (Universidad Autnoma del Estado de Hidalgo), CEUNI y ABASOLO.

ndice general
Resumen de la Tesis Contexto de la Tesis Objetivo de la Tesis Justicacin de la Tesis 1. Control Supervisorio de un Invernadero Automatizado. 1.1. Concepto de Control Supervisorio. . . . . . . . . . . . . . . 1.1.1. Sistemas distribuidos. . . . . . . . . . . . . . . . . . 1.1.2. Capacidad de visualizar en Web. . . . . . . . . . . 1.1.3. Manejo del Mouse. . . . . . . . . . . . . . . . . . . 1.2. Funcionalidades y Alcances. . . . . . . . . . . . . . . . . . 1.3. Invernaderos Hidropnicos Automatizados. . . . . . . . . . 1.3.1. Requerimientos Edafoclimticos . . . . . . . . . . . 1.3.2. Diseo de Invernaderos. . . . . . . . . . . . . . . . 1.3.3. Construccin del Invernadero. . . . . . . . . . . . . 1.3.4. Manejo de la plantacin. . . . . . . . . . . . . . . . 1.4. Control Supervisorio de un Invernadero Automatizado. . . 1.5. Organizacin de la tesis. . . . . . . . . . . . . . . . . . . . xii xiii xiv xv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 2 3 3 4 4 5 7 8 9 10 10 13 15 16 16 18 20 21 21 22 23 23

2. Estado del Arte y Herramientas. 2.1. Estado del arte. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2. Presentar los trminos y conceptos bsicos. . . . . . . . . . . . . 2.2.1. LabVIEW. . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.2. Lenguaje de Programacin JAVA . . . . . . . . . . . . . 2.2.3. VRML. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.4. HTML. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.5. Diseo de objetos 3D en 3dStudio Max. . . . . . . . . . 2.2.6. Realidad Virtual. . . . . . . . . . . . . . . . . . . . . . . 2.2.7. Optimizacin de Cdigo e insercin de enlaces en VRML. 2.2.8. Navegadores 3D. . . . . . . . . . . . . . . . . . . . . . . iii

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

iv

NDICE GENERAL

2.2.9. Programacin de efectos . . . . . . . . . . . . . . . . . . . . . . 2.2.10. Adquisicin de Datos utilizando LabVIEW. . . . . . . . . . . . 3. Arquitectura general del sistema. 3.1. Funcionalidades. . . . . . . . . . . . . . . . . . . 3.2. Modelo Funcional. . . . . . . . . . . . . . . . . . 3.2.1. Metodologa de Desarrollo de la Solucin: . 3.3. Adquisicin de Datos en LabVIEW. . . . . . . . . 3.4. Obtencin de Datos. . . . . . . . . . . . . . . . . 3.5. Desarrollo del Mundo Virtual . . . . . . . . . . . 3.6. Asignacin de Comportamiento Complejo. . . . . 3.7. Interfaz Grca. . . . . . . . . . . . . . . . . . . .

23 23 25 26 26 26 26 27 30 31 33

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

4. Integracin de comunicacin: Sistema Mnimo, LabVIEW, Virtual y Java. 4.1. Comunicacin via EAI entre VRML y Java . . . . . . . . . . . . 4.1.1. Comunicacin de datos LabVIEW y Java. . . . . . . . . 4.1.2. Sistema Mnimo. . . . . . . . . . . . . . . . . . . . . . . 4.1.3. Publicacin Web del invernadero virtualizado. . . . . . . 5. Flujo de Datos. 5.1. Flujo de Datos en General . . . . . 5.2. Comunicacin . . . . . . . . . . . . 5.3. Flujo de datos en LabVIEW . . . . 5.4. Flujo datos con Java . . . . . . . . 5.5. Almacenamiento de Datos a Mysql 5.6. Estructura de la Base de Datos . . 5.7. Pruebas Realizas . . . . . . . . . . Conclusiones y perspectivas Bibliografa A. Presentaciones. A.1. Poster . . . A.2. Trptico 1 . A.3. Trptico 2 . A.4. Artculo . . A.5. Poster 2 . .

Mundo . . . . . . . . . . . . . . . . 41 41 44 50 52 55 55 58 59 62 63 67 70 71 73 77 78 79 80 81 85 87 87 89

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

B. Cdigo Fuente. B.1. VRML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B.2. Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

NDICE GENERAL

v . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 89 90 90 90 90 90 91 91 97 97 103 104 105 106 106 113 114 116 118 120 123 125 126 126 128

B.3. B.4. B.5. B.6. B.7.

Querys SQL . . . . . . . . . LabVIEW . . . . . . . . . . HTML . . . . . . . . . . . . Flash . . . . . . . . . . . . . Otros Cdigos . . . . . . . . B.7.1. Lego de Mindstorms B.7.2. Java . . . . . . . . .

A. Presentaciones. A.0.3. Programacin de efectos y automatizacin del invernadero . . . A. Presentaciones. A.0.4. Adquisicin de Datos utilizando LabVIEW. . . . . . . . . . . . B. Sistemas Mnimos. B.1. Sistemas Mnimos. . . . . . . . . . . . . . . . . . . . . . . . . . . . B.2. Componentes del Sistema Mnimo. . . . . . . . . . . . . . . . . . . B.2.1. Diferencia entre un microprocesador y un microcontrolador. B.2.2. Microcontrolador PIC16F877. . . . . . . . . . . . . . . . . . B.2.3. Registros generales del Microcontrolador PIC16F877. . . . . B.2.4. Registros para control de interrupciones. . . . . . . . . . . . B.2.5. Puertos de entrada y salida. . . . . . . . . . . . . . . . . . . B.2.6. Registros de los temporizadores. . . . . . . . . . . . . . . . . B.2.7. Registros de comunicacin serial. . . . . . . . . . . . . . . . B.2.8. Registros del mdulo de conversin A/D. . . . . . . . . . . . B.3. Pantalla de LCD para visualizacin. . . . . . . . . . . . . . . . . . . B.4. Puerto de comunicacin serial RS-232. . . . . . . . . . . . . . . . . B.4.1. Convertidor de interfaz RS-232 a RS-485. . . . . . . . . . . . Siglario

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

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

ndice de guras
1.1. 1.2. 1.3. 1.4. 1.5. Estructura General. . . . . . . . . . . . . . . . . . . . . . Crecimiento en medio estable, climtico y nutricional. . . Interior del invernadero que se utiliz en este proyecto de Exterior del invernadero bajo estudio. . . . . . . . . . . . Esquema de ujo de datos. . . . . . . . . . . . . . . . . . . . . . . . tesis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 5 8 9 10 18 22 25 27 28 28 29 30 31 32 33 34 35 35 36 36 37 37 38 39 42 44 45 48 49

2.1. Diagrama de bloques de un programa. . . . . . . . . . . . . . . . . . . 2.2. Diseo del invernadero en 3DS Max. . . . . . . . . . . . . . . . . . . . 3.1. Diagrama general del funcionamiento del invernadero virtual. 3.2. Diagrama de bloques. . . . . . . . . . . . . . . . . . . . . . . 3.3. Estructura de datos de los sensores en el archivo. . . . . . . 3.4. Diagrama por bloques. Seccin de Archivos. . . . . . . . . . 3.5. Diagrama de bloques de simulacin de adquisicin de datos. 3.6. Diseo de objetos 3D del invernadero. . . . . . . . . . . . . . 3.7. Diseo del invernadero desde cdigo VRML. . . . . . . . . . 3.8. Diseo del invernadero ISA Parallel Graphics. . . . . . . . . 3.9. Asignacin de Comportamientos en VRML. . . . . . . . . . 3.10. Asignacin de Comportamientos en Java usando EAI. . . . . 3.11. Estructura General de Sensores, Actuadores y Mdulos. . . . 3.12. Adquisicin y puente del mundo virtual. . . . . . . . . . . . 3.13. Instrumentos Virtuales en LabVIEW . . . . . . . . . . . . . 3.14. Instrumentos Virtuales en VRML. . . . . . . . . . . . . . . . 3.15. Instrumentacin Virtual en Flash . . . . . . . . . . . . . . . 3.16. Alarmas en Flash . . . . . . . . . . . . . . . . . . . . . . . . 3.17. Applet publicado manejador del comportamiento. . . . . . . 3.18. Invernadero virtual publicado en internet. . . . . . . . . . . 4.1. 4.2. 4.3. 4.4. 4.5. Mtodos de comunicacin en VRML via EAI. . . . . . Pgina HTML con VRML y un Applet utilizando EAI. Bloque de abrir o crear archivo. . . . . . . . . . . . . . Bloque de escribir en el archivo. . . . . . . . . . . . . . Bloque de Cerrar archivo. . . . . . . . . . . . . . . . . vii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

viii 4.6. Diagrama por bloques. Seccin de Archivos. 4.7. Diagrama de pines del PIC16F877 . . . . . . 4.8. Estacin meteorolgica . . . . . . . . . . . . 4.9. Arquitectura Serial Distribuida . . . . . . . 4.10. Conguracin Web . . . . . . . . . . . . . . 4.11. Invernadero publicado en la web. . . . . . . 5.1. 5.2. 5.3. 5.4. 5.5. 5.6. 5.7. 5.8. 5.9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

NDICE DE FIGURAS

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

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

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

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

49 50 51 52 53 54 56 57 58 60 61 61 62 63 70 78 79 79 80 80 81 82 83 84 85 88 97 98 99 99 100 101 102

Diagrama general del ujo de datos. . . . . . . . . . . . . . . . . . Diagrama general del ujo. . . . . . . . . . . . . . . . . . . . . . . Flujo de los datos desde los mdulos esclavos al modulo maestro. Adquisicin de datos utilizando LabVIEW y bloques VISA. . . . . Instrumentacin Virtual en LabVIEW. . . . . . . . . . . . . . . . Invernadero e Instrumentacin Virtual en Internet. . . . . . . . . Applet publicado manejador del comportamiento. . . . . . . . . . Diagrama de Adquisicin de datos en Java. . . . . . . . . . . . . . Prueba de conexin en cross over. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

A.1. Poster. . . . . . . . . . A.2. Trptico 1 lado 1. . . . A.3. Trptico 1 lado 2. . . . A.4. Trptico 2 lado 1. . . . A.5. Trptico 2 lado 2. . . . A.6. Pagina 1 del Artculo. A.7. Pagina 2 del Artculo. A.8. Pagina 3 del Artculo. A.9. Pagina 4 del Artculo. A.10.Poster 2. . . . . . . . .

B.1. Mapa de rutas del mundo virtual del invernadero. . . . . . . . . . . . . A.1. A.2. A.3. A.4. A.5. A.6. A.7. B.1. B.2. B.3. B.4. B.5. B.6. Panel frontal de escritura y lectura por los puertos Escritura y lectura de datos por medio del VISA. Entradas y salidas de una bloque de funcin. . . . bloque VISA conguracin de puerto serial. . . . bloque VISA read. . . . . . . . . . . . . . . . . . bloque VISA write. . . . . . . . . . . . . . . . . . bloque VISA close. . . . . . . . . . . . . . . . . . seriales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Diagrama del sistema mnimo orientado al PIC16F877. . . . . . . . . . 104 Sistema Mnimo propuesto. . . . . . . . . . . . . . . . . . . . . . . . . 105 Estructura de un sistema abierto basado en un microprocesador ([Angulo, 1999]).106 Diagrama del microcontrolador PIC16F877 ([Microchip, 2001]). . . . . 108 Arquitectura abierta de los microcontroladores PIC16F877 ([Microchip, 2001]).109 Organizacin de la memoria FLASH de los PIC16F877 ([Microchip, 2001]).110

NDICE DE FIGURAS

ix

B.7. Distribucin de la memoria RAM en los cuatro bancos ([Microchip, 2001]).111 B.8. Esquema interno de los principales bloques del timer 1 ([Microchip, 2001]).119 B.9. Conguracin del MAXIM 485. . . . . . . . . . . . . . . . . . . . . . . 127

ndice de Tablas
2.1. Applet y su publicacin en la web . . . . . . . . . . . . . . . . . . . . . 2.2. Plugins Visualizadores 3D . . . . . . . . . . . . . . . . . . . . . . . . . 3.1. Estado del applet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1. Function Open . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2. Pos mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1. 5.2. 5.3. 5.4. 5.5. A.1. A.2. A.3. A.4. A.5. Base . . . . . . . Tablas . . . . . . Tabla actuadores Tabla alarmas . . Tabla sensores . . Sintaxis Sintaxis Sintaxis Sintaxis Sintaxis de DEF de DEF de DEF de USE del Nodo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 24 38 46 47 67 68 68 69 69 92 92 92 93 94 112 114 114 115 116 116 119 120 121 122 124 124 125 125

. . . . . . . . . . . . . . . . . . . . colisin

B.1. Bits de seleccin de banco en el registro de estado. . . . . . . . . . B.2. Estructura interna del registro de estado. . . . . . . . . . . . . . . B.3. Estructura interna del registro de opciones. . . . . . . . . . . . . . B.4. Estructura interna del registro de interrupciones. . . . . . . . . . B.5. Estructura interna del registro PIE1. . . . . . . . . . . . . . . . . B.6. Estructura interna del registro PIR1. . . . . . . . . . . . . . . . . B.7. Estructura interna del registro T1CON. . . . . . . . . . . . . . . . B.8. Bits para seleccin del rango del predivisor. . . . . . . . . . . . . B.9. Estructura interna del registro TXSTA. . . . . . . . . . . . . . . . B.10.Estructura interna del registro RCSTA. . . . . . . . . . . . . . . . B.11.Tabla de seleccin de bits para elegir reloj de conversin. . . . . . B.12.Tabla de seleccin de canal analgico en el proceso de conversin. B.13.Estructura interna del registro ADCON0. . . . . . . . . . . . . . . B.14.Estructura interna del registro ADCON1. . . . . . . . . . . . . . . xi

xii Resumen En este trabajo se presenta un prototipo de un invernadero automatizado virtual para internet, utilizando Realidad Virtual para ofrecer un control supervisorio del invernadero automatizado fsico, con una apropiado monitoreo, que considera los instrumentos virtuales para la supervision de las variables edafoclimticas como tambin del sistema automatizado del invernadero, implementadas a travs de la adquisicin de datos del invernadero fsico. A manera de ejemplo, se desarrolla un sistema para un invernadero automatizado virtual para la produccin agrcola del jitomate. Un invernadero automatizado es implementado en forma virtual para ser supervisado en la Internet. La simulacin del invernadero es posible gracias a herramientas como LabVIEW de Nationals Instruments , VRML, Java, Discreet 3DStudio , (ISA , Cortona Player, Cortona SDK 4.1) de Parallel Graphics , Adobe Flash y la Maquina Virtual de Microsoft de Java. En este trabajo de tesis se abordaron diferentes tpicos desde la adquisicin de datos por medio de la herramienta de control de LabVIEW en donde estos son utilizados, hasta la realizacin del invernadero virtualizado, el cual reaccionar de acuerdo a los datos sensados fsicamente. Para la programacin de comportamientos de algunos objetos que se presentan en el invernadero virtual, se utiliz el lenguaje Java, ya que posee la potencialidad del uso de hilos para darles comportamiento en lnea a travs de internet, como la adquisicin de datos desde LabVIEW , que es necesario para el funcionamiento del objeto en su simulacin virtual. Para la adquisicin de datos se utiliz la herramienta de LabVIEW 7.1 de National Instruments , donde con los dispositivos que miden las variables del entorno real del invernadero son obtenidas como variables donde el invernadero virtual va estar simulando el comportamiento del invernadero real. Con uso del Lenguaje Java son adquiridas estas variables desde LabVIEW de tal manera que se va modicando el mundo virtual en lnea, los nuevos datos son actualizados cada 4 segundos.

Contexto de la Tesis

xiii

Contexto de la Tesis El presente trabajo de tesis tiene sus bases en un proyecto de evaluacin, control y supervisin de invernaderos hidropnicos (Cf [Virgilio Lpez Morales, 2006]), en el cual en un invernadero se tienen sensores que estn fsicamente instalados y que por medio de mdulos esclavos (sistemas mnimos), se conectan con el mdulo maestro para la adquisicin de datos y envo de acciones [Morales, 2006]. El mdulo maestro se conecta con una PC por medio de LabVIEW . As, se obtienen los datos adquiridos por los sensores y estos son almacenados, para luego ser utilizada para la automatizacin del invernadero virtual en 3D y publicarlo en Internet. Con esta arquitectura se logra supervisar y controlar el invernadero en 3D desde cualquier punto del mundo, como la visualizacin de los VIs (Instrumentos Virtualizados), por ejemplo : termmetro, anemmetro, medidor de radiacin solar, veleta de direccin del viento.

xiv

Objetivos
Objetivo General Desarrollar un prototipo funcional interactivo de un invernadero virtual automatizado, controlado por Internet, donde el usuario pueda visualizar el comportamiento y supervisar las variables. Los objetivos especcos del presente trabajo de tesis son los siguientes: Objetivos Especcos 1) Compilacin del estado del arte sobre virtualizacin y telemanipulacin de instrumentos virtuales. 2) Representar, mediante Realidad Virtual, el invernadero automatizado. 3) Dar comportamiento a los mecanismos del invernadero virtual en base a las condiciones del medio ambiente, de control y supervisin en las que se encuentra el invernadero real. 4) Obtener los datos del invernadero real mediante un sistema mnimo va RS-232. 5) Establecer un puente de acceso bidireccional en el ujo de datos entre el invernadero virtualizado y el invernadero real.

Justicacin de la Tesis

xv

Justicacin El sistema que se desarroll y se implemento, es un prototipo el cual se puede utilizar para la supervisin a distancia, a travs de Internet. Tambin es el caso que antes de implementar en el invernadero real los sensores y sistemas mnimos que controlan los actuadores se puede simular la programacin de las actuacin del invernadero bajo una simulacin en un invernadero virtual y poder predecir el comportamiento bajo diferentes eventos, de tal manera modicar la actuacin con respeto a la region del invernadero real y sus variables edafoclimticas. En este caso se implementa un control supervisorio virtual y de adquisicin de datos de un invernadero automatizado. Se desea representar el comportamiento de un invernadero automatizado real, para su supervisin desde un area distante a la ubicacin del invernadero. De tal manera en el que el invernadero automatizado real fallara un mecanismo la simulacin virtual muestre una alerta de mal funcionamiento y la ubicacin del problema. En la actualidad existen diversas herramientas de autora que permiten el desarrollo de escenas tridimensionales por ejemplo: 3Dstudio de Discreet, Maya de Alias Wavefront etc. sin embargo stas solo generan escenas que pueden ejecutarse de forma local. Si se desea generar mundos virtuales para su uso en Internet, ser necesario desarrollarlos usando lenguajes como VRML, X3D JOGL an en desarrollo. Por otra parte, asignar comportamientos complejos tambin pueden desarrollarse con interfaces externas mediante los lenguajes de Java o Javascript. Estas interfaces, conocidas como EAI (External Authoring Interfaces) y JSAI (JavaScript Authoring Interfaces), permiten mayor exibilidad para asignar comportamientos complejos a los objetos de los mundos virtuales, ya que es posible mantener el cdigo VRML independiente de los programas desarrollados en Java o JavaScript, utilizados para manipular los eventos. En ste trabajo se hace uso de Java y LabVIEW, debido a que stos obtienen informacin del invernadero fsico y no tiene guardado una simulacin del comportamiento de las variables edafoclimticas.

Captulo 1 Control Supervisorio de un Invernadero Automatizado.


Introduccin El nivel de confort presente en nuestro mundo existe gracias al control que la humanidad tiene sobre la tecnologa y a los diferentes sistemas destinados a reducir el esfuerzo, en un mnimo tiempo y costo. Desde el n de la II guerra mundial se ha invertido mucho tiempo y dinero en desarrollar elementos destinados al control, sin embargo al correr del tiempo, la tecnologa se vuelve ms compleja y por tal motivo las unidades de control se dedican solo a partes especcas del sistema completo. Debido a que actualmente existe la necesidad y posibilidad de interconectar diferentes mdulos de supervisin con elementos visuales, surge un concepto nuevo: el concepto de control supervisorio que se revisar a continuacin.

1.1.

Concepto de Control Supervisorio.

El Control supervisorio nos permite monitorear, controlar y supervisar de manera permanente automtica e instantnea diferentes dispositivos o sistemas, por ejemplo un invernadero automatizado, desde cualquier parte del mundo con una conexin a Internet. Un invernadero automatizado cuenta con sensores en los tanques de agua para obtener el nivel, un anemmetro para conocer la velocidad del viento, una veleta para medir la direccin del viento, termmetros y sensores de humedad, radiacin solar, intrusin no autorizada, etc., etc.. Este conjunto de sensores ayudan a automatizar el invernadero y con los datos obtenidos se puede controlar por ejemplo: la temperatura del mdulo del invernadero, 1

1.1. Concepto de Control Supervisorio.

ventilar el invernadero en caso de que la misma temperatura sobrepase los rangos limites para la cosecha calentar el invernadero si la temperatura es muy baja. Nuestro caso de estudio se basa en el control supervisorio de un invernadero automatizado. Modelar el invernadero en 3D para poder observarlo desde cualquier punto con conexin a Internet, adems de que tenga el comportamiento del invernadero del mundo real, todo esto es posible gracias a la tecnologa actual. Ese comportamiento estar dado por la adquisicin de datos que del invernadero del mundo real se obtenga, mediante los dispositivos de medicin. De esta manera, el invernadero virtual podr reaccionar a todos los eventos que en ese momento se encuentren presentes. Nuestro objetivo es supervisar y controlar una produccin agrcola presente en el invernadero. El control supervisorio ayudar al administrador del invernadero o al mismo agricultor, si en dado caso este no se encontrara en el lugar de la cosecha; a decidir si es prudente su presencia fsica, ya que dichos factores presentes en el invernadero hacen que sea necesaria la interrelacion humana. Un ejemplo sencillo es cuando no exista agua en la cisterna del cual el invernadero automatizado necesita para bombear a los tinacos para el riego. A continuacin se mencionan las herramientas de autora que nos ayudan en este propsito. El caso del invernadero virtualizado es orientado a presentar contenido como los VIs (Instrumentos Virtuales) y una mini presentacin del invernadero que se desarrolla en Macromedia Flash . As tambin, para la representacin virtual del invernadero en 3D, se usa un browser 3D, que en la prctica se usa el Cortona Player de Parallel Graphics . Por ltimo el uso de etiquetas HTML, se utiliza para formar y tener un diseo del contenido de forma que pueda ser apreciado todos estos contenidos en una pantalla, diseado en resolucin de 800*600 pxeles. El uso de <iframes>(son similares a los frames, aunque aquellas generan cajas para la visualizacin de otras pginas web, compatible con Microsoft Internet Explorer ), se implement para publicar mini pginas informativas de los componentes del invernadero.

1.1.1.

Sistemas distribuidos.

El prototipo esta basado en sistemas distribuidos, por la distribucin fsica de los mdulos esclavos que tienen una comunicacin con el modulo maestro, para la obtencin de las medidas de cada uno de los sensores implantados en un invernadero para tener las variables del medio ambiente y realizar las actuaciones necesarias del invernadero de acuerdo a los requerimientos edafoclimticas del tomate como se puede observar en la Figura 1.1.

1. Control Supervisorio de un Invernadero Automatizado.

Figura 1.1: Estructura General.

En la estructura general que se muestra en la Figura 1.1 anterior, se observan a los sensores que se encuentran distribuidos por el invernadero, as como los actuadores, y tambin los mdulos esclavos. El sistema distribuido se encuentra estructurado de manera que los mdulos esclavos se comuniquen con el mdulo maestro de tal manera este envi la informacin a la pc, donde luego se procesa y se publica la informacin en internet como tambin el invernadero virtual realiza la simulacin de la informacin obtenida.

1.1.2.

Capacidad de visualizar en Web.

Los mundos virtuales pueden visualizarse mediante algn navegador o browser VRML el cual se ejecuta como un plug-in sobre un browser WWW o como una aplicacin stand-alone.

1.1.3.

Manejo del Mouse.

El browser o navegador VRML proporciona primitivas de navegacin, que en el ambiente virtual simulan el caminar, volar, rotar, etc., las cuales permiten al usuario mover el visor a travs del mundo virtual. Adems de la navegacin, el browser proporciona un mecanismo que permite al usuario interactuar con el mundo, mediante acciones del mouse.

1.2.

Funcionalidades y Alcances.

El sitio web, producto prctico principal de este trabajo, es esencialmente un ambiente virtual desarrollado con VRML, con estas escenas tridimensionales, que representan el modelo de un invernadero automatizado. Mediante recorridos virtuales, el usuario puede observar las caractersticas de las instalaciones como las partes fundamentales del invernadero para su interaccin con el entorno. El invernadero virtualizado en 3D usa varias herramientas de software, de tal manera que tambin tenga comportamiento de forma automatizada como el invernadero real, dado que este hace uso de los mismo datos que el real obtiene en tiempo real, y as tambin se muestra una breve descripcin de los equipos utilizados, de manera

1.3. Invernaderos Hidropnicos Automatizados.

informativa. La razn primordial por la cual se desea supervisar el invernadero est basada en la productividad agrcola y al menor uso posible de agroqumicos y pesticidas. En est seccin, se explica con ms detalle la estructura fsica y la funcin de un invernadero hidropnico. Para un mayor detalle CF. [para Invernadero, 2006].

1.3.

Invernaderos Hidropnicos Automatizados.

El invernadero es un espacio con el microclima apropiado para el ptimo desarrollo de una plantacin especca. As, partiendo del estudio tcnico de ambientacin climtica, debe de tenerse una temperatura, humedad relativa y ventilacin apropiadas que permitan alcanzar alta productividad, a bajo costo, en menos tiempo, sin dao ambiental, protegindose de las lluvias, el granizo, las heladas, los insectos o los excesos de viento que pudieran perjudicar el cultivo [para Invernadero, 2006]. Es muy comn que se improvisen invernaderos, razn por la cual en algunos pases existe una composicin muy heterognea de productividad por planta o por metro cuadrado y de utilizacin de agroqumicos. En algunos lugares puede encontrarse productores de tomate que obtienen entre 6 y 12 kilos por planta y a poca distancia de ellos otros que producen entre 13 y 22 kilos por planta, pero tambin otros que solo producen entre 2 y 5 kilos por planta, sembrando las mismas semillas. Hay un axioma que es digno de tenerse en cuenta, el que menos produce incurre en ms costos, porque es inversamente proporcional la productividad con los requerimientos de agroqumicos. A menor productividad mayor uso de agroqumicos [para Invernadero, 2006]. Cuando una planta no es productiva es porque ha tenido problemas de exceso o falta de humedad, de exceso o falta de temperatura, de exceso o falta de ventilacin, de exceso o falta de luminosidad, es decir ha tenido problemas derivados de las siguientes razones:

Figura 1.2: Crecimiento en medio estable, climtico y nutricional.

1. Control Supervisorio de un Invernadero Automatizado.

1. - Diseo del invernadero. 2. - Construccin del invernadero. 3. - Manejo de la plantacin. 4. - Nutrientes, riego y pesticidas.

1.3.1.

Requerimientos Edafoclimticos

Los requerimientos edafoclimticos de este caso de estudio en el invernadero hidropnico es con jitomates. En ambiente apropiado: estabilidad climtica, hdrica y nutricional, se consiguen racimos con frutos abundantes, homogneos, en el peso normal y sanos. El manejo racional de los factores climticos de forma conjunta es fundamental para el funcionamiento adecuado del cultivo, ya que todos se encuentran estrechamente relacionados y la actuacin sobre uno de estos incide sobre el resto [infoagro.com, 2003]. En comparacin de los diferentes productos agrcolas la berenjena y el pimiento son menos exigentes en la temperatura. En cambio en el jitomate se muestran a continuacin cuales son sus requerimientos. Temperatura : La temperatura ptima de desarrollo oscila entre 20 y 30o C durante el da y entre 10 y 17o C durante la noche; temperaturas superiores a los 30 35o C afectan a la fructicacin, por mal desarrollo de vulos y al desarrollo de la planta en general y del sistema radicular en particular. Temperaturas inferiores a tambin originan problemas en el desarrollo de la planta. A temperaturas superiores a 25o C e inferiores a 12o C la fecundacin es defectuosa o nula. La maduracin del fruto est muy inuida por la temperatura en lo referente tanto a la precocidad como a la coloracin, de forma que valores cercanos a los 10o C as como superiores a los 30o C originan tonalidades amarillentas. No obstante, los valores de temperatura descritos son meramente indicativos, debiendo tener en cuenta las interacciones de la temperatura con el resto de los parmetros climticos. Humedad: la humedad relativa ptima oscila entre un 60 % y un 80 %. Humedades relativas muy elevadas favorecen el desarrollo de enfermedades areas y el agrietamiento del fruto y dicultan la fecundacin, debido a que el polen se compacta, abortando parte de las ores. El rajado del fruto igualmente puede tener su origen en un exceso

1.3. Invernaderos Hidropnicos Automatizados.

de humedad edca o riego abundante tras un perodo de estrs hdrico. Tambin una humedad relativa baja diculta la jacin del polen al estigma de la or. Luminosidad: valores reducidos de luminosidad pueden incidir de forma negativa sobre los procesos de la oracin, fecundacin as como el desarrollo vegetativo de la planta. En los momentos crticos durante el perodo vegetativo resulta crucial la interrelacin existente entre la temperatura diurna y nocturna y la luminosidad. Suelo: la planta de tomate no es muy exigente en cuanto a suelos, excepto en lo que se reere al drenaje, aunque preere suelos sueltos de textura silceo-arcillosa y ricos en materia orgnica. No obstante se desarrolla perfectamente en suelos arcillosos enarenados. En cuanto al pH, los suelos pueden ser desde ligeramente cidos hasta ligeramente alcalinos cuando estn enarenados. Es la especie cultivada en invernadero que mejor tolera las condiciones de salinidad tanto del suelo como del agua de riego. Fertilizacin carbnica: la aportacin de CO2 permite compensar el consumo de las plantas y garantiza el mantenimiento de una concentracin superior a la media en la atmsfera del invernadero; as la fotosntesis se estimula y se acelera el crecimiento de las plantas. Para valorar las necesidades de CO2 de los cultivos en invernadero necesitamos realizar, en los diversos periodos del ao, un balance de las prdidas derivadas de la absorcin por parte de las plantas, de las renovaciones de aire hechas en el invernadero y las aportaciones proporcionadas por el suelo a la atmsfera del mismo. Del enriquecimiento en CO2 del invernadero depende la calidad, la productividad y la precocidad de los cultivos. Hay que tener presente que un exceso de CO2 produce daos debidos al cierre de los estomas, que cesan la fotosntesis y pueden originar quemaduras. Los aparatos ms utilizados en la fertilizacin carbnica son los quemadores de gas propano y los de distribucin de CO2. En el cultivo del tomate las cantidades ptimas de CO2 son de 700-800 ppm. En cuanto a los rendimientos netos dan incrementos del 15-25 % en funcin del tipo de invernadero, el sistema de control climtico, etc.

1. Control Supervisorio de un Invernadero Automatizado.

1.3.2.

Diseo de Invernaderos.

Si se tiene en cuenta que las plantas son seres vivos, mal pudiera dejarse a la improvisacin un aspecto tan clave como su microclima. Si en el espacio cerrado no se crea un microclima favorable al desarrollo de las plantas, por supuesto que la productividad se reduce. Las plantas tienen unos rangos de temperaturas y humedad relativa dentro de los cuales producen ecientemente. Por debajo o por encima del rango establecido, ellas se estresan y su productividad declina. Existen tambin los niveles de tolerancia a partir de los cuales se detiene el proceso fotosinttico.

Figura 1.3: Interior del invernadero que se utiliz en este proyecto de tesis.

Estos factores tan claves no son a menudo tenidos en cuenta por quienes hacen sus invernaderos y se encuentran algunos que, por errores de diseo, tienen niveles de humedad relativa altsimos que contribuyen al desarrollo de plagas y enfermedades, lo cual induce a aplicar agroqumicos, elevando los costos de operacin y reduciendo la calidad de los frutos. Adicionalmente, el exceso de humedad bloquea la polinizacin y estos productores pierden gran parte de la cosecha debido a que, por esa razn, las ores no se transforman en frutos o se producen malformaciones en los mismos que los convierten en rechazo. Otros aspectos importantsimos en un invernadero, que son frecuentemente ignorados debido a la improvisacin, estn relacionados con el viento: En un invernadero de ambientacin climtica natural, el nico motor que cumple la funcin de regulador de temperaturas y humedad relativa es el viento. Este, a la vez que cumple una funcin vital en la polinizacin, expulsa los excedentes de humedad y reduce los excesos de temperatura. Eso explica que en su diseo tienen que considerarse la altura del invernadero y las dimensiones de las aperturas cenitales para que exista, en ese espacio, el volumen de aire requerido y se produzca la renovacin necesaria.

Figura 1.4: Exterior del invernadero bajo estudio.

1.4. Control Supervisorio de un Invernadero Automatizado.

1.3.3.

Construccin del Invernadero.

En la construccin tambin se incurre frecuentemente en diversos errores que pudieran ser evitados con estudio, diseo y planos. Los traslapes son en ocasiones muy cortos y quedan espacios que permiten ltraciones de agua. Igual sucede con los canales que no tienen la cavidad correcta o la extensin adecuada. Valga decir que los principales problemas que confronta una plantacin se derivan del exceso de humedad. La humedad debe ser absolutamente controlada.

1.3.4.

Manejo de la plantacin.

Graves problemas de plagas, enfermedades, alta humedad y altsimas temperaturas se producen debido a errores en la densidad de siembra que son muy comunes en nuestro medio. Algunas personas piensan que sembrando ms plantas que las recomendables, o que manejando dos ejes, obtienen ms cosecha y se lanzan a la aventura de crear en el invernadero una selva por la que no se puede caminar para realizar las labores sin daar ores, frutos y tallos, adems de que generan un microclima inapropiado. En ese exceso de follaje se bloquea el paso de la luz que es el factor vital para la fotosntesis, se hace barrera al viento limitando la polinizacin, aumentando la humedad y la temperatura, con lo cual lo que se consigue es bajar la productividad y aumentar los costos. Los invernaderos pueden construirse de madera, de caa, mixtos o metlicos y cumplen la funcin de crear un microclima perfectamente controlable que permita mantener la temperatura y humedad relativa ms apropiadas para el proceso fotosinttico de un cultivo especco, reduciendo los riesgos y los costos globales, aprovechando mejor los espacios, incrementando la productividad y mejorando la calidad de los productos. En sntesis, la recomendacin es la de hacer, para cada caso, un estudio previo de ambientacin climtica que permita obtener buenos resultados tanto en el campo econmico como en el aspecto ambiental y de la salud humana [para la Productividad Agrcola, ].

1.4.

Control Supervisorio de un Invernadero Automatizado.

El objeto de estudio del sistema, es la virtualizacin de un invernadero automatizado, este se encuentra organizado por varias etapas. En la primera, se realiza la adquisicin de datos de manera simulada o real desde la herramienta de Nationals Instrument

1. Control Supervisorio de un Invernadero Automatizado.

LabVIEW , donde este guarda en un archivo los datos obtenidos para que se actualice en la pgina que esta publicada en la web, como tambin es almacenado en una base de datos.

Figura 1.5: Esquema de ujo de datos.

En la segunda, existe un mundo virtual el cual es un invernadero que reacciona a los factores que intervienen con el cultivo. Esos datos se obtienen de un archivo que es guardado por LabVIEW el cual obtiene los datos de los mdulos, y que mediante un applet de Java se obtienen estos datos guardados anteriormente con un retardo de 1 segundo mediante el uso hilos, cabe aclarar que el cambio en el medio ambiente no es repentino dado que es de forma gradual y eso nos da la tranquilidad de tener retardos de segundos en la obtencin de los datos y simulacin de estos en el mundo virtual. Posteriormente los datos ledos del invernadero en un maquina cliente son utilizados de tal manera que actualizar el invernadero virtual, para simular el comportamiento del invernadero fsico.

1.5.

Organizacin de la tesis.

En este trabajo de tesis se presentan los fundamentos tericos para el desarrollo del caso de estudio propuesto. Inicialmente se describe la problemtica de la supervisin de un invernadero, y se plantea una solucin posible con el sistema desarrollado. ste trabajo de tesis est estructurado como se indica a continuacin. En el Captulo 1 se presenta la introduccin del tema de tesis de maestra, como sus objetivos, el caso de estudio como la problemtica de la produccin actual de los invernaderos sin una supervisin controlada. Captulo 2 se presenta el estado del arte, y las herramientas usadas. Diseo de objetos 3D en 3dStudio Max. Realidad Virtual y VRML. Optimizacin de Cdigo e insercin de enlaces en VRML de tal modo de comunicacin de Java. Navegadores 3D VRML. Programacin de efectos y automatizacin del invernadero con Java. Adquisicin de Datos utilizando LabVIEW . Comunicacin entre VRML y Java utilizando EAI. Comunicacin de datos LabVIEW y Java. Sistema Mnimo. Creacin de un Sitio web para publicacin del invernadero visualizado.

10

1.5. Organizacin de la tesis.

En el Captulo 3 se presentar la arquitectura general de todo el proyecto de tesis, como la estructura del invernadero virtual automatizado. En Captulo 4 se mostrar el ujo de los datos, como los pantallas de las simulaciones y de todo el invernadero por secciones como del proyecto nal. Finalmente, se dan unas conclusiones y perspectivas en donde se plasman las conclusiones extradas del presente trabajo de tesis, as como algunas ideas de posibles direcciones de investigacin y de desarrollos futuros.

Captulo 2 Estado del Arte y Herramientas.


Resumen. En este captulo se presenta el estado del arte como tambin se describen los trminos y conceptos bsicos en sntesis y objetivo, de Diseo en 3D, Realidad Virtual (VR), as como los conceptos principales de VRML, Java, LabVIEW y Sistema mnimo, su historia y aplicaciones. As mismo, se explican los mecanismos para la descripcin y asignacin de comportamientos complejos en los mundos virtuales. En las siguientes secciones se presentan los trminos y conceptos bsicos que se abordan en este captulo. En la seccin 2.2.5 se explica el Diseo de objetos 3D en 3dStudio Max. Existen muchos programas para crear modelos en 3ra dimension, entre los cuales de los ms populares se encuentran: Discreet 3D Studio Max, Alias Wavefront Maya y muchos otros. Se eligi el 3D studio por la facilidad de su interfaz para el modelado en 3D y su rapidez de generar objetos 3D, a diferencia de Maya que su interfaz es algo menos intuitiva para el modelado. Cabe recalcar que solo se us esta herramienta para el modelado y la facilidad de la exportacin de los objetos 3D a archivos VRML. En la seccin 2.2.3 se explica lo que es la Realidad Virtual y VRML. (Virtual Reality o Realidad Virtual) Mundo no real, creado mediante componentes electrnicos computacionales e informaticos, en el que se presentan efectos tales que aparentan ser real. En la seccin 2.2.7 se explica la optimizacin de cdigo e insercin de enlaces en VRML para comunicacin con JAVA. En cuanto a la optimizacin que se quiere dar a entender es la de eliminar cdigo innecesario en los archivos generados por 3Dstudio en formato VRML. La inspeccin del cdigo fuente generado, es realizada para ir borrando lneas de cdigo reemplazar estas por unas ms ecientes un ejemplo seria en cuanto al texto, 3dStudio genera el texto como guras en 3D donde utiliza matrices 11

12

para la forma de cada letra y estas terminan resultando demasiadas grandes, haciendo demasiado pesado el archivo como para ser descargado en la Internet. Otro punto que se realiz con los archivos generados son los enlaces como yo dira para poder hacer los respectivos llamados desde otro programa que pueda generar la comunicacin de datos mediante al EAI (External Authoring Interface). En la seccin 2.2.8 se ven a detalle algunos navegadores 3D o de VRML. Existen muchos navegadores 3d, de los cuales los que han sido ms populares son de la Silicon Graphics, el Cosmo Player y de Parallel Graphics el Cortona Player, del cual el primero dej de ser renovado por Silicon Graphics. En cuanto a las nuevas mejoras que podra tener con referencias a la carrera de los navegadores Web como eran en ese tiempo la de Microsoft internet Explorer contra la de Netscape Navigator. La empresa de Parallel Graphics an esta en el juego de actualizar sus paquetes. As como el HTML tambin tuvo sus mejoras con respecto el tiempo a DHTML. En cuanto a VRML ya acaba de salir la mejora que es X3D. En la seccin A.0.3 explicaremos como se realiza la programacin de efectos y automatizacin del invernadero con Java. Para la generacin de efectos en el mundo virtual de tal manera sea dependiente de lo que esta siendo adquirido en tiempo real por la herramienta de Nationals Instruments LabVIEW se utiliz el lenguaje de programacin de Java. El Cortona player es compatible con los nuevos navegadores y tambin el uso del EAI para la modicacin del mundo virtual desde otro lenguaje. Este trae unas libreras consigo como el corteai.zip que se instala en el momento de instalar el navegador 3d de Cortona Player. En la seccin A.0.4 se explicar ms a fondo la adquisicin de datos utilizando LabVIEW . La herramienta de Nationals Instruments LabVIEW en modo simulacin o real, guarda los datos adquiridos en un archivo para tener una base de datos como historial del comportamiento del clima por toda la temporada y poder realizar con estos datos, futuros temas de investigacin donde se pronostiquen las temporadas generales climticas. En la seccin 4.1 se detallar como se realiza la comunicacin entre VRML y Java utilizando EAI. En los mundos virtuales creados en lenguaje VRML se crean la denicin de nombres de los nodos llamados en lenguaje VRML como DEF (Dening Node Name) el cual sirve para poder llamarlos desde el lenguaje Java y poder acceder a propiedades de un objeto en el mundo virtual y as poder modicarlo gracias a la External Authoring Interface. En esta seccin 4.1.1 se vera ms a fondo la comunicacin de datos LabVIEW y Java. Una forma de comunicarse muy fcil entre la herramienta de Nationals Instruments de

2. Estado del Arte y Herramientas.

13

LabVIEW donde este ya anteriormente mencionamos que obtiene las variables de los dispositivos que miden la cantidad de cada factor que interviene en la automatizacin del invernadero por ejemplo el viento, es la de crear un archivo de texto plano donde esta herramienta guarda las variables capturadas, sin ningn formato en especco para ser ms ligera la carga de estos datos desde el applet que esta en el cliente por medio de internet y modicar el mundo virtual lo ms rpido posible. El archivo se guarda por la herramienta LabVIEW en la carpeta donde es publicada la pgina para internet. El Applet de Java utiliza hilos para estar constantemente vericando si existen datos nuevos en el archivo de datos. En la seccin 4.1.2 se ver en contexto el Sistema Mnimo. El sistema mnimo obtiene los datos de los sensores y adquiere los valores de las variables donde LabVIEW las va obteniendo. En la seccin 4.1.3 se explicar la creacin de un sitio web para publicacin del invernadero visualizado. La creacin del sitio web es posible gracias tambin a la herramienta de LabVIEW ya que sta tiene la opcin de dar servicio web, es decir que pueden ser publicadas las pginas web y as tener salida a la internet. La pgina del invernadero es una pgina HTML con varios objetos incrustados, los cuales necesitan una previa instalacin del programa que los pueda ejecutar los cuales son: el plugin de Cortona Player este nos sirve para visualizar cdigo VRML como los mundos virtuales en 3D, la VM (Maquina Virtual de Microsoft) este es para la ejecucin de los applets de java para la manipulacin del mundo virtual y el plugin de Flash Player para la visualizacin de archivos ash donde visualizaremos animaciones multimedia.

2.1.

Estado del arte.

En el tema de la Realidad Virtual en la Internet estos son documentos ms apegados a tema de tesis con el caso de estudio. El Lenguaje de Modelacin de Realidad Virtual (VRML) y Java. Es un paper de Don Brutzman, Code UW/Br, Naval Postgraduate School. Monterey California 939435000 USA. brutzman@nps.navy.mil, presentado en Communications of the ACM, Junio 1998. En el paper nos habla del poder que tienen estas dos herramientas de programacin orientadas a la internet las cuales son Java y VRML. Espacios Virtuales de Experimentacin cooperativa: Laboratorio Virtual de Cinemtica. Es una tesis para obtener el grado de Maestra en Ciencias Computacionales de Gonzalo Alberto Torres Samperio, Universidad Autnoma del Estado de Hidalgo, Presentada en el Centro de Investigacin en Tecnologas de Informacin y Sistemas, Noviembre 2001. La cul nos habla del uso de la Realidad Virtual utilizada en Internet

14

2.2. Presentar los trminos y conceptos bsicos.

usando VRML para su uso en la educacin, en el tema de un laboratorio de Fsica, donde las personas pueden interactuar con todos los instrumentos de aprendizaje enfocados a la cinemtica pero en forma virtual. Centro de Caoacitacin en la Elaboracin de Productos Lcteos Orientado a Web. Es una tesis para obtener el grado de Maestra en Ciencias Computacionales de Arturo Curiel Anaya, Universidad Autnoma del Estado de Hidalgo, Presentada en el Centro de Investigacin de Tecnologas de Informacin y Sistemas, Febrero 2001. La cul no introduce a la enseanza de la elaboracin de productos lcteos pero de manera virtual en un curso de capacitacin orientada. En el tema de invernaderos automatizados estos son documentos ms apegados a tema de tesis con el caso de estudio.

2.2.

Presentar los trminos y conceptos bsicos.

En esta seccin se presentan los conceptos bsicos de la forma en que se desarroll el proyecto del invernadero automatizado virtual, as como las herramientas utilizadas por separado, y una pequea introduccin general a cada una de ellas.

2.2.1.

LabVIEW.

LabVIEW es una herramienta grca de prueba, control y diseo mediante la programacin. El lenguaje que usa se llama lenguaje G [Wikipedia, 2001]. Este programa fue creado por National Instruments (1976) para funcionar sobre mquinas MAC, sali al mercado por primera vez en 1986. Ahora est disponible para las plataformas Windows, UNIX, MAC y Linux. Los programas hechos con LabVIEW se llaman VI (Virtual Instrument), lo que da una idea de uno de sus principales usos: el control de instrumentos. El lema de LabVIEW es: La potencia est en el Software. Esto no signica que la empresa haga nicamente software, sino que busca combinar este software con todo tipo de hardware, tanto propio (tarjetas de adquisicin de datos, PAC, Visin, y otro Hardware) como de terceras empresas. Principales caractersticas. Su principal caracterstica es la facilidad de uso, personas con pocos conocimientos en programacin pueden hacer programas relativamente complejos, imposibles para ellos de hacer con lenguajes tradicionales. Tambin es muy rpido hacer programas con

2. Estado del Arte y Herramientas.

15

LabVIEW y cualquier programador, por experimentado que sea, puede beneciarse de l. Para los amantes de lo complejo, con LabVIEW pueden crearse programas de miles de VIs (pginas de cdigo) para aplicaciones complejas, programas de automatizaciones de decenas de miles de puntos de entradas/salidas, etc. Incluso existen buenas prcticas de programacin para optimizar el rendimiento y la calidad de la programacin. Presenta facilidades para el manejo de:

Interfaz de comunicacion: Puerto serie Puerto paralelo GPIB PXI VXI TCP/IP, UDP, DataSocket Irda Bluetooth USB OPC... Capacidad de interactuar con otras aplicaciones: dll ActiveX Matlab Simulink... Herramientas para el procesado digital de seales. Visualizacin y manejo de grcas con datos dinmicos. Adquisicin y tratamiento de imgenes. Control de movimiento. Tiempo Real estrictamente hablando. Programacin de FPGAs. Sincronizacin.

16

2.2. Presentar los trminos y conceptos bsicos.

Programar en LabVIEW . As es una herramienta grca de programacin, lo cual signica que los programas no se escriben, sino que se dibujan. Un programa se divide en Panel Frontal y Diagrama de bloques. El Panel Frontal es la interfaz con el usuario, en l se denen los controles e indicadores que se muestran en pantalla. El Diagrama de Bloques es el programa propiamente dicho, donde se dene su funcionalidad, aqu se colocan iconos que realizan una determinada funcin y se interconectan. La Figura 2.1 muestra un Diagrama de Bloques de un programa en el que se genera un arreglo de 100 elementos aleatorios, a continuacin se hace la FFT (Transformada de Fourier) de este arreglo y se muestra en una grca:

Figura 2.1: Diagrama de bloques de un programa.

2.2.2.

Lenguaje de Programacin JAVA

Java es un lenguaje de programacin orientado a objetos desarrollado por James Gosling y sus compaeros de Sun Microsystems al inicio de la dcada de 1990 [Wikipedia, 2001]. A diferencia de los lenguajes de programacin convencionales, que generalmente estn diseados para ser compilados en cdigo nativo, Java es compilado en un bytecode que es ejecutado (usando normalmente un compilador JIT), por una mquina virtual Java. El lenguaje en s mismo toma mucha de su sintaxis de C y C++, pero tiene un modelo de objetos mucho ms simple y elimina herramientas de bajo nivel como punteros. Java est slo lejanamente emparentado con JavaScript, aunque tengan nombres similares y compartan una sintaxis al estilo de C algo parecida. Orgenes. La plataforma Java y el lenguaje Java empezaron como un proyecto interno de Sun Microsystems en diciembre de 1990. Intentaban desarrollar una nueva tecnologa para programar la siguiente generacin de dispositivos inteligentes, en los que Sun vea un campo nuevo a explotar.

2. Estado del Arte y Herramientas.

17

Bill Joy haba concebido un nuevo lenguaje que combinase lo mejor de Mesa y C. En un escrito titulado Further (ms lejos), propona a Sun que sus ingenieros crearan un entorno orientado a objetos basado en C++. Gosling intent modicar y ampliar C++, a lo que llam C++ ++ , pero pronto descart la idea para crear un lenguaje completamente nuevo, al que llam Oak. Java applet. Una Java applet, es un programa escrito en el lenguaje de programacin Java pero esta orientado a publicarse en la Web. Los applets de Java pueden correr en un navegador web utilizando la maquina virtual de Java (JVM), o en el vizualizador de applets de Sun. Entre sus caractersticas podemos mencionar un esquema de seguridad que permite que los applets que se ejecutan en el equipo no tengan acceso a partes sensibles (por ej. no pueden escribir archivos), a excepcin de que uno mismo le d los permisos necesarios en el sistema; la desventaja de este enfoque es que la entrega de permisos es engorrosa para el usuario comn, lo cual juega en contra de uno de los objetivos del mismo: entregar una forma fcil de ejecutar aplicaciones ricas desde el navegador web. Sintaxis. Los applets de Java son programas incrustados en otras aplicaciones, normalmente una pgina web que se muestra en la Tabla 2.1 en un navegador.

Tabla 2.1: Applet y su publicacin en la web


// Hola.java import java.applet.Applet;import java.awt.Graphics; public class Hola extends Applet { public void paint(Graphics gc) { gc.drawString(Hola, mundo!, 65, 95); } } <! Hola.html > <html> <head><title>Applet Hola Mundo</title></head><body> <applet code=Hola width=200 height=200></applet> </body></html>

La sentencia import indica al compilador de Java que incluya las clases java.applet.Applet y java.awt.Graphics, para poder referenciarlas por sus nombres, sin tener que anteponer la ruta completa cada vez que se quieran usar en el cdigo fuente. La clase Hola extiende a la clase Applet, es decir, es una subclase de sta. La clase Applet permite a la aplicacin mostrar y controlar el estado del applet. La clase Applet es un componente del AWT (Abstract Windowing Toolkit), que permite al applet mostrar una interfaz grca de usuario o GUI (Graphical User Interface), y responder

18

2.2. Presentar los trminos y conceptos bsicos.

a eventos generados por el usuario. La clase Hola sobrecarga el mtodo paint(Graphics) heredado de la super clase contenedora (Applet en este caso), para acceder al cdigo encargado de dibujar. El mtodo paint() recibe un objeto Graphics que contiene el contexto grco para dibujar el applet. El mtodo paint() llama al mtodo drawString(String, int, int) del objeto Graphics para mostrar la cadena de caracteres Hola, mundo! en la posicin (65, 96) del espacio de dibujo asignado al applet. La referencia al applet es colocada en un documento HTML usando la etiqueta <applet>. Esta etiqueta tiene tres atributos: code=Hola indica el nombre del applet, y width=200 height=200 establece la anchura y altura, respectivamente, del applet. Un applet tambin pueden alojarse dentro de un documento HTML usando las etiquetas <object>, o <embed>, aunque el soporte que ofrecen los navegadores Web no es uniforme.

2.2.3.

VRML.

VRML es un acrnimo del Lenguaje de Modelado en Realidad Virtual. Usando VRML se puede crear mundos virtuales en tercera dimension en Internet. Se puede construir sitios virtuales, construcciones, ciudades, montaas, y planetas. Se puede llenar los mundos virtuales con muebles, carros, personas, naves espaciales, etc.. La caracterstica ms importante de VRML, es que permite que los mundos creados sean dinmicos y ricos en sensores en los entornos virtuales sobre internet, incluyendo las siguientes capacidades:

Animar objetos los mundos, creacin de movimiento. Reproducir sonidos y pelculas dentro de los mundos. Permitir a los usuarios interactuar con los mundos. Controlar y realzar los mundos con scripts, pequeos programas para crear actuacin en los mundos VRML [Andrea L. Ames, 1997]. Consiste en un formato de chero de texto en el que se especican los vertices y las aristas de cada polgono tridimensional, adems del color de su supercie. Es posible asociar direcciones web a los componentes grcos as denidos, de manera que el usuario pueda acceder a una pgina web o a otro chero VRML de Internet cada vez que le de click en el componente grco en cuestin.

2. Estado del Arte y Herramientas.

19

El Consorcio Web3D ha sido creado para desarrollar este formato. Su primera especicacin fue publicada en 1995; la versin actual funcionalmente completa es la VRML 97 (ISO/IEC DIS 14772-1). VRML, es la base en la que se desarrolla X3D.

2.2.4.

HTML.

El HTML, acrnimo ingls de Hypertext Markup Language (lenguaje de etiquetado de documentos hipertextual), es un lenguaje de marcacin diseado para estructurar textos y presentarlos en forma de hipertexto, que es el formato estndar de las pginas web [Wikipedia, 2001]. Gracias a Internet y a los navegadores del tipo Internet Explorer, Opera, Firefox o Netscape, el HTML se ha convertido en uno de los formatos ms populares que existen para la construccin de documentos. HTML es una aplicacin de SGML conforme al estndar internacional ISO 8879. XHTML es una reformulacin de HTML 4 como aplicacin XML 1.0, y que supone la base para la evolucin estable de este lenguaje. Adems XHTML permite la compatibilidad con los agentes de usuario que ya admitan HTML 4 siguiendo un conjunto de reglas.

2.2.5.

Diseo de objetos 3D en 3dStudio Max.

3D Studio Max es un programa de creacin de grcos y animacin 3D desarrollado por Autodesk Media & Entertainment (formalmente conocido como Discreet y Kinetix) [Wikipedia, 2001].

Figura 2.2: Diseo del invernadero en 3DS Max.

3DS Max es uno de los programas de animacin 3D ms utilizados. Dispone de una slida capacidad de edicin, una omnipresente arquitectura de plugins y una larga tradicin en plataformas Microsoft Windows. 3ds Max es utilizado en mayor medida por los desarrolladores de videojuegos, aunque tambin en el desarrollo de proyectos de animacin como pelculas o anuncios de televisin, efectos especiales y en arquitectura.

2.2.6.

Realidad Virtual.

Realidad virtual es un sistema o interfaz informtico que genera entornos sintticos en tiempo real, representacin de las cosas a travs de medios electrnicos o represen-

20

2.2. Presentar los trminos y conceptos bsicos.

taciones de la realidad, una realidad ilusoria, pues se trata de una realidad perceptiva sin soporte objetivo, sin red extensa, ya que existe slo dentro de la pc. La realidad virtual puede ser de dos tipos: inmersiva y no inmersiva. Los mtodos inmersivos de realidad virtual con frecuencia se ligan a un ambiente tridimensional creado por una pc, el cual se manipula a travs de cascos, guantes u otros dispositivos que capturan la posicin y rotacin de diferentes partes del cuerpo humano. La realidad virtual no inmersiva utiliza medios como el que actualmente nos ofrece Internet, en el cual podemos interactuar en tiempo real con diferentes personas en espacios y ambientes que en realidad no existen sin la necesidad de dispositivos adicionales a la computadora. La realidad virtual no inmersiva ofrece un nuevo mundo a travs de una ventana de escritorio. Este enfoque no inmersivo tiene varias ventajas sobre el enfoque inmersivo como son el bajo costo y fcil y rpida aceptacin de los usuarios. Los dispositivos inmersivos son de alto costo y generalmente el usuario preere manipular el ambiente virtual por medio de dispositivos familiares como son el teclado y el ratn que por medio de cascos pesados o guantes [Wikipedia, 2001].

2.2.7.

Optimizacin de Cdigo e insercin de enlaces en VRML.

La generacin de los mundos virtuales es gracias a la herramienta de diseo en 3D de 3DS Max, en el cual que se disearon los objetos 3D y del cual se exportaron en archivos VRML. Posteriormente con la herramienta de ISA de Parallel Graphics se unicaron todos estos elementos en un solo archivo VRML, que este permite su ubicacin de cada elemento como su visualizacin de estos, adems que nos ayuda a optimizar el cdigo fuente de VRML. En cuanto la otra forma de optimizar cdigo, es mejor escribir las letras desde cdigo VRML con ayuda de una herramienta para edicin de archivos VRML, VRMLPAD de Parallel Graphics, as como poner los nombres de nodos (DEF) con los que se manda a llamar desde el applet de Java.

2.2.8.

Navegadores 3D.

Actualmente existen una gran gama de navegadores 3D. [NIST, 2006] Los ms comunes caminos para desplegar, mostrar, visualizar, ejecutar, o ver archivos VRML, modelos, o mundos (.wrl extensin de archivo) es con un plugin libre VRML, tambin lo conocemos como un visualizador (navegador browser), player, viewer, reader, addon, client, toolkit, program, software, o control ActiveX. Para poder usarlo uno debe de descargar e instalar el plugin VRML para su navegador web. Pueden ser instalados

2. Estado del Arte y Herramientas.

21

ms de un plugin, si se cuenta con mltiples navegadores para la Web. Algunos de los plugins de VRML, tambin pueden visualizar archivos X3D.

Programas standalone, Toolkits y Applets. El VRML tambin puede ser visualizado con plugins de java, como los siguientes applets libres mostrados en la Tabla 2.2, como otros que son herramientas, programas y plugins no diseados en Java. En la cual se presentan los plugins libres de visualizacin 3D y las plataformas de SO en la cual estos funcionan, como tambin la compatibilidad con el navegador y con el nuevo estndar X3D de realidad Virtual.

Tabla 2.2: Plugins Visualizadores 3D Tipo SO Browser Win Linux Mac IE Firefox Cosmo Player P X ? X Cortona P X X X X Octaga Player P,S X X X X BS Contact P X X X Flux P X X blaxxun Contact P X X Venues P X X FreeWRL P,S X X X OpenVRML P,S X X X Xj3D J,T X X X Carina S X X X Orbisnap S X X X VRMLview S X X Demotride S X BS Contact J J X X X X X blaxxun3D J X X X X X Tipos: P=Plugin, S=Program, T=Toolkit, J=Java. Software

X3D

X X X X X X X

2.2.9. 2.2.10.

Programacin de efectos Adquisicin de Datos utilizando LabVIEW.

Captulo 3 Arquitectura general del sistema.


Introduccin En este captulo se explica la arquitectura de un Invernadero Virtual Automatizado. En primer lugar, se describe la funcionalidad del sistema en forma de bloques y de manera general, los elementos que conforman al sistema. Por ejemplo, la adquisicin de datos en LabVIEW , por medio de un applet de Java, el modelo de eventos para la asignacin de comportamiento complejo a una escena tridimensional y por ltimo las interfaz grca. Como podemos ver en la Figura 3.1 el diagrama general.

Figura 3.1: Diagrama general del funcionamiento del invernadero virtual.

3.1.

Funcionalidades.

La funcionalidad de este caso de estudio (invernadero hidroponico automatizado) es el control supervisorio que ayuda a mantener al invernadero con un control supervisorio que puede ser monitoreado de forma remota, de las variables del clima, o si existe mal funcionamiento del invernadero activando alarmas y con una ayuda visual del invernadero virtual.

3.2.

Modelo Funcional.

El modelo funcional del sistema del invernadero virtual automatizado, se basa en un sistema basado en reglas. Existen varios sensores que con la herramienta de adquisicin 23

24

3.3. Adquisicin de Datos en LabVIEW.

de datos no se encuentran implementados de tal manera que estos datos son generados de manera aleatoria. El comportamiento del invernadero virtual se monitorea con todos los posibles datos, y tomando en cuenta los rangos de cada instrumento virtual.

3.2.1.

Metodologa de Desarrollo de la Solucin:

Para una mejor y ms clara idea del desarrollo de este trabajo, se tratar en primer lugar el mdulo de adquisicin de datos por medio de VISA, presentacin de los instrumentos Virtuales, con la herramienta LabVIEW . En una la segunda fase se ver la creacin de los objetos que conforman el invernadero con la herramienta de 3DS Max junto con la herramienta de ISA de Parallel Graphics utilizada para integrar todos los objetos, como tambin el uso del VRMLPAD para realizar los comportamientos como los enlaces necesarios. As tambin, se abordar la creacin de instrumentos virtuales para Internet de manera como que utiliz Macromedia Flash para poder supervisar las variables del invernadero siendo esto posible de la lectura de un archivo cada segundo. Finalmente se tratar el uso de un applet de Java el cual activa el comportamiento del invernadero virtualizado utilizando la adquisicin de datos desde un archivo posteriormente modicado cada 5 segundos, y adquirido por el applet cada segundo.

3.3.

Adquisicin de Datos en LabVIEW.

La adquisicin de los datos por LabVIEW se realiza por medio del puerto serial de la PC RS-232, el cual fue programado para la recepcin y envo de datos. Esto es posible mediante la programacin en ensamblador del PIC, el cual enva y recibe datos. Con la ayuda de LabVIEW y los diagrama de bloques VISA, se detectan que dispositivos de entrada tiene cada mquina, como por ejemplo: (COMs, puerto paralelo) y se congura por medio de bloques VISA, para poder asignar la entrada y salida de datos. A continuacin se muestran los diagrama de bloques de los VISA y todos sus componentes para hacer posible la adquisicin de datos desde LabVIEW y un ejemplo corto de adquisicin de datos de LabVIEW .

Figura 3.2: Diagrama de bloques.

Como se puede observar en la Figura 3.2, se empieza con el bloque de funcin de conguracin VISA, donde se coloca por cul dispositivo se va a realizar la adquisicin, as como la tasa de baudios. Luego se tiene tiene un bloque de lectura VISA, el cual obtienen los bits y se pasa a un buer, despus se realiza un conversion y de acuerdo a

3. Arquitectura general del sistema.

25

los identicadores podemos ver a que sensor le corresponde la informacin. En este trabajo de tesis existen varios sensores que no se han conectado y se encuentran de manera operacional, con datos que son simulados. Los datos son generados de forma simulada son tales como, los sensores de nivel del tinaco, la direccin del viento, as como todas las alarmas de los actuadores.

3.4.

Obtencin de Datos.

Dada la adquisicin de datos por LabVIEW , estos son guardados en un archivo de texto donde se guardan los datos de cada una de las variables que se necesitan para la simulacin del invernadero automatizado virtual.

Figura 3.3: Estructura de datos de los sensores en el archivo.

A continuacin, se presenta un ejemplo del uso de estas funciones en programacin por bloques, creando y reemplazando un archivo llamado datos.txt. En el diagrama se encuentra una lnea suelta que proviene de la parte inferior de la Figura 3.4; esta es la que lleva los datos a guardar en un formato de texto.

Figura 3.4: Diagrama por bloques. Seccin de Archivos.

En la Figura 3.5 se muestra un diagrama de bloques del programa de simulacin de adquisicin de datos con instrumentos virtuales VIs.

Figura 3.5: Diagrama de bloques de simulacin de adquisicin de datos.

3.5.

Desarrollo del Mundo Virtual

Para el diseo del invernadero virtualizado, se utiliz 3DS Max, en donde de disearon los objetos en forma separada para despus exportarlos a archivos VMRL, como

26

3.5. Desarrollo del Mundo Virtual

se observa en la Figura 3.6. As tambin observe el diseo de las secciones principales de un invernadero.

Figura 3.6: Diseo de objetos 3D del invernadero.

A todos los objetos, posteriormente se le asignarn un comportamiento y por esto, se disean por separado en 3DS MAX y otros directamente en cdigo VRML, desde un editor que se llama VRML (observe la Figura 3.7).

Figura 3.7: Diseo del invernadero desde cdigo VRML.

Como se puede ver en la Figura 3.7, el espacio de trabajo en el VRMLPAD de Parallel Graphics, se encuentra dividido en 3 secciones. En el lado izquierdo se encuentran los Nodos, en el centro se encuentra el espacio para programar en VRML y al lado derecho se pueden observar una pequea representacin del objeto en 3D. En esta Figura se presenta el desarrollo del tablero, que aparece en la parte inferior de la representacin del invernadero virtualizado, ya que se optimiza el cdigo al ser programado de est manera, as como tambin la tuberas. Otra herramienta que se utiliz que es de la familia de Parallel Graphics es la de ISA (Internet Scene Assembler), la cual su utilidad fue la de poner en posicin a todas las formas 3D que corresponden al invernadero en un archivo y posteriormente optimizarlo, vase la Figura 3.8.

Figura 3.8: Diseo del invernadero ISA Parallel Graphics.

La herramienta ISA (Figura 3.8) est dividida en 5 secciones importantes en el espacio de trabajo. A la izquierda se encuentra el mundo virtual gracado sin texturas. Para poder orientarse inicialmente, se posiciona por encima del eje Y dando una vista desde la parte de arriba de todo el mundo. En el centro se puede visualizar el invernadero en su visualizacin de forma publicada. La parte derecha se encuentra subdividido en 2 partes. En la parte superior se encuentran las propiedades que cada nodo o grupo de seleccionado, y en la parte inferior se encuentran dichos nodos o grupos de nodos.

3. Arquitectura general del sistema.

27

Y por ltimo en la parte inferior principal se encuentra la representacin de manera minimizada de las libreras de objetos en archivos VRML, el cual se utiliz para ir integrando cada objeto diseado y exportado en 3DS Max.

3.6.

Asignacin de Comportamiento Complejo.

Como se mencion en el Captulo 2, en el lenguaje de VRML, el comportamiento se controla mediante eventos. La asignacin del comportamiento que es programado para este que es el caso del invernadero, se programaron los sensores como los actuadores y algunos que no lo son. Que presentan a continuacin en la siguiente forma, el objeto a programar y sus respectivos comportamientos, los cuales se presentan algunos ejemplos que son los siguientes: El anemmetro y la rotacin de las paletas sobre el eje Y. La veleta de viento y su rotacin de este en el eje Y. Las cortinas principales del invernadero y su comportamiento de plegado como el de despliegue. Las cortinas de los domos y su plegado como el tambin su despliegue. El cielo y su comportamiento es el de cambiar la tonalidad en su color con respecto al tiempo horario. El calentador y su comportamiento es el de cambiar de color la rejilla para cuando este se encuentre prendido o apagado, el cual se puede ver en la Figura 3.9 la denicin de su nodo y en la Figura 3.10 su programacin de su comportamiento dados los casos de cuando tiene que presentarse como prendido o apagado.

Figura 3.9: Asignacin de Comportamientos en VRML.

Como se puede ver en la Figura 3.9 se tiene diseado lo que sera el calentador ambiental del invernadero, el cual se diseo con unas rejillas y un ventilador en su interior, los cuales van a tener un comportamiento cuanto estos sean activados. La rejilla cambiara de color utilizando los DEF que son asignados desde VRML se cre una denicin de nodo llamada colorRejilla como tambin el ventilador empezar a funcionar con su correspondiente denicin de su nodo. Como se ve en el cdigo de VRML la denicin de su nodo tambin lo tenemos en el cdigo del applet el cual primeramente se obtiene

28

3.7. Interfaz Grca.

Figura 3.10: Asignacin de Comportamientos en Java usando EAI.

el enlace para darle comportamiento haciendo uso de la denicin del nodo DEF. Como se observa en la Figura 3.10 que es una parte del cdigo fuente del applet, el cual se utiliza para modicar todos los elementos a los cuales se le ha asignado un comportamiento. El cdigo que se presenta solo se ejecuta una vez, el cual obtiene la informacin y reacciona el calentador a una sola adquisicin de datos, este reaccionaria al primer elemento que es la temperatura del invernadero.

3.7.

Interfaz Grca.

A continuacin se muestra el diagrama de bloques del programa de adquisicin de datos y puente para el manejo del mundo virtual y control de los actuadores iniciando de lo ms general a lo ms especco.

Figura 3.11: Estructura General de Sensores, Actuadores y Mdulos.

Como se puede observar en la Figura 3.11, existen diferentes mdulos (Esclavos y Maestros) los cuales estn en red para intercomunicarse. Los actuadores estn conectados fsicamente a los Mdulos Esclavos y sirven para realizar el accionamiento sobre las cortinas, domos, riego.

Figura 3.12: Adquisicin y puente del mundo virtual.

As tambin, se presentan los Instrumentos Virtuales de LabVIEW donde son representados los indicadores de las variables obtenidas, como otros dispositivos de control como se observa en la Figura 3.13. Posteriormense se presentan los instrumentos virtuales desarrollados en VRML y en ash enfocados a la representacin de los indicadores en internet. Inicialmente se publicaban 2 mundos virtuales, donde en uno se proyectaba el invernadero automatizado y en el otro se visualizaban los indicadores virtuales como se observa en la Figura 3.14 todo

3. Arquitectura general del sistema.

29

Figura 3.13: Instrumentos Virtuales en LabVIEW

en VRML. La razn por la cual se cambiaron estos instrumentos de VRML a Flash fue por el consumo de memoria de video, el cual tena que renderizar dos mundos virtuales simultneamente, junto con un applet extra que tena que ser procesado tambin por la mquina virtual de Microsoft para modicar ese mundo de indicadores virtuales.

Figura 3.14: Instrumentos Virtuales en VRML.

En la Figura 3.13 observe que uno de los mdulos esclavos es representando por medio de un sensor de nivel de lquido, enva la medicin a LabVIEW, el cual representar en el instrumento virtual Tinaco en la Figura 3.14, la medicin real del sistema. De forma similar, la instrumentacin virtual en Flash es retroalimentado por los datos obtenidos de LabVIEW , donde este reescribe un archivo continuamente de los nuevos datos adquiridos, actualizando as los datos en el instrumento virtual publicado en internet desarrollado en ash como se ve en la Figura 3.15.

Figura 3.15: Instrumentacin Virtual en Flash

Como se puede notar, existen variables analgicas, como las que se representan en la Figuras 3.14 y 3.15, as como digitales, que son las alarmas como se observan en la (Figura 3.16). El applet que es publicado en Internet 3.17, se utiliza para darle comportamiento al invernadero 3D de acuerdo a las variables climticas. Dicho applet, en su entorno grco, solo tiene un objeto de texto que es til en las pruebas de conexin con el mundo virtual ya que despliega el estado y los datos obtenidos del archivo que se esta actualizando por LabVIEW. En la Tabla 3.1 se observa la salida en general del estado de la ejecucin, inicialmente aparece el mensaje de Listo ->obtencin de Nodos, que indica que se pudo sincronizar con el navegador 3D y que se encuentra listo para la obtencin de los nodos del mundo virtual. A continuacin, obtiene los nodos del mundo para posteriormente modicar los valores de los campos de esos nodos como se observa en la Tabla 3.1. Y as inicia un ciclo innito de lectura de

30

3.7. Interfaz Grca.

Figura 3.16: Alarmas en Flash

Figura 3.17: Applet publicado manejador del comportamiento.

los datos del archivo y la modicacin del mundo con respecto a la informacin obtenida.

Tabla 3.1: Estado del applet


Listo ->Obtencin de Nodos del Virtual World Nodo obtenido en Grupo04-TIMER Nodo obtenido en Tuberas de Riego Nodo obtenido de la Rejilla del Calentador Nodo obtenido en Tuberas de abastecimiento Nodo obtenido en calentador_ventilador Nodo obtenido en fondo skyColor Nodo obtenido en fondo groundColor Nodo obtenido en cortina Nodo obtenido en sombra Nodo obtenido en cortina_domo Nodo obtenido en fondo skyColor Nodo obtenido en Tablero_texto El contenido del archivo es : 2.62 82.70 9.05 84.16 35.33 300.88 1.00 1.00 0.00 1.00 1.00 10 19 09 10 SENSORES>Termmetro: 2.62 Anemmetro: 82.7 Celda: 9.05 Humedad: 84.16 Tinaco: 35.33 % Direccin V.: 300.88 BUFFER VACIO El contenido del archivo es : 2.62 82.70 9.05 84.16 35.33 300.88 1.00 1.00 0.00 1.00 1.00 10 19 09 10

Enseguida se explicar el diseo del sistema supervisorio del Invernadero automatizado, en donde se utilizaron las siguientes herramientas: Internet Explorer, la Maquina Virtual de Microsoft, Applet de Java y Objetos incrustados en Flash. El invernadero virtual automatizado publicado en Internet como se puede observar en la Figura 3.18, est diseado en 3 secciones. En la parte superior se encuentra el invernadero en 3D, en la parte inferior se encuentra dividido en 2 subsecciones, mientras que en la parte izquierda se puede ver los Instrumentos Virtuales en Flash de los datos

3. Arquitectura general del sistema.

31

obtenidos del invernadero fsico, y en la parte izquierda una presentacin del invernadero en forma minimizada as como tambin se usa para proveer informacin de cada componente del invernadero.

Figura 3.18: Invernadero virtual publicado en internet.

En la parte superior de la Figura 3.18, de la seccin del invernadero 3D, se publican los sensores, y los estados de las alarmas pero en formato de texto de color blanco. Suposicin se ubica en la coordenada XYZ en la parte inferior de la vista del usuario de acuerdo al movimiento del usuario que se desplaza en el mundo 3D virtual. Conclusin del captulo. Se tiene desde el desarrollo del diseo del invernadero en 3D Max, como la adquisicin de los datos por medio de la herramienta LabVIEW y la modicacin y desarrollo del comportamiento del invernadero utilizando Java y EAI.

Captulo 4 Integracin de comunicacin: Sistema Mnimo, LabVIEW, Mundo Virtual y Java.


Introduccin En este captulo veremos los temas de como se integro cada uno de las diferentes partes del prototipo en cuanto a la comunicacin se reere entre cada una de ellas, el cual es la parte fundamental de este trabajo. Iniciando por el Mundo Virtual y Java.

4.1.

Comunicacin via EAI entre VRML y Java

En contexto para entender esta seccin tenemos que tener en cuenta que existe un Mundo Virtual diseado para un caso de estudio, el nuestro sera el diseo de un invernadero, donde las formas representadas en este diseo son: los mdulos del invernadero con domo, cortinas de los domos, cortinas principales, tinacos, calentadores, etc.. Donde del otro lado del eslabn se tienen datos, en el cual nos dice: cul es el tiempo horario, la temperatura, la humedad, la velocidad del viento, su direccin, el nivel de agua del tinaco, informacin sobre las alarmas activadas y el comportamiento que debe de realizar el invernadero virtual en cuanto su actuacin. A continuacin se vern los mtodos para poder comunicar los 2 eslabones los cuales son: el Mundo Virtual de un lado y los datos obtenidos del invernadero fsico en el otro extremo. Los mtodos de comunicacin para un mundo virtual utilizando EAI son los que se muestran en la Figura 4.1. 33

34

4.1. Comunicacin via EAI entre VRML y Java

Figura 4.1: Mtodos de comunicacin en VRML via EAI.

El mtodo de la Figura 4.1 seccin A) el comportamiento queda establecido por el programador y la activacin, el cual solamente existir en forma declarada en la pgina web y el navegador 3D activara este de acuerdo a una condicin establecida desde que se cargue el archivo VRML. En el mtodo 4.1.B) los efectos o comportamientos son dados desde un archivo externo a la pgina web con extension .JS (Archivo de funciones de JavaScript), pero los comportamientos son iguales al primer mtodo. En los dos primeros mtodos no se usa el plugin de la MVM (Microsoft Virtual Machine) como se puede observar en los mtodos 4.1.C) y 4.1.D). Debido a esta propiedad se decidi tomar la comunicacin y modicacin del mundo virtual con el mtodo 4.1.C), que es el ms completo para nes de este proyecto de tesis. Un ejemplo sencillo de la comunicacin VRML y Java mediante el EAI se muestra a continuacin con el cdigo fuente.

4. Integracin de comunicacin: Sistema Mnimo, LabVIEW, Mundo Virtual y Java.35

<EsferaApplet.java> inicio del archivo

import java.awt.; import java.applet.; import java.awt.event.; import vrml.external.; import vrml.external.eld.; import vrml.external.exception.; public class EsferaApplet extends Applet implements ActionListener{ Browser myBrowser = null; EventInSFColor esferaColor = null; EventInSFVec3f esferaScale = null; oat esfera_Color[] = new oat[3]; oat esfera_Scale[] = new oat[3]; Button Red=null; Button Green=null; Button Yellow=null; Button Scale_X=null; Button Scale_Y=null; Button Scale_Z=null; public void init() { this.setLayout(new GridLayout(2,3,10,10)); this.setBackground(Color.white); this.setForeground(Color.black); Font F1=new Font(Helvetica, Font.BOLD + Font.ITALIC,16); this.setFont(F1); add(Red=new Button(Rojo)); add(Green=new Button(Verde)); add(Yellow=new Button(Amarillo)); add(Scale_X=new Button(Scalar_X)); add(Scale_Y=new Button(Scalar_Y)); add(Scale_Z=new Button(Scalar_Z)); Red.addActionListener(this); Green.addActionListener(this); Yellow.addActionListener(this); Scale_X.addActionListener(this); Scale_Y.addActionListener(this); Scale_Z.addActionListener(this); } public void start() { for(int i = 0; i <20; i++) { try { myBrowser = Browser.getBrowser(this); } catch(Exception e) { e.printStackTrace(); } if(myBrowser = null) break; try { Thread.sleep(500); } catch(InterruptedException e) {} } Node esferaMaterial =myBrowser.getNode(esferaMaterial); try { esferaColor=(EventInSFColor)esferaMaterial.getEventIn (diuseColor); } catch (InvalidEventInException iee) { iee.printStackTrace();} Node esferaTransform=myBrowser.getNode(esferaTransform); try { esferaScale = (EventInSFVec3f)esferaTransform.getEventIn ("set_scale"); } catch (InvalidEventInException iee) { iee.printStackTrace();} } public void stop() { myBrowser = null; esferaColor = null; esferaScale = null; } public void actionPerformed(ActionEvent event) { Object buttonName = event.getSource(); if (buttonName==Red) { esfera_Color[0] = 1; esfera_Color[1] = 0; esfera_Color[2] =0; try { esferaColor.setValue(esfera_Color); } catch (IllegalArgumentException iae) {iae.printStackTrace();} } else if (buttonName==Green) { esfera_Color[0] = 0; esfera_Color[1] = 1; esfera_Color[2] =0; try { esferaColor.setValue(esfera_Color); } catch (IllegalArgumentException iae) {iae.printStackTrace();} } else if (buttonName==Yellow) {

esfera_Color[0] = 1; esfera_Color[1] = 1; esfera_Color[2] =0; try { esferaColor.setValue(esfera_Color); } catch (IllegalArgumentException iae) {iae.printStackTrace();} } else if (buttonName==Scale_X) { esfera_Scale[0]=0.5f; esfera_Scale[1]=1f; esfera_Scale[2]=1f; try { esferaScale.setValue(esfera_Scale); } catch (IllegalArgumentException iae) {iae.printStackTrace();} } else if (buttonName==Scale_Y) { esfera_Scale[0]=1f; esfera_Scale[1]=0.5f; esfera_Scale[2]=1f; try { esferaScale.setValue(esfera_Scale); } catch (IllegalArgumentException iae) {iae.printStackTrace();} } else if (buttonName==Scale_Z) { esfera_Scale[0]=1f; esfera_Scale[1]=1f; esfera_Scale[2]=0.5f; try { esferaScale.setValue(esfera_Scale); } catch (IllegalArgumentException iae) {iae.printStackTrace();} } } }

n del archivo <vrmlesfera_EAI.wrl> inicio del archivo #VRML V2.0 utf8 Viewpoint { position 0 0 10 } Background { skyColor [1 1 1] groundColor [1 1 1] } NavigationInfo { type [ "NONE"] } DEF esferaTransform Transform { translation 0 2 1 rotation 0 1 0 0.3 children [ Transform { rotation -1 0 0 -1.57 children [ Shape { appearance Appearance { material DEF esferaMaterial Material { diuseColor 0.0471 0.471 0.549 shininess 0.67 transparency 0 } } geometry DEF esfera Sphere { radius 1 } } ] } ] }

n del archivo <vrmlesfera.html> inicio del archivo <html> <head><title>VRML Esfera</title></head> <body> <center> <EMBED SRC=vrmlesfera_EAI.wrl Width=400 Height=300> <BR><BR> <APPLET CODE=EsferaApplet.class Width=300 Height=80 mayscript> </APPLET> </center> </body> </html>

n del archivo

36

4.1. Comunicacin via EAI entre VRML y Java

Figura 4.2: Pgina HTML con VRML y un Applet utilizando EAI.

Este ejemplo ilustra de la Figura 4.1 uno de los mtodos existentes para la modicacin del mundo virtual por un applet de Java. Con otra tcnica, ya mencionada, se puede hacer lo anterior mediante un Javascript. Y el mtodo 4.1.D) es programado en java pero extendido a funciones de Javascript. La diferencia entre el mtodo 4.1.C) y este radica en que es manejado como un script en el archivo VRML. Donde es modicado por medio de el mtodo el cual es activado por el tiempo especicado en la programacin en VRML para la nueva adquisicin de los datos. No se utiliza este mtodo por cuestiones de no sobrecargar el navegador 3D en realizar ms tareas que retardaran la visualizacin 3D.

4.1.1.

Comunicacin de datos LabVIEW y Java.

La comunicacin entre LabVIEW y Java se realiza mediante la generacin de un archivo de texto en el cual este se encuentra estructurado de forma siguiente por ejemplo: 1.- Temperatura, 2.- Velocidad del Viento, 3.- Radiacin Solar, 4.- Humedad, 5.Nivel de Agua en el Tinaco, 6.- Direccin del Viento, 7.- Alarma en Cortinas, 8.- Domo, 9.- Sombra, 10.- Calentador, 11.- Bomba, 12.- Hora:Minutos:Mes:Da. Es archivo es generado y reemplazado por LabVIEW cada 4 segundos, en la direccin publicada de la web. El archivo es ledo por un applet de Java cada segundo para obtener nuevos datos y modicar el mundo via EAI.

Tcnicas avanzadas para entrada y salida en archivos Cuando se implementan subVis para archivos de I/O, se puede necesitar contar con diferentes formatos de archivos [Headquarters, 2000]. Por ejemplo, si una tercera aplicacin necesitara leer datos adquiridos por LabVIEW , se podra guardar los datos en formato de texto porque las dems aplicaciones tienen soporte para archivos de texto. Por otra parte, si solamente LabVIEW tiene acceso a los datos, y el tamao del archivo es crtico, el realizar la conversion binario es una mejor opcin. Las tcnicas avanzadas de entrada-salida del archivo y las funciones incorporadas de I/O del archivo permiten esta exibilidad. A continuacin se explica el uso de funciones de I/O de archivo las cuales fueron utilizadas en este proyecto de tesis. El lugar de Abrir/Crear/Reemplazar un archivo VI, esta localizado en las herramientas de las funciones > Archivos I/O paleta, sobre el diagrama de bloques. Este VI crea o

4. Integracin de comunicacin: Sistema Mnimo, LabVIEW, Mundo Virtual y Java.37

reemplaza un archivo. Abre un archivo existente, crea un nuevo archivo, o reemplaza un archivo existente, esto puede ser programado o usando una interaccin con una caja de dilogo del archivo.

Figura 4.3: Bloque de abrir o crear archivo.

Las entradas del bloque de la Figura 4.3 empezaremos por Pattern despliega en una caja de dilogo las restricciones de los archivos para aquellos de quienes el nombres equivalente del formato. El formato no es una restriccin de los directorios mostrados. La equivalencia del formato en estas funciones es similar para la equivalencia usada en congruencia procesadores de texto en los nombres de los archivos en Windows y UNIX. Las restricciones de los archivos mostrados en la caja de dilogo para aquellos los cuales los archivos concuerden con el formato. Los formatos no tienen restricciones de los directorios mostrados. El formato concuerdan en la funcin siendo similar para la concordancia usada en el procesador de texto en los nombres de archivos en windows y UNIX. Si se especica con una marca de carcter como el de pregunta (?) o un asterisco (*), la funcin mostrar solamente archivos o directorios que contengan esos caracteres. Se puede utilizar el (?) para que concuerde con una sencillo carcter. Se puede utilizar el uso del asterisco (*) para que concuerde con una secuencia de uno o ms caracteres. Continuaremos luego con prompt es el mensaje que aparece citado anteriormente listando archivos y directorios, o carpetas, en la caja de dilogo. Como le path es el nombre y direccin de la ubicacin del archivo. Si el le path esta vaci (default) o no tiene path, el VI despliega una cuadro de dilogo donde se puede seleccionar un archivo. Ocurre un error nmero 43 si se cancela el cuadro de dilogo. As tambin cuando no se especica la entrada anterior utilizamos start path (Not A Path): desplegara el directorio donde inicializara la direccin, o carpeta donde esta el archivo en una caja de dilogo. Luego continuamos con function (open:0): esta son las operaciones a efectuar. La entrada de error in (no error) describe las condiciones de error que ocurren despus de la ejecucin del VI o funcin. Por default no existe un error. Si un error ocurre despus de ejecutar el VI o la funcin, el VI o funcin pasa el valor del error a una salida de error. Este VI o funcin normalmente se ejecuta solo si no ocurre un error despus de la ejecucin. Y luego con default name es el nombre inicial que se desea que aparezca del archivo o del directorio en la caja de dilogo. Por defecto la cadena es vaca. Y por ltimo de las entradas con advisory dialog? (displat:T) si esta activado (que es por defecto), el VI mostrar una caja de dilogo cuando la funcin sea 0 o 4 cuando el archivo no existe, o cuando la funcin sea 2 o 3 cuando el archivo existe. En cuanto a las salidas de este bloque empezaremos con refnum es el nmero de referencia del archivo abierto. El valor no es un Refnum si el archivo no

38

4.1. Comunicacin via EAI entre VRML y Java

0 1 2

3 4

Tabla 4.1: Function Open Abre un archivo existente. Error 7 ocurre si el archivo no es encontrado. Abre un archivo existente o crea un nuevo archivo si este no existe. Crea un nuevo archivo o reemplaza un archivo si este existe y pide un permiso. Este Vi reemplaza un archivo para abrir usa la conguracin del n del archivo como 0. Ocurre el error 43 si no selecciona el aviso de reemplazo con un cuadro de dilogo. Crea un nuevo archivo. Ocurre un error 8 si el archivo ya existe. Abre un archivo existente para lectura solamente. Ocurre un error 7 si el archivo no existe.

pudo ser abierto. Luego con new le path es la ubicacin de el archivo a abrir o crear. Se puede usar esta salida para determinar la ubicacin de un archivo que se abri o creo usando una caja de dilogo. La caja de dilogo no retorna una nueva ubicacin de un archivo si selecciona Cancelar. Como tambin con le size (bytes) es el tamao del archivo en bytes. Es tambin la locacin de el n del archivo. Y por ltimo con error out el cual contiene la informacin del error. Si un error ocurre este indica que error se produjo despus de ejecutar el VI o la funcin, error out contiene la informacin del error. Como tambin describe el estado del error que se produjo en el VI o la funcin. En la Figura 4.4 se observa la funcin del bloque de escritura de archivos. Se iniciar con las entradas en la cual la primera llamada convert eol (F) determina tanto la funcin de conversion del n de marcadores de lnea que escriben dentro el sistema con lneas de marcadores el n. Un n de lnea marcado es una retorno de carro por una lnea para abajo en Windows, un retorno de carro en Mac OS, y una lnea para abajo en UNIX. El LabVIEW marca un n de lnea con una lnea para abajo. Si convierte eol en Verdadero, la funcin convierte todos los marcadores de lnea escritos dentro del sistema con marcadores de n de lnea. Si convierte eol en Falso (por defecto), la funcin no convertir sino que escribir los nes de lnea con marcadores. Observe que estos parmetros solamente son aplicables con archivos de texto. No alambre cuando trabaje con archivos binarios. La entrada header (F) se utiliza cuando se realiza el cableado si el tipo de datos es de alto nivel y tamao de variable, lo cual ocurre si el dato es una cadena o un arreglo. Si el alto nivel de tipo del dato es una cadena o un arreglo, la funcin puede escribir una cabecera para que el archivo especique el tamao de los datos. Posteriormente, si se desea leer la cadena o arreglo es regresado como un objeto simple, poniendo la cabecera en Verdadero. Si la cabecera esta en Verdadero, la funcin escribe los tipos de datos en alto nivel de datos con una cabecera especica su tamao. La cabecera debe de ser Verdadero para escribir una salida de estructura dinmica. Si la cabecera esta en Falso (por defecto), la funcin escribe datos de alto nivel pero sin una cabecera. LabVIEW siempre escribe un tamao de variable del tipo de datos debajo del alto nivel (que contenga dentro del tipo de datos de alto nivel) con una cabecera

4. Integracin de comunicacin: Sistema Mnimo, LabVIEW, Mundo Virtual y Java.39

especicando su tamao. Y proseguimos con refnum es el archivo asociado refnum con el archivo que se desea escribir. Si refnum especica un byte stream le, la funcin se escribe para una locacin especicada por pos mode y pos oset dentro del archivo. Si el tipo de datos es de alto nivel del tamao de las variables de los datos, tal como un arreglo de cadena, la funcin puede escribir una cabecera para especicar el tamao de datos en el archivo. Como tambin con la entrada de pos mode (0:2) conjuntamente con pos oset, especica donde la operacin de lectura o escritura inicia. Si se cablea pos oset, pos mode por defecto es 0, y oset es relativo para el inicio del archivo. Si no se cablea pos oset, es por defecto 0, pos mode por defecto es 2, y la operacin inicia en la siguiente marca del archivo. Junto con pos oset (0) especica como la distancia de la locacin especicada por Tabla 4.2: Pos mode InicioLa operacin inicia el inicio de la cantidad del archivo pos oset. Si pos mode es 0 pos oset debera ser positivo. FinLa operacin inicia el n de la cantidad del archivo pos oset. Si pos mode es 1, pos oset debera ser negativo. ActualLa operacin inicia la locacin actual de la marca de la cantidad del archivo pos oset.

0 1 2

pos mode inicia para la lectura o escritura. Se expresa pos oset dentro unidades de bytes. Por defecto es 0. Si no se cablea pos mode or pos oset, las funciones de lectura o escritura de los datos siguientes para los dems datos recientemente ledos o escritos. Tambin con error in describe las condiciones de error que ocurren despus de la ejecucin del VI o funcin. Por default no existe un error. Si un error ocurre despus de ejecutar el VI o la funcin, el VI o funcin pasa el valor del error a una salida de error. Este VI o funcin normalmente se ejecuta solo si no ocurre un error despus de la ejecucin. Y por ltimo con data contiene los datos pare escribir al archivo y puede ser cualquier tipo de dato. Para ejecutar I/O orientado-carcter, se cablea una cadena de datos y no se cablea una cabecera, porque por defecto este es Falso. El VI escribe los datos de caracteres en secuencia fuera de cualquier informacin de cabecera. Si refnum es un archivo de datalog refnum, los datos deberan ser cualquier tipo de datos que concuerde con los tipos de datos especicados cuando se abra o cree el archivo o arreglo de semejante tipo de datos. Dentro de lo anterior, la funcin de escritura de datos como un registro nico en el archivo datalog. Si es necesario, la funcin datos numrica obligar la representacin de los tipos de datos de este parmetro. Dentro del caso anterior, esa funcin escribir cada elemento de datos como un registro separado en el archivo datalog en el orden la-campo. As proseguimos con las salidas de este bloque los cuales son los que a continuacin se presentan, iniciando con dup refnum regresa un refnum sin alteraciones. Continuando con oset indica la nueva locacin de la marca relativa del archivo para el inicio del archivo (base-cero). oset esta expresado en los mismos trminos pos oset, que es, bytes por bytes corriendo los registros para

40

4.1. Comunicacin via EAI entre VRML y Java

el archivo datalog. Y terminando con error out el cual contiene la informacin del error. Si un error ocurre este indica que error se produjo despus de ejecutar el VI o la funcin, error out contiene la informacin del error. Como tambin describe el estado del error que se produjo en el VI o la funcin. El indicador refnum es la referencia de un archivo abierto. La escritura comienza en una localizacin especicada por pos mode y pos oset y la posicin para los archivos de byte stream y en el extremo del archivo para los de datalog. Los datos, cabecera y el formato del archivo especicado determinan la cantidad de datos escritos.

Figura 4.4: Bloque de escribir en el archivo.

Como se observa en la Figura 4.5 explicaremos las entradas y salidas del ltimo en bloques de correspondientes a los archivos, as iniciaremos con refnum es el archivo refnum asociado con el archivo que se desea cerrar. Y nalizando las entradas con error in describe las condiciones de error que ocurren despus de la ejecucin del VI o funcin. Por default no existe un error. Si un error ocurre despus de ejecutar el VI o la funcin, el VI o funcin pasa el valor del error a una salida de error. Este VI o funcin normalmente se ejecuta solo si no ocurre un error despus de la ejecucin. As como sus salidas empezando con path es la correspondiente ubicacin del refnum. Y terminando con error out el cual contiene la informacin del error. Si un error ocurre este indica que error se produjo despus de ejecutar el VI o la funcin, error out contiene la informacin del error. Como tambin describe el estado del error que se produjo en el VI o la funcin. Cierra un archivo abierto especicado por refnum y vuelve la ubicacin del archivo asociado al refnum. La entrada-salida del error funciona nicamente en esta funcin, sin importar cul se cierra si un error ocurri en una operacin precedente. Esto asegura de que los archivos estn cerrados correctamente.

Figura 4.5: Bloque de Cerrar archivo.

A continuacin se presenta un ejemplo de la ayuda de Labview [Corporation, 2004a] del uso de estas funciones en programacin por bloques, en el ejemplo se crea y reemplaza un archivo llamado TextFile.txt. Como se observa en la Figura 4.6 el programa de bloques esta congurado de tal manera que pida una autorizacin de la creacin de un archivo llamado TextFile.txt,

4. Integracin de comunicacin: Sistema Mnimo, LabVIEW, Mundo Virtual y Java.41

Figura 4.6: Diagrama por bloques. Seccin de Archivos.

se genera una seal de onda simulada el cual por cada interaccin de las 10 que se encuentran, esta seal tiene 10 puntos de esa seal, por cada interaccin se le aade un nuevo rengln de 10 datos junto con el tiempo. Y al nal se cierra el archivo, cada ciclo tiene un retardo de 500.

4.1.2.

Sistema Mnimo.

En contexto se cuenta con un protocolo de comunicacin serial distribuida basada en sistemas mnimos que nos permite la adquisicin de variables fsicas dentro y fuera de un invernadero [Laura Muoz Hernndez, 2005]. Estas variables fsicas internas sern controladas en funcin de las condiciones climatolgicas externas medidas a travs de una estacin meteorolgica y de accionamiento de los actuadores. El sistema mnimo est basado en el microcontrolador PIC16F877, el cual tiene habilitado 6 entradas analgicas, entradas/salidas digitales para el mdulo de Display de cristal lquido (LCD), teclado matricial, adems de dos mdulos de comunicacin serial (USART,I2C).

Figura 4.7: Diagrama de pines del PIC16F877

Estacin Meteorolgica. Basada en el sistema mnimo, su funcin principal es la de adquirir las variables fsicas proporcionadas por los sensores de humedad, temperatura, radiacin solar y velocidad del viento entre otros, para que puedan posteriormente ser visualizadas en un ambiente virtual como el explicado anteriormente.

Figura 4.8: Estacin meteorolgica

42

4.1. Comunicacin via EAI entre VRML y Java

Comunicacin Serial Distribuida. Constituida por un sistema mnimo Maestro y cuatro sistemas mnimos Esclavos bajo la norma RS-485, se realiza la comunicacin multipunto. El Maestro a travs de identicadores, selecciona al esclavo deseado, sin que algn otro interera en dicha comunicacin.

Esquema General. Como se observa en la Figura 4.9, la arquitectura serial distribuida que consiste en un sistema Maestro conectado mediante un bus a los cuatro sistemas Esclavos y a una computadora personal. El Maestro sirve de rbitro entre la PC y los esclavos, que se conectan con los sensores y actuadores.

Figura 4.9: Arquitectura Serial Distribuida

4.1.3.

Publicacin Web del invernadero virtualizado.

Para la publicacin del invernadero se hace uso de las conguraciones que se pueden congurar en LabVIEW para levantar el servidor HTML en la carpeta denida por default. En la barra principal de menu en la etiqueta de Tools y a continuacin seleccionan la etiqueta Web Publishing Tool a continuacin aparece una ventana de dilogo de la herramienta de publicacin web como se observa en la Figura 4.10, se elige el botn con la etiqueta de Star Web Server. Y con esto se inicializa la publicacin web utilizando Labview. Con esta conguracin realizada queda congurado el servicio de publicacin web, de esta manera que cada vez que se inicialice LabVIEW se auto iniciar el servicio. Figura 4.10: Conguracin Web

Antes de levantar el servicio web, no debe de existir otra aplicacin realizando dicho servicio o provocar conictos con LabVIEW. Conguracin de LabVIEW. La conguracin en LabVIEW fue la siguiente: en el acceso de redes por TCP/IP se debe aadir acceso a localhost y a todos con un asterisco.

4. Integracin de comunicacin: Sistema Mnimo, LabVIEW, Mundo Virtual y Java.43

Pgina web. En la creacin de la visualizacin del invernadero en internet, este es publicado usando HTML, en donde los objetos incrustados son los de applet y un archivo VRML visualizado gracias a su plugin, as como tambin a un archivo en ash. En la Figura 4.11 se muestra la pantalla de la publicacin de la pgina web.

Figura 4.11: Invernadero publicado en la web.

Requerimientos. La mquina que va a fungir como servidor debe tener en requerimientos mnimos, windows 98, LabVIEW 6, lnea telefnica, servicio de internet, e instalacin elctrica. En cuanto a las mquinas clientes que se deseen conectar deben tener un navegador de internet que soporte applets de Java y el pluggin de 3D que sea compatible con la mquina virtual de Microsoft y con su debida conguracin del navegador web.

Captulo 5 Flujo de Datos.


Introduccin Hoy en da el manejo de la informacin es muy importante por la utilidad a la que podemos tener de ella de manera tal que se puede obtener resultados muy reveladores con respecto a la obtencin de informacin en forma de patrones repetitivos que antes no eran conocidos al hacer el anlisis de estos datos. Por eso en esta seccin se presentara el ujo de la informacin con respecto al caso de estudio.

5.1.

Flujo de Datos en General

El ujo de los datos del sistema del invernadero como se muestra en la Figura 5.1 se da desde su inicio a partir de los sensores que se encuentran en el invernadero el cual enva los datos por medio de los mdulos esclavos de manera distribuida y estos se comunican al mdulo maestro que manda los datos a la PC, en ese segmento los datos son adquiridos por el puerto RS-232 de la PC y la recepcin por la herramienta de LabVIEW .

Figura 5.1: Diagrama general del ujo de datos.

A continuacin se detallar el ujo de los datos por cada uno de los segmentos del sistema del invernadero. Iniciando por la adquisicin de los datos por medio de LabVIEW . Como se puede observar en la Figura 5.2, estn divididos en 3 secciones. La primera seccin corresponde a todo lo que el invernadero fsico tiene en sensores y actuadores, 45

46

5.1. Flujo de Datos en General

Figura 5.2: Diagrama general del ujo.

por ejemplo sensor de temperatura y actuador de cerrado de cortinas. En la segunda seccin todo lo que corresponde a la herramienta de LabVIEW que se utiliz para adquisicin de datos por medio del puerto serial. Y por ltimo en la tercera seccin la adquisicin de datos por medio de java y la modicacin del mundo con comportamiento en la publicacin de los VIs en Internet. A continuacin se explicar cada una de las 3 secciones en lo que consta de su ujo de datos por separado. En la primera seccin como se puede ver en la Figura 5.3, se observa que todos los sensores y actuadores estn conectados a mdulos esclavos y se comunican con un modulo maestro el cual con ayuda de un protocolo de datos c.f. Apndice 2, los datos son respectivamente enviados con un inicio y n cada de cada sensor adquirido, cada uno con su medicin digital. Los Sistemas mnimos esclavos tienen a su cargo tres funciones principales. La primera consiste en adquirir datos provenientes de los sensores conectados a l. Tales sensores son los de humedad, temperatura, radiacin solar y direccin de viento. La segunda funcin consiste en enviar las seales adquiridas al sistema mnimo maestro. Y la tercera consiste en enviar seales de control a los actuadores, tales como lo motores, bombas. c.f. [America Saldaa Snchez, 2006].

Figura 5.3: Flujo de los datos desde los mdulos esclavos al modulo maestro.

Por su parte el sistema mnimo maestro tiene encomendada la tarea principal dentro del protocolo, ya que es el encargado de enviar las seales de acciones y peticiones al esclavo correspondiente dependiendo de las diferentes seales que le mande la PC. Es decir, si el usuario quiere conocer la temperatura que est midiendo el esclavo 1, la PC le enva un byte al maestro con dicha indicacin. El maestro por su parte, identica a que esclavo corresponde el byte recibido e inmediatamente despus enva la direccin (ID) del esclavo en 9 bits, en este caso el esclavo 1. Todos los esclavos reciben dicha direccin, pero solamente el esclavo 1 la toma, para posteriormente enviarle el ltimo valor que adquiri de la temperatura. El modulo maestro tanto recibir informacin de los sensores como tambin enviar seales de activacin a los actuadores. La recepcin de los datos y envi de activacin de actuadores tambin puede realizarse desde LabVIEW.

5. Flujo de Datos.

47

La computadora personal (PC) tiene la funcin principal de servir como interfaz (desarrollada en LabVIEW) para el usuario. En esta interfaz se cuenta con los instrumentos virtuales y algoritmos adecuados para la supervisin y control de todo el sistema. Igualmente la PC sirve como una base de datos, en donde se guardan los datos obtenidos de las mediciones de los sensores y las accin de los actuadores en una base de datos en MySQL.

5.2.

Comunicacin

El protocolo de comunicacin est divido en dos partes: la comunicacin MaestroEsclavos, realizada bajo la norma de comunicacin RS-485 y la comuniacin Maestro-Pc, realiada bajo la norma RS-232. En el protocolo, lo primero que se realiza es la inicializacin de los Esclavos, en la cual se verica si no existe error en la comuniacin. Consiste en enviar del maestro a cada uno de los esclavos conectados, su ID de direccin en 9 bits y recibir un nmero de 8 bits de conrmacin. Si por algn motivo un esclavo no enviar el nmero de conrmacin al maestro, ste detecta el error y en adelante no lo toma en cuenta para realizar las acciones o peticiones hasta que sea corregido el error. Una vez concluida la etapa de inicializacin, los esclavos se encuentran congurados para recibir 9 bits e igualmente para detectar interrupciones por recepcin. Por lo tanto mientras no ocurra una interrupcin por recepcin los esclavos se encuentran adquiriendo datos provenientes de los sensores. Si en algn momento los esclavos reciben un dato de 9 bits, stos generan una interrupcin y verican dicho dato con su ID de direccin, si es igual, cambia la conguracin recepcin de 9 bits a 8 bits de recepcin e igualmente espera a que ocurra otra interrupcin. En sta ocasin, el esclavo estar esperando ya sea una peticin o una ejecucin de una accin segn el ID de dato que reciba. Una vez completada las accin o la peticin, el esclavo vuelve a su rutina principal de adquirir seales y espera un dato de 9 bits para generar una interrupcin. El maestro por su parte, una vez que termina la etapa de inicializacin, comienza una rutina de enviar peticiones a cada uno de los esclavos. Para ello, primeramente enva el ID de direccin del esclavo, posteriomente enva el ID del dato que requiera en 8 bits y espera que el esclavo le responda. Si el tiempo de espera excede un tiempo limite que se tiene programado, el maestro vuelve a enviar el ID del dato. Si vuelve

48

5.3. Flujo de datos en LabVIEW

excederse el tiempo, el Maestro detecta un error de comunicacin entre ambos sistemas minimos. La ventaja de congurar de esta manera el PIC, es que nos da cierta autonoma, es decir, si fallara la comunicacin con la PC, el maestro no deja de estar recibiendo los datos de los sensores y por lo tanto puede tener una pequea ley de control en l para mandar seales adecuadas a los actuadores. Para hacer la comunicacin maestro-PC se utilizaron los Instrumentos virtuales de LabView para poder enviar y recibir del puerto serial.

5.3.

Flujo de datos en LabVIEW

En la segunda seccin el ujo de datos es recibido y enviado por una Pc por medio del puerto serial, haciendo uso de LabVIEW el cual primero obtiene el dato y respectivamente realiza la conversin de este. Estos datos obtenidos del sensor es una transmisin en tipo bit y con la conversion de estos se deduce el valor en nmeros reales (Figura 5.4).

Figura 5.4: Adquisicin de datos utilizando LabVIEW y bloques VISA.

Como se observa en la Figura 5.4, el diagrama de bloques la conversion de datos. Para el caso de la lectura del buer del VISA Read, la cadena de caracteres que lee (cdigo ASCII) del puerto, es convertida a tipo de dato numrico para que pueda ser visualizado en los instrumentos virtuales, es decir, para el caso de la temperatura el dato ledo en ASCII se convierte al valor numrico equivalente y as puede ser visualizado en un termmetro virtual. Posteriomente se realiza la representacin de los valores obtenidos con los VIs en LabVIEW como se puede ver en la Figura 5.5 y con parmetros de control se activan los actuadores con respecto a como debe de funcionar.

Figura 5.5: Instrumentacin Virtual en LabVIEW.

Despues se guardan los valores para las acciones que seran realizadas en un archivo de texto para realizar una publicacin en internet de la automatizacin del invernadero, la representacin del invernadero automatizado y la publicacin en internet de los

5. Flujo de Datos.

49

instrumentos virtuales se puede ver en la Figura 5.6.

Figura 5.6: Invernadero e Instrumentacin Virtual en Internet.

5.4.

Flujo datos con Java

Una parte fundamental de la realizacin de la representacin del invernadero automatizado que es publicado en internet, es gracias a un applet de java que modica el mundo virtual utilizando los valores anteriormente mencionados que son guardados en un archivo de texto plano.

Figura 5.7: Applet publicado manejador del comportamiento.

El applet tiene puede observar en la Figura 5.7 donde este presenta informacin inicial de la obtencion de los nodos a modicar inicialmente y posteriormente solo presenta los datos adquiridos. Como se observa en la Figura 5.8, en el diagrama de adquisicin de datos por medio de un applet de java, los datos son adquiridos por el applet en java desde el archivo creado por LabVIEW en el directorio donde es publicado el invernadero virtual en VRML, haciendo uso de hilos es posible realizar la lectura del archivo cada segundo, porque as la lectura completa tiene 4 oportunidades de lectura exitosa, porque estara en espera de nuevos datos guardados por LabVIEW. As le ledos los datos estos son almacenados en un arreglo para no tener en uso el archivo y este pueda ser modicado as sea su caso. Se procede a modicar el mundo virtualizado gracias al EAI donde tenemos los nodos que vamos a modicar de acuerdo a los datos obtenidos y generar as un comportamiento en el mundo virtual del invernadero automatizado.

Figura 5.8: Diagrama de Adquisicin de datos en Java.

En forma general por ahora se ha hablado de la representacin del invernadero automatizado en internet y que este se simulara el comportamiento del invernadero real,

50

5.5. Almacenamiento de Datos a Mysql

pero no de su control del invernadero fsico desde el invernadero publicado en internet, que es a lo que nalmente se tratar de llegar. El control del invernadero automatizado es realizado de manera directa desde el microcontrolador PIC del sistema mnimo de la unidad metereolgica, utilizando un automata de acuerdo a las condiciones ptimas para una plantacin de tomates. Las razones por las cuales el control del invernadero automatizado no es desde la una PC utilizando un programa de adquisicin de datos como la herramienta de que mencionamos como LabVIEW es por la inestabilidad del Sistema Operativo, como tambin que una sola maquina tiene muchas tareas o servicios que esta realizando por razones econmicas de no tener mas de un equipo realizado cada uno de los servicios o tareas. A continuacin se presenta el cdigo de un programa en java el cual tiene dos funciones importantes en donde la primera funcin es la del registro de todos los datos obtenidos del archivo generado por LabVIEW en una base de datos en MySQL para tener un historial de las variables climatolgicas, alarmas generadas, como tambin las acciones de los actuadores. La segunda funcin del programa es generar otro archivo con un formato aceptado por la animacin en ash que muestra los VIs del invernadero y sus alarmas, de los datos del archivo generado por LabVIEW.

5.5.

Almacenamiento de Datos a Mysql

En esta seccin se explicar un programa que nos ayuda a registrar todos los datos adquiridos a una base de datos en Mysql. El programa fue elaborado en Java porque para realizarlo en LabVIEW es necesario adquirir libreras que no son libres. Iniciando por la importacin de libreras de las clases necesarias las cuales son las siguientes, la clase java.sql para almacenar los datos en una base de datos, la clase java.io para la lectura y escritura de datos en un archivo y por ltimo la clase java.util, para parmetros de la fecha.
import java.io.*; import java.util.*; import java.sql.*;

La clase jijiji es la clase principal de este programa. Inicialmente se construye un objeto de la clase Base_Datos y otro objeto de la clase Hilo. En donde se llama utiliza la funcin start del objeto Hilo para inicializar un conteo de segundos.

5. Flujo de Datos.

51

class jijiji{ public static void main(String args[]) { Bases_Datos t= new Bases_Datos(); Hilo c= new Hilo (t); c.start(); } }

La clase Base_Datos tiene varias funciones, inicialmente consulta el archivo, y guarda los valores en un arreglo para realizar una comparacin entre datos anteriores y los actuales, as de poder vericar si los datos han cambiado. Posteriormente se procede a la modicacin del archivo de texto plano, utilizando el formato de Flash para la adquisicin de variables, haciendo que los VIs se refresquen con respecto a los datos adquiridos. Como se puede ver en la columna izquierda, las variables de los datos tienen que iniciar con el signo de pesos $ junto el nombre de la variable, el signo & es utilizado para indicar que existe otra variable, una concatenacin de variables, un ejemplo del formato es el siguiente: $temperatura=16.0&$humedad=5.0.
class Bases_Datos extends Exception { static double datos[] = new double[15]; static double aux[] = new double[15]; static String bd = Invernadero; static String login = root; static String password = ; static String url = jdbc:mysql://localhost/ + bd; public synchronized void iniciar () throws IOException { String archivo_lec; String archivo_esc; archivo_lec = datos.txt; archivo_esc = datosash.txt; java.util.Date d; long time = System.currentTimeMillis(); FileReader fr = new FileReader (archivo_lec); BueredReader br = new BueredReader(fr); String buf; int cont = 0; System.out.println(Leyendo el archivo \n); while ( ( buf = br.readLine() ) = null) { if(cont <= 10) { aux[cont] = Double.parseDouble(buf); } cont++; } br.close(); fr.close();

52

5.5. Almacenamiento de Datos a Mysql

if( (datos[ 0 ] == aux[ 0 ]) && (datos[ 1 ] == aux[ 1 ]) && (datos[ 2 ] == aux[ 2 ]) && (datos[ 3 ] == aux[ 3 ]) && (datos[ 4 ] == aux[ 4 ]) && (datos[ 5 ] == aux[ 5 ]) && (datos[ 6 ] == aux[ 6 ]) && (datos[ 7 ] == aux[ 7 ]) && (datos[ 8 ] == aux[ 8 ]) && (datos[ 9 ] == aux[ 9 ]) && (datos[ 10 ] == aux[ 10 ] )) { } else { cont = 0; fr = new FileReader (archivo_lec); FileWriter fw = new FileWriter (archivo_esc); br = new BueredReader(fr); BueredWriter bw = new BueredWriter(fw); while ((buf = br.readLine()) = null) { if(cont == 0) { bw.write($tem=+buf+ \n); datos[cont] = Double.parseDouble(buf); cont++; } else if(cont == 1) { bw.write(&$viento= + buf + \n ); datos[ cont ] = Double.parseDouble( buf ); cont++; } else if(cont == 2) { bw.write(&$radiacion= + buf + \n); datos[ cont ] = Double.parseDouble( buf ); cont++; } else if(cont == 3) { bw.write(&$humedad= + buf + \n); datos[ cont ] = Double.parseDouble( buf ); cont++; } else if(cont == 4) { bw.write(&$tinaco= + buf + \n); datos[ cont ] = Double.parseDouble( buf ); cont++; } else if(cont == 5) { bw.write(&$direc_v= + buf + \n); datos[ cont ] = Double.parseDouble( buf ); cont++; } else if(cont==6) { bw.write(&$cort_prin= + buf + \n); datos[ cont ] = Double.parseDouble( buf ); cont++; } else if(cont == 7) { bw.write(&$cort_domo= + buf + \n); datos[ cont ] = Double.parseDouble( buf ); cont++; } else if(cont == 8) { bw.write(&$sombra= + buf + \n); datos[ cont ] = Double.parseDouble( buf ); cont++; } else if(cont == 9) { bw.write(&$calefactor= + buf + \n); datos[ cont ] = Double.parseDouble( buf ); cont++; } else if(cont == 10){ bw.write(&$bomba= + buf + \n); datos[ cont ] = Double.parseDouble( buf ); cont++; } else if(cont >= 11){ datos[ cont ] = Double.parseDouble( buf ); cont++; } } d = new java.util.Date(time); String s = d.toString(); String[] fechaString = s.split( ); String[] horaS = fechaString[ 3 ].split(:); String horasS = horaS[ 0 ]; String segundosS = horaS[ 2 ]; String anhoS = fechaString[ 5 ]; bw.write(&$fecha = + datos[ 14 ] + / + datos[ 13 ] + / + anhoS + + datos[ 11 ] + : + datos[ 12 ] + : + segundosS); br.close(); bw.close(); fr.close(); fw.close(); Connection conn = null; try { Class.forName(com.mysql.jdbc.Driver).newInstance(); conn = DriverManager.getConnection(url,login,password); if (conn = null) { System.out.println(Conexin a base de datos + url + ... Ok); Statement stmt = conn.createStatement();

5. Flujo de Datos.

53

System.out.println(datos[ 0 ]= + datos[ 0 ] + datos[ 1 ]= + datos[ 1 ] + datos[ 2 ]= + datos[ 2 ] + datos[ 3 ]= + datos[ 3 ] + datos[ 4 ]= + datos[ 4 ] + \n datos[ 5 ]= + datos[ 5 ] + datos[ 6 ]= + datos[ 6 ] + datos[ 7 ]= + datos[ 7 ] + datos[ 8 ]= + datos[ 8 ] + \n datos[ 9 ]= + datos[ 9 ] + datos[ 10 ]= + datos[ 10 ] + datos[ 11 ]= + datos[ 11 ] + datos[ 12 ]= + datos[ 12 ] + \n datos[ 13 ]= + datos[ 13 ] + datos[ 14 ]= + datos[ 14 ]); PreparedStatement ps = conn.prepareStatement( INSERT INTO Tbl_Sensores + ( Fecha, Temperatura_int , Temperatura_ext , Humedad_int , Humedad_ext , Radiacion_solar_int , + Radiacion_solar_ext , Direccion_viento , Velocidad_viento , Nivel_tinaco , Niverl_cisterna) + VALUES( + anhoS + - + ( int )datos[ 13 ] + - + ( int )datos[ 14 ] + + ( int )datos[ 11 ] + : + ( int )datos[ 12 ] + : + segundosS + , + datos[ 0 ] + , 0.0, + datos[ 3 ] + , 0.0, + datos[ 2 ] + , 0.0, + datos[ 5 ] + , + datos[ 1 ] + , + datos[ 4 ] + , 0.0 );); ps.executeUpdate(); ResultSet res = stmt.executeQuery(Select * from Tbl_Sensores); res.close(); ps.close(); stmt.close(); conn.close(); } } catch( SQLException ex) { System.out.println( ex ); } catch( ClassNotFoundException ex) { System.out.println( ex ); } catch( InstantiationException ex) { } catch( IllegalAccessException ex) { } } } }

Posteriormente se realiza el cierre del archivo y continuamos con aadir el registro de los datos a una la de la base de datos con respecto a su fecha adquirida. La clase Hilo tiene un ciclo while innito, para ejecutar el mtodo iniciar de la case Base_Datos cada segundo.
class Hilo extends Thread { private Bases_Datos algo; public Hilo( Bases_Datos a ) { algo = a; } public void run() { while(true) { try { Thread.currentThread().sleep( 1000 ); } catch( InterruptedException e ) { } try { algo.iniciar(); } catch( IOException e ) { } } } }

54

5.6. Estructura de la Base de Datos

5.6.

Estructura de la Base de Datos

A continuacin se presenta la estructura de la base de datos en mysql donde se almacenaran los datos del invernadero junto con sus alarmas, variables climatologicas, y actuaciones del invernadero, as despus poder hacer un anlisis ms completo del comportamiento climatologico de la zona agropecuaria, como tambin del comportamiento funcionamiento del invernadero como tambin las alarmas provistas. Como se puede observar en la Tabla 5.1 la base de datos se llama Invernadero. mysql>show databases; 3 rows in set (0.00 sec) Tabla 5.1: Base Database Invernadero mysql test

A continuacin presentamos las tablas que contiene la base de datos Invernadero como se ve en la Tabla 5.2. En donde se encuentra la tabla tbl_actuadores la cual almacenara los datos de las acciones de los actuadores. Seguida de la tabla tbl_alarmas la cual consiste en almacenar las alarmas presentadas por el invernadero fsico. Y por ltimo la tabla tbl_sensores la cual alamcena los datos obtenidos por la unidad meteriologica ejemplo: la temperatura, humedad etc. . mysql>show tables; 3 rows in set (0.00 sec) Tabla 5.2: Tablas Tables_in_Invernadero tbl_actuadores tbl_alarmas tbl_sensores

A continuacin se describir la estructura de cada una de las tablas anteriores mencionadas. Para iniciar se describir la tabla de los actuadores llamada en mysql como

5. Flujo de Datos.

55

tbl_actuadores como se puede observar en la Tabla 5.3. mysql>describe tbl_actuadores; 5 rows in set (0.06 sec) Tabla 5.3: Tabla actuadores Field idreg Fecha Actuador Operacion Descripcion Type int(5) datetime char(20) char(20) char(250) Null Key PRI Default NULL 0000-00-00 00:00:00 Extra auto_increment

En esta tabla se tiene un campo que es clave llamado idreg que se auto incrementa cada vez que se agrega una nueva la. El siguiente campo es el de Fecha el cual con el formato de AAAA-MM-DD HH:MM:SS tendremos la hora y fecha exacta del la actuacion del invernadero. El campo Actuador nos indicara cual actuador entra en acccion. El campo Operacion nos describira la operacion a realizar. Y por ltimo el campo Descripcin nos describira en todo detalla desde el actuador su operacion a realizar con respecto a las variables climaticas de su actuacin. A continuacin presentamos la tabla de alarmas llamada en mysql tbl_alarmas como se puede observar la Tabla 5.4. mysql>describe tbl_alarmas; 4 rows in set (0.09 sec) Tabla 5.4: Tabla alarmas Field idreg Fecha Alarma Descripcion Type int(5) datetime char(20) char(250) Null Key PRI Default NULL 0000-00-00 00:00:00 Extra auto_increment

Como se puede observar en la Tabla 5.4 tenemos los siguientes campos de idreg, Fecha, Alarma y Descripcin. Donde idreg es el campo clave de la tabla, generando la numeracin automanticamente. El campo Fecha nos da la informacin del tiempo

56

5.6. Estructura de la Base de Datos

del momento en que se genero la alarma. El campo Alarma nos da informacin de que alarma se fue activada. Y el campo de Descripcin contiene la informacin de la alarma que se activo, la fecha en que fue activada y a que posible evento lo ocasiono. A continuacin presentamos la tabla de sensores llamada en mysql tbl_sensores como se puede observar la Tabla 5.5. mysql>describe tbl_sensores; 12 rows in set (0.09 sec) Tabla 5.5: Tabla sensores Field idreg Fecha Temperatura_int Temperatura_ext Humedad_int Humedad_ext Radiacion_solar_int Radiacion_solar_ext Direccion_viento Velocidad_viento Nivel_tinaco Nivel_cisterna Type int(5) datetime oat oat oat oat oat oat oat oat oat oat Null Key PRI Default NULL 0000-00-0000:00:00 0 0 0 0 0 0 0 0 0 0 Extra auto_increment

En la Tabla 5.5 se tienen los campos que se observan en la tabla. El cual el idreg guarda la informacin del nmero de registro y se genera de manera automtica. El campo Fecha guarda el momento en que alguno de los sensores captara informacin diferente a un tiempo anterior. El campo Temperatura_int guarda la informacin de la temperatura interior del invernadero. El campo Temperatura_ext almacena la temperatura del exterior del invernadero. El campo Humedad_int almacena la humedad capturada por el sensor en el interior del invernadero. El campo Humedad_ext almacena la humedad en su exterior del invernadero. El campo Radiacion_solar_int almacena los datos correspondientes al nivel de iluminacin interior del invernadero. El campo Radiacion_solar_ext almacena informacin de la iluminacin exterior del invernadero. El campo Direccion_viento almacena la informacin de la direccin del viento que en ese momento se encuentra. El campo Velocidad_viento almacena la informacin de la velocidad en la que se encuentra el viento. El campo Nivel_tinaco almacena la informacin correspondiente al nivel de agua en que se encuentra en el tinaco en unidades porcentuales. El campo Nivel_cisterna almacena la informacin del nivel de agua con la que se cuenta en la cisterna en unidades porcentual.

5. Flujo de Datos.

57

5.7.

Pruebas Realizas

La prueba realizada del conjunto de la unidad Metereologica, con el equipo que adquiere los datos desde LabVIEW, como tambin una conexin en red a esa maquina para el acceso por medio de la intranet como se ve en la Figura 5.9 fue presentado en funcionamiento en la Exposicin de Propiedad Intelectual efectuada el 2 de junio del 2006 que se llevo a cabo en la Universidad Autnoma del Estado de Hidalgo campus virtual. Las pruebas elaboradas del funcionamiento no solo del invernadero virtual si no Figura 5.9: Prueba de conexin en cross over.

que conjuntamente con la unidad metereolgica que provee de la adquisicin de datos es posible por la conexin serial por medio del puerto RS2-32, y la visualizacin en forma remota es posible conectando 2 maquinas en red, por medio de una conexin crossover utilizando cable UTP categora 5, conectores RJ45 de tal manera poder tener acceso por la Intranet.

58

Conclusiones Generales La representacin virtual del invernadero real nos permite supervisar y controlar el invernadero en cualquier punto del mundo por las facilidades de acceso que nos proporciona la Internet. Con ligeras modicaciones del presente proyecto, se puede supervisar y controlar de forma remota adems de implementar de forma virtual un proceso fsico. Trabajos a Futuro - Conectar LabVIEW con data sokcets y poder enviar datos a LabVIEW y poder controlar, y viceversa. - Programar en un C Builder, Delphi VC la parte de adquisicin de datos y as convertir la parte del sistema en software que no necesite de mas licencias que la del sistema operativo. - La conguracin de los datos del manejo del invernadero desde una archivo obtenidas para LabVIEW y administrarlo, como de la simulacin tambin simularlo. - Sistemas distribuidos del invernadero virtualizado. En dado caso que la maquina de adquisicin de datos fallara (el modulo maestro, freeze de Labview). El entorno web estara funcionando, junto con el entorno 3d. Claro para esto se tendra que distribuir el sistema del invernadero en varios equipos. De forma que Labview estuviera en un equipoA, el servicio web (Pginas HTML, entornos 3D, manejo de seguridad usando PHP) en equipoB, transmisin de datos a cel GSM desde equipoC.

Bibliografa
[Amar, 2006] Amar, A. C. (2006). Atencin Mdica y Ayuda rural, A. C. Amar, A. C., http://www.amar-ac.org/. [America Saldaa Snchez, 2006] America Saldaa Snchez, L. A. P. S. (2006). Protocolo y Realizacin de Comunicacin Serial Distribuida. Universidad Autonoma del Estado de Hidalgo. Instituto de Ciencias Bsicas E Ingeniera, Carretera. [Anaya, 2001] Anaya, M. A. C. (2001). Centro virtual de capacitacin en la elaboracin de productos lcteos orientado a web. Masters thesis, Universidad Autonoma del Estado de Hidalgo. CITIS (Centro de Investigacin de Tecnologas de Informacin y Sistemas). [Andrea L. Ames, 1997] Andrea L. Ames, D. R. N. . J. L. M. (1997). VRML 2.0 Sourcebook. Jhon Wiley & Sons, Inc., 605 Third Avenue, New York, N.Y. 10158-0012, 2a. edition. Of The San Diego Supercomputer Center. [Andrew S. Tanenbaum, 2002] Andrew S. Tanenbaum, M. V. S. (2002). Distributed System Principles and Paradigms. Prentice Hall, Upper Saddle River, New Jersey 07458., 1era. edition edition. [Angulo, 1999] Angulo, U. J., A. M. I. (1999). Microcontroladores PIC. Diseo prctico de aplicaciones. Primera Parte. Mc Graw Hill. [Angulo, 2000] Angulo, U. J., e. a. (2000). Microcontroladores PIC. Diseo prctico de aplicaciones. Segunda Parte. Mc Graw Hill. [Consortium., 1997] Consortium., W. (1997). VRML97: The Virtual Reality Modeling Language. On-line standard, http://www.web3d.org/technicalinfo/specications/vrml97/index.htm. [Consortium, 1998] Consortium, W. (1998). Xj3D VRML/X3D Code API. Web3D Consortium, http://www.xj3d.org/javadoc/, on-line edition. [Corporation, 2004a] Corporation, N. I. (2004a). Examples input/output vis and function. In [Corporation, 2004b], chapter smplserl.llb, page Basic 2 Port Serial Write and Read. 59

60

BIBLIOGRAFA

[Corporation, 2004b] Corporation, N. I. (2004b). LabVIEW Help. Number Part 370117D-01. National Instruments Corporation, En el paquete de Nationals Instruments LabView 7.1, digital edition. [Creativa, 2001] Creativa, I. (2001). Glosario de Trminos. http://www.catalogodesoftware.com/glosario.asp, http://www.catalogodesoftware.com/glosario.asp. [Danesh, 1996] Danesh, A. (1996). Aprendiendo JavaScript en una semana. Prentice Hall, Enrique Jacob 20, Col. El Conde 53500 Naucalpan de Jurez, Edo. de Mxico., 1era. edition. [Dumetri, 2002] Dumetri, P. (2002). Descripcion general del pic16f877. Internet site, foro. [Espinosa, 2004] Espinosa, A. P. (2004). Glosario. Universidad de Granada. [Feruglio, 1997] Feruglio, G. V. (1997). Composicin de textos cientcos con LaTeX. Alfaomega, edicions upc, 1997. edicions de la universitat politcnica de catalunya, sl. jordi girona salgado 31, 08034 barcelona. edition. [for Learning and (MCLI), 2006] for Learning, M. C. and (MCLI), I. (2006). Multimedia Authoring Web. http://www.mcli.dist.maricopa.edu/authoring/. [Froute, 2000] Froute, A. (2000). JAVA 2: Manual de Usuario y Tutorial. Alfaomega Ra-Ma, Pitgoras 1139, Col. del Valle, 03100 Mxico, D.F., segunda edition. [Guerrero, 2006] Guerrero, J. G. (2006). Medidores, volume Web. http://www.pceiberica.es/medidor-detalles-tecnicos/tablas-de-velocidades-del-viento.htm, http://www.pce-iberica.es/medidor-detalles-tecnicos/tablas-de-velocidades-delviento.htm. [Headquarters, 2000] Headquarters, N. I. C. (2000). LabVIEW Basics II Course Manual. National Instruments Corporation, Texas, USA. [Horstmann and Cornell, 2003] Horstmann, C. S. and Cornell, G. (2003). JAVA 2 Fundamentos, volume 1era. Prentice Hall, C. Nuez, Madrid. [infoagro.com, 2003] infoagro.com (2003). EL CULTIVO DEL TOMATE. infoagro.com, http://www.infoagro.com/hortalizas/tomate.htm, on-line internet edition. [Jaworski, 1999] Jaworski, J. (1999). Java 1.2 Al Descubierto. PRENTICE HALL, C. Tllez, 54, 28007 Madrid, primera edition. [Kendall and Kendall, 1997] Kendall, K. E. and Kendall, J. E. (1997). Anlisis y Diseo de Sistemas. Prentice Hall Hispanoamerica S.A., Calle 4 No. 25-2 piso Fracc. Ind. Alce Blanco, Naucalpan de Jurez, Edo. de Mxico, C.P. 53370, 3a. edition.

BIBLIOGRAFA

61

[Laura Muoz Hernndez, 2005] Laura Muoz Hernndez, Luis Paredes Salinas, A. S. S. J. R. F. y. V. L. M. (2005). Supervisin y control por medio de instrumentos virtuales de un proceso fsico. In Morales, V. L., editor, Primer Taller de Actualizacin de Softcomputing y Control, Carr. Pachuca - Tulancingo km. 4.5, Pachuca, Hidalgo. Tel 7172197. Centro de Investigacin y Tecnologias de Informacin y Sistemas. [License, 2006] License, B. S. D. B. (2006). Java bindings for OpenGL. ps://jogl.dev.java.net/, https://jogl.dev.java.net/. htt-

[Marrin, 1997] Marrin, C. (1997). External Authoring Interface Reference. http://www.graphcomp.com/info/specs/eai.html, http://www.graphcomp.com/info/specs/eai.html. [Mears, 2004] Mears, P. L. (2004). Infrastructure Technologies for Life Science Computing, volume White Paper. Sun, Sun Microsystems, http://www.sun.com/solutions/documents/whitepapers/ls_SunTechSummary0904_dd.pdf, a summary of suns recent white papers & use cases edition. [Microchip, 2001] Microchip (2001). PIC16F87X 28/40-Pin 8-Bit CMOS FLASH Microcontrollers. Microchip Technology Data Sheets No. DS30292C. [Morales, 2006] Morales, V. L. (2005-2006). Proyecto automatizacin de invernaderos con cultivo hidropnico. Technical report, SEP-SESIC-PROMEP, Ref. UAEH-PTC1004. [NIST, 2006] NIST (2006). VRML Plugin and Browser Detector. National Institute of Standards and Technology is an agency of the U.S. Commerce Departments Technology Administration., http://cic.nist.gov/vrml/vbdetect.html. [para Invernadero, 2006] para Invernadero, P. http://sistemas.agroc.com.mx/plastinver/ invernaderos.html. Productos para Invernadero. P. (2006). PLASTINVER

[para la Productividad Agrcola, ] para la Productividad Agrcola, T. Invernaderos. On-line, Tecnologa para la Productividad Agrcola, http://www.tpagro.com/textos/invernaderos.htm. [Powell, 2001] Powell, T. A. (2001). Manual de referencia HTML 4. The McGrawHill Companies, Edicio Valrealty, 1.a planta Basauri, 17, 28023 Aravaca (Madrid), primera edition. [Process, 2006] Process, J. C. (2006). JSR 231: JavaTM Binding for the OpenGL API. http://jcp.org/en/jsr/detail?id=231, http://jcp.org/en/jsr/detail?id=231.

62

BIBLIOGRAFA

[Schildt, 2003] Schildt, H. (2003). Manual de Referenacia Java 2. Osborne McGrawHill, Edicio Valreaty, 1.a planta, Basauri, 17, 28023 Aravaca (Madrid), cuarta edition. [Underdahl, 2003] Underdahl, B. (2003). Macromedia Flash MX. Manual de referencia. McGraw-Hill, Edicio Valrealty, 1ra. planta. Basauri, 17. 28023 Aravaca Madrid., primera edicin espaol edition. [Virgilio Lpez Morales, 2006] Virgilio Lpez Morales, Omar Lpez Ortega, J. R. F. A. C. A. L. E. R. V. J. W. V. (2006). Secsih, sistema de evaluacin, control y supervisin de un invernadero hidropnico. Proyecto PAI 2006, UAEH, pages pp. 120. [Wikipedia, 2001] Wikipedia (2001). Enciclopedia Libre. Fundacin Wikimedia. [y P. J. Deitel, 1998] y P. J. Deitel, H. M. D. (1998). Cmo Programar en Java. Prentice Hall Latinoamerica., Calle 4 num. 25-2do. piso Fracc. Ind. Alce Blanco, Naucalpan de Jurez, Edo. de Mxico., 1era. edition.

Apndice A Presentaciones.
En la realizacin del presente trabajo de tesis fue presentado como Poster en el 1er Taller de Actualizacin de Softcomputing y Control 23-25 de Noviembre del 2005. Carretera Pachuca - Tulancingo Km. 4.5, Pachuca, Hidalgo. Tel. 7172197. Adems de ser presentado como Poster en el 1er. Congreso Estatal Universitario en Tecnologa de Informacin y Comunicaciones TICS 25-27 de Abril del 2006, as tambin en la Exposicin de Propiedad Industrial 2 de Junio del 2006 que se llevo a cabo en la Universidad Autnoma del Estado Hidalgo. Se obtuvo tambin la aceptacin del articulo en el ISRA (International Simposium on Robotics and Automation) el cual se titula (Virtual Distributed Supervision and Control for an Automated Greenhouse), con ISBN 970-769-070-4, y un poster con titulo de (Virtual Greenhouse - Virtual tour in a real automated greenhouse), con ISBN 970-769-070-4, con sede en San Miguel Regla, Hidalgo, Mxico, del 26-28 de Agosto del 2006. A continuacin se anexan los trabajos mencionados.

63

64

A.1. Poster

A.1.

Poster
Figura A.1: Poster.

Poster presentado en la Figura A.1 en el 1er. Taller de Actualizacin de Softcomputing y Control del 23 al 25 de Noviembre del ao 2005, como tambin en la exposicin tecnolgica del 1er. Congreso Estatal Universitario en Tecnologa de Informacin y Comunicaciones TICS del 25 al 27 de Abril del 2006.

A.2.

Trptico 1
Figura A.2: Trptico 1 lado 1.

Figura A.3: Trptico 1 lado 2.

Trptico presentado en las Figuras A.2 y A.3 junto con el poster A.1 en la exposicin tecnolgica del 1er. Congreso Estatal Universitario en Tecnologa de Informacin y Comunicaciones TICS del 25 al 27 de Abril del 2006.

A.3.

Trptico 2

Trptico presentado en las Figuras A.4 y A.5 en la Exposicin de Incubadora de Empresas de la UAEH el 2 de Junio del 2006. Carretera Pachuca-Actopan Km. 4.7 junto con el poster A.1.

A. Presentaciones.

65

Figura A.4: Trptico 2 lado 1.

Figura A.5: Trptico 2 lado 2.

A.4.

Artculo

Publicacin de un Paper en el ISRA (International Simposium on Robotics and Automation), el cual se titulo (Virtual Distributed Supervision and Control for an Automated Greenhouse), con ISBN 970-769-070-4, que consta con 4 pginas mostradas en las Figuras A.6, A.7, A.8, A.9, con sede en San Miguel Regla, Hidalgo, Mxico, del 27 de Agosto del 2006.

A.5.

Poster 2

Poster presentado en la Figura A.10 en el ISRA (International Simposium on Robotics and Automation) en la seccin de Posters and Prototipes, con el titulo de Virtual Greenhouse - Virtual tour in a real automated greenhouse, con ISBN 970-769-070-4, con sede en San Miguel Regla, Hidalgo, Mxico, del 27 de Agosto del 2006.

Figura A.6: Pagina 1 del Artculo.

66

A.5. Poster 2

Figura A.7: Pagina 2 del Artculo.

Figura A.8: Pagina 3 del Artculo.

Figura A.9: Pagina 4 del Artculo.

Figura A.10: Poster 2.

Apndice B Cdigo Fuente.


A continuacin se presenta la ubicacin del cdigo fuente del presente trabajo, el cual consiste de la denicin de los mundos virtuales, el applet de java, pginas web que contienen toda la interfaz, as como los diagramas de adquisicin de datos con LabVIEW . Una razn por la cual no se presenta este cdigo fuente impreso es por el gran nmero de lneas de cdigo fuente y resulta mejor almacenarlo en un dispositivo magntico y de esa forma poder presentarlo como consultarlo.

B.1.

VRML

El mundo virtual del invernadero consiste del siguiente archivo in2.wrl que contiene el cdigo fuente donde se utilizan etiquetas en VRML. En el CD incorporado a esta tesis se presentan los cdigos fuentes del presente trabajo, desde los Applets en Java, como tambin el programa desarrollado en LabVIEW, y los fuentes de VI elaborado en ash, HTML. Ha si como trabajo de investigacin realizado para pruebas de implementacin en el proyecto que al nal ya no fue presentado como parte de este trabajo. A continuacin se presenta el mapa de rutas del invernadero Virtual con nombre de archivo in2.vrml el cual la ubicacin en el CD del archivo de cdigo fuente es \codigos\vrml\in2.wrl el cual el mapa de rutas de ese archivo es el que se muestra en la Figura B.1, el mapa de rutas es til para ver las conexiones de los elementos que van a tener una animacin por parte del archivo VRML.

67

68

B.2. Java

Figura B.1: Mapa de rutas del mundo virtual del invernadero.

B.2.

Java

Los programas realizados en Java para este proyecto son 2, uno corre del lado cliente el cul es un applet de java, el cual modica el mundo virtual en la maquina cliente el cual su nombre es appletinvernadero.java y la ubicacin del cdigo fuente es \codigos\java\cliente\AppletInvernadero.java. Este archivo de java se compila de la siguiente forma: javac target 1.1 AppletInvernadero.java La compilacin con target 1.1 se realiza para que el cdigo fuente sea compilado con la version de java 1.1 que es la version de la maquina virtual de Microsoft corre correctamente. El segundo programa se ejecuta en la maquina servidor y almacena la informacin adquirida del invernadero real en una base de datos con el nombre del archivo de jijiji.java y se encuentra en la ubicacin \codigos\java\servidor\jijiji.java. Para la compilacin del segundo archivo en java tiene que tener el conector de la base de datos mysql-connector-java-3.1.13.zip, la cual se utilizo mysql.

B.3.

Querys SQL

El manejador de base de datos utilizado en este proyecto es el mysql. Es un manejador libre. La creacin de la base de datos en el manejador mysql se elaboro mediante consultas en SQL. Las consultas utilizadas para las tablas se encuentra en el archivo SQL_query.txt ubicado en \codigos\SQL\SQL_query.txt. En el archivo se encuentran los Querys de la creacin de la base de datos como tambin sus respectivas tablas.

B. Cdigo Fuente.

69

B.4.

LabVIEW

fuente en LabVIEW.

B.5.

HTML

fuentes en html.

B.6.

Flash

Los archivos fuentes de las animaciones creadas en Flash se encuentra en \codigos\Flash\ de los cuales uno llamado

B.7.
B.7.1. B.7.2.

Otros Cdigos
Lego de Mindstorms Java

[Anaya, 2001], [Andrea L. Ames, 1997], [Feruglio, 1997], [for Learning and (MCLI), 2006], [Powell, 2001], [Marrin, 1997], [Consortium., 1997], [NIST, 2006], [Headquarters, 2000], [Laura Muoz Hernndez, 2005] [Amar, 2006], [Creativa, 2001], [para Invernadero, 2006], [Espinosa, 2004], [Wikipedia, 2001], [Guerrero, 2006], [Underdahl, 2003], [License, 2006], [Process, 2006], [Mears, 2004] [Kendall and Kendall, 1997], [infoagro.com, 2003], [Corporation, 2004b] [Corporation, 2004a], [Morales, 2006], [Jaworski, 1999], [Froute, 2000], [Schildt, 2003], [Horstmann and Cornell, 2003], [y P. J. Deitel, 1998] [Danesh, 1996], [Consortium, 1998], [America Saldaa Snchez, 2006], [Virgilio Lpez Morales, 2006], [para la Productividad Agrcola, ], [Andrew S. Tanenbaum, 2002], [?], [?], [?], [?], [?], [?], [?], [?], [?], [?], [?], [?], [?], [?], [?], [?], [?], [?], [?], [?], [?], [?], [?], [?].

Apndice A Presentaciones.
A.0.3. Programacin de efectos y automatizacin del invernadero

En la programacin de efectos, el objetivo es el de darle comportamiento o efectos de animacin en el mismo cdigo VRML haciendo uso de las siguientes etiquetas que en lenguaje VRML realizan estas tareas, entre las ms importantes se encuentran las siguientes donde mencionarn las dos primeras: DEF, Route, TimerSensor, PositionInterpolator, OrientationInterpolator, Sensing Touch, Sensing Motion, TouchSensor, PlaneSensor, SphereSensor, CylinderSensor. Para ms informacin (C.F.) [Andrea L. Ames, 1997].

Deniendo el nombre a los nodos. Se puede denir un nombre para cualquier nodo en el mundo virtual. Los nombres pueden ser la mayor parte cualquier secuencia de letras y nmeros. Una vez el nodo tiene un nombre, se puede usar el nodo otra vez ms tarde en el archivo. Por ejemplo, se puede especicar el nombre mi_silla para un nodo o grupo de nodos que construyen una silla. Entonces, para poner cuatro sillas alrededor de una mesa, se podra reusar la misma forma mi_silla tres veces ms, sin que tengamos que reescribir toda la silla otra vez. El nodo con el nombre denido es llamado el nodo original, y cada reutilizacin de el nodo es llamado una instancia. Se puede solamente ponerle valor al campo cuando denen el nodo original. Cada de las instancias usadas del campo original cambia a menos que el valor. Para denir un nodo para usarlo como instancia, se empieza el nodo con la palabra DEF y un nombre de nodo de tu eleccin. Un archivo VRML puede contener cualquier nmero de nombres de nodo. No se puede, sin embargo, crear dos nodos con el mismo 71

72

nombre en el mismo archivo.

Tabla A.1: Sintaxis de DEF DEF nombre-node tipo-nodo { ... } En los nombres de nodo cualquier secuencia de caracteres es conveniente, y esto es sensible a los caracteres de maysculas o minsculas. Por ejemplo, los nombres ABC y abc son considerados diferentes por el visualizador VRML. Los nombres de nodo pueden incluir letras, nmeros, y guiones bajos. Los siguientes ejemplos de nombres de nodos vlidos:

Tabla A.2: Sintaxis de mi_silla lanzadera_espacial Tecladepiano SonidodeGorgoteo Luz_Brillante Cafe_oscuro

DEF Diseno_Cosina_12 Indy500 ladrillo_rojo

Los nombres no pueden iniciar con un nmero; no puede incluir letras no imprimibles, caracteres ASCII con un espacio, tabuladores, lneas impresin, formularios de impresin, y retornos de carros; y no puede incluir comillas dobles o simples, signos de moneda, comas, periodos, races, brackets, diagonal invertida, llaves, o la letra . Los siguientes nombres tambin estn prohibidos, estas palabras son usadas como de propsito especco con VRML:

Tabla A.3: Sintaxis de DEF DEF EXTERNPROTO FALSE IS NULL PROTO ROUTE TO TRUE USE eventIn eventOut exposedField eld Un tipo de nodo es un particular tipo de nodo, como el nodo Cylinder. Para denir un nombre para el nodo Cylinder, por ejemplo, usamos la sintaxis de DEF: DEF mi_cilindro Cylinder. . . Donde mi_cilindro es el nombre del nodo y el Cylinder es el tipo de nodo a ser llamado.

A. Presentaciones.

73

Usando Nombres de los Nodos. Una vez se tiene denido un nombre para un nodo, se puede usar ese nodo otra vez y otra vez dentro del mismo archivo por comenzar el nombre del nodo con la palabra "USE". Tabla A.4: Sintaxis de USE USE nombre-node Se puede usar un nodo donde quiera en el archivo donde ese nodo pueda ser especicado. Se puede an usar un nodo como el valor de un campo donde aquel requiera normalmente una descripcin completa del nodo. El mismo nodo original puede ser instancias con USE cualquier nmero de veces dentro del mismo archivo. Todas las instancias de usar en comn la misma descripcin del nodo, tan as se puede cambiar el nodo original, todas las instancias cambian tambin.

Eventos y Rutas. Dado que un archivo VRML provee las instrucciones de construccin para los mundos [Andrea L. Ames, 1997], para poder realizar un mundo dinmico, esas instrucciones de construccin tambin deben incluir una instruccin de cableado. Tales instrucciones describen como cablear nodos entre s. Por ejemplo, click del ratn sobre una forma puede encender una luz, activar un sonido, o arrancar una mquina. El cableado de VRML involucra: Un par de nodos para cablear entre s. Un cableado usando la etiqueta route, o un path, entre los dos nodos. Una vez construida una ruta entre dos nodos, el primer nodo puede enviar mensajes al segundo nodo a travs de esa ruta. Los valores tpicos de los eventos incluyen valores de punto otante, valores de color, o valores de coordenadas 3-D. Cuando un nodo recibe un evento, este reacciona para prender una luz, reproducir un sonido, o si no tambin iniciar una animacin, todo esto es dependiendo de las caractersticas de ese nodo. Para Para realizar un mundo dinmico se pueden cablear mltiples nodos entre s, de tal manera crear as un circuito complejo para darles rutas a los eventos.

74

Entradas y Salidas de los Nodos. Algunos otros tipos ms de nodos VRML pueden ser cableados dentro de un circuito. Cada nodo tiene enchufes de entradas y salidas para los cuales puedas conectar opcionalmente con el cableado. Por ejemplo, para realizar unos nodos que manejan luces en el mundo virtual, se tiene un conector de entrada para encender y apagar. Si se cablea hacia el conector, se puede crear un circuito que automticamente encienda o apague dicha luz. Un nodo debe tener varios conectores de entradas y salidas disponibles. Una luz, por ejemplo, tiene conectores de entrada para cambiar de encendido y apagado, cambiar el brillo, cambiar el color, y ms. Algunos tipos de nodo tienen ambos conectores de entradas y salidas, mientras otros tienen solamente uno o el otro. Un conector EventIn es llamado un nodo de entrada. Un EventIn recibe eventos cuando esta conectado a una ruta y cuando se le enva. Similarmente, un conector de salida es llamado un eventOut. Un eventOut enva eventos de salida cuando esta conectado por una ruta. La sintaxis a considerar que se muestra a continuacin en la Tabla A.5 es el subconjunto del nodo Collision.

Tabla A.5: Sintaxis del Nodo colisin Collision{ children proxy addChildren removeChildren collideTime } Los siguientes elementos que se muestran son de la sintaxis en detalle de la Tabla A.5 del nodo Collision. [] NULL # # # # # exposedField eld eventIn eventIn eventOut MFNode SFNode MFNode MFNode SFTime

El nodo ( Collision ) Los campos del nodo ( children, proxy, etc.) Los valores de los campos ( [],NULL, etc.) El tipo de cada campo (exposedField, eld, etc.)

A. Presentaciones.

75

El tipo de valor de cada campo (MFNode, SFNode, etc.) Observe que el nodo tiene dos conectores de entrada - addChildren y removeChildren - y un conector de salida, llamado collideTime. El nodo tambin tiene dos campos: children y proxy. Note que el campo children en la sintaxis de la Tabla A.5, citado anteriormente, tiene un exposedField. Un exposedField tiene dos conectores implcitamente asociados con: un conector de entrada para colocar estos valores y, un conector de salida para enviar valores del campo cada que existe un cambio de valores de este campo. Naturalmente el conector de entrada para asignarle el nuevo valor, siempre se le denomina por set_XXX, donde XXX corresponde al nombre del campo expuesto. Similarmente, el conector de salida siempre se le denominar por XXX_changed, donde XXX corresponde al nombre de los campos expuestos. Por ejemplo, para el nodo Collision, el campo expuesto children deber tener una conexin implcita set_children para el conector de entrada, y children_changed para el de salida. Cuando se construyen las rutas, se usan los nombres de los nodos para especicar los eventOuts y los eventIns en donde se conectarn. Para el nodo Collision anteriormente mencionado, se puede crear una ruta que conecta hacia los nodos eventIns (addChildren y removeChildren) y para eventOuts (collideTime). Para un campo expuesto, se puede cablear una ruta hacia eventIn y eventOut implcito ( set_children y children_changed ). Se puede tambin trazar la ruta al campo expuesto a s mismo ( children ), y el visualizador VRML automticamente usar el eventIn implcito, si la ruta enva un evento para el nodo un eventOut si el nodo es receptor de eventos sobre la ruta. Tipos Entradas y Salidas de los Nodos. Similar a un campo de los nodos, cada eventIn y eventOut de cada nodo tambin posee un tipo. Un eventOut de tipo SFFloat, por ejemplo, tendr salidas con valor de punto otante cuando es cableado a un circuito. Un eventOut de tipo SFColor enviar colores. Similarmente, un eventIn de tipo SFFloat puede recibir valores de punto otante, mientras que uno de tipo SFColor puede recibir colores. Cuando se especica una ruta, los tipos de conexiones de salida y de entrada deben de corresponder exactamente. Por ejemplo, se puede mandar un evento de punto otante de un MFFloat eventOut a un MFFloat eventIn, pero no a un SFFloat o MFColor a un MFFloat eventIn. Cableado de Rutas. Un circuito VRML es construido para describir una ruta de un nodo eventOut (evento de salida) a otro nodo eventIn (evento de entrada). El circuito de ruta permanece

76

inactivo hasta que un evento es enviado del primer nodo al segundo nodo a travs de la ruta. Cuando el primer nodo activa la ruta por el envo de un evento, el evento viaja al segundo nodo, y el nodo reacciona. Los tipos de reaccin depende de: El tipo de nodo que recibe el evento, El conector de entrada del nodo para el cual la ruta es cableada, Los valores contenidos en el evento y La actividad actual del nodo. Por ejemplo, cuando un evento contiene un valor TRUE de tipo de datos SFBool que enva un on a eventIn de un nodo de luz, la luz se enciende. Similarmente, cuando un evento contiene un valor punto otante este enva la intensidad a eventIn de un nodo de luz, y en consecuencia la luminosidad de la luz cambia.

Apndice A Presentaciones.
A.0.4. Adquisicin de Datos utilizando LabVIEW.

Un ejemplo de la adquisicin de datos utilizando LabVIEW , se presenta a continuacin con un diagrama sencillo de programacin por bloques en donde se muestra la obtencin de datos mediante el puerto serial [Corporation, 2004a]. A continuacin se muestran en las Figuras A.1 y A.2, la escritura de datos por medio de un puerto serial, as como la lectura de datos por el mismo puerto.

Figura A.1: Panel frontal de escritura y lectura por los puertos seriales.

Como se observa en la Figura A.1, se puede congurar el puerto serial en el que va a escribir o leer donde aparecen las etiquetas de VISA resource name (write read), que tasa de baudio se desea tener con la etiqueta baud rate, bits de datos de entrada con la etiqueta data bits(8), paridad con la etiqueta parity. Los bits de parada especican el nmero de bits usados para el paro, para indicar el n de trama con la etiqueta stop bits, y el control de ujo con la etiqueta ow control.

Figura A.2: Escritura y lectura de datos por medio del VISA.

Como se observa en la Figura A.2, inicialmente se usa el bloque VISA de conguracin, luego se procede a utilizar al bloque VISA de escritura como de lectura y por ltimo se procede a cerrar la sesin tanto de escritura como de lectura.

77

78

En forma general las entradas de un bloque de funcin en la programacin por bloques de LabVIEW esta estructurado de la siguiente forma en cuestin donde las entradas son conguraciones o salidas de datos de una funcin anterior, y sus respectivas salidas, como se puede observar en la Figura A.3 que a continuacin se presenta.

Figura A.3: Entradas y salidas de una bloque de funcin.

De esa manera se explicaran las entradas y las salidas de cada bloque, empezando por las entradas y continuando al nal con sus salidas de cada bloque. La adquisicin de datos como se muestra en la Figura A.2 se realiza por el puerto serial donde por medio de LabVIEW adquiere los datos usando un bloque para adquirir datos. A continuacin se explicar cada bloque presentado.

Figura A.4: bloque VISA conguracin de puerto serial.

El bloque VISA de conguracin serial como, se muestra en la Figura A.4, presenta las siguientes entradas y salidas, para ms informacin cf. [Corporation, 2004b]. La entrada con la que empezaremos se llama Enable Termination Char (T) el cual prepara al dispositivo serial para reconocer la terminacin en carcter. Si este tiene valor TRUE, que por default esta congurado, el atributo VI_ATTR_ASRL_END_IN es puesto para reconocer la terminacin en carcter. Si este tiene valor FALSE, el atributo VI_ATTR_ASRL_END_IN es puesto en 0 (Ninguno) y el dispositivo serial no reconocer la terminacin en carcter. El parmetro llamado termination char (0xA=\n... realiza llamadas para la terminacin de la operacin de lectura. La operacin de lectura termina cuando el carcter de terminacin es ledo por el dispositivo del puerto serial. 0xA es un carcter equivalente en hexadecimal de una nueva lnea (\n). En cambio la terminacin de carcter por una cadena de caracteres que termine con un retorno de carro (\r). Luego con timeout (10 sec) se congura el tiempo de espera para las operaciones la escritura y lectura. Seguido de VISA resource name es un tipo de datos I/O el cual usa para especicar los recursos que sern abiertos. Este control tambin especica la sesin y la clase. Continuando con la entrada de conguracin de baud rate (9600) es la frecuencia de transmisin. El valor predenido es de 9600. Luego con data bits (8) es el nmero de bits de datos entrantes. El valor de datos esta entre 5 y 8 bits. El valor predenido es de 8. Continuando con el parmetro parity (0:none) especica el nmero de paro de bits usado para indicar el n de una

A. Presentaciones.

79

trama. Seguido con error in (no error) describe las condiciones de error que ocurren despus de la ejecucin del VI o funcin. Por default no existe un error. Si un error ocurre despus de ejecutar el VI o la funcin, el VI o funcin pasa el valor del error a una salida de error. Este VI o funcin normalmente se ejecuta solo si no ocurre un error despus de la ejecucin. Seguido del parmetro stop bits (10:1 bit) el cual especica el nmero de bits de paro usados para indicar el n de una trama. Por ltimo de las entradas con ow control (0:none) est ja el tipo de control utilizado para el mecanismo de transferencia. Continuando con las salidas empezamos con duplicate VISA resource name el cual es una copia del VISA resource name que este pasa una salida de las funciones VISA. Y seguido de ltimo con error out el cual contiene la informacin del error. Si un error ocurre este indica que error se produjo despus de ejecutar el VI o la funcin, error out contiene la informacin del error. Como tambin describe el estado del error que se produjo en el VI o la funcin. El bloque VISA read, como se muestra en la Figura A.5, lee un nmero especco de bytes del dispositivo o interfaz especicado por VISA resource name, y retorna los datos ledos dentro de un buer. Los datos son ledos tanto sincrnica como asincrnicamente dependiendo de la plataforma. Con un click izquierdo sobre el nodo y seleccionando la I/O de lectura de sincronizacin del menu desplegable. La operacin retorna solamente cuando la transferencia termina.

Figura A.5: bloque VISA read.

Como se observa en la Figura A.5 explicaremos las entradas y salidas de este bloque, empezando por las entradas con VISA resource name especca el recurso a ser abierto. Este control tambin especica la sesin y la clase. Continuando con byte count es un contador de bytes a ser ledos. Y terminado con error in (no error) describe las condiciones de error que ocurren despus de la ejecucin del VI o funcin. Por default no existe un error. Si un error ocurre despus de ejecutar el VI o la funcin, el VI o funcin pasa el valor del error a una salida de error. Este VI o funcin normalmente se ejecuta solo si no ocurre un error despus de la ejecucin. As empezando con las salidas como dup VISA resource name el cul es una copia de el VISA resource name que las funciones VISA retornan. Continuando as con read buer contiene los datos ledos del dispositivo. Seguido de return count el cual contiene el nmero de bytes actualmente ledos. Y terminado las salidas con error out el cual contiene la clave del error si hubiera alguno. La funcin del bloque de escritura VISA se muestra en la Figura A.6 el cual nos sirve para mandar datos por el puerto serial, de acuerdo a al bloque de conguracin

80

del puerto serial.

Figura A.6: bloque VISA write.

El bloque VISA write como se muestra en la Figura A.6 se puede observar que tiene 3 entradas y 3 salidas, donde en las entradas empezaremos con VISA resource name donde este especica el recurso a ser abierto. Este control tambin especica la session y clase. La siguiente entrada es write buer el cul contiene el dato a ser escrito al dispositivo. Y por ltimo en las entradas error in (no error) describe las condiciones de error que ocurren despus de la ejecucin del VI o funcin. Por default no existe un error. Si un error ocurre despus de ejecutar el VI o la funcin, el VI o funcin pasa el valor del error a una salida de error. Este VI o funcin normalmente se ejecuta solo si no ocurre un error despus de la ejecucin. En cuanto a las salidas de este bloque describiremos el dup VISA resource name el cul es una copia de el VISA resource name que las funciones VISA retornan. Continuaremos con return count el cual contiene el nmero actual de los bytes escritos. Y por ltimo con error out el cual contiene la informacin del error. Si un error ocurre este indica que error se produjo despus de ejecutar el VI o la funcin, error out contiene la informacin del error. Como tambin describe el estado del error que se produjo en el VI o la funcin. El bloque VISA close, como se muestra en la Figura A.7, como su nombre lo indica cierra la sesin del dispositivo o el evento del objeto especicado por VISA resource name. Para cada sesin de dispositivos que sea abierta, se tiene que nalizar la sesin utilizando este bloque.

Figura A.7: bloque VISA close.

Como se observa en la Figura A.7 explicaremos las entradas y salidas de est funcin del bloque, iniciando con la entrada VISA resource name especica el recurso a ser abiertos. Este control tambin especica la sesin y la clase. Seguido de ltimo con error in (no error) describe las condiciones de error que ocurren despus de la ejecucin del VI o funcin. Por default no existe un error. Si un error ocurre despus de ejecutar el VI o la funcin, el VI o funcin pasa el valor del error a una salida de error. Este VI o funcin normalmente se ejecuta solo si no ocurre un error despus de la ejecucin. Y terminado con la salida de error out el cual contiene la informacin del error. Si un error ocurre este indica que error se produjo despus de ejecutar el VI o la

A. Presentaciones.

81

funcin, error out contiene la informacin del error. Como tambin describe el estado del error que se produjo en el VI o la funcin.

Apndice B Sistemas Mnimos.


Introduccin. En el desarrollo de un protocolo de comunicacin, la simplicacin de elementos y su organizacin es necesaria para facilitar el acceso a los diferentes medios que interactan con ellos. El sistema mnimo propuesto en este proyecto de tesis, cumple con estas facilidades de acceso fsico a componentes y dispositivos electrnicos tales como pantallas LCD, interfaz de comunicacin, entradas/salidas analgicas y digitales, entre otros. Estos accesos estn basados y orientados al uso del microcontrolador PIC16F877 fabricado por Microchip. Existen sistemas mnimos desarrollados o fabricados por diferentes industrias tales como Microchip o Motorola, pero su principal desventaja es que son de alto costo y de arquitectura cerrada, lo que signica que no se le pueden hacer modicaciones o cambios en la misma. Sin embargo, el sistema mnimo propuesto no solamente es de arquitectura abierta, sino adems es de bajo costo, ya que cuenta con todos los dispositivos necesarios para la implementacin de protocolos de comunicacin. En el presente Captulo se da un panorama del sistema mnimo propuesto detallando cada una de las partes que lo componen, as como sus dispositivos interconectados.

83

84

B.1. Sistemas Mnimos.

B.1.

Sistemas Mnimos.

Un sistema mnimo es un dispositivo que ayuda a una simplicacin de elementos que interactan en un proceso, en este caso, el sistema mnimo que se propone est orientado al microcontrolador PIC16F877, el cual se ver con mayor detalle en la Seccin B.2.2. El protocolo presentado en este trabajo de tesis se ha basado en el uso de este microcontrolador. Por otra parte el sistema mnimo cuenta con diferentes dispositivos que se ilustran en la Figura. B.1.

Figura B.1: Diagrama del sistema mnimo orientado al PIC16F877.

En la Figura B.1 se puede observar que el sistema mnimo tiene acceso disponible a diferentes dispositivos como pantalla LCD, teclado matricial, comunicacin serial, entradas analgicas y digitales, los cuales son activados o desactivados mediante la programacin del microcontrolador. Ms claramente se puede observar en la Figura B.2, el sistema mnimo con sus entradas y salidas analgicas (1) y digitales (2), la ubicacin del microcontrolador PIC16F877 (3) y los convertidores RS-232 a RS-485 (4).

Figura B.2: Sistema Mnimo propuesto.

B.2.

Componentes del Sistema Mnimo.

El sistema mnimo que se propone en el presente trabajo de tesis, es el que se muestra en la Figura B.1 , que contiene varios componentes o dispositivos tiles en la puesta en marcha de este protocolo. Algunos de los dispositivos que se implementaron son:

Pantalla de LCD. Microcontrolador PIC16F877. Interfaz de comunicacin RS-232. Convertidor de interfaz RS-232 a RS-485.

B. Sistemas Mnimos.

85

Entradas y salidas analgicas y digitales. Todos estos dispositivos tienen una funcin especca y para cada uno de ellos existe una parte exclusiva para su uso y aplicacin. Ms adelante veremos cmo y cul es la funcin de cada uno de ellos dentro de este proyecto de tesis.

B.2.1.

Diferencia entre un microprocesador y un microcontrolador.

El microprocesador es un circuito integrado que contiene la Unidad Central de Proceso (UCP), tambin llamada procesador de un computador. La UCP est formada por la Unidad de Control, que interpreta las instrucciones, y el Camino de Datos que las ejecuta. sta contiene lneas de buses de direcciones, datos y control para permitir conectarse con la memoria y los mdulos de E/S. Esta unidad sirve para congurar al computador implementado por varios circuitos integrados adems se dice que es un sistema abierto porque su conguracin puede variar o modicarse de acuerdo a la aplicacin a la que est destinada, como se observa en la Figura B.3 (Cf. [Angulo, 1999]). Figura B.3: Estructura de un sistema abierto basado en un microprocesador ([Angulo, 1999]).

B.2.2.

Microcontrolador PIC16F877.

As, un microcontrolador es un circuito integrado programable que contiene todos los componentes de un computador. Se emplea para controlar el funcionamiento de una tarea determinada y, debido a su reducido tamao, suele ir incorporado en el propio dispositivo al que gobierna, y es por tanto un computador dedicado. En su memoria slo reside un programa destinado a gobernar una aplicacin determinada; sus lneas de entrada/salida soportan la conexin de los sensores y actuadores del dispositivo a controlar, y todos los recursos complementarios disponibles tienen como una nalidad atender sus requerimientos. Una vez programado y congurado el microcontrolador solamente sirve para gobernar la tarea asignada. El nmero de productos que funcionan en base a uno o varios microcontroladores aumentan de forma exponencial. La industria informtica acapara gran parte de los microcontroladores que se fabrican. Casi todos los perifricos del computador, desde el ratn o el teclado hasta la impresora, son regulados por el programa de un microcontrolador.

86

B.2. Componentes del Sistema Mnimo.

Existen un centenar de empresas fabricantes de microcontroladores, pero lo cierto es que en la primera dcada del siglo XXI, los PIC fabricados por Microchip ocupan un lugar importante, compitiendo con los microcontroladores de Intel y Motorola. Dentro de los diferentes tipos de microcontroladores existen los que procesan datos de 4, 8, 16 y 32 bits, sin embargo, el ms representativo y popular es el de 8 bits, al que pertenecen los PIC (Cf. [Angulo, 1999]). La Figura B.4 muestra el diagrama del microcontrolador PIC16F877. Figura B.4: Diagrama del microcontrolador PIC16F877 ([Microchip, 2001]).

Microchip ofrece cuatro gamas de microcontroladores de 8 bits para adaptarse a las necesidades de las aplicaciones (Ibidem.). Estas cuatro gamas son las siguientes: 1. Gama baja o bsica con instrucciones de 12 bits. 2. Gama media con instrucciones de 14 bits. 3. Gama alta con instrucciones de 16 bits. 4. Gama mejorada con instrucciones de 16 bits. En el presente trabajo de tesis se utiliza el microcontrolador PIC16F877 de la subfamilia PIC16F87X, la cual trata de un conjunto de cuatro modelos de PIC con memoria FLASH, que se ubica dentro de la gama media de microcontroladores de 8 bits. Caractersticas del Microcontrolador PIC16F877. Un microcontrolador posee todos los componentes de un computador, pero con caractersticas jas que no pueden alterarse. El alto rendimiento y elevada velocidad que alcanzan los modernos procesadores, como el que poseen los microcontroladores PIC, se debe a la conjuncin de tres tcnicas la arquitectura Harvard, el computador tipo RISC y su segmentacin(Ibidem.). En la Figura B.5 se puede observar la arquitectura aplicada por Microchip en sus microcontroladores, que se caracteriza por la independencia entre la memoria de cdigo y la de datos (Cf. [Angulo, 2000]).

B. Sistemas Mnimos.

87

Figura B.5: Arquitectura ([Microchip, 2001]).

abierta

de

los

microcontroladores

PIC16F877

Organizacin de la memoria. Memoria de Programa FLASH. El microcontrolador est diseado para que en su memoria de programa se almacenen todas las instrucciones del programa de control. En estos microcontroladores no hay posibilidad de utilizar memorias externas de almacenamiento, por lo que el programa a ejecutarse debe estar grabado permanentemente. El microcontrolador PIC16F877 cuenta con memoria FLASH que es una memoria no voltil en la que se graba el programa de aplicacin, y tiene una capacidad de de 8K palabras de 14 bits cada una, esta memoria est divida en 4 pginas de 2K palabras (Cf. [Angulo, 2000]). En la Figura B.6 , se observa la organizacin de la memoria tipo FLASH de los PIC16F877, que est dividida en las 4 pginas con sus correspondientes vectores de reset y de interrupciones (Cf. [Angulo, 1999]).

Figura B.6: Organizacin de la memoria FLASH de los PIC16F877 ([Microchip, 2001]).

Memoria de Datos RAM La memoria de datos tiene posiciones implementadas en RAM, donde se alojan registros operativos fundamentales en el funcionamiento del procesador y en el manejo de los perifricos. La RAM esttica consta de cuatro bancos con 128 bytes cada uno, en estos se ubican registros especcos que gobiernan al procesador y los recursos (Cf. [Angulo, 2000]). En la Figura B.7 se muestra la distribucin de la memoria RAM en los cuatro bancos.

Figura B.7: Distribucin de la memoria RAM en los cuatro bancos ([Microchip, 2001]).

88

B.2. Componentes del Sistema Mnimo.

El PIC16F877 tiene 368 bytes de capacidad y para seleccionar el banco al que se desea acceder en la RAM se emplean los bits 5 y 6 del registro de estado del PIC, denominados RP0 y RP1 respectivamente (Ibidem).

La Tabla B.2.2 muestra el cdigo para acceder a los diferentes bancos de la memoria RAM. BANCO 0 1 2 3 RP1 0 0 1 1 RP0 0 1 0 1

Tabla B.1: Bits de seleccin de banco en el registro de estado.

Palabra de conguracin. La palabra de conguracin es una posicin reservada de la memoria de programa FLASH, que ocupa la direccin 2007h y que slo es accesible durante la programacin del PIC, en el cual el valor de sus bits determina algunas caractersticas fundamentales (Cf. [Angulo, 2000]). En el caso de los microcontroladores PIC16F877 la palabra de conguracin se compone de diversos bits donde se activan o desactivan sus caractersticas como: Cdigo de proteccin de memoria de programa (CP1:CP0). Modo Depurador en circuito (DEBUG). Permiso de escritura en la memoria FLASH (WRT). Cdigo de proteccin de la memoria EEPROM (CPD). Permiso para programacin en bajo voltaje (LVP). Permiso para reset por baja tensin (BODEN). Permiso para el Timer de conexin de alimentacin (PWRTE). Permiso de Timer del perro guardin (WDTE). Tipo de oscilador (FOSC1:FOSC0).

B. Sistemas Mnimos.

89

Memoria de datos EEPROM Esta memoria es de tipo no voltil de 256 bytes en este microcontrolador. Soportan hasta 100,000 operaciones de grabado/borrado del microcontrolador. Tipos de osciladores. Los PIC permiten hasta 8 diferentes modos de implementacin del oscilador. El usuario puede seleccionar alguno de estos modos programando 3 bits de conguracin del dispositivo denominados: FOSC2, FOSC1 y FOSC0. En algunos de estos modos el usuario puede indicar que se genere o no una salida del oscilador (CLKOUT) a travs de una lnea de entrada/salida. Los modos de operacin se muestran en la siguiente lista:

LP que involucra frecuencia baja y bajo consumo de potencia. XT (cristal) es un resonador cermico externo para media frecuencia. HS que signica alta velocidad y alta potencia (cristal/resonador). RC que involucra una oscilador con una resistencia y un capacitor. En el presente trabajo de tesis, el oscilador utilizado es un cristal resonador de 20Mhz para lo cual se utilizaron los capacitores recomendados para este oscilador de 22.

B.2.3.

Registros generales del Microcontrolador PIC16F877.

Registros de estado. Para gobernar el funcionamiento de los recursos de los PIC existe un conjunto de registros especcos cuyos bits soportan el control de los mismos. Dichos registros estn ubicados en las primeras posiciones de cada banco de la memoria de datos RAM (Cf. [Angulo, 2000]). En la Figura B.7 , se muestra el contenido de la memoria de datos RAM del PIC16F877 y la denominacin y situacin de los registros especcos junto a los de propsito general. Registro de estado (STATUS). ste es el registro ms usado de todos, dado que sus bits estn destinados a controlar las funciones vitales del procesador. Por este motivo, est duplicado en las cuartas

90

B.2. Componentes del Sistema Mnimo.

posiciones de cada banco. Los tres bits de menor peso son los sealizadores de ciertas condiciones en las operaciones lgico-aritmticas y los tres bits de ms peso se emplean para seleccionar el banco de la RAM al que se desea acceder. La Tabla B.2 muestra la estructura interna del registro (Cf. [Angulo, 2000]). Bit 7 IRP Bit 6 RP1 Bit 5 RP0 Bit 4 TO# Bit 3 PD# Bit 2 Z Bit 1 DC Bit 0 C

Tabla B.2: Estructura interna del registro de estado.

Registro de opciones (OPTION_REG). El registro OPTION_REG contiene varios bits de control para congurar el divisor de frecuencia del Timer 0 y del perro guardin, las interrupciones externas INT y las resistencias del pull-up del puerto B (Cf. [Microchip, 2001]). El registro OPTION_REG toma el valor 1111 1111 en cualquier tipo de reinicializacin que se produzca. Bit 7 RBPU Bit 6 INTEDG Bit 5 TOCS Bit 4 TOSE Bit 3 PSA Bit 2 PS2 Bit 1 PS1 Bit 0 PS0

Tabla B.3: Estructura interna del registro de opciones.

B.2.4.

Registros para control de interrupciones.

Los PIC16F877 tienen 14 causas que pueden originar una interrupcin, la mayora de los recursos o perifricos de que dispone los PIC16F877 son capaces de ocasionar stas si se programan adecuadamente los bits de los registros (Cf. [Angulo, 2000]). Las causas que provocan una interrupcin en el PIC16F877, son las siguientes: 1. Desbordamiento del Timer 0. 2. Desbordamiento del Timer 1. 3. Desbordamiento del Timer 2. 4. Activacin de RBO/INT.

B. Sistemas Mnimos.

91

5. Captura o comparacin en el mdulo CCP1 6. Captura o comparacin del mdulo CCP2. 7. Transferencia en el puerto serie sncrona. 8. Colisin de bus del puerto serie sncrona. 9. Fin de la transmisin en el USART. 10. Fin de la recepcin en el USART. 11. Fin de la conversin en el convertidor A/D. 12. Transferencia en la compuerta paralela esclava. 13. Cambio de estado en los 4 bits ms signicativos del puerto B. 14. Finalizacin en la escritura de un byte en la EEPROM. Registro de control de interrupciones (INTCON). Este es un registro de lectura/escritura que, para facilitar su acceso, se halla duplicado en los cuatro bancos de la memoria. Tiene la misin de controlar las interrupciones provocadas por el Timer 0, controlar las interrupciones dado un cambio de estado en los 4 bits ms signicativos del puerto B y por activacin del bit RB0/INT (Ibidem.). En la Tabla B.4 se muestra el registro interno del registro de interrupciones INTCON. Bit 7 GIE Bit 6 PEIE Bit 5 TMR0IE Bit 4 INTE Bit 3 RBIE Bit 2 TMROIF Bit 1 INTF Bit 0 RBIF

Tabla B.4: Estructura interna del registro de interrupciones.

Registro de permiso de interrupciones 1 (PIE1). Contiene los bits que permiten o prohben las interrupciones provocadas por los perifricos internos del microcontrolador y que no estaban contempladas en el INTCON. Para que cumplan su funcin los bits del PIE1 es necesario que PEIE est activado o en 1 (Ibidem.). Este registro cuenta con ocho bits, cada bit del registro PIE1 tiene un propsito en general: 1. PSPIE: permiso de interrupcin para la puerta paralela

92

B.2. Componentes del Sistema Mnimo.

2. ADIE: permiso de interrupcin para el conversor A/D al nalizar la conversin. 3. RCIE: permiso de interrupcin para el receptor del USART cuando el buer se llena. 4. TXIE: permiso de interrupcin para el transmisor del USART cuando el buer se llena. 5. SSPIE: permiso de interrupcin para un puerto serie sncrona. 6. CCP1IE: permiso de interrupcin para el mdulo CCP1 cuando se produce una captura o comparacin. 7. TMR2IE: permiso de interrupcin para el Timer 2 con su desbordamiento. 8. TMR1IE: permisos de interrupcin para el Timer 1 con su desbordamiento. En la Tabla B.5 se puede observar la estructura interna de este registro. Bit 7 PSPIE Bit 6 ADIE Bit 5 RCIE Bit 4 TXIE Bit 3 SSPIE Bit 2 CCP1IE Bit 1 TMR2IE Bit 0 TMR1IE

Tabla B.5: Estructura interna del registro PIE1.

Registro de sealizador de interrupciones (PIR1). En este registro, los bits actan de sealizadores desde el momento en el que se origina la interrupcin, independientemente de si est permitida o prohibida en correspondencia con el registro PIE1 (Ibidem.). La Tabla B.2.4 muestra la estructura interna del registro. Bit 7 PSPIF Bit 6 ADIF Bit 5 RCIF Bit 4 TXIF Bit 3 SSPIF Bit 2 CCP1IF Bit 1 TMR1IF Bit 0 TMR1IF

Tabla B.6: Estructura interna del registro PIR1.

B.2.5.

Puertos de entrada y salida.

Los microcontroladores PIC16F877 tienen disponibles cinco puertos de entrada/salida denominados PORTA, PORTB, PORTC, PORTD y PORTE. Todas las lneas de estos puertos son totalmente programables, es decir, pueden ser conguradas para trabajar como entradas o como salidas.

B. Sistemas Mnimos.

93

Puerto A. Este puerto solo dispone de 6 lneas, denominadas RA0-RA5, son bidireccionales y su sentido queda congurado segn la programacin de los bits del registro TRISA. Si el registro TRISA se programa en uno, las lneas del puerto A quedarn conguradas como entradas, por el contrario si el registro se programa en 0, las lneas del puerto A quedarn como salidas. Las lneas RA0/AN0, RA1/AN1 y RA2/AN2, RA3/AN3 y RA5/AN4 (ver Figura B.4 ) adems de lneas de entrada/salida digitales, tambin pueden actuar como canales 0, 1, 2, 3 y 4 respectivamente, por los que se le puede aplicar una seal analgica al conversor A/D. En este proyecto estas lneas son utilizadas para el convertidor A/D. Por otra parte existen lneas con funciones multiplexadas como la lnea RA4/T0CK1, que acta como entrada/salida digital y como entrada de reloj para el timer 0, y la lnea RA5/AN4/SS# que adems de entrada/salida digital, se utiliza para seleccionar el modo esclavo cuando se trabaja en comunicacin sncrona. Para seleccionar si las lneas del puerto A sern entradas o salidas digitales o como canales de entrada para el conversor A/D, se debe escribir el valor adecuado en el registro ADCON1. Puerto B. Este puerto dispone de ocho lneas bidireccionales y trabaja de forma similar al puerto A, o sea, como entrada/salida digital, cuya funcin se elige mediante la programacin del registro TRISB, al igual que el puerto A con TRISA. Tiene tres registros asociados: 1. PORTB: En este registro los ocho bits que contiene reejan directamente el estado de las ocho lneas del puerto B: RB0,...,RB7 (ver Figura B.4 ). 2. TRISB: En forma similar a TRISA, al poner un 0 en un bit de TRISB se congura la lnea RB correspondiente como salida y al poner un 1 en un bit de TRISB se congura la lnea RB correspondiente como entrada. 3. OPTION_REG: El bit 7 de este registro, denominado RBPU es usado para conectar/desconectar una resistencia pull-up conectada a cada lnea RB. Poniendo un 0 en este bit, todas las resistencias se conectan. Para desconectar las resistencias pull-up se debe poner este bit en 1, tambin se desconectan automticamente cuando la lnea correspondiente es congurada como salida.

94

B.2. Componentes del Sistema Mnimo.

Puerto C. Consta de 8 lneas bidireccionales (ver Figura B.4 ), cuyo sentido se congura mediante el registro TRISC, al igual que el puerto A y el puerto B. Todas las lneas de este puerto adems de ser entradas/salidas digitales, tienen multiplexadas diferentes funciones, entre las ms destacadas y utilizadas en este proyecto de tesis se mencionan: RC0/T1OS0/T1CK1: actan tambin como salida del Timer 1 o como entrada de impulsos para el Timer 1. RC1/T1OS1/CCP2: trabaja como entrada al oscilador del Timer 1. RC6/TX/CK: una de las lneas ms importantes y utilizadas ya que se usa como lnea de transmisin en el USART. RC7/RX/DT: utilizada en este proyecto para la recepcin del USART. Cuando se habilita la lnea del perifrico respectivo puede ser ignorada la conguracin de TRISC, de hecho, algunos perifricos conguran la lnea como salida mientras que otros la conguran como entrada (Cf. [Dumetri, 2002]). Puerto D. Este puerto D dispone de 8 lneas bidireccionales, cuyo sentido se congura con el registro TRISD al igual que el puerto A, B y C. En ste todas las lneas disponen en la entrada de un Dispador tipo Schmitt (ver Figura B.4 ). Adems de usar las lneas como entradas/salidas digitales, implementan un puerto paralelo esclavo de 8 lneas (PSP). Para que funcionen como puerto de comunicacin paralelo, se debe poner el bit PSPMODE=1 (Cf. [Angulo, 2000]). Puerto E. Slo posee 3 lneas congurables como entradas o salidas mediante los 3 bits menos signicativos del registro TRISE. Se puede tener acceso a sus lneas mediante los 3 bits menos signicativos del registro PORTE. Estas lneas estn compartidas con el convertidor analgico/digital, por ello, antes de usarlas debern ser conguradas como entradas/salidas digitales o analgicas, segn se desee en forma similar a como se hizo con el puerto A, usando el registro de conguracin ADCON1 (Cf. [Dumetri, 2002]).

B. Sistemas Mnimos.

95

B.2.6.

Registros de los temporizadores.

Registro de temporizador del Timer 1 (TMR1). El PIC16F877 dispone de un conjunto de tres temporizadores: TMR0, TMR1 y TMR2. El Timer 1 se caracteriza por tener un contador/temporizador de 16 bits y por ser de lectura y escritura. Se puede seleccionar el tipo de reloj a utilizar (reloj interno o externo) y cuenta con interrupcin opcional por desbordamiento de FFFFh hasta 0000h (Cf. [Angulo, 2000]). El Timer 1 es el nico temporizador/contador ascendente de 16 bits, por lo que requiere de dos registros concatenados: TMR1H:TMR1L, que son los encargados de almacenar el valor del conteo en cada momento. Dicho valor evoluciona desde 0000h hasta FFFFh, instante en el cual se activa el sealizador TMR1IF y regresa al valor inicial. Tambin si se desea se puede provocar una peticin de interrupcin (Ibidem.). En el modo temporizador del Timer 1, el valor en TMR1H:TMR1L se incrementa con cada ciclo de instruccin (Fosc/4). En la Figura B.8 se muestra el diagrama por bloques del Timer 1 en el que destacan las diversas seales de control y el predivisor de frecuencia.

Figura B.8: Esquema interno de los principales bloques del timer 1 ([Microchip, 2001]).

Registro de control del Timer 1 (T1CON). El registro que gobierna el funcionamiento del Timer 1 es el T1CON ubicado en el banco 1 de la memoria de datos RAM (ver Figura B.7 ). La estructura interna se observa en la Tabla B.7.

T1CKPS1

T1CKPS2

T1OSCEN

T1SYN

TMR1CS

TMR1ON

Tabla B.7: Estructura interna del registro T1CON. El bit TMR1ON (bit 0) gobierna el permiso o la prohibicin del funcionamiento del Timer 1, en caso de poner el bit en cero, el Timer 1 no funcionar. El bit TMR1CS selecciona la fuente de los impulsos de conteo, si vale 0 se selecciona el reloj interno (Fosc/4), si vale 1 es el reloj externo el que se aplica en las lneas RC0 y RC1. En ambos casos el registro TRISC carece de signicado, ya que una o ambas lneas RC1

96

B.2. Componentes del Sistema Mnimo.

y RC0 no pueden actuar al mismo tiempo como entrada de impulsos y como lneas de entrada/salida (Cf. [Angulo, 2000]). El predivisor de frecuencia (preescaler) es un simple divisor de frecuencia de los impulsos que se aplican al TMR1 por 1, 2, 4 u 8. El rango de divisin lo eligen los bits T1CKPS1 y T1CKP0 segn la Tabla B.8.

T2CKPS1 0 0 1 1

T2CKPS0 0 1 0 1

RANGO DEL PREDIVISOR 1:1 1:2 1:4 1:8

Tabla B.8: Bits para seleccin del rango del predivisor.

El Timer 1 puede generar una peticin de interrupcin cuando se produce el desbordamiento del contador, es decir cuando se pasa de FFFFh a 0000h. En esta situacin automticamente la bandera TMR1IF (bit 0 del registro PIR1) cambia su valor a 1. El permiso o prohibicin de la produccin de interrupcin del Timer 1 est controlada por el TMR1IE del bit 0 del registro PIE1 (Cf. [Angulo, 2000]).

B.2.7.

Registros de comunicacin serial.

Este microcontrolador dispone de un mdulo transmisor denominado USART (Universal Synchronous Asynchronous Receiver Transmitter) capaz de soportar la comunicacin serial sncrona y asncrona. El USART puede congurarse de modo asncrono full dplex el cual que puede comunicar dispositivos perifricos como pc, o como un sistema sncrono half duplex para comunicarse con otros microcontroladores, dispositivos perifricos como los convertidores A/D, los circuitos integrados D/A, etc. (Cf. [Microchip, 2001]). La conguracin asncrona que es la que se realiz en este trabajo de tesis, se ve con mayor detalle (c.f. [America Saldaa Snchez, 2006]. Registro de estado del transmisor (TXSTA). Este registro tiene la funcin de controlar la transmisin serial y su estado, se conforma de 8 bits y sus funciones van desde elegir el tipo de transmisin hasta la velocidad de transmisin. La funcin de cada bit se describe a continuacin:

B. Sistemas Mnimos.

97

Bit 7: CSRC. Este bit tiene la funcin de seleccionar la fuente de reloj para usarse en transmisin sncrona, y si la transmisin elegida es transmisin asncrona no importa el valor que se le asigne. Bit 6: TX9. Cuando este bit est en estado activo (igual a 1) la transmisin ser a 9 bits, mientras que cuando se encuentre en estado inactivo (igual a 0), la trasmisin se har a 8 bits. Bit 5: TXEN. La funcin de este bit es habilitar la transmisin, esto mientras el bit sea igual a 1, y cuando se encuentre igual a 0 la transmisin quedar desactivada. Bit 4: SYNC. Este bit selecciona el tipo de transmisin que ha de llevarse a cabo, si el bit es igual a 1 el tipo de transmisin ser sncrona, si el bit es igual a 0 el tipo ser asncrona. Bit 3: no se encuentra implementado. Bit 2: BRGH. ste bit selecciona la velocidad de la tasa de baudios a la que se ha de transmitir el byte, ste no se aplica para transmisin sncrona. En transmisin asncrona, se puede elegir alta o baja velocidad, poniendo a 1 0 respectivamente este bit. Bit 1: TRMT. ste es el bit de estado del registro de desplazamiento del transmisor (TSR), cuando se encuentra en 1, signica que el TSR se encuentra vaco y si se encuentra igual a 0 signica que el TSR est lleno. Bit 0: TX9D. Este es el noveno bit de datos cuando se elige transmitir a 9 bits, tambin se puede emplear como bit de paridad. La estructura interna del registro TXSTA se muestra en la Tabla B.9.

Bit 7 CSRC

Bit 6 TX9

Bit 5 TXEN

Bit 4 SYNC

Bit 3 -

Bit 2 BRGH

Bit 1 TRMT

Bit 0 TX9D

Tabla B.9: Estructura interna del registro TXSTA.

98

B.2. Componentes del Sistema Mnimo.

Registro de estado del receptor (RCSTA). Consta de 8 bits cuya funcin es congurar el estado y el control del receptor en la transmisin serial, su conguracin interna se muestra en la Tabla B.10 y las funciones de cada bit se describen a continuacin:

Bit 7: SPEN. ste es el bit bit de habilitacin del puerto serie mientras se encuentre en 1, se habilita el puerto serie (congura los pines RC7/RX/DT y RC6/TX/CK para el puerto serie) y si se encuentra en 0 deshabilita el puerto serie. Bit 6: RX9. Este bit habilita la recepcin de 9 u 8 bits poniendo a 1 0 respectivamente. Bit 5: SREN. Este bit habilita la recepcin nica en el modo asncrono su valor no importa, en modo sncrono maestro mientras su valor sea 1 habilita una recepcin nica y cuando su valor sea 0 deshabilita la recepcin nica. Bit 4: CREN. Es un bit de habilitacin de recepcin continua tanto para la transmisin sncrona como para la asncrona. Bit 3:ADDEN. Este bit tiene la funcin de habilitar o deshabilitar la deteccin de direccin del bit. Si su valor es igual a 1 se habilita la deteccin de direccin, y si su valor es igual a 0, se deshabilita la deteccin de direccin. Todos los bits son recibidos y el noveno bit es usan como bit de paridad. Bit 2: FERR. Este bit muestra el estado del error de empaquetamiento si su valor es 1 existe error de empaquetamiento y si se encuentra en 0 signica que no existe error. Bit 1: OERR. Este bit muestra el estado del error por desbordamiento, si su valor sea igual a 0 signica que no existe error. Bit 0: RX9D. En este bit se aloja el noveno bit de datos de recepcin ya se puede emplear como bit de paridad

B. Sistemas Mnimos.

99

Bit 7 SPEN

Bit 6 RX9

Bit 5 SREN

Bit 4 CREN

Bit 3 ADDEN

Bit 2 FERR

Bit 1 OERR

Bit 0 RX9D

Tabla B.10: Estructura interna del registro RCSTA.

B.2.8.

Registros del mdulo de conversin A/D.

El mdulo de conversin Analgico/Digital dispone de 8 lneas en el microcontrolador PIC16F877. A travs de las entradas analgicas se aplica la seal analgica a un condensador de captura y retencin (sample and hold), que despus se introduce en el convertidor. El convertidor de aproximaciones sucesivas da como resultado una palabra de 10 bits. La resolucin que tiene cada bit procedente de la conversin, tiene un valor que est en funcin de la tensin de referencia Vref , de acuerdo con: resolucion = (Vref + Vref )/1,024 = Vref /1,024 (B.1)

As, si la tensin de referencia positiva es 5 Volts y la negativa es tierra (0 Volts), entonces la resolucin es de 4.8 mV/bit. El funcionamiento del conversor A/D requiere de la manipulacin de cuatro registros: 1. ADRESH (parte alta del resultado de la conversin). 2. ADRESL (parte baja del resultado de la conversin). 3. ADCON0 (registro de control 0). 4. ADCON1 (registro de control 1). En la pareja de registros ADRESH:ADRESL se deposita el resultado de la conversin, que al estar compuesta por 10 bits, solo son signicativos 10 de los 16 bits de esa pareja de bytes (Ibidem.). El mdulo A/D tiene la posibilidad de justicar este resultado, y la seleccin de este formato de justicacin a la izquierda o derecha se realiza mediante la conguracin del registro de control 1 (ADCON1). Los bits restantes (a los 10 de la conversin) se llenan con ceros, estos dos registros cuando el convertidor A/D est en OFF y no se utilizan, pueden utilizarse como dos registros de 8 bits de propsito general (Cf. [Microchip, 2001]). Registro de control 0 para mdulo de conversin A/D. El registro ADCON0 controla la operacin del convertidor A/D y se encuentra en el banco 0 de la memoria de datos RAM (Ibidem.). El registro ADCON0 consta de 8 bits los cuales se denen a continuacin:

100

B.2. Componentes del Sistema Mnimo.

Bits 7-6: ADCS1:ADCS0. Estos bits seleccionan el tipo de reloj para el Convertidor A/D. En la Tabla B.11 se muestra los tipos de reloj disponibles y el dgito que se ha de cargar en stos bits, al igual que el dato que se ha de cargar en el bit ADCS2 del registro ADCON1. <ADCS2> ADCON1 0 0 0 0 1 1 1 1 <ADCS1:ADCS0> ADCON0 00 01 10 11 00 01 10 11 Reloj de Conversin Fosc/2 Fosc/8 Fosc/32 FRC Fosc/4 Fosc/16 Fosc/64 FRC

Tabla B.11: Tabla de seleccin de bits para elegir reloj de conversin.

Bits 5-3: CHS2:CHS0. Estos tres bits tienen la funcin de seleccionar el canal analgico que se ha de utilizar en el proceso de conversin A/D, respecto a la Tabla B.12. <ADCS1:ADCS0> 000 001 010 011 100 101 110 111 Canal de Canal Canal Canal Canal Canal Canal Canal Canal Conversin 0 (AN0) 1 (AN1) 3 (AN2) 3 (AN3) 4 (AN4) 5 (AN5) 6 (AN6) 7 (AN7)

Tabla B.12: Tabla de seleccin de canal analgico en el proceso de conversin.

Bit 2: GO/DONE. Este bit indica el estado de la conversin, cuando el bit sea igual a 1 indica que la conversin est en progreso, el cual cambiar automticamente a 0 por hardware cuando la conversin ha terminado, esto ocurrir siempre y cuando el bit ADON se encuentre en estado activo.

B. Sistemas Mnimos.

101

Bit 0: ADON. Este bit tiene la funcin de activar o desactivar el mdulo de conversin, cuando el bit se encuentre en 1, el mdulo de conversin A/D se enciende y cuando se encuentra en 0 este mdulo se encuentra apagado. El convertidor Analgico/Digital no trabajar correctamente con un TAD menor que TAD(mnimo) = 1.6 s. El usuario deber cuidar la eleccin del reloj adecuado para no violar esta limitante. La estructura interna del registro ADCON0 se observa en la Tabla B.13 que ese muestra a continuacin. Bit 7 ACS1 Bit 6 ADCS0 Bit 5 CHS2 Bit 4 CHS1 Bit 3 CHS0 Bit 2 GO/DONE Bit 1 Bit 0 ADON

Tabla B.13: Estructura interna del registro ADCON0.

Registro de control 1 para mdulo de conversin A/D. Este registro tiene la funcin de congurar las lneas del puerto A como entradas analgicas o entradas/salidas digitales y su estructura se muestra en la Tabla B.2.8. El bit de menos peso ADFM de este registro selecciona el formato del resultado de la conversin. Si vale 1, los 2 bits ms signicativos del resultado de la conversin sern alojados en las 2 primeras posiciones del registro ADRESH, dejando las 6 posiciones ms signicativas en 0, mientras que los siguientes 8 se encontrarn en el registro ADRESL. Y si ADFM es igual a 0, los 8 bits ms signicativos del resultado se encontrarn en el registro ADRESH y los 2 menos signicativos se alojarn en las posiciones 6 y 7 del registro ADRESL, dejando las siguientes 6 igual a 0 (Cf. [Angulo, 2000]). Los restantes 4 bits (PCFG3:PCFG0) de este registro ADCON1, se usan para congurar las lneas de los canales de entrada como entradas analgicas o como entradas/salidas digitales. Bit 7 ADFM Bit 6 ADCS2 Bit 5 Bit 4 Bit 3 PCFG3 Bit 2 PCFG2 Bit 1 PCFG1 Bit 0 PCGG0

Tabla B.14: Estructura interna del registro ADCON1.

B.3.

Pantalla de LCD para visualizacin.

Los mdulos LCD estn compuestos bsicamente por una pantalla de cristal lquido y un circuito microcontrolador especializado el cual posee los circuitos y memorias de

102

B.4. Puerto de comunicacin serial RS-232.

control necesarias para desplegar el conjunto de caracteres ASCII, un conjunto bsico de caracteres japoneses, griegos y algunos smbolos matemticos por medio de un circuito denominado generador de caracteres. La lgica de control se encarga de mantener la informacin en la pantalla hasta que ella sea sobreescrita o borrada en la memoria RAM de datos. La pantalla de cristal lquido est conformada por una dos lneas de 8, 16, 20, 24 40 caracteres de 5x7 pixels c/u. Estas pantallas alfanumricas de cristal lquido, denominadas abreviadamente LCD, constituyen uno de los visualizaciones de mensajes ms econmicos, prcticos y ecaces. El control de esta pantalla, se realiza con el microcontrolador, en el puerto B disponible en ste.

B.4.

Puerto de comunicacin serial RS-232.

Las transmisiones serie se caracterizan por utilizar una nica lnea para transmitir la informacin. Esto obliga en el transmisor a convertir los bytes de paralelo a serie para enviar los bits de forma secuencial, por su parte en el receptor la serie de bits recibidos son convertidos de serie a paralelo para reconstruir el byte. Inicialmente el puerto serie se utiliz para conectar la PC y un mdem. En esta conexin, a la PC se le denomina DTE (Data Terminal Equipment) y al Mdem DCE (Data Communication Equipment). Existen dos tipos posibles de transmisiones serie: sncrona y asncrona. En las transmisiones asncronas a cada byte de informacin a transmitir se le aaden una serie de bits jos de sealizacin para marcar el comienzo (bit de arranque o start) y el nal de cada byte (bits de parada o stop), esto se explica con ms detalle en [America Saldaa Snchez, 2006]. El DTE puede ser un dispositivo inteligente como una PC o un autmata, mientras que el DCE suele ser un dispositivo no inteligente como un mdem, una impresora, etc. Por lo que se estableci la norma RS-232, la cual dene una velocidad de transmisin serial de hasta 20 Kbps y longitud mxima de 15 metros; y las seales elctricas se denen entre +3 y +15 volts para el estado activo (uno lgico) y de -3 y -15 para el estado inactivo (cero lgico), adems de que solo permite conectar dos dispositivos para establecer comunicacin punto a punto. Actualmente la mayora de las PC poseen dos puertos serie denidos como COM1 y COM2 a nivel de sistema operativo y utilizan conectores DB9 macho. La ventaja de esta tcnica es que es ms fcil de implementar, pero una de sus desventajas es que adems de cada byte de informacin se envan tres bits ms que no son de informacin. En este proyecto de tesis se utiliz el registro USART en su modo comnmente usado asncrono para comunicar al puerto serial usando el protocolo RS-232 por lo que

B. Sistemas Mnimos.

103

se requiri una interfaz a RS-232 debido a los distintos niveles de voltaje, ya que estos no deben ser conectados directamente a las seales RS-232.

B.4.1.

Convertidor de interfaz RS-232 a RS-485.

Como ya se describi en la seccin anterior la norma RS-232 dene una comunicacin punto a punto serial, pero en el presente proyecto de tesis, se utiliz una comunicacin multipunto serial y para ello se debi implentar la norma RS-485. Mientras que la norma RS-232 solo permite enlaces punto a punto entre dos nodos, la norma RS-485 permite enlaces multipunto o multinodo mediante la conexin de un bus de dos hilos entre todos los nodos, para formar una topologa fsica en bus y la longitud mxima sin atenuaciones es de aproximadamente 1200 metros a una velocidad de 90Kbps a velocidad mxima de enlace de 10Mbps. El sistema mnimo tiene disponible el puerto de comunicacin serial del microcontrolador (USART) basado en la norma RS-232 al cual se le interconecta un mdulo de conversin de norma RS-232 a RS-485, mediante circuitos integrados MAXIM 233. Con esta conversin, se obtienen todas las ventajas que la norma RS-485 ofrece, los cuales se ven con mayor detalle en [America Saldaa Snchez, 2006]. Como ya se mencion, los sistemas mnimos deben estar comunicndose con la Unidad Central o PC, para lo cual se utiliz un convertidor de norma RS-485 a RS232, norma denida para comunicacin serial en computadoras, utilizando el circuito integrado MAXIM 485. La gura B.9 muestra la conguracin del MAXIM 485. Figura B.9: Conguracin del MAXIM 485.

De esta manera, en el presente proyecto de tesis, mediante dispositivos que se interconectan a los sistemas mnimos propuestos y mediante la conguracin de cada uno de los registros antes mencionados, fue posible la realizacin de la comunicacin serial distribuida, cuya conguracin se explicar con mayor detalle en los captulos siguientes.

104

G L O S A R I O 3D. - Tres dimensiones (X,Y,Z). Se reere a las que un objeto tiene largo, ancho y alto. 3DSMAX. - Software de diseo en 3D. Compaa Disscret. ACTIVEX. - Lenguaje desarrollado por Microsoft para la elaboracin de aplicaciones exportables a la red y capaces de operar sobre cualquier plataforma a travs, normalmente, de navegadores WWW [C.F. [Espinosa, 2004]]. APPLET. - Una manera de incluir programas complejos en el mbito de una pgina web. Estos applets se programan en Java y por tanto se benecian de la potencia de este lenguaje para la Red. AUTHORING TOOL.- Actividad de crear contenido para la web en pginas en formato HTML. El administrador de un sitio web o es el Webmaster, en general, el responsable de la autora de su contenido. AVATAR.- Representacin grca de un usuario dentro de un ambiente virtual. CLASS. - Extensin de archivo, generada a partir de una compilacin en java. CORTONA SDK. - Referencia Tcnica de Parallel Graphics, kit de programacin de software. Cortona Software Development Kit. BROWSERS. - (Navegador): Programa usado para visualizar documentos WWW en Internet. Los ms utilizados en estos momentos son Netscape e Internet Explorer. HTML. - Conocidos comnmente como visualizador web. Porque reconocen el cdigo HTML y lo visualizan. Con extensin HTML, HTM. VRML. - Reconocen el cdigo VRML. Con extensin en wrl, wrz. X3D. - Reconocen el cdigo X3D. JAVA. - Ejecutan los programas en Java. Con extension Class. FLASH. - Ejecutan las animaciones en Flash. Con extensin SWF. DEF. - Comando en la programacin de VRML para asignacin de nombres a los nodos.

Siglario

105

EAI. - External Authoring Interface. For communication between a VRML world and its external environment an interface between the two is needed. This interface is call an External Authoring Interface and it denes the set of functions on the VRML browser that the external environment can perform to aect the VRML world. To understand the relationship between this interface and the rest of the VRML environment please see Anatomy of a VRML Browser. EMBEBED. - Objeto incrustado. Este elemento compatible con casi todos los exploradores, aunque no es estndar, especica un objeto, normalmente un elemento de multimedia, para incrustarlo en un documento de HTML. ESTOMAS. - Abertura diminuta que aparece en la epidermis de los rganos verdes de las plantas superiores. GROUP. - Nodo VRML que puede agrupar en un conjunto. HTML. - El HTML, acrnimo ingls de Hyper Text Markup Language (lenguaje de marcacin de hipertexto), es un lenguaje de marcas diseado para estructurar textos y presentarlos en forma de hipertexto, que es el formato estndar de las pginas web [Espinosa, 2004]. Gracias a Internet y a los navegadores del tipo Explorer o Netscape, el HTML se ha convertido en uno de los formatos ms populares que existen para la construccin de documentos. HTTP. - Hyper Text Transfer Protocol. Protocolo de Transferencia de Hipertexto. JAVA. - Java es una plataforma de software desarrollada por Sun Microsystems, de tal manera que los programas creados en ella puedan ejecutarse sin cambios en diferentes tipos de arquitecturas y dispositivos computacionales. JAVASCRIPT. - JavaScript es un lenguaje interpretado orientado a las pginas web, con una sintaxis semejante a la del lenguaje Java. JSR. - Especicacin de peticiones de Java. MAQUINA VIRTUAL DE JAVA. - La mquina virtual de Java (en ingls Java Virtual Machine, JVM) es un programa ejecutable en una plataforma especca, capaz de interpretar y ejecutar instrucciones expresadas en un cdigo binario especial(el Java bytecode), el cual es generado por el compilador del lenguaje Java. MAYA.- Software de diseo en 3d. Compaa Alias Wavefront. MICROCLIMA. - Clima a que estn sometidos en realidad los vegetales de los diferentes estratos que constituyen una comunidad. Conjunto de condiciones climticas

106

Siglario

existentes en un rea pequea, denida con precisin, o en sus inmediaciones. NATIONAL INSTRUMENTS LABVIEW . - Herramienta de control y prueba de programas de instrumentacin virtual. NODE. - Un archivo VRML contiene nodos que describen formas y propiedades en un mundo virtual. Esto es construido por bloques de VRML. Cada nodo describe individualmente formas, colores, interpolaciones y as sucesivamente. Los nodos generalmente contienen. El tipo de nodo (requerida). Un conjunto de llaves (requerido). Algn numero de campos (opcional) y valores denidos de los atributos del nodo con sus llaves o corchetes segn sea el caso. Las llaves o los corchetes agrupan toda la informacin del campo del nodo. Una forma o propiedad denida por el nodo y la relacin de sus campos son considerado una simple entidad en el mundo virtual. PLUG-IN. - Es un programa que se conecta a un programa antrin para extender la funcionalidad de este ltimo. El programa husped tiene ciertas capacidades que el antrin no tiene. Como Cortona Player, es un Plug-In, que permite al browser Web, como Internet Explorer, presentar al usuario escenas VRML. PROGRAMACIN POR BLOQUES. - Es la nueva generacin de la programacin en la cual se utilizan bloques. Cada bloque es un mtodo o funcin, condicin, ciclo y tipos de datos, donde la programacin se llama a cabo enlazando los bloques por medio de un cableado y dando alguna propiedad a cada bloque para su conguracin. THREAD. - Muchos lenguajes de programacin (como Java), y otros entornos de desarrollo soportan los llamados hilos o hebras (en ingls, threads). Los hilos son similares a los procesos en que ambos representan una secuencia simple de instrucciones ejecutada en paralelo con otras secuencias. Los hilos son una forma de dividir un programa en dos o ms tareas que corren simultneamente. TIPO DATOS Y EVENTOS VRML EVENTINSFTIME. - Evento de entrada de tipo de tiempo [Consortium, 1998]. EVENTINSFVEC3F. - Evento de entrada de tipo vector otante. EVENTINMFCOLOR. - Evento de entrada de tipo color. EVENTINMFSTRING. - Evento de entrada de tipo cadena. SFTIME. - Tipo de datos del tiempo. SFVEC3F. - Tipo de datos de vector otante. MFCOLOR. - Tipo de datos de Material de colores en otante.

Siglario

107

MFSTRING. - Tipo de datos de cadenas. TRANSFORM. - El nodo Transform crea un nuevo sistema de coordenadas relativo para este nuevo padre del sistema coordenado. Las formas creadas estn dentro de un hijo del nodo transform construido de un nuevo sistema coordenado relativamente del sistema coordenado del origen. VRML. -(acrnimo del ingls Virtual Reality Modeling Language) - formato de archivo normalizado que tiene como objetivo la representacin de grcos interactivos tridimensionales; diseado particularmente para su empleo en la web. Consiste en un formato de chero de texto en el que se especican los vertices y las aristas de cada polgono tridimensional, adems del color de su supercie. USE. - Una vez denido un nodo con la palabra DEF, se puede hacer uso de este nodo otra vez con el mismo archivo del mundo virtual por el precedente del nombre del nodo utilizando la palabra USE. VI. - Virtual Instrumentation. Extension de archivos de la programacin por bloques de National Instruments de LabVIEW . Virtual Instruments Instrumentos Virtuales debido a que en apariencia y operacin imitan a los instrumentos fsicos, como multmetros u osciloscopios. W3C. - Consorcio Word Wide Web (W3C), es una asociacin internacional formada por organizaciones miembros del consorcio, personal y el pblico en general, que trabajan conjuntamente para desarrollar estndares Web. La misin del W3C es: Guiar la Web hacia su mximo potencial a travs del desarrollo de protocolos y pautas que aseguren el crecimiento futuro de la Web. WIRED. - Hilo que interconecta laso bloques que sirven para programar sistemas de control en LabVIEW de National Instruments . WRL. - Extensiones de los archivos mundos virtuales en VRML 2.0 WRZ. - Extensiones de los archivos mundos virtuales en VRML 2.0 en formato comprimido. WWW. - World Wide Web. Es la coleccin mundial de sitios Web, los cuales se comunican a travs de Internet. X3D. - Dialecto XML para representaciones 3D basado en VRML.

Anda mungkin juga menyukai