Proyecto de Inteligencia Artificial

11
Inteligencia Artifcial y Redes Neuronales Ing. Proyecto fnal Ventilador de encendido automático por temperatura Fernando Covarrubias Solís 14!"#1 $ngel %avid &onsivais 'alderas 14(4#14 Plan 4)1 *ora de clase+ ,ueves -4 -#

description

inteligencia atrtificial javier de la garza

Transcript of Proyecto de Inteligencia Artificial

Inteligencia Artificial y Redes NeuronalesIng.

Proyecto finalVentilador de encendido automtico por temperatura

Fernando Covarrubias Sols 1478261Angel David Monsivais Balderas 1454614

Plan 401 Hora de clase: Jueves N4- N6

25/11/2014

Contenido1.- Introduccion2.-Conceptos clave3.- Marco Teorico4.- Materiales a usar5.- Desarrollo6.- Resultados7.- Teoria8.- Conclusion

IntroduccinPara nuestro proyecto final, haremos un ventilador de encendido automtico por temperatura. Aqu explicaremos los pasos a seguir para elaborar este experimento y daremos a conocer cmo controlar el encendido y apagado de un ventilador de forma automtica, mediante Arduino UNO y un sensor DTH11, el cual nos dar los datos de la temperatura.Usaremos ciertos temas de programacin y circuitos elctricos, as como lgica difusa para dar a conocer los resultados obtenidos.

Conceptos claveProgramacin: La programacin informtica, a menudo acortada como programacin, es el proceso de disear, codificar, depurar y mantener el cdigo fuente de programas computacionales. El cdigo fuente es escrito en un lenguaje de programacin. El propsito de la programacin es crear programas que exhiban un comportamiento deseado. El proceso de escribir cdigo requiere frecuentemente conocimientos en varias reas distintas, adems del dominio del lenguaje a utilizar, algoritmos especializados y lgica formal. Programar no involucra necesariamente otras tareas tales como el anlisis y diseo de la aplicacin (pero s el diseo del cdigo), aunque s suelen estar fusionadas en el desarrollo de pequeas aplicaciones. Del proceso de programacin surge lo que comnmente se conoce como software (conjunto de programas), aunque estrictamente este ltimo abarca mucho ms que slo la programacin.Circuitos elctricos: Un circuito es una red elctrica (interconexin de dos o ms componentes, tales como resistencias, inductores, condensadores, fuentes, interruptores y semiconductores) que contiene al menos una trayectoria cerrada. Los circuitos que contienen solo fuentes, componentes lineales (resistores, condensadores, inductores) y elementos de distribucin lineales (lneas de transmisin o cables) pueden analizarse por mtodos algebraicos para determinar su comportamiento en corriente directa o en corriente alterna. Un circuito que tiene componentes electrnicos es denominado un circuito electrnico. Estas redes son generalmente no lineales y requieren diseos y herramientas de anlisis mucho ms complejos.Logica difusa: La lgica difusa (tambin llamada lgica borrosa o lgica heurstica) se basa en lo relativo de lo observado como posicin diferencial. Este tipo de lgica toma dos valores aleatorios, pero contextualizados y referidos entre s. As, por ejemplo, una persona que mida 2 metros es claramente una persona alta, si previamente se ha tomado el valor de persona baja y se ha establecido en 1 metro. Ambos valores estn contextualizados a personas y referidos a una medida mtrica lineal.Arduino: Arduino es una plataforma de hardware libre, basada en una placa con un microcontrolador y un entorno de desarrollo, diseada para facilitar el uso de la electrnica en proyectos multidisciplinares. [][]El hardware consiste en una placa con un microcontrolador Atmel AVR y puertos de entrada/salida.[4] Los microcontroladores ms usados son el Atmega168, Atmega328, Atmega1280, ATmega8 por su sencillez y bajo coste que permiten el desarrollo de mltiples diseos. Por otro lado el software consiste en un entorno de desarrollo que implementa el lenguaje de programacin Processing/Wiring y el cargador de arranque que es ejecutado en la placa[.]Arduino puede tomar informacin del entorno a travs de sus entradas analgicas y digitales, puede controlar luces, motores y otros actuadores. El microcontrolador en la placa Arduino se programa mediante el lenguaje de programacin Arduino (basado en Wiring) y el entorno de desarrollo Arduino (basado en Processing). Los proyectos hechos con Arduino pueden ejecutarse sin necesidad de conectar a un computador.

