domingo, 17 de febrero de 2019


Theremin con Arduino, Buzzer y Sensor de distancia

En clase de tecnología se nos pidió realizar un instrumento musical utilizando:

  • Placa Arduino

  • Buzzer

  •  Sensor de distancia

Descripción
Para empezar con el programa, declaramos las diferentes variables o pines, que 
son el Trigger y el Echo del S.Proximidad; el Buzzer; y las diferentes notas de la 
escala con su frecuencia.

En el setup establecemos si las variables que hemos introducido anteriormente 
son de entrada o salida (INPUT o OUTPUT), junto al tiempo o “delay” que tarda 
en iniciar el programa.

Si la distancia es mayor que 0 pero menor que 10, sonará un DO y así 
sucesivamente con todas las notas de la escala, sin alteraciones. Para identificar 
la distancia a la que se encuentra el objeto (la mano en este caso), el sensor de 
distancia lanzará un pulso con el Pin del Trigger, sabiendo la velocidad a la que se 
desplaza el sonido y midiendo el tiempo que el pulso tarda en regresar al Pin Echo
podremos realizar una transformación:  (duration(tiempo respuesta) * 10 / 292/ 2),
la cual nos permitirá saber la distancia en centímetros. Sabiendo ya la distancia 
en centímetros, podemos hacer sonar cada nota de la escala moviendo la mano
hacia arriba y hacia abajo (dependiendo de los intervalos de distancias que hemos
establecido anteriormente). Cada nota tardará en cambiar 300 milisegundos y 
durará hasta que se retire la mano.

 Montaje 

Empezaremos con el montaje de todos los elementos. En primer lugar, acoplamos  

el Buzzer y el sensor de ultrasonidos a la protoboard, y mediante cables los conectaremos a

los diferentes pines de la placa. El Trigger del sensor de ultrasonidos irá conectado al PIN 10;

el Echo al PIN 9; la pata positiva del Buzzer se conectará al PIN 11. Conectaremos un cable 

desde la corriente de 5v de la placa a una línea de la protoboard representada con un “+” y 

color rojo, y haremos lo mismo con el GND pero en la línea azul con un “-”. En cualquier 

agujero de la línea azul con el GND conectado pasaremos un cable hasta la pata del sensor 

de ultrasonidos donde está escrito GND y haremos lo mismo en la pata negativa del Buzzer. 

A continuación, conectaremos un cable a la línea roja de 5v que vaya hasta la pata del sensor 

que esté indicada con un “5v”.

    

El programa que hemos utilizado es el siguiente:
int EchoPin = 9;
int TriggerPin = 10;
int Buzzer = 11;
int Do = 523;
int Re = 587;
int Mi = 659;
int Fa = 698;
int Sol = 784;
int La = 880;
int Si = 988;
int Dos = 1046;


void setup() {
  Serial.begin(9600);
  pinMode(TriggerPin, OUTPUT);
  pinMode(EchoPin, INPUT);
  pinMode(Buzzer, OUTPUT);
  
}
void loop() {
  int cm = ping(TriggerPin, EchoPin);
  Serial.print("Distancia: ");
  Serial.println(cm);
  delay(300);
     if (cm > 0 && cm<10)
    tone(Buzzer, Do);
     if (cm > 10 && cm<20)
    tone(Buzzer, Re);
     if (cm > 20 && cm<30)
    tone(Buzzer, Mi);
     if (cm > 30 && cm<40)
    tone(Buzzer, Fa);
     if (cm > 40 && cm<50)
    tone(Buzzer, Sol);
     if (cm > 50 && cm<60)
    tone(Buzzer, La);
     if (cm > 60 && cm<70)
    tone(Buzzer, Si);
     if (cm > 70 && cm<80)
    tone(Buzzer, Dos);
     if (cm>80)
    noTone(Buzzer);

}
int ping(int TriggerPin, int EchoPin) {
  long duration, distanceCm;
  
  digitalWrite(TriggerPin, LOW);  
  delayMicroseconds(4);
  digitalWrite(TriggerPin, HIGH);  
  delayMicroseconds(10);
  digitalWrite(TriggerPin, LOW);
  
  duration = pulseIn(EchoPin, HIGH);
  
  distanceCm = duration * 10 / 292/ 2;
  return distanceCm;
  
}

