miércoles, 17 de julio de 2013

PROYECTO FINAL

Monitoreo y control de los niveles de CH4 y gas natural en unidades residenciales

Se desea implementar un prototipo en el cual se simule, monitoree y controle una fuga de gas natural.

Deasrrollo.

Se realiza un prototipo a escala de una cocina diseñada con el fin de simular en un ambiente controlado una fuga de gas.

Para el diseño del prototipo se utilizaron materiales de fácil acceso como son icopor, cartón industrial, acetato y palos de balso, con el modelo ya montado se procedió a sellar el prototipo con el acetato para poder controlar el ambiente interno teniendo como única vía de evacuación el extractor ubicado en una de las paredes en la cual también se encuentra ubicado la alarma auditiva , en la pared adyacente en la parte superior se ubicó el sensor de gas MQ-4 ideal por su sensibilidad ante la presencia de gas propano también se ubico barra de led´s que actúa como alarma visual mostrando de forma ascendente pasando de los led´s verdes a los amarillos y por ultimo los rojos indicando la presencia de un ambiente toxico respectivamente y por ultimo un bombillo de neon que indica si la válvula de gas esta abierta o cerrada. en la parte de atrás en una recamara oculta se encuentra la circuitería junto con la tarjeta de  monitorio , el módulo de comunicación inalámbrica XBee y la fuente de alimentación del prototipo. 

Imagenes del prototipo diseñadas en 3dsmax

 

Imagen real del prototipo implementado 



A continuación se muestra la interfaz hecha en Visual Basic


Y los diagramas de flujo de cada etapa

Etapa de monitoreo 


Etapa de conexión por USB a PC



Video



Conclusiones


Con el desarrollo de este proyecto se obtuvo el control de una variable de gran dificultad para medir debido a las características físicas del gas (no tiene olor ni color) y es muy difícil de determinar la cantidad de PPM de gas exacta concentrada en el área volumétrica  del prototipo.

Las tarjetas de propósito general desarrolladas  resultan ampliamente eficientes para el desarrollo de este tipo de proyectos, por su versatilidad y la facilidad para probar el funcionamiento de cada uno de los módulos del microcontrolador.

El desarrollo de este prototipo está dirigido a proteger al ser humano de afecciones a la salud y su integridad personal, por este motivo el diseño de esta aplicación en domótica, es un aporte considerable para la comunidad.

El diseño del software permite al usuario controlar y monitorear no solo la variable tratada en el prototipo, sino también se pueden controlar otras variables como el control de la temperatura o la humedad, haciendo los respectivos cambios en el hardware. (sensores, actuadores, etc.).


El nivel mínimo de oxigeno es de 19,5%  para evitar consecuencias sobre la salud humana, este nivel se mide sobre la calidad del aire que se analice en un recinto cerrado, por lo que los resultados obtenidos no se pueden trasladar para ser aplicados en una aplicación real, debido a que la relación obtenida se realizo sobre el área volumétrica del prototipo.

domingo, 7 de julio de 2013

8. Implementacion de rutina tipo hardware-software utilizando el modulo USB

Uso del modulo USB en aplicacion hardware-software

Para este laboratorio se implementara un circuito que enviara y recivira información entre el microprocesador y un computador utilizando como medio de comunicación el modulo USB, para poder desarrollar el laboratorio fue necesario instalar un driver para poder utilizar dispositivos HID, con este software ya se puede realizar la comunicacion entre el computador y el microprocesador.

materiales utilizados para este laboratorio:

  • Tarjeta de propósito general para PIC 18F2550.
  • Resistencia variable 1KΩ (Potenciómetro)..
  • Bloque X 8 led´s.
  • Resistencias 330Ω X 8.
Desarrollo del laboratorio:

