Estación Ambiental utilizando Microchip PIC16C74

Descripción detalla de la creación de una estación ambiental, utilizando como base un microcontrolador microchip PIC16C74.

lunes, febrero 28, 2005

6. METODOLOGÍA Y BITACORA DEL PROYECTO EN EL PIC

“La práctica es la que determina el dominio sobre una materia”, es el caso de los proyectos que tienen que ver con los microcontroladores ya que la información teórica es difícil de asimilar “de un tirón”. Se hace necesario escudriñar en errores y en suposiciones que no funcionan. En este discurrir se avanza en ese conocimiento y funcionan las cosas de acuerdo a lo que se quiere.
En este proyecto se construye un circuito propio hecho a la medida de nuestra estación meteorológica para medir variables ambientales y en el cual se debe tener en cuenta:

  • Plantear el comportamiento del circuito
  • Diseñar el diagrama esquemático
  • Elaborar un diagrama de flujo
  • Codificar el diagrama de flujo con las herramientas desarrolladas para este fin
  • Utilizar el simulador para hacer seguimiento y verificar que las cosas funcionan bien
  • Trasladar el código fuente al microprocesador
  • Hacer las pruebas necesarias
  • Armar por separado cada sensor verificarlo, calibrarlo, y ensayarlo para luego acoplarlo al sistema maestro
  • Realizar prototipos para hacer pruebas y verificar que todo el conjunto funcione correctamente
  • Construir el circuito impreso y ensamblar las componentes definitivamente.

sábado, febrero 26, 2005

5. DESCRIPCIÓN DEL PROYECTO

5.1 METODOLOGÍA Y BITACORA DEL PROYECTO
En los proyectos que constan de hardware y de software es importante asignar funciones, distribuir cargas y dividir el trabajo de los integrantes, después de analizar el problema se decidió trabajar de la siguiente manera:
El software: Debería permitir configurar el dispositivo (PIC) tanto en la hora del reloj real como en el de toma de datos de las variables ambientales expuestas anteriormente, debe tener un control que permita que el dispositivo tome muestras y las envié cada determinado tiempo al PC, realizar un reset lógico al dispositivo, leer los últimos datos, enviar los datos almacenados en la memoria EEPROM y que permita también borrarla, además de generar archivos planos con la información obtenida de la memoria para realizar los reportes con la ayuda de hojas de calculo.
La aplicación debe ser capaz de guardar y recuperar los cambios hechos por el usuario en el sistema en cualquier momento, como es el cambio de escala de la velocidad del viento o la escala de la temperatura.
El programa podrá ser abierto y cerrado en cualquier momento sin que el dispositivo se altere, entre en conflicto o se bloquee.
El usuario en cualquier momento podrá ver la configuración del dispositivo y modificarla.
El Hardware: O PIC estará en capacidad de tomar muestras en los intervalos de tiempo establecidos por el usuario de las variables ambientales antes expuestas, de establecer comunicación con la aplicación para enviar y recibir caracteres de control ya sea para enviar información, recibir configuración, borrar memoria, tomar datos y enviar, enviar los últimos datos.
El hardware tiene un sistema de reloj interno que permite ajustar un reloj calendario a la hora actual y la cual se mostrará en hora militar.

jueves, febrero 24, 2005

4.6 Descripción de los componentes de un PIC

