PROYECTO ÁRBOLES. Centro: IES Vicente Aleixandre. Curso: 4º ESO. Grupo: Grupo 6.

Documentos relacionados
Actuadores eléctricos - Motores

Sesión 3 (Práctica) Sensores Actuadores

Clase 4: Motores. Conviértete en un Joven Inventor PENTA UC

CURSO: ROBÓTICA. CONECTANDO CON EL MUNDO FÍSICO. ÍÑIGO MARTÍN MIMBELA.

EL MICROCONTROLADOR ARDUINO

CURSO: ROBÓTICA. CONECTANDO CON EL MUNDO FÍSICO

Tutorial para principiantes: Cómo aprender a programar un Dreamster v1.0?

Encender un LED utilizando un pulsador (Ref libro 1 pg 82 pero como y pg 132 como 1.2.3)

AR 9 T. Tutorial 9: Display LCD

Instituto Tecnológico de Colima

El Famoso CUBO LED. Nombre 1 Nombre 2

Control por Computador. Manual de arduino. Jorge Pomares Baeza. Grupo de Innovación Educativa en Automática 2009 GITE IEA

CURSO: ROBÓTICA. CONECTANDO CON EL MUNDO FÍSICO

Programación de dispositivos Arduino Asignatura Sistemas Digitales!

VOCABULARIO DEL HARDWARE. Docente Yeni Ávila

Arduino. OPEN HARDWARE - David Cuartielles, Máximo Banti.

CONSTRUCCION DE TIMER PARA VUELO CIRCULAR CON MOTOR ELECTRICO

Introducción. Que es Arduino? 1. Por qué Arduino? 2. Asequible

PROYECTO DE ELECTRÓNICA

INTERRUPTOR CREPUSCULAR CON LDR Y ARDUINO OBJETIVOS MATERIAL NECESARIO

EJERCICIOS CON ARDUINO LED ENCENDIDO. Se conecta el Led al pin 52 y a alimentación. Compilar Se enciende el LED.

DFRduino Romeo, todo en un controlador (RoMeo V1.0) Por favor, lea atentamente este manual antes de encender el dispositivo.

Este manual aborda todos los conceptos básicos de Arduino y es una excelente guía para todo aquel que quiera iniciarse en este apasionante mundo.

Sensor Analógico: Potenciómetro

Taller de electrónica para usos creativos. Practicando con Arduino

Taller Introducción a la Ingeniería Eléctrica Robot y comunicaciones basados en Microcontrolador Arduino

INTRODUCCION. Quées Processing? Objetivos. Proyecto

ANEXO N 1. CÓDIGO PARA CONFIGURACIÓN DE MÓDULO BLUETOOTH POR MEDIO DE MICROCONTROLADOR ATMEGA328P

Proyecto : Control coche Arduino-Android

Universidad de Costa Rica

Guía de usuario de la Relay Control Shield v1.0

MANUAL DE USUARIO Sensor de temperatura y humedad digital MCI-SEN REV. 1.0

Empezando con Arduino. Controla tu entorno con un microcontrolador PIIISA

1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante)

MANUAL DE USUARIO Como utilizar un servo motor con Arduino REV. 1.0

random[arq] ARDUINO +

Rastreador de Luz para Panel Solar y Sistema de Carga para Dispositivos USB

SENSOR DE TEMPERATURA.

Sensor de presencia PIR

INTRODUCCIÓN DESCRIPCIÓN... 4 Características Hardware... 4

Entradas Analógicas.

ESTRUCTURA BÁSICA DE UN ORDENADOR

Fernando castaño Portela Ingeniero de soporte y Asesor técnico La Red Electrónica s.a.

Proyecto: Coche robótico salva obstáculos. Celia Benito Garrido Roberto Linde Díaz

Detección de luz con sensor LDR

Tema: Introducción a la Plataforma Arduino

VIII. CONTROL USANDO SIMULINK Y ARDUINO

Arduino. DHT11 Sensor Temperatura y Humedad

HARDWARE DE UN ORDENADOR. Elementos básicos

Microtutorial Arduino

Gráficos por Computador

5.- ENTRADAS/SALIDAS DIGITALES