Para este caso se realiza la captura de la variación de voltaje ocasionada por el movimiento de un potenciometro, esta variación se toma por el ADC del microprocesador almacenadose en una variable que después se envía por el modulo USB hacia el computador en el cual se visualiza en una aplicación desarrollada en Visual Studio. Net 2010, adicional mente en la aplicación se realiza una trackbar cuya variación se envía por el modulo USB hacia el microprocesador, esta información se visualiza en los led´s conectados en el puerto B del microprocesador.

a continuación se muestra el código del fireware.

#include <18F2550.h>
#device adc=8                                                                   
#fuses HS,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL3,CPUDIV1,VREGEN
#use delay (clock=12000000)//12Mhz
#USE STANDARD_IO(A)
#USE STANDARD_IO(B)

// CCS Library dynamic defines
#DEFINE USB_HID_DEVICE  TRUE 
#define USB_EP1_TX_ENABLE  USB_ENABLE_INTERRUPT  
#define USB_EP1_TX_SIZE    64 
#define USB_EP1_RX_ENABLE  USB_ENABLE_INTERRUPT   
#define USB_EP1_RX_SIZE    64 

// CCS USB Libraries
#include <pic18_usb.h>   
#include <usb_desc_hid 8-byte.h>   
#include <usb.c>      

void usb_debug_task(VOID)
{
   STATIC int8 last_connected;
   STATIC int8 last_enumerated;
   INT8 new_connected;
   INT8 new_enumerated;
   new_connected = usb_attached ();
   new_enumerated = usb_enumerated ();
   last_connected = new_connected;
   last_enumerated = new_enumerated;
}

// ----------------------------------Declaración de variables----------------------------------

int dato4;                                                                       //variable
int dato1;                                                                       //variable

//Variables USB-----------------------------------

int16 tx;
#byte txl=43
#byte txh=44
#byte tx1l=45
#byte tx1h=46

int8 in_data[8];
int8 out_data[8];

// ----------------------------------Declaración de los prototipos de las funciones---------------------------------

#INT_TIMER1
void int_TMR1()      //retardo programado a un segundo
{
}

void main(){

   enable_interrupts(INT_RDA);
   enable_interrupts(GLOBAL);
   setup_adc_ports(AN0);
   setup_adc(ADC_CLOCK_INTERNAL);  
   usb_init();
   
      for (;;) {

      SET_ADC_CHANNEL(0);
      DELAY_US(20);
      dato4=READ_ADC();
      usb_task ();
      usb_debug_task ();
      usb_get_packet (1, in_data, 8);

            txh=(in_data[1]);
            txl=(in_data[2]);
            tx1h=(in_data[3]);
           dato1=(in_data[4]);
           output_b(dato1);                  
   
            
            out_data[0]=30 ;
           out_data[3]=dato4;                     
            usb_put_packet (1, out_data, 8, USB_DTS_TOGGLE);
            ENABLE_INTERRUPTS(int_timer0);
            set_timer0(tx);

     }
}

y esta es la simulación:


Y por ultimo se muestra el montaje real


miércoles, 3 de julio de 2013

7. Aplicación en software

Desarrollo de software en el IDE de Visual Basic

El objetivo de este laboratorio es aprender a utilizar las principales herramientas del software de Visual Basic  mediante un ejercicio básico.

Desarrollo del laboratorio

Primero comenzamos a diseñar la ventana de operaciones en donde colocamos las siguientes herramientas:

Trackbar_scroll  (2 und.)
Label (2 und.)
Textbox (2 und.)
ProgressBar (2 und.)
Buttom (1 und.)

Las anteriores herramientas se ubican dentro del cuadro de diseño en forma simétrica y organizada.
Después se comienza a realizar la programación en base a lenguaje C dentro de las cajas de cada objeto, primero comenzamos declarando las variables y el tipo de variable, luego enlazamos las trackbar con los objetos Label y progressBar para que el valor de la trackbar  se refleje en estos objetos.
Luego para  cumplir con la condición de la operación SUMA y RESTA se utiliza una sentencia IF, ELSE; igualmente para identificar cual dato es mayor, “A<B ó A>B”.

La identificación del dato mayor se realiza mediante el cambio de color de un Buttom.

