Preview only show first 10 pages with watermark. For full document please download

Arduino Puerta Garaje

Descripción: Electronica

   EMBED


Share

Transcript

CURSO: INTRODUCCIÓN A LA ROBÓTICA CON ARDUINO  AUTOMATIZACIÓN PUERTA PUERTA DE GARAJE GARAJE Documento creado por Fernando Martínez Moya http://fermoya.com página 1 de 10 Tabla de contenido 1. DESCRIPCIÓN GENERAL DEL TRABAJO ................................................................................................ 3 2. DIAGRAMA DE BLOQUES ............................................................................................................................. 4 3. ESQUEMAS ......................................................................................................................................................... 6 4. CONEXIONADO ................................................................................................................................................. 7 5. PROGRAMA DE LA PLACA ARDUINO ..................................................................................................... 7 6. SOFTWARE UTILIZADO ................................................................................................................................ 9 7. VARIACIONES AL PROYECTO ..................................................................................................................10 Documento creado por Fernando Martínez Moya http://fermoya.com página 2 de 10 1. DESCRIPCIÓN GENERAL DEL TRABAJO Como trabajo final del curso me he propuesto automatizar el funcionamiento de alguno de los proyectos que mis alumnos y alumnas han elaborado durante las horas de Tecnología destinadas en el Aula-Taller. El nivel educativo al que dirijo el presente trabajo es 4º de ESO, ya que en dicho nivel es donde aparece el bloque de CONTROL Y ROBÓTICA , con el que se pretende que el alumnado trabaje los siguientes contenidos:  Comprensión y experimentación con sistemas automáticos, sensores, actuadores y aplicación de la realimentación en dispositivos de control. Diseño, simulación y construcción de robots.  Uso del ordenador como elemento de programación y control. Trabajo con simuladores informáticos para verificar y comprobar el funcionamiento de los sistemas diseñados. El proyecto elegido es una puerta de garaje, por tener la maqueta ya construida y probada con anterioridad, y se pretende que la misma funcione de acuerdo con las siguientes condiciones:  Dispondrá de un pulsador de apertura. Al ser accionado la puerta comenzará a abrir.  Al llegar a un final de carrera (bumper) denominado FCA (puerta totalmente abierta) la puerta debe detenerse sola.  Transcurrido un tiempo (unos 30 segundos) la puerta comenzará a cerrar.  Al llegar a un final de carrera (bumper) denominado FCC (puerta totalmente cerrada) la puerta debe detenerse sola.  Si durante el proceso de cierre se accionase el pulsador de apertura, debe detenerse el proceso para comenzar a abrir la puerta de nuevo. Documento creado por Fernando Martínez Moya http://fermoya.com página 3 de 10 NOTA: Durante la elaboración del presente trabajo no he tenido en mi poder la placa Arduino, por lo que no me ha sido posible conectar eléctricamente la maqueta y comprobar físicamente su funcionamiento. 2. DIAGRAMA DE BLOQUES Para realizar las primeras pruebas de programación, de acuerdo con las condiciones anteriormente establecidas, he empleado el software libre MyOpenLab, en su versión 3.0.3.2, descargada desde la web http://es.myopenlab.de/. Documento creado por Fernando Martínez Moya http://fermoya.com página 4 de 10 Este software, que suelo trabajar en clase con mis alumnos y alumnas, nos permite diseñar y simular cualquier programa mediante la utilización de diagramas de flujo. De esta manera se puede comprobar el correcto funcionamiento de un programa para ir adaptándolo a las necesidades de funcionamiento establecidas. En este caso, tras realizar varias pruebas de funcionamiento, el diagrama de flujo que determina el correcto funcionamiento de la puerta del garaje, en base a las condiciones establecidas, es el siguiente: Una vez comprobado el funcionamiento del programa resulta más fácil traducirlo al lenguaje de la placa Arduino. Documento creado por Fernando Martínez Moya http://fermoya.com página 5 de 10 3. ESQUEMAS El esquema eléctrico que determina el conexionado entre los diferentes elementos de la puerta (motor, finales de carrera y pulsador) con la placa Arduino es el representado a continuación. El listado materiales necesarios para realizar el proyecto es el siguiente:  1 Placa Arduino Duemilanove  1 Motor de corriente continua con reductora incorporada  3 Resistencias de 10 kΩ  2 Finales de carrera (bumpers)  1 Pulsador normalmente abierto (NA)  1 Fuente de alimentación de 5 Voltios (o pila de petaca de 4,5 voltios) Documento creado por Fernando Martínez Moya http://fermoya.com página 6 de 10 4. CONEXIONADO En el esquema se puede observar que utilizamos las patillas digitales 3, 4, 5, 6 y 7 de la Placa Arduino. Los pines 3, 4 y 5, donde conectamos los finales de carrera o bumpers y el pulsador NA deben ser configurados como de entrada, mientras que los pines 6 y 7 deben ser configurados como de salida. En un principio no se propone la conexión de las entradas a través de un integrado L293D (báscula de Schmitt) que estabilice las posibles perturbaciones en éstos elementos. En el caso de las entradas 5 voltios supondrá que el elemento ha sido activado (“1” lógico), mientras que 0 voltios supondrá que el elemento se encuentra en estado de reposo o desactivado (“0” lógico). Para las salidas se pueden dar las siguientes opciones: Pin 6 Pin 7 Estado Motor DC 1 HIGH (5 V) HIGH (5 V) PARADO 2 LOW (0 V) LOW (0 V) PARADO 3 HIGH (5 V) LOW (0 V) GIRO A DERECHAS (APERTURA) 4 LOW (0 V) HIGH (5 V) GIRO A IZQUIERDAS (CIERRE) Queda claro que en los casos 1 y 2 no estaremos dando al motor diferencia de potencial alguna al bobinado rotórico, por lo que estará parado. Los casos 3 y 4 son complementarios, por lo que uno hace girar el motor en un sentido (apertura de la puerta) y el otro en sentido contrario (cierre de la puerta). 5. PROGRAMA DE LA PLACA ARDUINO El programa de la placa Arduino que cumple los requisitos establecidos para el funcionamiento de la puerta automática es el siguiente: Documento creado por Fernando Martínez Moya http://fermoya.com página 7 de 10 // Proyecto: AUTOMATIZACION PUERTA GARAJE // Nivel: ESO4 // Autor: Fernando Martinez Moya // Fecha: Enero 2011 /* El pulsador abre la puerta. Al llegar al FCA se para, temporiza y cierra a continuacion. Si durante el proceso de cierre se pulsa PA, para el motor para volver a abrir. Cuando esta cerrando se para al llegar a FCC. */ // Declaracion de constantes const int FCAPin = 3; // const int PAPin = 4; // const int FCCPin = 5; // int MAPin = 6; // int MCPin = 7; // int tiempo = 1; // int pa = LOW; // int fca; // int fcc; // y variables Final de carrera de apertura (entrada digital) Pulsador de apertura (entrada digital) Final de carrera de cierre (entrada digital) Giro motor para apertura (salida digital) Giro motor para cierre (salida digital) Tiempo que est abierta la puerta Variable que almacena el valor del pulsador Variable que almacena el valor del bumper de apertura Variable que almacena el valor del bumper de cierre // Declaracion de funciones void para(){ digitalWrite(MAPin, LOW); digitalWrite(MCPin, LOW); } // Ponemos los pines 6 y 7 en valor bajo // Vale poniendolos en valor alto void abre(){ digitalWrite(MAPin, HIGH); // Motor abre la puerta digitalWrite(MCPin, LOW); } void cierra(){ digitalWrite(MAPin, LOW); // Motor cierra la puerta digitalWrite(MCPin, HIGH); } // Configuracion e inicializacion void setup() { int i; for(i=3;i < 6;i++) { pinMode(i, INPUT); // Pines 3,4,5 configurados como entradas } for(i=6;i < 8;i++) { pinMode(i, OUTPUT); // Pines 6,7 configurados como salidas } } // Programa de control de la puerta void loop() { para(); // Comenzamos parando el motor pa = LOW; // Inicializamos la variable pa while (pa == LOW){ // Leemos el pulsador mediante un bucle pa = digitalRead(PAPin); } pa = LOW; // Reiniciamos la variable fca = digitalRead(FCAPin);// Leemos el bumper de apertura while (fca == LOW){ // Abrimos la puerta y leemos el estado de fca abre(); Documento creado por Fernando Martínez Moya http://fermoya.com página 8 de 10 fca = digitalRead(FCAPin); } para(); delay(tiempo * 1000); // Temporizamos el valor de tiempo en segundos fca = LOW; // Reiniciamos la variable fcc = digitalRead(FCCPin); // Leemos el estado del bumper de cierre while (fcc == LOW){ cierra(); fcc = digitalRead(FCCPin); pa = digitalRead(PAPin); if (pa == HIGH){ para(); break; } } } Este programa ha sido comprobado con la ayuda de un simulador para Arduino, concretamente el software libre Virtual Breadboard. El video de la simulación puede encontrarse en:  6. http://www.youtube.com/watch?v=3WF91hwJsDM SOFTWARE UTILIZADO El software que se ha utilizado para elaborar el presente proyecto ha sido el relacionado a continuación.  Software de programación Arduino Alpha, versión 022 (inglés)  MyOpenLab, versión 3.0.3.2 (simulador de programación mediante diagramas de flujo) Documento creado por Fernando Martínez Moya http://fermoya.com página 9 de 10  Fritzing, versión 0.4.3 (para el diseño del circuito eléctrico con Arduino)  Virtual Breadboard, versión 4.2.5.0 (para la simulación del programa de control)  Google Sketchup, versión 7 (para el diseño de la puerta y generación de las imágenes que ilustran la forma de la misma) 7. VARIACIONES AL PROYECTO Sobre el presente proyecto pueden realizarse algunas ampliaciones y/o modificaciones, como son:  Eliminar, del proceso de cierre, la acción del pulsador de apertura, para hacerlo más sencillo.  Incluir una lámpara verde para indicar que la puerta está abriendo y otra roja para indicar cuando está cerrando.  Incluir detectores de paso de vehículos para que la puerta no cierre hasta que el vehículo no haya pasado en su totalidad.  Incluir un contador de vehículos dentro del garaje (para realizar un parking público). Fernando Martínez Moya Documento creado por Fernando Martínez Moya http://fermoya.com página 10 de 10