360 likes | 551 Views
PROGRAMACIÓN DE OBJETOS TECNOLÓGICOS CONTROL DE BARRERA DE PARKING. PREMIOS CIENTÍFICOS-TECNOLÓGIOCOS “DON BOSCO” PRIMERA EDICIÓN, CURSO 2011-2012. IES “PINTOR RAFAEL REQUENA” Caudete -Albacete Taller de Robótica Tutor: Manuel HIDALGO DÍAZ. Taller de Robótica. Actividad extraescolar.
E N D
PROGRAMACIÓN DE OBJETOS TECNOLÓGICOSCONTROL DE BARRERA DE PARKING PREMIOS CIENTÍFICOS-TECNOLÓGIOCOS “DON BOSCO” PRIMERA EDICIÓN, CURSO 2011-2012 IES “PINTOR RAFAEL REQUENA” Caudete-Albacete Taller de Robótica Tutor: Manuel HIDALGO DÍAZ
Taller de Robótica • Actividad extraescolar. • Plan de dinamización de los recreos • Uno o dos recreos a la semana • Alumnos de 1º ESO • Joel Serrano López • Ricardo Soler Bañón • Alejandro Vicente Cózar • Juan Conejero Sivó • Alejandro Cantó Rubio
Taller de Robótica • Actividades en grupo • Conocer objetos tecnológicos • Controlar los objetos por programación • Realizar pequeños proyectos
Taller de Robótica • Placa Arduino
Taller de Arduino • IDE Arduino (Entorno de desarrollo)
Taller de Arduino • Estructura de un programa
Taller de Robótica • Placa de actividades
Maqueta del proyecto • Diagrama de bloques
Elementos tecnológicos • Diodo LED • Están conectados a los pines 3-4-5 • Entrada digital • Semáforo
Elementos tecnológicos • Actividad de prueba de LED • Parpadeo de los LEDs
Elementos tecnológicos • Pulsador • Controla encendido/apagado de los procesos • Entrada digital • Tensión 5V 1 digital • Tensión 0V 0 digital
Elementos tecnológicos • Actividad de prueba de Pulsador • Cambia temporalmente el LED
Elementos tecnológicos • Servomotor • Actuador que sube y baja la barrera • Partes • Motor eléctrico de continua • Circuito electrónico de control • Reductora
Elementos tecnológicos • Servomotor • Se controla con una señal PWM (modulación por anchura de pulso) Arduino utiliza la librería “Servo.h”
Elementos tecnológicos • Actividad de prueba de Servomotor • Cambia de posición la barrera durante un tiempo
Elementos tecnológicos • Sensor de infrarrojos (IR) • Detecta la presencia de un obstáculo a una distancia • Da una tensión según la distancia • Entrada analógica • La tensión 0V a 5V pasa 0 a1023 • En el sensor IR varía: • 0,4V a 3,2V • 100 a 640 • Valor de seguridad 350
Elementos tecnológicos • Actividad Sensor de infrarrojos (IR)
Elementos tecnológicos • Actividad Sensor de infrarrojos (IR)
Elementos tecnológicos • Los programas de las actividades están en la memoria. • El resultado de la combinación de estos elementos es la maqueta. • El siguiente video es el Control de la barrera con pulsador.
Control barrera con pulsadorCódigo de programa • Variables #include <Servo.h> //librerias Servo servoBarrera; //Declaracion del objeto servomotor int pinLedRojo = 5; //Declaraciones de pines int pinLedAmarillo = 4; int pinLedVerde = 3; int pulsador = 2; int sensorIR = A5; int pulsaValor; //Declaracion variables int sensorValor;
Control barrera con pulsadorCódigo de programa • Configuracion void setup() { pinMode(pinLedRojo, OUTPUT); //configuracion de pines pinMode(pinLedAmarillo, OUTPUT); pinMode(pinLedVerde, OUTPUT); servoBarrera.attach(6); servoBarrera.write(5); //posicion inical de la barrera digitalWrite(pinLedRojo, 0); // Semaforo Verde digitalWrite(pinLedAmarillo, 0); digitalWrite(pinLedVerde, 1); }
Control barrera con pulsadorCódigo de programa • Programa principal void loop() //programa principal { pulsaValor = digitalRead(pulsador); //leemos el valor del pulsador if (pulsaValor == 1) //preguntamos el valor del pulsador y actuamos { digitalWrite(pinLedVerde, 0); digitalWrite(pinLedAmarillo, 1); delay(3000); digitalWrite(pinLedAmarillo, 0); digitalWrite(pinLedRojo, 1); delay(500); servoBarrera.write(90); //barrera abierta delay(10000); //semaforo en rojo 10seg
Control barrera con pulsadorCódigo de programa sensorValor = analogRead(sensorIR); //lee valor sensor while (sensorValor > 350) //repite la lectura { //porque hay un obstaculo sensorValor = analogRead(sensorIR); delay(10); } delay(2000); servoBarrera.write(5); //barrera cerrada delay(1000); } digitalWrite(pinLedRojo, 0); //semaforo en verde digitalWrite(pinLedAmarillo, 0); digitalWrite(pinLedVerde, 1); delay(10); }
Elementos tecnológicos • Módulo Bluetooth • Permite una comunicación con otro dispositivo que tenga bluetooth, como un móvil con SO Android. • Se conecta los pines • Tx y Rx del módulo • A los pines Rx y Tx de Arduino
Elementos tecnológicos • Módulo Bluetooth • La aplicación en el móvil Android utilizada es un mando con botones. Funcionamiento • Conectado el módulo de Arduino al móvil • Al pulsar el botón central verde envía la letra ‘C’ • El programa de Arduino tiene una intsrucción que escucha el puerto serie. • Si recibe la letra ‘C’ hace la misma función que el pulsador
Maqueta del proyecto con Bluetooth • Diagrama de bloques
Control barrera con BluetoothCódigo de programa • Variables #include <Servo.h> //librerias Servo servoBarrera; //Declaracion del objeto servomotor int pinLedRojo = 5; //Declaraciones de pines int pinLedAmarillo = 4; int pinLedVerde = 3; int pulsador = 2; int sensorIR = A5; int sensorValor; //Declaracion variables int boton; //int pulsaValor;
Control barrera con Bluetooth Código de programa • Configuracion void setup() { pinMode(pinLedRojo, OUTPUT); //configuracion de pines pinMode(pinLedAmarillo, OUTPUT); pinMode(pinLedVerde, OUTPUT); servoBarrera.attach(6); servoBarrera.write(5); //posicion inical de la barrera digitalWrite(pinLedRojo, 0); // Semaforo Verde digitalWrite(pinLedAmarillo, 0); digitalWrite(pinLedVerde, 1); Serial.begin(9600); }
Control barrera con Bluetooth Código de programa • Programa principal void loop() //programa principal { if (Serial.available()) //Escuchamos el puerto de comunicaciones { boton = Serial.read() { if (boton == ‘C’) //preguntamos el valor de boton y actuamos { digitalWrite(pinLedVerde, 0); digitalWrite(pinLedAmarillo, 1); delay(3000); digitalWrite(pinLedAmarillo, 0); digitalWrite(pinLedRojo, 1); delay(500); servoBarrera.write(90); //barrera abierta delay(10000); //semaforo en rojo 10seg
Control barrera con Bluetooth Código de programa sensorValor = analogRead(sensorIR); //lee valor sensor while (sensorValor > 350) //repite la lectura { //porque hay un obstaculo sensorValor = analogRead(sensorIR); delay(10); } delay(2000); servoBarrera.write(5); //barrera cerrada delay(1000); boton = ‘ ‘; } digitalWrite(pinLedRojo, 0); //semaforo en verde digitalWrite(pinLedAmarillo, 0); digitalWrite(pinLedVerde, 1); delay(10); }
Gracias por su atención IES “PINTOR RAFAEL REQUENA” Caudete-Albacete Taller de Robótica Tutor: Manuel HIDALGO DÍAZ