A continuación se muestra el código del programa desarrollado en Visual Basic 10 express


Y aquí esta la imagen del programa en curso.



lunes, 1 de julio de 2013

6. Comunicación serial

6A.  Implementación del módulo de recepción (Rx) y transmisión (Tx) de datos, por medio de puerto serial RS-232

El objetivo de este laboratorio es implementar un circuito que visualice la conversión ADC en un computador y además al ingresar datos en el computador se puedan visualizar en un bloque de 8 led´s, en código ASCII.

Para desarrollar este laboratorio se necesita los siguientes materiales:


  • Tarjeta de propósito general para PIC 18F2550.
  • Resistencia variable 1KΩ (Potenciómetro).
  • Conversor RS-232 a USB.
  • Circuito conversor TTL Max 232.
  • Bloque X 8 led´s.
  • Resistencias 330Ω X 8.

Desarrollo del laboratorio

Primero comenzamos por crear el firmware, que básicamente es muy parecido al Laboratorio #3 (Conversor analógico digital ADC), pero con la salvedad que tenemos que incluir el módulo RS232, identificando la velocidad de transmisión en baudios (9600baudios), pin de transmisión (Pin_C6), pin de recepción (Pin_C7), la resolución a 8 bit´s y la no paridad.
También agregamos las líneas de la función GETCHAR, que espera que pulsemos una tecla en el computador para almacenar su valor en la variable K y la función PUTS que envía el mensaje de “Recibido” al hiperterminal cuando la función GETCHAR recibe los datos.
El resultado se evidencia en el hiperterminal al mostrarnos la conversión ADC, controlada por la resistencia variable (Potenciómetro) conectada al Pin AN0 y al pulsar alguna tecla en el computador muestra el valor del carácter en su equivalente en código ASCII, en el bloque de led´s.

A continuación se muestra el fw desarrollado en PICC


Para implementar el circuito primero lo probamos en ISIS Proteus creando dos puertos virtuales (COM1 y COM2) para simular la recepción y transmisión de datos, sirviendo de enlace entre el hiperterminal y Proteus como se muestra en la imagen.


Por ultimo se muestra la imagen del montaje físico.


6B. Comunicación entre dos Pic 18F2550 con visualización en LCD y bloque de led´s.


El objetivo de este laboratorio es implementar un circuito que visualice la conversión ADC en dos micro controladores diferentes.
El primer micro controlador  debe realizar una conversión ADC que sea visualizada en una LCD a través del segundo micro controlador y adicionalmente debe efectuar la visualización en un bloque de 8 led’s del segundo canal de conversión ADC del segundo micro controlador.
El segundo micro controlador va a controlar los datos que se le envían a la LCD y efectuara la conversión ADC del segundo canal que finalmente va ser visualizada en la LCD y en el bloque de led´s a través del primer micro controlador.

Para desarrollar este laboratorio se necesita los siguientes materiales:

  • Tarjeta de propósito general para PIC 18F2550 (2 und.)
  • Resistencia variable 1KΩ (Potenciómetro)  (2 und.)
  • LCD 2X16
  • Bloque X 8 led´s
  • Resistencias 330Ω X 8


Desarrollo del laboratorio

Primero comenzamos por crear el firmware, para cada micro controlador que básicamente son muy parecidos a los códigos de programa de los Laboratorios #3  (Conversión ADC con visualización en led´s) y el Laboratorio #5 (Conversión ADC con visualización en LCD), lo interesante de esta práctica de laboratorio es lograr la comunicación entre los dos micro controladores para que realicen su función sin interferencias.
Para lograr establecer la comunicación entre los micro controladores  se utiliza el módulo de comunicación RS-232, para los dos códigos de los micro controladores, configurando la velocidad de transmisión en baudios (9600baudios), pin de transmisión (Pin_C6), pin de recepción (Pin_C7), la resolución a 8 bit´s y la no paridad, estos parámetros deben ser iguales en ambos códigos.
En el caso del primer micro controlador se utiliza la línea de la función GETC, que espera los datos del segundo canal de conversión ADC del otro micro controlador y almacena su valor en la variable K, para después visualizarlos en el bloque de 8 led´s, y la función PUTS es la que envía los datos del primer canal de conversión ADC al segundo micro controlador para que los pueda visualizar la LCD.