Marco TeoricoLa lgica difusa se adapta mejor al mundo real en el que vivimos, e incluso puede comprender y funcionar con nuestras expresiones, del tipo "hace mucho calor", "no es muy alto", "el ritmo del corazn est un poco acelerado", etc.La lgica difusa es muy usada en el mundo real, esta puede comprender y funcionar con nuestras expresiones mas comnmente usadas, tales como son Que calor hace, etc.La clave de esto es la adaptacin a los diferentes lenguajes y expresiones que usamos diariamente, esto es basado en los cuantificadores de cualidad para nuestras expresiones. Ej: Mucho Muy Un chorro Un poco.En la teora de conjuntos difusos se definen tambin las operaciones de unin, interseccin, diferencia, negacin o complemento en estos conjuntos se basa esta lgica.Para cada conjunto difuso, existe asociada una funcin de pertenencia para sus elementos, que indican en qu medida el elemento forma parte de ese conjunto difuso. Las formas de las funciones de pertenencia ms tpicas son trapezoidales, lineales y curvas.Se basa en reglas de la forma SI (antecedente) ENTONCES (consecuente), estas usadas en la programacin de casi cualquier idioma, en donde el antecedente y el consecuente son tambin conjuntos difusos, ya sea puros o el resultado de operar con ellos. Algunos ejemplos de esta forma son: muchsimo, un chorro, leve, etc. Si hace muchsimo fro entonces aumento un chorro la temperatura. Si voy a llegar un poco tarde entonces aumento leve la velocidad.Los mtodos para usar esta base de reglas tienen que ser faciles, agiles y eficientes. Los resultados de dichos mtodos son fruto de un conjunto de reas que trabajan entre s. Las reglas de las que dispone el motor de inferencia de un sistema difuso pueden ser formuladas por expertos, o bien aprendidas por el propio sistema, haciendo uso en este caso de redes neuronales para fortalecer las futuras tomas de decisiones. Los datos de entrada suelen ser recogidos por sensores, que miden distintos tipos de entrada de un sistema.

Un esquema de funcionamiento tpico para un sistema difuso podra ser de la siguiente manera:

En la imagen anterior el sistema de control hace los clculos correspondientes en base a las reglas comentadas anteriormente. La salida actua sobre el entorno fsico de las nuevas entradas, por ende, modificando las salidas del sistema de control, estas sern nuevamente tomadas por sensores del sistema.Por ejemplo, si nuestro sistema fuera el enfriamiento de un carro, que se autorregula segn las necesidades de enfriamiento; los sensores recogen los datos de entrada, que en este caso podra ser la temperatura simplemente, este dato se somete a las reglas del motor de inferencia (se menciono anteriormente; SI. ENTONCES) resultando un gran numero de resultados. De todos los resultados obtenidos se escoger el centro, proporcionndolo como salida. Dependiento de este resultado el sistema de enfriamiento podra aumentar o disminur la temperatura (en este caso un abanico), todo esto dependiendo del resultado obtenido.

Materiales a usarPara llevar a cabo este experimento usaremos los siguientes materiales:1. Bateria de 9V 2. Leds 3. Resistencia de 1K 4. Transistor C2073 5. Puentes 6. Ventilador de 12V 7. 2 Resistencias de 330 8. Arduino UNO 9. Sensor DTH 11 10. Protoboard Desarrollo

Con los materiales anteriormente mencionados vamos a hacer la sig. Configuracin en nuestro ciruito.

Ahora vamos a la programacin. Abrimos Arduino IDE y copiamos las siguientes instrucciones:

#include "DHT.h" #define DHTPIN 2 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE);

int Temp=32; //Parmetro de encendido de ventiladorvoid setup() {

Serial.begin(9600); dht.begin(); pinMode(8,OUTPUT); pinMode(9,OUTPUT); pinMode(10,OUTPUT);}void loop() { float t = dht.readTemperature(); //Serial.println("Temperatura: "); Se imprimen las variables

//Serial.println(t); Quitar comentarios si desea imprimir la temperatura if (t >=Temp){ digitalWrite(8,HIGH); digitalWrite(9,HIGH); digitalWrite(10,LOW); } if(t < Temp){ digitalWrite(8,LOW); digitalWrite(9,LOW); digitalWrite(10,HIGH); } delay(3000);}

Estas instrucciones nos permiten utilizar el sensor DTH11, para registrar datos de temperatura, Los parmetros que se establezcan harn posible que se controle el funcionamiento del ventilador.El sensor registra la temperatura cada 3 segundos. Si la temperatura es mayor o igual a 32 C el led rojo se enciende en seal de alerta y el ventilador empieza a funcionar de manera automtica. De otro modo si la temperatura registrada es menor de 32 C el led verde se enciende indicando que la temperatura es la adecuada en ese momento.