OSCI. La entrada de reloj en el pin OSCI se divide internamente por cuatro para generar cuatro señales de reloj no superpuestas, necesarias para controlar las operaciones de búsqueda, de codificación y ejecución de las instrucciones del programa.
Memoria de programas. Se puede direccionar hasta 4k palabras de 14 bits de la memoria ROM, dispuesta en dos bancos, que almacenan los programas. Para programas más largos se deben utilizar dispositivos con mayor memoria; esta se puede direccionar seleccionando 1 de 2 paginas de 2k palabras cada una. La secuencia de las instrucciones está controlada por el registro contador de programa (PC). El cual se incrementa, al ejecutar una instrucción, para ejecutar el programa grabado en la ROM. Las palabras de la memoria de programa pasan al registro de instrucciones, el cual las comunica al decodificador de instrucciones para que, a su vez, inicie la ejecución de la instrucción. El programa puede soportar direccionamientos en modo directo, indirecto y relativo. El contador de programa (PC) está conectado también a dos registros de stack o pila que permiten soportar ocho niveles consecutivos de llamada a una subrutina.
Bus de datos. Este bus de 8 bits es una vía central que intercomunica los siguientes elementos: el conjunto de registros de la memoria RAM. Los puertos de entrada / salida (I/O), el registro de estado (STATUS), la unidad lógica - aritmética (ALU), el registro de selección FSR (que permite direccionamiento indirecto), los registros de preescalamiento de los temporizadores (TMR0, TMR1, TMR2) y el registro de trabajo (W).
Organización de los registros. Los registros especiales y las posiciones de memoria, están organizadas en un conjunto o arreglo general. Hay 192 registros de RAM direccionables directamente en un sistema de dos bancos de memoria con 96 bytes cada uno. El conjunto de registros está dividido en dos grupos funcionales: los registros operacionales y los de propósito general. Los primeros incluyen el registro contador de reloj (RTCC), el contador de programa (PC), el registro de estados (STATUS), los de entrada/salida (I/O) y el registro de selección (FSR). El direccionamiento directo está soportado mediante instrucciones especiales que cargan los datos de la memoria RAM y en el registro de trabajo W o viceversa. Los datos pueden direccionarse de manera indirecta por medio del registro selector FSR (no hay necesidad de definir el banco de memoria, el FSR “alcanza “ ambos bancos) y están disponibles para el usuario.
Unidad aritmética y lógica (ALU). La Unidad aritmética y lógica de 8 bits contiene un solo registro temporal de trabajo y las funciones lógicas necesaria para ejecutar operaciones aritméticas, operaciones de álgebra de Boole entre el registro de trabajo y cualquier otro registro.
Registros de entrada y salida. Los puertos de entrada y salida, Puerto A, B, C, D, E pueden escribirse y leerse bajo el control del programa, como cualquier otro registro. Sin embargo las instrucciones de lectura, leen siempre el estado del pin de entrada/salida sin importar como esté definido el pin, situación a tener en cuenta cuando se operan en forma bidireccional. Los registros de control de I/O (A, B, C, D, E) se actualizan con valor de 1 en el respectivo registro TRIS para definir un pin como salida ó 0 para definirlo como entrada.
Opciones de oscilador. Hay cuatro tipos de oscilador en la familia de microcontroladores PIC: el XT, el HS o de alta velocidad y potencia, el LP o de baja velocidad y potencia y el RC o de oscilador excitado por una red de resistencias y condensadores, para aplicaciones que no requieren una alta precisión en tiempos. Los XT, HS y LP requieren un cristal cerámico para establecer la oscilación.
Conjunto de instrucciones. Son todas las órdenes o comandos que el PIC puede interpretar y ejecutar; éstas se clasifican en orientadas al byte, orientadas al bit y operaciones literales y de control. Cada instrucción es una palabra de 14 bits dividida en un código de operación, el cual específica la orden a ejecutar y uno o más operandos sobre los que se actúa.
Para más información vea el apéndice A sobre el PIC16C74.

4.5 Diagrama de Bloques

miércoles, febrero 23, 2005

4.4 Estructura de Computadores

Mientras una instrucción se ejecuta utilizando el bus de datos, la siguiente se está leyendo desde la memoria del programa para alojarse en el registro de instrucciones, desde donde iniciará la ejecución. En el diagrama simplificado de la estructura de la familia de microcontroladores PIC, se observa, inicialmente, la comprobación de lo que se dijo en el párrafo anterior, hay dos buses: un bus de datos de 8 bits y un bus de programa de 14 bits. También hay dos espacios de memoria: una memoria ROM que contiene los programas y una memoria RAM compuesta por 192 registros para almacenar datos. También existe un stack que permite almacenar hasta ocho niveles de anidamiento en el programa.

4.3 Arquitectura del PIC

Los PIC son una familia de microcontroladores que, contienen memoria ROM, puertos de entrada/salida (I/O) y unidad de procesamiento central en un solo chip o circuito integrado. La arquitectura de los PIC es algo diferente a la convencional.
En una estructura de computadores tradicional o Von Newman, hay un solo bus que comunica datos y programas desde la memoria hacia la CPU y viceversa. En la estructura Harvard, que es la que se emplea en la PIC, hay dos buses: uno de ellos comunica datos, de manera bidireccional, entre la CPU y la memoria de datos, y otro bus diferente comunica instrucciones, también de manera bidireccional entre la CPU y la memoria de programas. Este concepto permite suponer que los ciclos de búsqueda de instrucciones y de ejecución se realizan al mismo tiempo. En el caso del PIC16C74 con un reloj de 4 Mhz, este ciclo es de 1s(micro segundo) por instrucción; de acuerdo con la formula (Focs/4)-1, donde Focs es la frecuencia del reloj que se utiliza y cuatro es el número de ciclos internos que se toma el procesador en ejecutar una instrucción.

martes, febrero 22, 2005

4.2 Bases Teóricas (Cont.)