En el caso del segundo micro controlador la línea de la función GETCHAR, espera los datos del primer micro controlador y almacena su valor en la variable K, para después visualizarlos en la LCD, y la función PUTS es la que envía los datos del segundo canal de conversión ADC al primer micro controlador para que los pueda visualizar en el bloque de 8 Led´s. 

Para este caso cada pic tiene un código diferente en algunas lineas ya que uno habilita la interfaz LCD, a continuación se muestra los fw de ambos pic.

  • Fw pic 1

  • FW pic 2

Ahora se muestra la simulación en ISIS proteus.


Por ultimo se muestra la imagen del montaje físico.



miércoles, 26 de junio de 2013

5. Visualizan en LCD

Implementacion de las rutinas de los módulos  PWM, ADC y LCD 

Este laboratorio se divide en dos partes en la primera se desea utilizar dos ADC simultáneos y el valor de cada uno mostrarlo en una pantalla LCD.

Para la segunda parte se utiliza el modulo ADC para variar el ciclo útil del PWM y con este controlar la velocidad de un motor de 12Vdc adicional mente se debe mostrar los valores del modulo ADC y PWM en la pantalla LCD.

para este laboratorio se necesitan los siguientes materiales:

  • Tarjeta de propósito general para Pic 18F2550
  • Motor de 12Vdc
  • Tip 31.
  • Pantalla LCD 2*16.
  • Resistencias.
  • Potenciometros lineales.
Desarrollo del laboratorio.

Para la primera parte del laboratorio se diseño el siguiente fireware.



Para esta primera parte se configuran las entrada A0 y A1 como ADC el resto del código es similar al expuesto en el laboratorio 3 ADC las lineas que se agregan de mas son referentes a la librería del la LCD y las configuraciones de la misma. A continuación se muestra la simulación en ISIS proteus.


Y por ultimo el montaje físico.


Para la segunda parte se diseño el siguiente fireware:


Para este caso se configura el pin A0 como ADC y el pin RC2 como salida PWM muy similar a lo que se hizo en el laboratorio 4 PWM igual que en el caso anterior se configura la librería y los parámetros para el uso de la pantalla LCD, A continuación se muestra la simulación en ISIS proteus.


Y por ultimo el montaje físico.



sábado, 15 de junio de 2013

Seminario

IMPLEMENTACIÓN DE UNA PLATAFORMA INALAMBRICA PARA APLICACIONES EN DOMÓTICA.



Integrantes del grupo

Nestor Julian Fuentes Fuentes
nestorfuentes1@hotmal.com 
Jefferson Morales Gonzalez
darckerato@gmail.com
Edward Danilo Bohorquez 
anedwer@gmail.com




Descripción del grupo de trabajo


Este grupo se caracteriza por ser solido y comprometido, nuestra motivación es el hecho de aprender y aplicar los conocimientos adquiridos durante el desarrollo de un campo creciente como es la domótica. En la actualidad nosotros nos encontramos en  campo laboral: Jefferson Morales como técnico  de soporte en telefonía celular Edward Bohorquez como contratista en la instalación de sistemas de seguridad y Nestor Fuentes en el área de mantenimiento eléctrico  por ende el grupo tiene amplio conocimiento en el manejo de equipo y herramientas de mantenimiento.  Por otra parte los tres tenemos bases en el área de la programación en lenguajes assembler y  C impartidos durante la carrera.

viernes, 14 de junio de 2013

1. Diseño PCB de propósito general

Como primer laboratorio se planteo el diseño de una tarjeta de propósito general para el microcontrolador PIC 18F2550 desarrollado por la empresa Microchip.