domingo, 10 de febrero de 2019


M E M O R I A  D E A R D U I N O

(Un trabajo realizado por Gara, Gabriela, Marta A. y Alba V.)


Día 1  (14 de enero)  Circuito con sensor de distancia (1 LED)




Para probar los circuitos obtenidos de la red, utilizamos una placa arduino 
con un sensor de distancia y un led. 

Así, vemos que, como el led se enciende al detectar una distancia, funciona 
el programa. En el video vemos la secuencia que emite el ordenador 
de las diferentes distancias que detecta el sensor.



Día 1  (14 de enero)  Circuito con sensor de distancia (3 LED)


  
En esta imagen vemos que se enciende el led verde al estar el objecto (la mano) a más de 10 cm.
 



En esta imagen vemos que se enciende el led amarillo al estar el objecto (la mano) a más de 5 cm y a menos de 10 cm. 




En esta imagen vemos que se enciende el led rojo al estar el objecto (la mano) a menos de 5 cm.
 

     
Día 4  (24 de enero)  Circuito con un buzzer


En este caso, hemos programado el buzzer para que emita una sucesión de notas específicas, para crear una melodía.


Día 5  (28 de enero)  Circuito con sensor de distancia y buzzer


Por último, tenemos en el programa tanto un sensor "buzzer" como un de distancia, funcionando de la siguiente manera: El detector de distancia detecta la mano y mide a cuántos cm se encuentra. Por otro lado, el Buzzer está diseñado para emitir una nota específica según la distancia que detecte el sensor.

Prueba Arduino+Sensor de movimiento+buzzer por Juanjo Ventura Ayora, Gerard Amela Batiste y Francisco Vinos Zapata.

Hoy vamos a interactuar con una de las muchas posibilidades que tiene nuestro Arduino.
Para comenzar, un Arduino es una placa programable donde nosotros podemos idear el código para nuestros propósitos.
El objetivo de esta práctica es que mediante un sensor de distancia y un Buzzer podamos detectar la distancia y reproducir un sonido en concreto dependiendo de la distancia.
Para ello, utilizaremos el programa Arduino IDE que está disponible para descargar en cualquier ordenador.
Para conseguir nuestro objetivo, necesitaremos:
Un Arduino
Resultado de imagen de arduino uno
Un sensor de distancia
Parallax Inc Kit de desarrollo de sensores para Sensor ultrasónico de distancia, 28015

Y por último un Buzzer
Resultado de imagen de buzzer
Lo primero que tenemos que hacer es iniciar nuestro programa Arduino.
Tenemos que asegurarnos que el puerto que hayamos seleccionado para nuestra placa Arduino esté seleccionada  en el USB donde conectaremos nuestro Arduino.
El código que hemos ideado es el siguiente:
#define trigPin 11
     #define echoPin 12
     #define led 2

     int spk=13;                     
                    // altavoz a GND y pin 13
