Está en la página 1de 37

Universidad Politcnica de Victoria ESTANCIA II

Diseo de un sistema de control domtico basado en la plataforma Processing-Arduino

Ingeniera Mecatrnica

Organismo receptor: Ortopedia Ledezma Carretera Soto la Marina, colonia Horacio Tern Nmero interior #423 Autor: Gonzalo Loredo Neri Asesor Empresarial: CPO II Santiago Ledezma Pineda

Asesor Institucional: M.I. Carlos Federico Puga Banda

Estancias II 2013

ndice
1. ABSTRACT. ...................................................................................................................................................... 3 2. INTRODUCCIN. ............................................................................................................................................. 4 3. MARCO TERICO. ........................................................................................................................................... 5

3.1. Conceptos sobre domtica. .................................................................................................... 5 3.1.1. Domtica. .......................................................................................................................... 5 3.1.2. Los dispositivos. ................................................................................................................ 5 3.1.3. Controlador........................................................................................................................ 5 3.1.4. Actuador ............................................................................................................................ 5 3.1.5. Sensor. ............................................................................................................................... 5 3.1.6. Bus..................................................................................................................................... 5 3.1.7. Interface............................................................................................................................. 5 3.1.8. Proteus ........................................................................................................................... 6 3.1.9. Processing ...................................................................................................................... 6
4. OBJETIVOS. .................................................................................................................................................... 7

4.1. Objetivo general. .................................................................................................................... 7 4.2. Objetivos particulares. ........................................................................................................... 7


5. JUSTIFICACIN. .............................................................................................................................................. 7 6. CARACTERSTICAS DE ARDUINO Y PROCESSING. ........................................................................................... 8

6.1. Hardware. ............................................................................................................................... 8 6.1.1. Arduino Uno...................................................................................................................... 8 6.2. Software. ............................................................................................................................... 12 6.2.1. Arduino-1.5.3. ................................................................................................................. 12 6.2.2. Processing-2.0.2. ............................................................................................................. 14
7. DISPOSITIVOS COMPATIBLES CON ARDUINO. ............................................................................................. 15 8. PROTOTIPO DE INTERFAZ DOMTICA. ........................................................................................................ 23 9. CONEXIONES FSICAS. .................................................................................................................................. 33 10. RESULTADOS. ............................................................................................................................................. 36 11. CONCLUSIN. ............................................................................................................................................ 37 12. REFERENCIAS. ............................................................................................................................................ 37

Estancias II 2013

1. ABSTRACT.
In this paper has described the basic knowledge to understand what it is and how it works a home automation system and how using the free of Arduino hardware and the software free of Processing is you can create a stable system with a budget very much lower than in the homes of high category. The document has been divided into a series of stages in which they are to treat each item in a comprehensive but simple, i.e. it will give you the information needed to understand the process of creating a home automation system without superfluous details. In the introduction is going to be able to take a first step in the world of home automation and know because of the use of Arduino and processing. After you learn how they are constructed the Arduino boards and working environment that we have to be rescheduled. It is also important to discuss the different devices, that we can attach to a plate to add functionality to your home automation system. Given that the part of management of the system is more complex emphasis will be placed on it by offering various forms of communication between the plates arguing their advantages and disadvantages. He then exposes a simple home automation system in which they apply the knowledge acquired. All of the information in the memory has been reinforced with images to know of a way visual on what we are talking about.

Estancias II 2013

2. INTRODUCCIN.
Aunque el ser humano todava no est arraigado a las propiedades que ofrece la domtica es un hecho que en un futuro estar instalada en cualquier vivienda. Pero qu es la domtica? Se podra definir como el conjunto de tecnologas aplicadas al control y la automatizacin inteligente de la vivienda, que permite una gestin eficiente del uso de la energa adems de aportar seguridad, confort, y comunicacin entre el usuario y el sistema. Para poder conseguir las propiedades comentadas anteriormente es necesario que los sistemas recojan la informacin de su entorno con sensores y dispongan de la lgica para actuar en consecuencia utilizando actuadores. En este proyecto se utiliz la plataforma Arduino en la que se apoyaran con otros dispositivos para poder construir un sistema domtico simple. Arduino es una plataforma de hardware libre creada en 2005, basada en una placa con un microcontrolador y un entorno de desarrollo, diseada para facilitar el uso de la electrnica en proyectos multidisciplinares. Luego est el factor esttico que normalmente evitara la instalacin de cableado para comunicar las placas Arduino, es decir, se aprovechan dispositivos que trabajen inalmbricamente. Aunque el precio de un dispositivo inalmbrico es ligeramente superior, se puede evitar tener que comprar cables que poco a poco aumentara el coste total hacindolo incluso ms caro. Pero tambin se debe saber que los elementos inalmbricos interfieren entre s y eso por ejemplo en una zona densamente habitada en el que los vecinos tambin dispongan de este tipo aparatos puede reducir las prestaciones de la comunicacin del sistema. Es por ello que cada caso hay que estudiarlo por separado y actuar en consecuencia.

Estancias II 2013

3. MARCO TERICO.
En esta parte se presentan conceptos bsicos relacionados con el contenido de este documento abarcando temas que permiten el mejor entendimiento de la domtica, y del hardware y software utilizados. 3.1. Conceptos sobre domtica. 3.1.1. Domtica. La domtica es la automatizacin y control centralizado y/o remoto de aparatos y sistemas elctricos y electrotcnicos en la vivienda. Los objetivos principales de la domtica es aumentar el confort, ahorrar energa y mejorar la seguridad. [1] 3.1.2. Los dispositivos. La amplitud de una solucin de domtica puede variar desde un nico dispositivo, que realiza una sola accin, hasta amplios sistemas que controlan prcticamente todas las instalaciones dentro de la vivienda. [1] 3.1.3. Controlador. Los controladores son los dispositivos que gestionan el sistema segn la programacin y la informacin que reciben. Puede haber un controlador solo, o varios distribuidos por el sistema. 3.1.4. Actuador El actuador es un dispositivo capaz de ejecutar y/o recibir una orden del controlador y realizar una accin sobre un aparato o sistema (encendido/apagado, subida/bajada, apertura/cierre, etc.). [1] 3.1.5. Sensor. El sensor es el dispositivo que monitoriza el entorno captando informacin que transmite al sistema (sensores de agua, gas, humo, temperatura, viento, humedad, lluvia, iluminacin, etc.). [1] 3.1.6. Bus. Es bus es el medio de transmisin que transporta la informacin entre los distintos dispositivos por un cableado propio, por la redes de otros sistemas (red elctrica, red telefnica, red de datos) o de forma inalmbrica. [1] 3.1.7. Interface. Los interfaces refiere a los dispositivos (pantallas, mvil, Internet, conectores) y los