Para el desarrollo de este laboratorio  lo primero que se hizo fue determinar que materiales eran necesarios teniendo en cuenta la hoja técnica del micro procesador  obtenida de la pagina:
http://ww1.microchip.com/downloads/en/devicedoc/39632c.pdf

Ya teniendo claro los materiales a utilizar y la distribución se procedió al diseño de la  PCB pare esto utilizamos el software PCB Wizards. A continuación se muestran algunas de las vistas que nos muestra el programa. 


En esta primera vista el programa nos permite ver un estimado de como quedaría la tarjeta ya con los en su sitio:


En la siguiente imagen ya se ve la plantilla que finalmente se imprimirá en la baquela. 



Por ultimo se muestra la PCB real  con todos los componentes soldados, se exponen las dos caras de la tarjeta.


jueves, 13 de junio de 2013

2. luces secuenciales.

IMPLEMENTACIÓN DE LA RUTINA DEL AUTO FANTÁSTICO


Como primer proyecto se plantea implementar la rutina del auto fantastico para lo cual se destinara los terminales I/O de un puerto completo, para este caso se utiliza el puerto B del microprocesador es decir desde el puerto B0 hasta el puerto B7 teniendo entonces 8 bits = 1 Byte de trabajo.

a continuación se muestra el código para este programa con la descripción linea a linea.


y por ultimo el montaje en ISIS Proteus.

miércoles, 12 de junio de 2013

3. Conversor ADC

Conversor analógico digital ADC


Para este tercer laboratorio se utilizo el modulo ADC del microprocesador como se ve en la imagen se utilizo nuevamente el puerto B (1Byte) como salida yel puerto A0 como entrada analogica, en este puerto se conecto un potenciometro linel para variar de forma meticulosa la tencion de entrada, en el fireware se realizo el proceso de conversión configurando los diferentes parámetros del ADC y final mente se mostraba su equivalencia digital en la salida (puerto B) con la iluminacion de diodos led´s.

Este laboratorio tenia dos partes la primera sin utilizar los voltajes de referencia y la segunda utilizándolos.

A continuación se muestran los fw de los dos casos con su respectiva simulación en ISIS Proteus.

Fw sin voltaje de referencia 


Simulación en ISIS proteus 


Fw con voltaje de referencia


Simulación en ISIS proteus 








martes, 11 de junio de 2013

4. Modulo PWM

Implementacion de la rutina del PWM utilizando el modulo ADC

Este laboratorio se divide en 2 partes en la primera se plantea la implementacion de un circuito (HW-FW) que varié la velocidad de un motor de 12Vdc de igual forma se solicita mostrar el valor digital de la señal a través de una salida de 8 bits.

En la segunda parte se plante implementar por Hw la variación de velocidad del motor de 12Vdc pero con la condición de que se puede invertir la dirección de giro usando una única salida PWM
para este laboratorio se necesitan los siguientes materiales:

  • Tarjeta de propósito general para Pic 18F2550
  • Motor de 12Vdc
  • Tip 31.
  • punte H L293D.
  • Resistencias.
  • Led´s
Desarrollo del laboratorio.

Para las dos partes del laboratorio se utiliza el mismo Fw lo que cambia es la configuración del Hw a continuación se muestra el código desarrollado en PICC


Ahora para el primer caso se uso el TIP 31 configurado como corte y saturación como este TIP es NPN se pone en estado de corto cuando se pone un 1 en su base permitiendo que se cierre el circuito de 12Vdc que alimentan el motor, para evitar que una corriente indeseada retorne hacia el micro procesador se pone una resistencia de acople de 1K a continuación se muestra el circuito montado en el ISIS proteus.


y este esta es la imagen del circuito implementado


Para el segundo caso se hace una variación del el Hw utilizando el puente H L293D con el cual se puede controlar el sentido de giro del motor, la simualacion en ISIS protes se muestra continuación.


Y por ultimo se muestra el circuito ya implementado.