¿ Que es interoperabilidad Hardware - Software?
Es la propiedad de manipular un sistema eléctrico “Hardware” representado y manejado por un panel de control, y un ambiente gráfico computarizado ”Software”, comunicados entre sí por un medio (comunicación serial) logrando así la “interoperabilidad” ya que ambos extremos aportan y reciben la información necesaria para su funcionamiento y mantenimiento.
¿ Porqué un lenguaje de desarrollo bajo Windows?
Las interfaces gráficas de usuario o GUIs han revolucionado la industria de las microcomputadoras. Son una prueba de que el refrán “vale más una imagen que mil palabras” sigue siendo cierto. Quizás más importante que el aspecto de las aplicaciones Windows sea la sensación que dan éstas ya que el usuario puede preocuparse por perfeccionar su trabajo y menos tiempo en desplazarse por menús o recordando teclas.
El desarrollo de aplicaciones Windows fue complicado hasta que se introdujo Visual Basic aunque se requerían cientos de líneas de código para llevar a cabo tareas sencillas; ahora con Visual C++ las aplicaciones pueden realizarse en un tiempo menor del requerido anteriormente, los errores de programación no suceden tan a menudo y si tienen lugar son fáciles de detectar y corregir; son además tan rápidas como las desarrolladas en C o C++, y tan fáciles de implementar como las de Pascal, construir programas ejecutables reales que incluyen Dlls (Bibliotecas de enlace dinámico las cuales son la piedra angular de la programación en Windows), es posible y además pueden construirse objetos reutilizables siguiendo los paradigmas de la programación orientada a objetos.
¿ Que es Visual C++?
Microsoft Visual C++ es un entorno de programación en el que se combinan la programación orientada a objetos y el sistema de desarrollo diseñado especialmente para crear aplicaciones gráficas para Windows.
Aunque las aplicaciones Windows son sencillas de utilizar, el desarrollo de las mismas no es fácil. Por ello, para hacer más asequible esta tarea, Visual C++ incluye, además de varias herramientas que lo convierten en un generador de programas C++, un conjunto completo de clases que permiten crear de una forma intuitiva las aplicaciones para Windows y que permiten manejar los componentes según su naturaleza de objetos. La librería MFC(Microsoft Foundation Class) es una implementación que utiliza las funciones API, encapsulando todas las estructuras y llamadas a dichas funciones en objetos fáciles de utilizar. Orientado al desarrollo de aplicaciones está centrado en dos tipos de objetos, ventanas y controles, que permiten diseñar sin programar, una interfaz gráfica para una aplicación. Para realizar una aplicación se crean ventanas, a veces llamados formularios y sobre ellas se dibujan otros objetos llamados controles.
Quiere esto decir, que cada objeto (ventanas y controles) está ligado a un código que permanece inactivo hasta que se dé el suceso que lo active.
¿ Que son los microcontroladores PIC?
Los microcontroladores PIC son una familia que ha conquistado en los últimos años un espacio considerable entre los diseñadores de toda clase de circuitos de instrumentación, medición y control.
Tiene algunas características que, de veras, la distinguen de otras familias de microcontroladores de un solo chip. Los PIC16CXX de Microchip Technology, son una familia de microcontroladores CMOS de 8 bits, alta velocidad, bajo costo y excelente rendimiento. Algunas de las características más atractivas son:
Bajo consumo de potencia. La disipación máxima es menor a 800mW.
El reloj de operación puede ser desde DC hasta 20 MHz.
Hasta 33 líneas de entrada / salida (I/O).
Circuito de vigilancia (watchdog) para recuperación por fallas de programación.
Modo de operación para ahorro de potencia (SLEEP)
Fusible para protección de código.

4.2 Bases Teóricas

Las bases teóricas para realizar este proyecto se basan en los conocimientos adquiridos de las siguientes materias: Física I, Física II, Circuitos Digitales, Laboratorio de Circuitos Digitales, Electrónica Básica, Programación Orientada a Objetos, Programación Windows y una de las más importantes, Seminario de Controladores.
Sobre la base de esta última se utilizaran los conocimientos adquiridos con respecto a la utilización del Microcontrolador PIC16C74A como parte principal del proyecto, ya que dicha pastilla será la encargada de recibir los datos del mundo real, recibidos previamente por los dispositivos de lectura, para así procesarlos y grabarlos en una memoria EEPROM de la familia 24LCXX y así por medio de un software implementado con tecnología Objetual y protocolos de comunicaciones (I2C y RS232), leer los datos de dicha memoria y enviarlos al computador para crear un archivo plano y luego desplegarlos de una forma amena al usuario como histogramas de frecuencias de los datos e informes estadísticos con la ayuda de herramientas de software como las hojas de calculo.
Es en este punto donde se utilizaran los conocimientos adquiridos en programación Windows y programación Orientada a Objetos para crear un software genérico que manipule este tipo de datos, como otros dispositivos de la misma familia para así facilitar el trabajo de posteriores adiciones y/o nuevas tecnologías.
Cabe destacar la interoperabilidad Hardware – Software factor importante en el desarrollo de este tipo de proyectos en los que la comunicación bidireccional es crucial en el buen funcionamiento tanto del aplicativo como de los dispositivos acoplados.