Estancias II 2013
formatos (binario, audio) en que se muestra la informacin del sistema para los usuarios (u otros sistemas) y donde los mismos pueden interactuar con el sistema. [1] 3.1.8. Proteus Proteus es una compilacin de programas de diseo y simulacin electrnica, desarrollado por Labcenter Electronics que consta de los dos programas principales: Ares e Isis, y los mdulos VSM y Electra. 3.1.9. Processing Es un lenguaje de programacin y entorno de desarrollo integrado de cdigo abierto basado en Java, de fcil utilizacin, y que sirve como medio para la enseanza y produccin de proyectos multimedia e interactivos de diseo digital. Fue iniciado por Ben Fry y Casey Reas a partir de reflexiones en el Aesthetics and Computation Group del MIT Media Lab dirigido por John Maeda.

Estancias II 2013

4. OBJETIVOS.
4.1. Objetivo general. Como objetivo de este proyecto se ha propuesto crear un sistema domtico simple utilizando las placas de bajo coste Arduino y otros dispositivos, como sensores, actuadores y comunicadores, dicho sistema estar controlado mediante una interfaz diseada en Processing. Habr que dotar al sistema de la lgica necesaria para que puedan comunicarse las placas que estarn controlando la habitacin en la cual hayan sido instaladas. 4.2. Objetivos particulares. Disear una interfaz en Processing que permita controlar el encendido o apagado de los actuadores (regulacin de iluminacin y regulacin de climatizacin). Construir una pequea etapa de potencia que permita aislar el Arduino de sobrecargas. Realizar el encendido y apagado de un foco, representando todos los focos pertenecientes a los cuartos de una casa. Disear un control de temperatura utilizando un sensor de humedad y temperatura.

5. JUSTIFICACIN.
El objetivo del uso de la domtica es el aumento del confort, el ahorro energtico y mejora la seguridad personal y patrimonial en la vivienda. Actualmente los sistemas domticos tienen un precio muy alto de instalacin con lo cual solo es posible verlo en casas de lujo. Estos suelen utilizar buses de transmisin de informacin que posibilitan una domtica robusta como son el EIB, X10, CEBus, LonWorks/LongTalk y ZigBee. Una alternativa ms barata y casera consiste en la utilizacin de placas Arduino.

Estancias II 2013

6. CARACTERSTICAS DE ARDUINO Y PROCESSING.


En este apartado se describirn los principales elementos que componen una placa Arduino y el entorno de desarrollo en el que se programa el cdigo, es decir la parte hardware y software (interface en Processing) que actan sobre Arduino. 6.1. Hardware. Al ser Arduino una plataforma de hardware libre tanto su diseo como su distribucin puede utilizarse libremente para el desarrollo de cualquier tipo de proyecto sin haber adquirido ninguna licencia. Por eso existen varios tipos de placa oficiales, las creadas por la comunidad Arduino o las no oficiales creadas por terceros pero con caractersticas similares. En la placa Arduino es donde se conectaran los sensores, actuadores y otros elementos necesarios para realizar la comunicacin con el sistema. En el proyecto se ha utilizado la placa Arduino Uno que se describir a continuacin. 6.1.1. Arduino Uno. Es el ltimo modelo diseado y distribuido por la comunidad Arduino. La placa tiene un tamao de 75x53mm. Su unidad de procesamiento consiste en un microcontrolador ATmega328. Puede ser alimentada mediante USB o alimentacin externa y contiene pines tanto analgicos como digitales. En la figura 6.1 se observa como es la tarjeta Arduino Uno fsicamente y se aprecian sus entradas y salidas.

Figura 6.1. Arduino Uno, se pueden observar los pines entradas / salidas, el microcontrolador, etc.

Estancias II 2013

La tabla siguiente resume sus componentes: Tabla 1. Caractersticas del Arduino Uno. Componente Caractersticas

Microcontrolador ATmega328 Voltaje operativo 5V Voltaje de entrada(recomendado) 7-12V Voltaje de entrada (limites) 6-20V Pines digitales E/S 14 (de los cuales 6 proporcionan salida PWM) Pines de entrada analgica 6 Corriente continua para pines E/S 40 mA Corriente continua para pines de 50 mA 3.3V Memoria Flash 32 KB (ATmega328) SRAM 2 KB (ATmega328) EEPROM 1 KB (ATmega328) Velocidad del reloj 16 MHz A continuacin se muestra en la figura 6.2 donde estn ubicados los elementos ms importantes que componen la placa Arduino Uno:

Figura 6.2. Elementos de la placa Arduino Uno.

Estancias II 2013
Referencia para pines analgicos (AREF) Tensin de referencia para entradas analgicas. analogReference().

Se

utiliza

con

la

funcin

Pines de tierra (GND) Masa del circuito para pines, es decir es la tensin de referencia de 0V. Pines digitales de entrada y salida En estos pines se conecta la patilla de dato del sensor/actuador. Desde ellos se puede leer la informacin del sensor o activar el actuador. Hay 14 pines digitales que pueden utilizarse como entrada o salida con las funciones pinMode(), digitalWrite(), y digitalRead(). Operan a 5 voltios. Cada pin proporciona o recibe como mximo 40mA y disponen de una resistencia pull-up (desconectada por defecto) de 20-50 kOhmios. Son reservados para determinados usos: Serie: 0(RX) y 1(TX). Utilizados para recibir (RX) y trasmitir (TX) datos serie. Estn directamente conectados a los pines serie del microcontrolador. Utilizando estos pines es posible conectarse con otras placas. Interrupciones externas: 2 y 3. Estos pines pueden ser configurados para activar interrupciones. PWM: 3, 5, 6, 9, 10 y 11. Proporcionan una salida de 8 bits en modo PWM. SPI: 10-13. Estos pines soportan la librera de comunicacin de dispositivos SPI. LED: 13. Este pin est conectado con un led de la placa. Cuando se le asigne un valor HIGH se encender, en cambio s se deja en LOW estar apagado. Conector USB Existen varios tipos de conectores USB, en concreto esta placa utiliza el tipo B hembra. Con lo cual se necesitar un cable tipo B macho tipo A macho (aunque se pueden utilizar otros este es el ms extendido) que deber conectarse a un conector tipo A hembra (por ejemplo a un ordenador o al cargador de un mvil). La placa se puede alimentar con la tensin de 5V que le proporciona el bus serie USB. Cuando se cargue un programa a la placa desde el software de Arduino se inyectar el cdigo del ordenador por este bus. Botn Reset Utilizando este botn se puede reiniciar la ejecucin del cdigo del microcontrolador. ICSP (In Circuit Serial Programming) Es un conector utilizado en los dispositivos PIC para programarlos sin necesidad de tener que retirar el chip del circuito del que forma parte.