Diseño detallado de las sesiones de laboratorio con Arduino

Taller de Interrupciones

Especificaciones técnicas de los prototipos:

CURSO-TALLER PARA LA CONSTRUCCIÓN Y MANIPULACIÓN DE UNA CABEZA ROBÓTICA ARMILLAR

Conviértete en un Joven Inventor PENTA UC TAV Humano-Máquina

CIRCUITOS COMBINACIONALES CON isplever

Taller de Hardware Libre con Arduino

Gráficos por Computador

Gráficos por Computador

El ordenador. Codificación binaria. Código ASCII

Módulo Radio frecuencia FSK y Arduino

Extensor VGA por IP - Alargador 1920x1200

ESTACIONAMIENTO AUTOMATIZADO CON ARDUINO

Iniciación a la informática

Dpto. de Electrónica 2º GM - EMTT. Tema 6 La Memoria Principal (RAM)

Fundamentos de las TIC

Los componentes de la tarjeta madre del PC. Sistemas Operativos. Febrero 2014.

Servicios de Internet

Manual de Arduino Wifly Shield

Domótica con Arduino, Bluetooth y Android

Maqueta de control PID con Arduino

1.- Conectando el zumbador a un pin PWM

Motor de Corriente Continua

ABIERTO- ELECTRoNICA- PROTOTIPO- PLATAFORMA- QUE ES UN ARDUINO? ES UNA PLATAFORMA DE PROTOTIPADO ELECTRoNICA DE DISEnO ABIERTO. QUE SIGNIFICA ESTO?

Curso de Automatización y Robótica Aplicada con Arduino

Windows XP Home. GestionGlobal21.com Página 1

Adaptador USB 3.0 a VGA para Mac - Tarjeta de Video Externo Cable x p

OpenDomo Services ODControl accessories AI 4..20

Uso de la plataforma hardware/software Arduino para aplicaciones didácticas en el ámbito de la energía y la eficiencia energética

1.- INTRODUCCIÓN EL HARDWARE DE LA PLACA ARDUINO Alimentación Entradas y Salidas Comunicaciones...

UNIDAD 1. COMPONENTES DEL COMPUTADOR

Jefe del Departamento de Tecnología, Institut Pompeu Fabra, Generalitat de Catalunya

Recursos didácticos digitales en Educación Permanente Mª Luisa Miras Cidad

//This function will read a 2 byte integer from the eeprom at the specified address and address + 1 unsigned int EEPROMReadInt(int p_address)

TuBot 2014 GUIA DE MONTAJE Y PROGRAMACIÓN MOTORES. Dpto. de Electrónica - Universidad de Alcalá TuBot

PRACTICAS CON ARDUINO: Nivel 1

COMPONENTES PRINCIPALES DEL HARDWARE DE UN ORDENADOR:

UNIDAD 1. Introducción a Photoshop.

INDICE Parte 1. Visual Basic Capitulo 1. Qué es Visual Basic? Capitulo 22. Mi Primera Aplicación Capitulo 3. Elementos del lenguaje

Imagen, Sonido y Video en el aula

EL ESCRITORIO DE WINDOWS

MEDIDOR DE TEMPERATURA

Práctica de manejo de motores CC con arduino. Antonio Martínez

POWERT POINT Tema 2. Para cambiar el color de fondo y los efectos de relleno de las diapositivas de una presentación:

Guía del usuario de material multimedia SUD (ios)

REEA. Conexión de un S con WinCC RT Advanced V.12

Ardunio. Control Led desde Lazarus

1-Componentes Físicos y Lógicos de un Ordenador.

Transcripción:

PROYECTO ÁRBOLES Centro: IES Vicente Aleixandre. Curso: 4º ESO. Grupo: Grupo 6. Trabajo realizado por: Pablo Guerrero Huerga y Ana Rodríguez Pappalardo. Fecha de realización: 12/06/2016 1

Índice 1. Finalidad del proyecto 2. Búsqueda de información 3. Subsistemas 4. Planificación 5. Hardware 6. Software 7. Funcionamiento 8. Análisis del proyecto 9. El equipo 2

