UNIVERSIDAD DEL VALLE FACULTAD DE INFORMÁTICA Y ELECTRÓNICA CARRERA DE INGENIERÍA ELECTRÓNICA
PROYECTO FINAL TALLER ELECTRONICO II
SISTEMA AUTOMÁTICO DE APERTURA Y CIERRE DE PUERTAS DE GARAJE ESTUDIANTE: WINFRED NESTOR QUISPE SALAZAR
DOCENTE: ING. MARCOS SALAS SANCHEZ
GESTION 1/2017
1
Índice 1 Antecedentes ................................................................................................................................... 4 2 Problemática .................................................................................................................................... 4 3 Formulación del problema ............................................................................................................... 4 4 Objetivos .......................................................................................................................................... 4 4.1 Objetivo general ........................................................................................................................ 4 4.2 Objetivo especifico .................................................................................................................... 4 5 Aporte ............................................................................................................................................... 5 6 Alcances ............................................................................................................................................ 5 7 Limites .............................................................................................................................................. 5 8 Justificación ...................................................................................................................................... 5 8.1 Justificación académica ............................................................................................................. 5 8.2 Justificación técnica ................................................................................................................... 5 8.3 justificación social ..................................................................................................................... 5 9 Temario tentativo ............................................................................................................................. 5 10 Cronograma .................................................................................................................................... 6 11 Solución propuesta ......................................................................................................................... 7 11.1 Descripción .............................................................................................................................. 7 11.2 Diagrama de contexto ............................................................................................................. 7 11.3 Diagrama de bloques .............................................................................................................. 7 12 marco teórico ................................................................................................................................. 8 12.1 Arduino .................................................................................................................................... 8 12.1.1 Arduino Mega ................................................................................................................... 9 12.1.2 Alimentación .................................................................................................................. 10 12.1.3 Memoria ......................................................................................................................... 11 12.1.4 Entradas Y Salidas ........................................................................................................... 11 12.1.5 Comunicaciones ............................................................................................................. 12 12.1.6 Protección Contra Sobre corrientes En USB................................................................... 13 12.2 Sensor de proximidad ........................................................................................................... 13 12.2.1 Caracteristicas ................................................................................................................ 14 12.2.2 Especificaciones técnicas ............................................................................................... 14 12.2.3 Distribución de los pines ................................................................................................ 15
2
12.3 Servo Motor .......................................................................................................................... 15 13 Marco práctico ............................................................................................................................. 16 13.1 Algoritmo ............................................................................................................................... 16 13.2 Código fuente ........................................................................................................................ 17 13.3 Pruebas .................................................................................................................................. 22 13.4 Materiales ............................................................................................................................. 22
3
1 INTRODUCCIÓN //RESUMEN DEL TALLER TEMATICA, PROBLEMA, SOLUCION PROPUESTA Muchas personas ya se encuentran con la tecnología en cualquier lado así que esta tecnología llega a nuestros hogares para facilitar el manejo de nuestros hogares. La domótica se basa en tecnología de control para la automatización de nuestros hogares que permite un uso eficiente de energía, seguridad y la calidad de vivir con comodidad.
ANTECEDENTE //INSTITUCIONALES ACADEMICOS TECNOLOGICOS //TECNOLOGIA QUE SE VA AUTILIZAR TECNICO //APLICACIÓN DE ESA TECNOLOGIA
2 PROBLEMÁTICA Actualmente la domótica de hoy en día en nuestro país es muy costosa en la instalación de estos equipos, solo se pueden ver esta clase de tecnología en casas lujosas así que este proyecto se basa en domótica a precios bajos y caseros. 3 FORMULACIÓN DEL PROBLEMA ¿Sera posible resolver el problema de comunicación inalámbrica en los sistemas de aperturas y cierre de puertas actuales con la propuesta de este sistema automatizado? 4 OBJETIVOS 4.1 OBJETIVO GENERAL - Implementar un sistema de control para la apertura de una puerta de un garaje. 4.2 OBJETIVO ESPECIFICO - Seleccionar componentes. - Detallar un algoritmo. - Escribir el código el código para el sistema de control. - Diseñar un prototipo. 4
5 APORTE - El presente proyecto tiene la finalidad de proporcionar comodidad, tranquilidad, bienestar y confortabilidad al usuario que tiene que sacar o introducir su automóvil en un garaje. 6 ALCANCES - Se diseñara e implementara un prototipo para la presentación del proyecto. - Se utilizara componentes según sus hojas de datos. 7 LIMITES - Para la implementación en una maqueta no se tomara en cuenta las condiciones climáticas. - No se tomara en cuenta el ahorro energético del proyecto. - No se tomara en cuenta el tipo de sistema de alimentación para el prototipo. 8 JUSTIFICACIÓN 8.1 JUSTIFICACIÓN ACADÉMICA El presente proyecto que se desea diseñar e implementar es para demostrar los conocimientos adquiridos en durante este proceso que se viene desarrollando en la universidad. 8.2 JUSTIFICACIÓN TÉCNICA El objeto del proyecto es implementar un sistema de control para la apertura y cierre de una puerta de garaje que sea automático. Este sistema permitirá que el acceso a un garaje sea accesible para el usuario con su automóvil. 8.3 JUSTIFICACIÓN SOCIAL El presente del proyecto es ayudar a la población para la actualización en sus hogares y crear una comodidad para su uso. 9 TEMARIO TENTATIVO I GENERALIDADES I.1 ANTECEDENTES I.2 PROBLEMÁTICA I.3 FORMULACION DEL PROBLEMA I.4 OBJETIVOS 5
I.5 APORTE I.6 ALCANCES I.7 LÍMITES I.8 JUSTIFICACIÓN II MARCO TEORICO III MARCO PRÁCTICO IV EVALUACION DE LA PROPUESTA V CONCLUSIONES Y RECOMENDACIONES BIBLIOGRAFIA ANXOS
10 CRONOGRAMA FEBRERO MARZO ABRIL MAYO JUNIO MESES X X 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 ACTIVIDADES DEFINIR EL X X PROYECTO ACOPLAMIEN X X TO DEL PERFIL ACOPLAMIEN X X TO DEL MARCO TEORICO ACOPLAMIEN X X X TO DEL MARCO PRACTICO ACOPLAMIEN X X TO DE PRUEBAS ACOPLAMIEN X X TO DE CONCLUSION ES REVISION DEL X X DOCUMENTO 6
FINAL ENTREGA DEL DOCUMENTO FINAL
X
11 SOLUCIÓN PROPUESTA 11.1 DESCRIPCIÓN Se utilizara detectores de obstáculos, se planteara un algoritmo para el proyecto que servirá para controlar el acceso al garaje. 11.2 DIAGRAMA DE CONTEXTO
Detector de obstáculos
Control
Acción
11.3 DIAGRAMA DE BLOQUES Sensores
Circuito de control
Circuito de potencia
7
Actuador
12 MARCO TEÓRICO Este proyecto se da a conocer los componentes del Sistema automático de apertura y cierre de puertas de garaje, es decir, la estructura necesaria para que funcione correctamente. En cada una de sus partes que lo integra se describe de forma general que es y el funcionamiento.
12.1 ARDUINO Arduino es una plataforma de prototipos de electrónica de código abierto (opensource) basada en hardware y software flexibles y fáciles de usar. Está pensado para artistas, diseñadores, como hobby y para cualquiera interesado en crear objetos o entornos interactivos. Arduino puede ¨sentir¨ el entorno mediante la recepción de entradas desde una variedad de sensores y puede afectar a su alrededor mediante el control de luces, motores y otros artefactos. El microcontrolador de la placa se programa usando el ¨Arduino Programming Language¨ (basado en Wiring) y el ¨Arduino Development Environment¨ (basado en Processing). Los proyectos de Arduino pueden ser autónomos o se pueden comunicar con software en ejecución en un ordenador (por ejemplo con Flash, Processing, MaxMSP, etc.). Las placas se pueden ensamblar a mano o encargarlas pre ensambladas; el software se puede descargar gratuitamente. Los diseños de referencia del hardware (archivos CAD) están disponibles bajo licencia open-source, por lo que eres libre de adaptarlas a tus necesidades. (Guía de Usuario de Arduino Rafael Enríquez Herrador)
8
12.1.1 ARDUINO MEGA Según (http://saber.patagoniatec.com/arduino-mega-2560-atmega-mega-arduinoclon-compatible-argentina-tutorial-basico-informacion-arduino-argentina-ptec/) Dispone de 54 entradas/salidas digitales, 14 de las cuales se pueden utilizar como salidas PWM (modulación de anchura de pulso). Además dispone de 16 entradas analógicas, 4 UART’s (puertas series), un oscilador de 16MHz, una conexión USB,
un conector de alimentación, un conector ICSP y un pulsador para el reset. Para empezar a utilizar la placa sólo es necesario conectarla al ordenador a traves de un cable USB, o alimentarla con un adaptador de corriente AC/DC. También, para empezar, puede alimentarse mediante una batería. Una de las diferencias principales de la tarjeta Arduino MEGA 2560 es que no utiliza el convertidor USB-serie de la firma FTDI. Por lo contrario, emplea un microcontrolador Atmega8U2 programado como actuar convertidor USB a serie. Esta placa debido a su gran poder es utilizada para grandes proyectos, entre los más importantes se encuentras los de DOMOTICA e IMPRESORAS 3D. El Arduino MEGA2560 es compatible con la mayoría de los shield o tarjetas de aplicación/ampliación disponibles para las tarjetas Arduino UNO original. Las características principales son:
Microprocesador ATmega2560 Tensión de alimentación (recomendado) 7-12V Integra regulación y estabilización de +5Vcc 54 líneas de Entradas/Salidas Digitales (14 de ellas se pueden utilizar como salidas PWM) 16 Entradas Analógicas Máxima corriente continua para las entradas: 40 mA Salida de alimentación a 3.3V con 50 mA Memoria de programa de 256Kb (el bootloader ocupa 8Kb) Memoria SRAM de 8Kb para datos y variables del programa Memoria EEPROM para datos y variables no volátiles Velocidad del reloj de trabajo de 16MHz Reducidas dimensiones de 100 x 50 mm
9
Ilustración 1 arduino mega Fuente: Patagonia Tec
12.1.2 ALIMENTACIÓN Según (http://saber.patagoniatec.com/arduino-mega-2560-atmega-mega-arduinoclon-compatible-argentina-tutorial-basico-informacion-arduino-argentina-ptec/) El Arduino Mega puede ser alimentado vía la conexión USB o con una fuente de alimentación externa. El origen de la alimentación se se lecciona automáticamente. Las fuentes de alimentación externas (no-USB) pueden ser tanto un transformador o una batería. El transformador se puede conectar usando un conector macho de 2.1mm con centro positivo en el conector hembra de la placa. Los cables de la batería pueden conectarse a los pines Gnd y Vin en los conectores de alimentación (POWER). La placa puede trabajar con una alimentación externa de entre 6 a 20 voltios. Si el voltaje suministrado es inferior a 7V, el pin de 5V puede proporcionar menos de 5 Voltios y la placa puede volverse inestable; si se usan más de 12V los reguladores de voltaje se pueden sobrecalentar y dañar la placa. El rango recomendado es de 7 a 12 voltios. Los pines de alimentación son los siguientes:
VIN. La entrada de voltaje a la placa Arduino cando se está usando una fuente externa de alimentación (en opuesto a los 5 voltios de la conexión USB). Se puede 10
proporcionar voltaje a través de este pin, o, si se está alimentando a través de la conexión de 2.1mm, acceder a ella a través de este pin. 5V. La fuente de voltaje estabilizado usado para alimentar el microcontrolador y otros componentes de la placa. Esta puede provenir de VIN a través de un regulador integrado en la placa, o proporcionada directamente por el USB u otra fuente estabilizada de 5V. 3V3. Una fuente de voltaje de 3.3 voltios generada por un regulador integrado en la placa. La corriente máxima soportada 50mA. GND. Pines de toma de tierra.
12.1.3 MEMORIA El ATmega2560 tiene 256KB de memoria flash para almacenar código (8KB son usados para el arranque del sistema (bootloader). El ATmega2560 tiene 8 KB de memoria SRAM y 4KB de EEPROM, a la cual se puede acceder para leer o escribir con la librería EEPROM.
12.1.4 ENTRADAS Y SALIDAS Según (http://saber.patagoniatec.com/arduino-mega-2560-atmega-mega-arduinoclon-compatible-argentina-tutorial-basico-informacion-arduino-argentina-ptec/) Cada uno de los 54 pines digitales en el Mega pueden utilizarse como entradas o como salidas usando las funciones pinMode(), digitalWrite(), y digitalRead(). Las E/S operan a 5 voltios. Cada pin puede proporcionar o recibir una intensidad máxima de 40mA y tiene una resistencia interna de pull-up (desconectada por defecto) de 20-50kOhms. Además, algunos pines tienen funciones especializadas:
Serie: 0 (RX) y 1 (TX), Serie 1: 19 (RX) y 18 (TX); Serie 2: 17 (RX) y 16 (TX); Serie 3: 15 (RX) y 14 (TX). Usados para recibir (RX) transmitir (TX) datos a través de puerto serie TTL. Los pines Serie: 0 (RX) y 1 (TX) están conectados a los pines correspondientes del chip FTDI USB-to-TTL. Interrupciones Externas: 2 (interrupción 0), 3 (interrupción 1), 18 (interrupción 5), 19 (interrupción 4), 20 (interrupción 3), y 21 (interrupción 2). Estos pines se pueden configurar para lanzar una interrupción en un valor LOW(0V), en flancos de subida o bajada (cambio de LOW a HIGH(5V) o viceversa), o en cambios de valor. Ver la función attachInterrupt() para más detalles.
11
PWM. De 0 a 13.Proporciona una salida PWM (Pulse Wave Modulation, modulación de onda por pulsos) de 8 bits de resolución (valores de 0 a 255) a traves de la función analogWrite(). SPI: 50 (SS), 51 (MOSI), 52 (MISO), 53 (SCK ). Estos pines proporcionan comunicación SPI, usando lalibrería SPI. LED: 13.Hay un LED integrado en la placa conectado al pin digital 13, cuando este pin tiene un valor HIGH(5V) el LED se enciende y cuando este tiene un valor LOW(0V) este se apaga. El Mega tiene 16 entradas analógicas, y cada una de ellas proporciona una resolución de 10bits (1024 valores). Por defecto se mide desde 0V a 5V, aunque es posible cambiar la cota superior de este rango usando el pin AREF y la función analogReference().
I2C: 20 (SDA) y 21 (SCL). Soporte para el protocolo de comunicaciones I2C (TWI) usando la librería Wire. AREF. Voltaje de referencia por analogReference()..
para
la
entradas
analogicas.
Usado
Reset. Suministrar un valor LOW (0V) para reiniciar el microcontrolador. Típicamente usado para añadir un botón de reset a los shields que no dejan acceso a este botón en la placa.
12.1.5 COMUNICACIONES EL Arduino Mega facilita en varios aspectos la comunicación con la PC, otro Arduino u otros microcontroladores. El ATmega2560proporciona cuatro puertos de comunicación vía serie UART TTL (5V). Un ATmega16U2 integrado en la placa canaliza esta comunicación serie a través del puerto USB y los drivers (incluidos en el software de Arduino) proporcionan un puerto serie virtual en el ordenador. El software incluye un monitor de puerto serie que permite enviar y recibir información textual de la placa Arduino. Los LEDS RX y TX de la placa parpadearán cuando se detecte comunicación transmitida través de la conexión USB (no parpadearán si se usa la comunicación serie a través de los pines 0 y 1). La libreria SoftwareSerial permite comunicación serie por cualquier par de pines digitales del Mega.
12
El ATmega2560 también soporta la comunicación I2C (TWI) y SPI. El software de Arduino incluye una librería Wire para simplificar el uso el bus I2C, ver la documentación para más detalles.
12.1.6 PROTECCIÓN CONTRA SOBRE CORRIENTES EN USB El Arduino Mega tiene un multi-fusible reiniciable que protege la conexión USB del PC de cortocircuitos y sobretensiones. Aparte de que la mayoría de ordenadores proporcionan su propia protección interna, el fusible proporciona una capa extra de protección. Si más de 500mA son detectados en el puerto USB, el fusible automáticamente corta la conexión hasta que el cortocircuito o la sobretensión desaparecen.
12.2 SENSOR DE PROXIMIDAD Según (http://teslabem.com/productos/sensores/modulo-sensores-de-proximidadmodulo-fc-51.html) Módulo Sensores de proximidad tiene orden interna transmisor de infrarrojos y el receptor que emite energía de IR; se ve para la energía IR reflejada para detectar la presencia de cualquier obstáculo en la parte frontal del módulo sensor. El módulo tiene el potenciómetro de la tarjeta que permite al usuario ajustar el rango de detección. El sensor tiene una respuesta muy buena y estable incluso con luz ambiente o en completa oscuridad. El módulo sensor se puede interconectar con Arduino, Rasperry Pi o cualquier microcontrolador que tiene el nivel de tensión de IO 3.3V a 5V.
13
Ilustración 2 sensor de proximidad Fuente: teslabem.com
12.2.1 CARACTERÍSTICAS Circuito detención basado LM393 Comparador es muy estable y precisa. Potenciómetro establece rango de detección de obstáculos. Indicador LED de alimentación. Indicador LED Detección Obstáculo. 3.0MM de orificio para facilitar el montaje del sensor. Conector macho para una conexión fácil. Buena Precisión: Mediante el uso de infrarrojos LED del módulo transmisor se desempeña bien en la luz ambiental.
12.2.2 ESPECIFICACIONES TÉCNICAS Número de modelo: FC-51. Ángulo de cobertura: 35 °. Voltaje de funcionamiento: 3.0V - 6.0V. Rango de detección: 2 cm - 30 cm (ajustable con el potenciómetro). 14
PCB tamaño: 3,1 cm (largo) x 1,4 cm (W). Dimensión total: 4,5 cm (L) x 1,4 cm (W), 0.7cm (H). El nivel de salida de discriminación: Las salidas de nivel lógico bajo cuando se detecta obstáculo. En activo nivel de salida: Salidas nivel lógico alto cuando no se detecta obstáculo Consumo actual: a 3.3V: ~ 23 mA en 5.0V: ~ 43 mA
12.2.3 Distribución de los pines VCC: 3.3V-5V. GND: pin de tierra o negativo. OUT: salida digital
12.3 SERVO MOTOR Según (Universidad Técnica Federico Santa María http://www2.elo.utfsm.cl/~mineducagv/docs/ListaDetalladadeModulos/servos.pdf) El servo es un potente dispositivo que dispone en su interior de un pequeño motor con un reductor de velocidad y multiplicador de fuerza, también dispone de un circuito que controla el sistema. El ángulo de giro del eje es de 180º en la mayoría de ellos, pero puede ser fácilmente modificado para tener un giro libre de 360º, como un motor standard. El motor servo es el encargado de dar movilidad al robot y su forma física.
Ilustración 3 servo motor 15
Fuente: Universidad Técnica Federico Santa María Para controlar un servo se debe aplicar un pulso de duración y frecuencia específicas. Todos los servos disponen de tres cables, dos para alimentación Vcc y Gnd (4.8 a 6 [V]) y un tercero para aplicar el tren de pulsos de control, que hace que el circuito de control diferencial interno ponga el servo en la posición indicada, dependiendo del ancho del pulso. Es posible apreciar ejemplos del posicionamiento del eje del servo dependiendo del ancho del pulso, donde se logra 0º, 90º y 180º con anchos de pulso de 0.5, 1.5 y 2.5 [ms] respectivamente.
Ilustración 4 posición de un servo motor Fuente: Universidad Técnica Federico Santa María
13 MARCO PRÁCTICO 13.1 ALGORITMO INICIO Switch Sensores Controlador
Switch activo
16
FALSO
VERDADERO Se activa el controlador
Sensores activados
FALSO
VERDAERO
Se activa el controlador
13.2 CÓDIGO FUENTE
Regresar a switch activo
#include; Servo servo1; void setup() { Serial.begin(9600);
//Comunicacion serial a 9600 baudios
pinMode(A0,INPUT);
//El pin A0 se declara como entrada
pinMode(A1,INPUT);
//El pin A1 se declara como entrada
17
pinMode(6,INPUT); servo1.attach(7);
//El pin 6 se declara como entrada //El pin 7 se declara para controlar el servo motor
}
void loop() { int valor1 = digitalRead(A0); //El valor de pin A0 se guarda en la variable valor1 int valor2 = digitalRead(A1); //El valor de pin A1 se guarda en la variable valor2 int pulsador = digitalRead(6); //El valor de pin 6 se guarda en la variable pulsador if(pulsador==HIGH)
//si el pulsador es presionando
{ Serial.println("DETECTADO"); //imprimir en monitor serie "DETECTADO" servo1.write(0); delay(500); servo1.write(10); delay(500);
//Para el servo motor poner en 0° //Esperar 500 ms //Para el servo motor poner en 10° //Esperar 500 ms
servo1.write(20); delay(500); servo1.write(30); delay(500); servo1.write(40); delay(500); servo1.write(50); delay(500); servo1.write(60); 18
delay(500); servo1.write(70); delay(500); servo1.write(80); delay(500); servo1.write(90); delay(5000); servo1.write(80); delay(500); servo1.write(70); delay(500); servo1.write(60); delay(500); servo1.write(50); delay(500); servo1.write(40); delay(500); servo1.write(30); delay(500); servo1.write(20); delay(500); servo1.write(10); delay(500); servo1.write(0); delay(500); 19
servo1.write(0); delay(500); } if(valor1==LOW&&valor2==LOW)
//si valor1 es 0 y valor2 es 0
{ Serial.println("DETECTADO"); //Imprimir en monitor serie "DETECTADO" servo1.write(0); delay(500); servo1.write(10); delay(500);
//Para el servo motor poner en 0° //Esperar 500 ms //Para el servo motor poner en 10° //Esperar 500 ms
servo1.write(20); delay(500); servo1.write(30); delay(500); servo1.write(40); delay(500); servo1.write(50); delay(500); servo1.write(60); delay(500); servo1.write(70); delay(500); servo1.write(80); delay(500); servo1.write(90); 20
delay(5000); servo1.write(80); delay(500); servo1.write(70); delay(500); servo1.write(60); delay(500); servo1.write(50); delay(500); servo1.write(40); delay(500); servo1.write(30); delay(500); servo1.write(20); delay(500); servo1.write(10); delay(500); servo1.write(0); delay(500); servo1.write(0); delay(500); } delay (1000); }
21
Este código hace referencia a si se presiona el pulsador la el servo motor funciona de 0° a 90° y luego de 90° a 0°, este proceso ocurre cuando estamos dentro del garaje, espera que los sensores se activen y el servo motor funciona nuevamente como el caso anterior, este proceso ocurre cuando estamos afuera del garaje.
13.3 PRUEBAS Se realizaron pruebas utilizando la herramienta de monitor serie del programa de Arduino.
13.4 MATERIALES -
Madera venesta Arduino Mega 2 Sensores de obstáculos fc 51 1 Servo motor Pulsador Conectores macho-hembra
22