10

Estancias II 2013
Microcontrolador ATmega328 El microcontrolador es el elemento ms importante de la placa. Es donde se instalar y ejecutar el cdigo que se haya diseado. Ha sido creado por la compaa Atmel, tiene un voltaje operativo de 5V, aunque se recomienda como entrada de 7-12V con un lmite de 20V. Contiene 14 pines digitales de entrada y salida, 6 pines analgicos que estn conectados directamente a los pines de la placa Arduino comentados anteriormente. Dispone de 32KB de memoria flash (de los cuales 512 bytes son utilizados por el bootloader). En la memoria flash se instalar el programa a ejecutar. El bootloader ser el encargado de preparar el microcontrolador para que pueda ejecutar el programa. Tambin tiene una memoria EEPROM de 1KB que puede ser leda o escrita con la librera EEPROM. En la parte de procesamiento dispone de un reloj de 16Mhz y 2KB de memoria RAM. Fuente de alimentacin externa La placa puede ser alimentada tambin mediante corriente continua suministrada por el conector Jack de 3.5 mm que podr recibir entre 7 y 12V. Pin de Reset Se puede imitar el funcionamiento del botn reset suministrando un valor LOW(0V) para reiniciar el microcontrolador. Pin de 3.3V Desde aqu se puede suministrar 3.3V a los dispositivos que lo necesiten con una corriente mxima de 50mA. Es generada gracias al chip FTDI integrado en la placa. Pin de 5V Este pin saca una tensin de 5v del regulador de la placa. El regulador es necesario puesto que puede ser alimentada con distintos voltajes. Pin de Vin Es el voltaje de entrada cuando se usa una fuente de alimentacin externa (no tiene en cuenta la conexin USB). Se puede proporcionar voltaje a la placa a travs de este pin, o en caso de que se est utilizando una fuente de alimentacin externa tomar el valor que est siendo suministrado. Pines analgicos Esta placa contiene 6 pines de entrada analgicos. Los elementos que se conecten aqu suelen tener mayor precisin que los digitales pero su uso requiere de una lgica levemente mayor. Ms adelante se comentar el uso de un termistor analgico.

11

Estancias II 2013
6.2. Software. 6.2.1. Arduino-1.5.3. La plataforma Arduino tiene un lenguaje propio que est basado en C/C++ y por ello soporta las funciones del estndar C y algunas de C++. Sin embargo, es posible utilizar otros lenguajes de programacin y aplicaciones populares en Arduino como Java, Processing, Python, Mathematica, Matlab, Perl, Visual Basic, etc. Esto es posible debido a que Arduino se comunica mediante la transmisin de datos en formato serie que es algo que la mayora de los lenguajes anteriormente citados soportan. Para los que no soportan el formato serie de forma nativa, es posible utilizar software intermediario que traduzca los mensajes enviados por ambas partes para permitir una comunicacin fluida. Es bastante interesante tener la posibilidad de interactuar con Arduino mediante esta gran variedad de sistemas y lenguajes puesto que dependiendo de cuales sean las necesidades del problema que se va a resolver podremos aprovecharnos de la gran compatibilidad de comunicacin que ofrece. El entorno de desarrollo de Arduino es sencillo e intuitivo adems puede descargarse gratuitamente desde su pgina oficial para distintos sistemas operativos. Ha sido implementado con Processing, un lenguaje similar a Java. Su ltima versin es la 1.5.3. Est formado por una serie de mens, una barra de herramientas con botones para las funciones comunes, un editor de texto donde escribiremos el cdigo, un rea de mensajes y una consola de texto. En la figura 6.3 se puede apreciar la composicin del software de Arduino.

Figura 6.3. Interfaz del software de Arduino.

12

Estancias II 2013
A continuacin se comentara la utilidad de cada rea del programa centrndonos solo en lo importante. Men La parte ms importante se encuentra en Herramientas. Desde aqu se puede configurar el programa para que pueda comunicarse con la placa Arduino. Pasando el ratn por Tarjeta aparecer una lista con los tipos de placa Arduino que el programa comprende. Aqu se selecciona Arduino Uno dependiendo de con cual estemos trabajando. En el campo Puerto Serial se selecciona el que corresponda a la placa que se conectara mediante USB. Si se utiliza Windows el puerto tendr un nombre del estilo COMx pero en Linux ser /dev/ttyUSBx donde x es un nmero. En caso de que aparezcan varios puertos serie y no se reconozca cual es el de la placa se procedera a desconectarla, se anotan los puertos que aparecen, se reconecta la placa y se vuelve a mirar la lista de puertos. El nuevo puerto que haya aparecido ser el de la placa. Botones comunes Estos botones son accesos rpidos a ciertas acciones que tambin estn disponibles mediante el men. Los botones son los siguientes: Verificar: Comprueba y compila el cdigo. Cargar: Adems de compilar el cdigo lo inyecta en la placa. Nuevo: Crea un nuevo sketch. Abrir: Abre un sketch previamente guardado. Guardar: Almacena en disco los cambios realizados en el sketch. Monitor Serial: Abre una nueva ventana desde la que se puede comunicar bidireccionalmente va serie con la placa, es decir, es posible leer la informacin que enva o proporcionarla. La figura 6.4 muestra esta ventana.

Figura 6.4. Ventana del monitor serie.

13