int c[5]={131,262,523,1046,2093};       // frecuencias 4 octavas de Do
int cs[5]={139,277,554,1108,2217};      // Do#
int d[5]={147,294,587,1175,2349};       // Re
int ds[5]={156,311,622,1244,2489};    // Re#
int e[5]={165,330,659,1319,2637};      // Mi
int f[5]={175,349,698,1397,2794};       // Fa
int fs[5]={185,370,740,1480,2960};     // Fa#
int g[5]={196,392,784,1568,3136};     // Sol
int gs[5]={208,415,831,1661,3322};   // Sol#
int a[5]={220,440,880,1760,3520};      // La
int as[5]={233,466,932,1866,3729};    // La#
int b[5]={247,494,988,1976,3951};      // Si



     void setup()
        {   Serial.begin (9600);
            pinMode(trigPin, OUTPUT);
            pinMode(echoPin, INPUT);
            pinMode(led, OUTPUT);
           
        }
        void nota(int frec, int t)
{
    tone(spk,frec);      // suena la nota frec recibida
    delay(t);                // para despues de un tiempo t
}


     void loop()
        {   long duracion, distancia ;
            digitalWrite(trigPin, LOW);        // Nos aseguramos de que el trigger está desactivado
            delayMicroseconds(2);              // Para asegurarnos de que el trigger esta LOW
            digitalWrite(trigPin, HIGH);       // Activamos el pulso de salida
            delayMicroseconds(10);             // Esperamos 10µs. El pulso sigue active este tiempo
            digitalWrite(trigPin, LOW);        // Cortamos el pulso y a esperar el echo
            duracion = pulseIn(echoPin, HIGH) ;
            distancia = duracion / 2 / 29.1  ;
            Serial.println(String(distancia) + " cm.") ;
            int Limite = 200 ;                  // Medida en vacío del sensor
              // Para limitar el número de mediciones
            if ((distancia)<5)
                 (nota(262,1000));
            else if(distancia<10 )
                  (nota(d[2],1000));
           else if((distancia)<15)
                 (nota(e[2],1000));
            else if((distancia)<20 )                  (nota(f[2],1000));
            else if((distancia)<25 )
                 (nota(g[2],1000));
           else if((distancia)<30)
                  (nota(a[2],1000));
           else if((distancia)<35 )
                                                                (nota(b[2],1000));
       noTone (spk);
        }
Tenemos que definir todos los pines donde vayan conectados los elementos.
Usaremos el comando if y else para que el programa nos detecte la distancia y pueda reproducir una nota diferente según la distancia, pero antes deberemos definir todas las notas que queramos reproducir, en este caso la escala de Do.
Al final, conseguiremos reproducir esta escala según la distancia.
Os dejamos con un vídeo de demostración de este programa.

 Como podemos ver, este código funciona a la perfección. Espero que os haya gustado.
Trabajo hecho por: Juanjo Ventura Ayora, Gerard Amela Batiste y Francisco Vinos Zapata.

jueves, 7 de febrero de 2019

Prueba de Sensores de Distáncia




PRUEBA DE SENSORES


Por: Sebastià, Oscar, Paul y Iñaki.




Prácticas Arduino


Prácticas Arduino

         En clase de tecnología hemos llevado a cabo un proyecto utilizando la placa Arduino, que nos permite hacer cosas tan interesantes como las siguientes:

         Primero hicimos que con un sensor de distancia que funciona mediante ultrasonidos nos mostrase la distancia constantemente. Una vez hecho, instalamos 3 bombillas de colores en la placa para que se enciendan y apaguen en función de la distancia que detecta el sensor, de manera que cuando un objeto se acerca mucho se activa la luz roja, si se aleja un poco la luz amarilla, y si no detecta nada cerca la luz verde.

       El siguiente trabajo que llevamos a cabo fue usar un buzzer para que reproduzca frecuencias siguiendo un ritmo, y creamos un programa para que entonase una variedad de melodias como Twinkle twinkle little star y, posteriormente hicimos la cancion "Thunderstruck" de AC/DC.

      Por último, una vez finalizados los dos proyectos anteriores los fusionamos haciendo con el detector de distancia y el buzzer que suenen las diferentes notas de la escala de do Mayor en función de la distancia para poder tocar canciones igual que con un Theremin.

A continuación enlazamos los diferentes vídeos
Hecho por Javier Castejón, Joel ESPAÑA, Miguel Pascual, 
Xavi Nicolau y Pau Redo.