1. Finalidad del proyecto Queremos realizar una animación en la pantalla de árboles que se vayan moviendo en función de nuestro movimiento en una zona delante del ordenador. Ampliaciones: Una vez que hayamos conseguido el correcto movimiento de estos, podemos hacer reproducir sonidos e incluso cambiar la velocidad con la que los árboles crecen y la cantidad de ramas que tienen dependiendo de la zona en la que estemos. Esquema de entradas y salidas: 2. Búsqueda de información En esta página hemos encontrado como realizar las curvas de las que están formadas los árboles en processing con la función bezier : https://processing.org/reference/bezier_.html Hemos buscado información sobre cómo trabajar con la librería de sonidos minim : http://dunadigital.com/processing/2014/01/14/como reproducir un sonido/ 3

3. Subsistemas Hemos dividido el proyecto en dos subsistemas funcionales: Arduino y Processing. Arduino es el encargado de conectarse con el sensor de distancia a través de la placa Arduino Genuino Uno. Se encarga de leer los valores que da el sensor y eliminar los erróneos. Processing es el encargado de la creación de los árboles en sí. Se encarga por una parte de crear la animación, de hacer la detección conectándose con el programa Arduino y leyendo los datos que envía el sensor de distancia y por último se encarga de reproducir el sonido. 4

4. Planificación Materiales: Placa de Arduino Uno y cable Basic shield Kiwibot Sensor de distancia (ultrasonidos) También hemos necesitado un proyector para mostrar el resultado. Presupuesto: Materiales: Descripción: Unidades : Precio/Unidad: Placa Arduino Uno Placa Kiwibot Sensor de distancia Proyector Es el medio de comunicación entre el ordenador y el sensor. Nos sirve en este caso de adaptador para conectar el sensor de distancia a Arduino. Percibe la distancia a la que estamos. Se usa para que el proyecto sea más real y visible. 1 21,78 1 29,95 1 7,15 1 58,78 Total: 117,66 5

5. Hardware Esquemas electrónicos Lista de componentes: Placa Arduino Genuino Uno Placa Kiwibot Sensor de distancia por ultrasonidos HC SR04 6. Software Código Arduino: // Conexion pines del sensor de distancia const int triggerpin = 11; // Pin donde conectamos el emisor 6

const int echopin = 12; // Pin donde conectamos el receptor // variables para almacenar datos int duration = 0; // Variable para almacenar el tiempo int distance = 0; // Variable para almacenar la distancia unsigned long current_time = 0; unsigned long previous_time = 0; void setup () { Serial. begin (9600); // Abrimos el puerto serie pinmode (triggerpin, OUTPUT ); // Configuramos trigger como salida digital pinmode (echopin, INPUT ); // Configuramos echo como entrada digital void loop () { current_time = millis (); if (current_time previous_time > 100) { previous_time = current_time; distance = distancia (); //Serial.println (distance); if (distance > 0) { Serial. write (distance); int distancia() { //Inicializamos el sensor digitalwrite (triggerpin, LOW ); delaymicroseconds (5); // Enviamos una señal activando la salida trigger durante 10 microsegundos digitalwrite (triggerpin, HIGH ); delaymicroseconds (10); digitalwrite (triggerpin, LOW ); // Medimos el ancho del pulso, cuando la lectura sea HIGH // devuelve el tiempo transcurrido en microsegundos duration = pulsein (echopin, HIGH, 15000); // Calculamos la distancia en cm int distance = duration * 0.01715; // Enviamos los datos medidos a traves del puerto serie return distance; 7

Código Processing: import ddf.minim.*; //ANIMACION ARBOLES // clase Arbol 10 objeto miarbol Arbol[] miarbol= new Arbol[10]; //VARIABLES PARA LA MUSICA Minim minim; AudioSample musica; import processing.serial.*; Serial myport; // Create object from Serial class int val; // Data received from the serial port void setup () { String portname = Serial. list ()[0]; myport = new Serial( this, portname, 9600); size (1000, 750); //hay que borrar esta linea al incluir algun sonido smooth (); nofill (); // creamos los diez objetos arbol for ( int i=0; i< miarbol. length ; i++) { miarbol[i]= new Arbol(i*100+50); //PARA CARGAR LA MUSICA: // minim=new Minim(this); //musica=minim.loadsample("lluvia.mp3"); //musica.trigger(); //size(1000, 750, P3D); //con musica es necesario borrar la linea de size arriba void draw () { if ( myport.available() > 0) { // If data is available, val = myport.read(); // read it and store it in val val=val*4; println (val); background (230); // llamamos a las funciones for ( int i=0; i< miarbol. length ; i++) { miarbol[i].deteccion(); miarbol[i].dibujar(); //println (miarbol[0].velocidad_ramas); 8