Estancias II 2013
Editor de texto En este rea se escribe la implementacin (denominada por el programa sketch) para cargarla en la placa Arduino. El programa tiene 3 partes. La primera consiste en la inclusin de libreras y la declaracin de constantes o variables globales que se pueden utilizar en cualquier funcin del programa. La segunda es el mtodo setup() que es el encargado de inicializar los dispositivos conectados a la placa y ser ejecutado solo al iniciar el sistema. La tercera parte consiste en el mtodo loop() que ejecutar su cdigo continuamente, es decir, en modo bucle. Aqu es donde se escribir la lgica de la placa Arduino. Consola de texto Aqu aparecern con mayor detalle los eventos del rea de mensajes. 6.2.2. Processing-2.0.2. Processing es un lenguaje de programacin y entorno de desarrollo integrado de cdigo abierto basado en Java. La utilizacin de una interfaz en Processing facilita el uso del dispositivo porque permite manipular de manera sencilla el control de temperatura. En la figura 6.5 se muestra la interfaz de Processing.

Figura 6.5. Interfaz del software Processing.

14

Estancias II 2013

7. DISPOSITIVOS COMPATIBLES CON ARDUINO.


Para conseguir las caractersticas de un sistema domtico es necesario que adems del rgano central que controle el sistema se tenga a disposicin sensores que puedan recoger datos sobre la situacin de cada habitacin de la vivienda. Dependiendo de estos datos el sistema domtico debe ser capaz de comunicarse con los actuadores para mejorar la situacin de la vivienda. Tambin deben existir elementos con los que el usuario pueda comunicarse con el sistema y pueda hacer los cambios oportunos manualmente. Los dispositivos estarn conectados mediante cables o directamente acoplados a la placa Arduino. Algunos de ellos disponen de libreras que se deben adjuntar al programa para poder usar las utilidades que contengan. Para ello se aade la carpeta de la librera en la carpeta libraries del entorno de desarrollo de Arduino. Al principio del cdigo del sketch s incluye la librera con la lnea: #include <nombreLibreria.h> Para utilizar los mtodos de sensores y actuadores digitales es necesario tener en cuenta que solo se tienen dos posibles valores, HIGH representa el nivel alto y LOW el nivel bajo. En el caso de los analgicos su uso es levemente ms complejo pero tambin ms configurable ya que tiene que leerse/escribir un voltaje de 0 a 5 voltios que se representa en 10 bits (lectura) o en 8 bits (escritura), es decir la tensin puede tener 1024 (lectura) o 256 (escritura) valores distintos. 7.1. Sensores. Un sensor es un dispositivo capaz de detectar magnitudes fsicas o qumicas, llamadas variables de instrumentacin, y transformarlas en variables elctricas. Las variables de instrumentacin pueden ser por ejemplo: temperatura, intensidad lumnica, distancia, aceleracin, inclinacin, desplazamiento, presin, fuerza, torsin, humedad, movimiento, pH, etc. Una magnitud elctrica puede ser una resistencia elctrica (como en un detector de temperatura resistivo), una capacidad elctrica (como en un sensor de humedad), una tensin elctrica (como en un termopar), una corriente elctrica (como en un fototransistor), etc. Los sensores siempre que estn activados estarn tomando continuamente la situacin actual de una habitacin y es el servidor o la placa Arduino quien leer esta informacin y decidir cmo actuar. Pueden ser digitales o analgicos. Los digitales tienen que ser inicializados como pin de salida con el mtodo pinMode(numeroDePin, OUTPUT). Para poder obtener una lectura de los datos se usa el mtodo digitalRead(numeroDePin). Los analgicos no requieren esta fase de inicio y para leer lo se hace con analogRead(numeroDePin). Es recomendable asignar a una variable la
15

Estancias II 2013
lectura recibida por los mtodos para evitar tener que llamar a la misma funcin en caso de necesitarse de nuevo. Como los sensores analgicos son algo ms complejos que los digitales se tratarn con un ejemplo. Los sensores que sean responsables de la seguridad de la vivienda deberan avisar del evento mediante un actuador (por ejemplo un timbre o LED) o algn elemento de comunicacin (como un correo electrnico o un mensaje de texto al mvil). Tambin podra almacenarse el suceso en un fichero del servidor. A continuacin se describirn algunos sensores a tener en cuenta en un sistema domtico. Mdulo de gas El detector de gas hace que la vivienda gane en seguridad si cuando detecta un nivel alto de gas (lectura HIGH) el sistema avisa a la persona. Sera importante que el sistema pudiera desconectar la mayor parte de red elctrica posible de la vivienda.

Figura 7.1. Sensor de gas. Mdulo PIR Otro elemento que interviene en la seguridad cuando no hay nadie en casa es un detector de movimiento. En caso de detectar suficiente movimiento se leer un nivel alto. Tambin se puede utilizar para el confort del ser humano. En caso de detectar movimiento en la habitacin encender por ejemplo las luces o la calefaccin, dependiendo tambin de la lectura responsable de los dos casos.

Figura 7.2. Sensor de movimiento.

16

Estancias II 2013
Mdulo de luz Este dispositivo es capaz de detectar el nivel de intensidad de luz que hay en la habitacin de forma analgica. El sistema leer el voltaje y en caso de detectar un nivel bajo de luz podra encender las luces de la habitacin siempre y cuando se detecte movimiento.

Figura 7.3. Sensor de luz. Mdulo de humedad (y temperatura) Algunos dispositivos son capaces de obtener varias mediciones en el mismo mdulo. El mdulo de la figura 7.4 corresponde a un DHT11 capaz de representar digitalmente la humedad ambiental medida en % adems de la temperatura en C. Tiene una precisin decimal y dispone de su propia librera que contiene los mtodos para recoger sus mediciones. Este mdulo es interesante colocarlo en la zona externa de la casa, como el balcn, la galera o el jardn.

Figura 7.4. Sensor de humedad y temperatura (DHT11). Mdulo de temperatura En caso de utilizar calefaccin o aire acondicionado el sensor de temperatura puede ayudar a reducir el coste de la factura de la luz y acomodar un poco ms al ser humano. Cuando se detecte cierto umbral de temperatura podra apagarse/encender o modificar la potencia de la calefaccin. La figura 7.5 muestra un termistor analgico, es decir, un sensor resistivo de temperatura.

17

Estancias II 2013
Su funcionamiento se basa en la variacin de la resistividad que presenta un semiconductor con la temperatura.

Figura 7.5. Sensor de temperatura. 7.2. Actuadores. Un actuador es un dispositivo capaz de transformar energa (en nuestro caso elctrica) en la activacin de un proceso con la finalidad de generar un efecto sobre un proceso automatizado. Su funcin en un sistema domtico va a ser la de cambiar la situacin de la vivienda tras un evento ocasionado al hacer por ejemplo una lectura de un sensor que debe ser tratada. Mdulo Relevador Funciona como un interruptor controlado por un circuito elctrico en el que, por medio de una bobina y un electroimn, se acciona un juego de uno o varios contactos que permiten abrir o cerrar otros circuitos elctricos independientes. Este tipo de mdulos permite activar actuadores como por ejemplo el de una persiana, la puerta del garaje o el de una bombilla.