lunes, febrero 21, 2005

4. Marco Teórico

4.1 Antecedentes del problema:
¿Cómo surgió el problema?
El problema surgió al buscar un aplicativo para trabajar en el seminario de controladores digitales y se determino que las estaciones ambientales son un buen tema para la aplicación de los conocimientos adquiridos.
Además, al necesitar ampliar la cobertura de estaciones (para un mejor muestreo de datos) se observó que el presupuesto para realizar dicha inversión bastaba solo para adquirir unos pocos equipos debido a su alto costo, lo que llevo a buscar alternativas más económicas y más confiables.
¿Qué estudios o investigaciones se han realizado?
Constantemente se vienen realizando estudios y programas de aplicación que van encaminadas al mejoramiento de pastillas y dispositivos de toma de datos ej. : medidores ultrasónicos de mayor precisión, medidores de temperatura para grados Celcuis y Fahrenheit que tienen la posibilidad de utilizar varias interfaces de comunicación y medidores de velocidad del viento que están conformados de una parte mecánica y una digital.
Se han consultado varios libros acerca de los microcontroladores y las memorias no volátiles y temas referentes a la creación de dispositivos electrónicos.

viernes, febrero 18, 2005

3. Resumen

Partiendo de lo visto en el seminario de controladores digitales, el proyecto “CREACION DE UNA ESTACION AMBIENTAL UTILIZANDO PIC ", CEAP manejará dispositivos de toma de datos tales como: temperatura, intensidad solar, velocidad del viento, dirección del viento, pluviómetro, además de manejar todas las posibilidades de programación de la familia de microprocesadores PIC16CXX, el manejo de memorias de bajo consumo de potencia, no volátiles, como las de la familia 24LCxx /p, a través del protocolo de comunicación I2C y la comunicación RS-232 para el transporte de información entre el dispositivo y el computador, los resultados obtenidos de este se mostraran entonces a través de un display en el mismo dispositivo (últimos datos tomados) y en el PC en forma de archivo para realizar informes estadísticos de una forma amena y amigable al usuario a través de una interfaz gráfica.
CEAP también permitirá hacer muestreos en el momento en que se le indique, desplegando los resultados en el display del dispositivo o bien en el computador.
También permitirá a través de un teclado programar tiempos de muestreo para el dispositivo, además de permitir el envío de datos, borrado de memoria, reset, entre otras opciones. CEAP esta diseñado para hacer muestreos de variables ambientales (temperatura, velocidad del viento, dirección del viento, intensidad solar, pluviómetro) con sensores comerciales y económicos de gran precisión. En el mercado existen diversos dispositivos que permiten medir estas variables pero que son o muy costosos o no ofrecen la suficiente precisión, se escogieron sensores intermedios, eso sí muy comerciales.

jueves, febrero 17, 2005

2. Formulación

Imagínense una estación meteorológica. Esta está constituida por varios dispositivos, cuyos fines son tomar y analizar datos del mundo real, dentro de los dispositivos que se manejan están:
Sismógrafos, Satélites, Sensores de Temperatura, Intensidad Solar, Anemómetros, Acimut, Pluviómetros, Barómetros, Globos Aerostáticos, Espectrógrafos de masas para análisis del aire y agua, Microscopios electrónicos entre otros. Todos encaminados a realizar estudios estadísticos confiables que permitan predecir futuros cambios en el comportamiento del medio ambiente.
Para que esta estación ambiental cumpla su objetivo, además de poseer dispositivos de alta durabilidad y precisión, también es requisito su continuo mantenimiento y acceso físico para tomar los datos que ella provee. Es en estos puntos, donde radica el problema.
Se debe diseñar un dispositivo lo más autónomo posible de alta precisión y que permita tomar datos en momentos críticos, que tenga el menor número de accesos al lugar de su instalación y que la información sea fácil de accesar en el computador, además que sea económico y de fácil mantenimiento.

miércoles, febrero 16, 2005

1. Abstract

El trabajo de grado de Ingeniería de Sistemas, Creación de una Estación Ambiental Utilizando PIC “CEAP”, presenta un sistema capaz de medir la temperatura ambiente, la Intensidad solar, la velocidad del viento, la dirección del viento y la precipitación pluvial en un determinado periodo de tiempo y en un punto geográfico.
La interfaz esta desarrollada para el Sistema Operativo Windows en un ambiente amigable y de fácil manejo.
La implementación del proyecto CEAP requirió conocimientos en el desarrollo de aplicaciones orientadas a objetos, en programación a bajo nivel del microprocesador PIC16C74A de Microchip al igual que sus herramientas de desarrollo, en comunicación serial RS-232, en electrónica y en acústica.