class Arbol { // variables float posicion; //posicion de cada arbol float velocidad_tronco; // velocidad de crecimiento float grosor; //grosor de las ramas (cada uno tiene diferente grosor) float color_rama; //los colores de cada arbol tambien son diferentes float crecimiento_restante; // representa crecimiento a 0 no crece mas float velocidad_ramas; //velocidad con la que las ramas se mueven dependiendo de si estamos en la posicion del arbol float ramas; //numero de ramas por arbol float curva_ramas; //define el patron de movimiento aleatorio que sigue cada arbol // constructor Arbol( float tempposicion) { velocidad_tronco=4; color_rama= random (30, 100); grosor= random (1.8, 3); curva_ramas= random (1, 7); crecimiento_restante=1000; posicion=tempposicion; velocidad_ramas=100; ramas=0; // FUNCIONES // funcion dibujar arbol void dibujar() { stroke (25, color_rama, 5); //color de las ramas strokeweight (grosor); //grosor de las ramas float t= framecount / velocidad_ramas; // t es la velocidad de las ramas del arbol 1 for ( int i=0; i<ramas; i++) { bezier ( posicion, crecimiento_restante+ height, //posicion del tallo x e y posicion, noise (2, i, t)* height 50, posicion, noise (5, i, t)* height 50, posicion width /2+ noise (curva_ramas, i, t)* width, crecimiento_restante+ noise (6, i, t ) * height 200 ); // funcion deteccion de movimiento de la persona void deteccion() { //si estamos en la posicion del arbol if (val>=posicion 45 && val<=posicion+45) { //el movimiento disminuye hasta 100 (va a moverse mas rapido) //velocidad_ramas=100.0; // manera antigua // de forma progresiva if (velocidad_ramas>100) { velocidad_ramas=velocidad_ramas 0.05; 9

// si el arbol no ha crecido del todo if (crecimiento_restante>0) { crecimiento_restante=crecimiento_restante velocidad_tronco; //esta es la velocidad con la que crecen los arboles if (ramas<20) { //las ramas van aumentando hasta 20 como maximo ramas=ramas+0.05; else { // si no esta en la posicion //el movimiento aumenta hasta 1000 (va a moverse mas lento) // velocidad_ramas=1000; if (velocidad_ramas<1000) { velocidad_ramas=velocidad_ramas+0.05; 7. Funcionamiento Aquí queda adjuntado el video explicativo del proyecto: https://youtu.be/uek2qe0iltg 8. Análisis del proyecto Análisis del funcionamiento del proyecto: En nuestra opinión, el proyecto lo hemos sabido llevar bastante bien a cabo después de su dificultad, ya que siempre nos hemos echado una mano cada uno Ampliaciones del proyecto: (como se podría seguir desarrollando el proyecto) Se podría hacer aumentar el sonido a medida que nos movemos o nos quedamos parados. Se podría crear un paisaje detrás de la animación, como por ejemplo el Sol pasando de un lugar a otro, haciéndose de día y de noche. También incluso como último recurso, se podría hacer mover las ramas de los árboles con la velocidad dependiendo de lo rápido que te estés tú moviendo en la realidad. 10

9. El equipo Constitución: Pablo Guerrero Huerga Ana Rodríguez Pappalardo Normas: Respeto entre los compañeros Trabajo en equipo Escuchar y tener en cuenta las ideas de los otros componentes Dar lo mejor de uno mismo Roles: Ana Programadora Pablo Programador Canales de comunicación: Gdrive: carpeta compartida Correos de gmail Grupo de whatsapp 11