Figura 7.6. Relevador. 7.3. Interfaz. Su principal objetivo es ofrecer comunicacin entre el sistema y el ser humano. Consisten en elementos visuales/auditivos que avisan de eventos o tctiles para poder causarlos.

18

Estancias II 2013
Mdulo LED La funcin de este dispositivo es avisar mediante un diodo emisor de luz la ocurrencia de un evento que puede requerir su atencin. Pueden utilizarse de forma digital (encendido/apagado) o de forma analgica si se quiere variar la intensidad de la luz.

Figura 7.7. Mdulo LED. Mdulo timbre Este elemento es capaz de producir sonidos. Mdulo interesante para avisar al ser humano sobre un problema grave en la vivienda dado que la sensibilidad auditiva es mayor que la visual.

Figura 7.8. Mdulo de timbre. Mdulo pulsable Para comunicarse con el sistema y crear eventos es posible utilizar teclados o botones. Por ejemplo la funcin de un botn presionado al salir de casa podra ser apagar luces, calefaccin y activar el sistema de seguridad.

Figura 7.9. Teclado y botn.

19

Estancias II 2013
Mdulo visualizador Con l se pude conocer la situacin de la vivienda y de la ocurrencia de eventos que nos enve el sistema en forma de texto sobre una pantalla.

Figura 7.10. Pantalla LCD. 7.4. Comunicadores. Este apartado abarca el conjunto de elementos que permiten la comunicacin entre distintas placas Arduino y el servidor o incluso con electrodomsticos del hogar. El medio por el que circula la informacin puede ser por aire (modulacin de ondas electromagnticas) o fsico (por cable) teniendo sus ventajas e inconvenientes. Normalmente estos dispositivos tendrn a disposicin libreras con funciones ya implementadas que facilitaran su manejo. Si el medio es el aire el sistema total va a ser ms barato puesto que se evita tener que cablear las habitaciones, adems de esto se logra que sean ms estticas. En cambio las transmisiones son menos seguras y puede haber problemas por el ruido ocasionado de otros elementos que utilizan el aire como forma de comunicacin. Adems los obstculos que haya entre emisor y receptor van a reducir la distancia de transmisin. Por parte de los sistemas que utilizan cables para enviar datos debemos tener en cuenta su coste de instalacin adems de estudiar si se prefiere estticamente ese cableado en la habitacin. Pero esto puede suplirse sabiendo que las transmisiones sern ms robustas y seguras. Mdulo Wi-Fi Si se desea utilizar el protocolo TCP/IP pero se quiere evitar tener que cablear la habitacin se puede utilizar este mdulo tambin acoplable a la Arduino. Aunque utiliza otra librera los mtodos son equivalentes al del mdulo Ethernet. La frecuencia de la seal ronda los 2.4GHz.

Figura 7.11. WiFi Shield.

20

Estancias II 2013
Mdulo XBee Este elemento se comunica de forma inalmbrica utilizando ZigBee que es un conjunto de protocolos de alto nivel de comunicacin inalmbrica para su utilizacin con radiodifusin digital de bajo consumo. Su objetivo son las aplicaciones que requieren comunicaciones seguras con baja tasa de envo de datos y que necesiten un bajo consume. Utiliza unas frecuencias comprendidas entre 865MHz y 2.4GHz.

Figura 7.12. Mdulo XBee. Mdulo Bluetooth Se denomina Bluetooth al protocolo de comunicaciones diseado especialmente para dispositivos de bajo consumo, que requieren corto alcance de emisin y basados en transceptores de bajo costo. Opera mediante un enlace por radiofrecuencia en la banda ISM de los 2,4 GHz. Su uso es adecuado cuando puede haber dos o ms dispositivos en un rea reducida sin grandes necesidades de ancho de banda. Bluetooth tiene la ventaja de simplificar el descubrimiento y configuracin de los dispositivos, ya que stos pueden indicar a otros los servicios que ofrecen, lo que redunda en la accesibilidad de los mismos sin un control explcito de direcciones de red, permisos y otros aspectos tpicos de redes tradicionales. El WiFi utiliza el mismo espectro de frecuencia que Bluetooth con una potencia de salida mayor que lleva a conexiones ms slidas.

Figura 7.13. Mdulo Bluetooth.

21

Estancias II 2013
Mdulo infrarrojo Otra forma de comunicacin sin medio fsico es la utilizacin de rayos infrarrojos. Este tipo de comunicacin consigue tener menos interferencias debido a la mayor frecuencia del espectro electromagntico en la que trabaja. Normalmente no es un mtodo de comunicacin entre placas Arduino sino que es utilizado para contactar con los electrodomsticos del hogar.

Figura 7.14. Emisor y receptor infrarrojo. Puerto Serie Un puerto serie o puerto serial es una interfaz de comunicaciones de datos digitales, frecuentemente utilizado por computadores y perifricos, donde la informacin es transmitida bit a bit enviando un solo bit a la vez, en contraste con el puerto paralelo que enva varios bits simultneamente. Es otro mtodo de comunicacin cableada que se puede usar para la comunicacin entre un PC y una placa, o entre placas. El puerto serie consiste en un canal de recepcin y otro de transmisin haciendo que el punto de recepcin de un dispositivo est conectado con el de transmisin del otro dispositivo. Todas las placas Arduino disponen de al menos un puerto serie compuesto por los pines digitales 0(rx) y 1(tx). Al conectar un cable de USB de la placa al ordenador estaremos aprovechando este puerto serie en el que se debe configurar la velocidad de datos en bits por segundo (baudios) para la transmisin de datos. Para iniciar el puerto serie y establecer los baudios utilizaremos la funcin begin(speed) de la librera Serial. Se recomienda establecer el puerto serie a 9600 baudios. Esta fase se hace en la funcin de configuracin de la placa setup(). La placa Arduino tiene un buffer de recepcin de datos de 128 bytes. Con la funcin available() podremos conocer cuntos caracteres (bytes) hay disponibles en el buffer. En caso de que haya datos en el buffer la funcin read() devolver el primer carcter (byte) guardado en el puerto serie y lo retirar del buffer. En caso de que no haya datos devolver un -1. Es posible crear nuevos puertos serie con la librera SoftwareSerial.h en la que se tiene que especificar los pines de recepcin y transmisin de datos.

22

Estancias II 2013

8. PROTOTIPO DE INTERFAZ DOMTICA.


En este punto se propondr un modelo sencillo de interfaz domtico utilizando Processing. Se comentarn el cdigo utilizado para su mejor entendimiento. 8.1. Diseo de la interfaz. Se opt por realizar la interfaz en Processing debido a que es un software libre, adems de que es sencillo hacer la comunicacin con el Arduino. La interfaz se divido en secciones para facilitar su utilizacin. Dichas secciones son las siguientes: Inicio: En esta parte se describe que trata dicha interfaz, aqu se despliega un cuadro de texto con una bienvenida, en la figura 8.1 se observa la interfaz (la parte de presentacin).

Figura 8.1. Inicio: Bienvenida en la interfaz de Processing. Focos: En esta parte se ubica el control de la intensidad de los focos hasta que estn totalmente apagados o encendidos. Dichos focos pertenecen al Cuarto 1, Cuarto 2, Cuarto 3, sala, cocina, bao. En la figura 8.2 se observa la seccin mencionada.

23

Estancias II 2013

Figura 8.2. Control de la intensidad de los focos. Control de temperatura: En esta seccin se encuentra un pequeo control de la temperatura varindola de 0 a 100%, el aumento o disminucin de la temperatura se realiza mediante las teclas w (aumentar) y s (disminuir). Al aumentar o disminuir la temperatura se muestra una barra de color verde para visualizar mejor el control de la temperatura. En la figura 8.3 se muestra la seccin del control de temperatura con la cual el usuario puede interactuar de manera sencilla.

24

Estancias II 2013

Figura 8.3. Control de temperatura. Cmara: En esta parte se puede visualizar el entorno mediante un dispositivo de cmara web montado en puntos especficos de la casa para facilitar el estarse trasladando por toda la casa para observar que sucede en cada seccin, tambin se utiliza para mejorar la seguridad de la casa. En la figura 8.4 se muestra la parte de la cmara web.

Figura 8.4. Visualizacin de la cmara web.

25

Estancias II 2013
8.2. Cdigo de la interfaz en Processing. En esta seccin se muestra el cdigo utilizado para realizar la interfaz en Processing y tambin la comunicacin con Arduino. Se utiliz la librera de Arduino en Processing para poder hacer la comunicacin entre ambos. A continuacin se muestra el cdigo realizado dicho cdigo se anexa a la carpeta del proyecto con el nombre de Interfaz_casa_domotica.
/** * ControlP5 Tab * */ import processing.serial.*; import cc.arduino.*; Arduino arduino; int ledPin=9; int potPin=0; import controlP5.*; import processing.video.*; Capture cam; ControlP5 cp5; int val; //size(200,200); int variableus; int temp = 0; int valortemp=0; float radio=0; float x=0; float y=0; float angulo = 0; float R=100; int cuarto1 = 0; int cuarto2 = 0; int cuarto3 = 0; int sala = 0; int cocina = 0; int bano = 0; boolean Inicio = false; Knob myKnobB; PImage img; Textlabel myTextlabelA; Textlabel myTextlabelB; Textarea myTextarea; void setup() { arduino = new Arduino(this, Arduino.list()[0], 57600); arduino.pinMode(ledPin, Arduino.OUTPUT); size(600,500);

26

Estancias II 2013
noStroke(); cam = new Capture(this); cam.start(); // The image file must be in the data folder of the current sketch // to load successfully img = loadImage("Imagen2.jpg"); // Load the image into the program cp5 = new ControlP5(this); // By default all controllers are stored inside Tab 'default' // add a second tab with name 'extra' // if you want to receive a controlEvent when // a tab is clicked, use activeEvent(true) cp5.getTab("default") .activateEvent(true) .setLabel("INICIO") .setId(1) ; cp5.getTab("FOCOS") .activateEvent(true) .setId(2) ; cp5.getTab("TEMPERATURA") .activateEvent(true) .setId(3) ; cp5.getTab("CAMARA") .activateEvent(true) .setId(4) ; // create a few controllers myTextlabelA = cp5.addTextlabel("label") .setText("(aplicacin para personas con discapacidad motriz).") .setPosition(270,30) .setColorValue(0xffffff00) .setFont(createFont("Georgia",14)) ; myTextlabelA = cp5.addTextlabel("label2") .setText("DOMTICA") .setPosition(230,3) .setColorValue(0xffffff00) .setFont(createFont("Georgia",25)) ; myTextlabelB = cp5.addTextlabel("label3") .setText("BIENVENIDO!") .setPosition(200,100) .setColorValue(0xffffffff) .setFont(createFont("Georgia",25)) ;

27

Estancias II 2013
myTextlabelB = cp5.addTextlabel("label4") .setText("----------------------------------------FOCOS----------------------------------------") .setPosition(30,60) .setColorValue(0xffffffff) .setFont(createFont("Georgia",15)) ; myTextlabelB = cp5.addTextlabel("label5") .setText("---------------------CONTROLES: INTENSIDAD DE LA LUZ---------------------") .setPosition(30,200) .setColorValue(0xffffffff) .setFont(createFont("Georgia",15)) ; myTextlabelB = cp5.addTextlabel("label6") .setText("Cuarto1") .setPosition(30,100) .setColorValue(0xffffffff) .setFont(createFont("Georgia",15)) ; myTextlabelB = cp5.addTextlabel("label7") .setText("Cuarto2") .setPosition(30,150) .setColorValue(0xffffffff) .setFont(createFont("Georgia",15)) ; myTextlabelB = cp5.addTextlabel("label8") .setText("Cuarto3") .setPosition(220,100) .setColorValue(0xffffffff) .setFont(createFont("Georgia",15)) ; myTextlabelB = cp5.addTextlabel("label9") .setText("Sala") .setPosition(240,150) .setColorValue(0xffffffff) .setFont(createFont("Georgia",15)) ; myTextlabelB = cp5.addTextlabel("label10") .setText("Cocina") .setPosition(400,100) .setColorValue(0xffffffff) .setFont(createFont("Georgia",15)) ; myTextlabelB = cp5.addTextlabel("label11") .setText("Bao") .setPosition(410,150) .setColorValue(0xffffffff) .setFont(createFont("Georgia",15)) ; myTextlabelB = cp5.addTextlabel("label12") .setText("-------------------------CONTROL DE TEMPERATURA-------------------------") .setPosition(30,80) .setColorValue(0xffffffff) .setFont(createFont("Georgia",15)) ; myTextlabelB = cp5.addTextlabel("label13")

28

Estancias II 2013
.setText("PRESIONE LAS TECLAS 'W' Y 'S' PARA") .setPosition(300,150) .setColorValue(0xffffffff) .setFont(createFont("Georgia",15)) ; myTextlabelB = cp5.addTextlabel("label14") .setText("CAMBIAR LA TEMPERATURA:") .setPosition(300,170) .setColorValue(0xffffffff) .setFont(createFont("Georgia",15)) ; myTextlabelB = cp5.addTextlabel("label15") .setText("W-------> AUMENTAR TEMPERATURA") .setPosition(300,190) .setColorValue(0xffffffff) .setFont(createFont("Georgia",15)) ; myTextlabelB = cp5.addTextlabel("label16") .setText("S-------> DISMINUIR TEMPERATURA") .setPosition(300,210) .setColorValue(0xffffffff) .setFont(createFont("Georgia",15)) ; myTextarea = cp5.addTextarea("txt") .setPosition(150,150) .setSize(200,200) .setFont(createFont("arial",12)) .setLineHeight(14) .setColor(color(128)) .setColorBackground(color(255,100)) .setColorForeground(color(255,100)); ; myTextarea.setText("La domtica es la automatizacin y control centralizado y/o remoto" +" de aparatos o sistemas elctricos o electrnicos en la vivienda." +" Los objetivos principales de la domtica es aumentar el confort, ahorrar" +" energa y mejorar la seguridad." +" ...................................................................." +" Home automation is the automation and centralized control and / or " +" remote devices and electrical and electrical systems in the home." +" The main objectives of home automation is to increase comfort," +" save energy and improve safety." ); cp5.addSlider("expandirCuadro") .setRange(100,400) .setValue(200) .setPosition(180,400) .setSize(100,19) ; myKnobB = cp5.addKnob("cuarto2") .setRange(0,255) .setValue(0) .setPosition(70,360) .setRadius(50)

29

Estancias II 2013
.setNumberOfTickMarks(10) .setTickMarkLength(4) .snapToTickMarks(true) .setDragDirection(Knob.HORIZONTAL) ; myKnobB = cp5.addKnob("cuarto1") .setRange(0,255) .setValue(0) .setPosition(70,230) .setRadius(50) .setNumberOfTickMarks(10) .setTickMarkLength(4) .snapToTickMarks(true) .setDragDirection(Knob.HORIZONTAL) ; myKnobB = cp5.addKnob("sala") .setRange(0,255) .setValue(0) .setPosition(250,360) .setRadius(50) .setNumberOfTickMarks(10) .setTickMarkLength(4) .snapToTickMarks(true) .setDragDirection(Knob.HORIZONTAL) ; myKnobB = cp5.addKnob("cuarto3") .setRange(0,255) .setValue(0) .setPosition(250,230) .setRadius(50) .setNumberOfTickMarks(10) .setTickMarkLength(4) .snapToTickMarks(true) .setDragDirection(Knob.HORIZONTAL) ; myKnobB = cp5.addKnob("bano") .setRange(0,255) .setValue(0) .setPosition(430,360) .setRadius(50) .setNumberOfTickMarks(10) .setTickMarkLength(4) .snapToTickMarks(true) .setDragDirection(Knob.HORIZONTAL) ; myKnobB = cp5.addKnob("cocina") .setRange(0,255) .setValue(0) .setPosition(430,230) .setRadius(50) .setNumberOfTickMarks(10)

30

Estancias II 2013
.setTickMarkLength(4) .snapToTickMarks(true) .setDragDirection(Knob.HORIZONTAL) ; // create a toggle cp5.addToggle("Inicio") .setPosition(40,70) .setSize(50,20) ; // arrange controller in separate tabs cp5.getController("label").moveTo("global"); cp5.getController("label2").moveTo("global"); cp5.getController("label3").moveTo("default"); cp5.getController("expandirCuadro").moveTo("default"); cp5.getController("cuarto1").moveTo("FOCOS"); cp5.getController("cuarto2").moveTo("FOCOS"); cp5.getController("cuarto3").moveTo("FOCOS"); cp5.getController("sala").moveTo("FOCOS"); cp5.getController("cocina").moveTo("FOCOS"); cp5.getController("bano").moveTo("FOCOS"); cp5.getController("label4").moveTo("FOCOS"); cp5.getController("label5").moveTo("FOCOS"); cp5.getController("label6").moveTo("FOCOS"); cp5.getController("label7").moveTo("FOCOS"); cp5.getController("label8").moveTo("FOCOS"); cp5.getController("label9").moveTo("FOCOS"); cp5.getController("label10").moveTo("FOCOS"); cp5.getController("label11").moveTo("FOCOS"); cp5.getController("label12").moveTo("TEMPERATURA"); cp5.getController("label13").moveTo("TEMPERATURA"); cp5.getController("label14").moveTo("TEMPERATURA"); cp5.getController("label15").moveTo("TEMPERATURA"); cp5.getController("label16").moveTo("TEMPERATURA"); cp5.getController("Inicio").moveTo("CAMARA"); // Tab 'global' is a tab that lies on top of any // other tab and is always visible } void draw() { background(0); // Displays the image at its actual size at point (0,0) image(img, 0, 0); textAlign(RIGHT); valortemp=temp*(1); arduino.analogWrite(ledPin, val); //variableus=valortemp/2.5; text(valortemp/2.5,100,400); fill(cuarto1); ellipse(120,110,30,30); fill(cuarto2);

31

Estancias II 2013
ellipse(120,160,30,30); fill(cuarto3); ellipse(300,110,30,30); fill(sala); ellipse(300,160,30,30); fill(cocina); ellipse(480,110,30,30); fill(bano); ellipse(480,160,30,30); if(Inicio==true) { if (cam.available()) { cam.read(); } image(cam, 0, 0); } //rect(temp,4,10,10);

fill (131,245,12); //fill (255,0,0); //fill (255,255,255); rect(150,400,( 80),temp*(-1)); fill(0,255,255); noStroke(); radio = temp + 0.5; ///////////////////////////// val =valortemp; //arduino.analogWrite(ledPin, val); ////////////////////////////////// //fill(0,5); //rect (0,0,width,height); //noStroke(); } void expandirCuadro(int theValue) { myTextarea.setWidth(theValue); } void controlEvent(ControlEvent theControlEvent) { if (theControlEvent.isTab()) { println("got an event from tab : "+theControlEvent.getTab().getName()+" "+theControlEvent.getTab().getId()); } } void keyPressed() { switch(key) { case('1'):myKnobB.setConstrained(false).hideTickMarks().snapToTickMarks(false);break; case('2'):myKnobB.shuffle();break; }

with

id

32

Estancias II 2013
if(key=='s'||key=='s'){ temp--; if (temp<0){ temp=0; } }else if(key=='w'||key=='w'){ temp++; if (temp>250) { temp=250; } } }

Los botones de la interfaz se realizaron mediante la librera llamada ControlP5, esto se hizo con el fin de facilitar la realizacin de la interfaz, adems de que la interfaz queda ms esttica.

9. CONEXIONES FSICAS.
En esta parte se mostraran las conexiones fsicas que se realizaron para demostrar que el sistema domtico funciona. Debido a que existen limitaciones en cuanto al presupuesto, solo se realizaron pruebas con algunos sensores. 9.1. Encendido y apagado de las luces. Los transistores a utilizados son tipo MOSFET cuya velocidad de conmutacin es superior a la dems familia de transistores. El MOSFET utilizado es el IRF640, debido a que cuenta con las caractersticas adecuadas para la aplicacin que se le dar. El MOSFET IRF640 se elige por su capacidad de manejar un alto voltaje y corriente, lo que da la posibilidad de utilizar este circuito para proyectos o aplicaciones de requerimientos elctricos superiores, agregndole cierta flexibilidad al sistema. Se utiliz una fuente de alimentacin de una computadora de escritorio para alimentar el MOSFET. Las derivaciones que se utilizaron fueron: una de 12v para el MOSFET y una de 5V para el Optocoplador. En la figura 9.1 se observa el diseo del circuito en el programa Proteus.

33

Estancias II 2013

Figura 9.1. Circuito del control de temperatura diseado en la plataforma Proteus. El circuito fue pasado a una tablilla de conexiones para posteriormente realizar la comunicacin Processing-Arduino. En la figura 9.2 se observa la conexin del circuito con Arduino y este a su vez conectado va puerto USB a la computadora para que el usuario pueda interactuar por medio de la interfaz diseada en Processing.

Figura 9.2. Circuito del control de temperatura utilizando la librera Processing-Arduino. Para simular el encendido y apagado de las luces de cada habitacin se han utilizado leds. En caso de querer hacerlo ms real puede sustituirse el led por un rel y una bombilla. Por parte del comedor aprovechamos el led integrado en la placa (pin 13). En la figura 9.3 se observa un osciloscopio donde se puede ver el ancho de pulso para variar la intensidad del foco.

34

Estancias II 2013

Figura 9.3. Variacin de la intensidad del foco mediante Processing-Arduino. 9.2. Control de temperatura. En la parte del sensor de temperatura, para conectarlo al Arduino, en este caso se ha usado un cable que contiene tres hilos: uno rojo que va al SIG (datos), otro blanco que va al VCC (alimentacin) y otro negro que va al GND (masa). El conector NC no se usa por lo que no necesita cable. Es importante tener bien identificado cada hilo para conectarlo en su pin correspondiente del Arduino. En la parte del Arduino UNO se conecta el cable rojo (SIG) al pin A0 analgico. El cable blanco (VCC) se conecta al ping 5V, el de alimentacin. Y el cable negro (GND) va conectado a cualquier de los pines GND del Arduino. El sensor de temperatura y humedad conectado al Arduino UNO quedar como se muestra en la figura 9.4.

Figura 9.4. Conexin del sensor de humedad-temperatura a la placa Arduino.

35

Estancias II 2013

10. RESULTADOS.
Como resultados se tiene hasta el momento un control de temperatura y un control de encendido y apagado de focos que cuenta con una interfaz realizada en Processing y mandando datos a travs del Arduino para variar el calor de salida o aumentar y disminuir la intensidad de un foco o resistencia elctrica. En la figura 10.1 se observa el sistema de variacin de la intensidad de la luz de un foco de 12 V simulando los focos de los cuartos de la vivienda.

Figura 10.1. Variacin de la intensidad de un foco mediante la placa Arduino. La variacin de la luz del foco est controlada mediante un PWM realizado mediante programacin en Processing. Mediante los controles de intensidad de los focos que se realizaron en la interfaz de Processing se varia el PWM con lo cual permite bajar o subir la intensidad de la luz del foco. Para el control de temperatura se tiene la lectura de la temperatura del cuarto mediante un sensor de temperatura conectado a la plataforma Arduino. Una vez que se conoce la temperatura del cuarto, se puede variar dicha temperatura mediante las teclas W y S para aumentar o disminuir la temperatura respectivamente. En la interfaz de Processing aparece una barra que se expande o contrae para poder visualizar mejor el control de la temperatura.

36

Estancias II 2013

11. CONCLUSIN.
Este proyecto me ha dado la oportunidad de aprender mucho sobre el mundo de la domtica y un poco de electrnica general. En todo caso, se ha podido demostrar que es posible instalar un sistema domtico apoyndonos en la plataforma Arduino, con un coste muy inferior al que se utiliza en las viviendas de lujo, a cambio de dedicarle un poco de tiempo. A la hora de programar los distintos elementos ayuda mucho realizar de antemano un esquema con las funciones que necesitamos y no alterarlo ya que un proyecto cada vez va hacindose ms grande y tener que cambiar una cosa que a en el momento parece insignificante puede dar mucho trabajo adicional.

12. REFERENCIAS.
[1] Domtica [pgina principal en Internet]: Extrado el 13 de Septiembre de 2013. desde http://www.casadomo.com/noticiasDetalle.aspx?c=14 [2] Informacin sobre sensores [pgina principal en Internet]: Extrado el 13 de Septiembre de 2013. desde http://www.ladyada.net/learn/sensors/index.html [3] Arduino [pgina principal en Internet]: Extrado el 13 de Septiembre de 2013. desde http://www.arduino.cc/ [4] Processing [pgina principal en Internet]: Extrado el 13 de Septiembre de 2013. desde http://processing.org/

37

También podría gustarte