sábado, 14 de septiembre de 2013

XILÓFONO UTILIZANDO EL PROGRAMA PROCESSING CON COMUNICACIÓN   SERIAL CON  EL ARDUINO.



objetivo  de este proyecto es mostrar lo sencillo que es con el uso del processing para su comunicación serial con el arduino,  en este caso se tiene la programación de un xilófono de ocho nota, con este programa el cual  brinda mayor comodidad por sus librerías para el manejo de los que en particularmente queremos, el trabajo se en foco en dos librerías la cual solo una utilizamos para la comunicación serial con el arduino, el  cual para la configuración o mas bien para obtener la comunicación con el processing se necesito una librería que denominada  Firmata.
entonces  hablaremos del  programa que utilice con la  librería  Maxin  y el cual  tuvo  una buena comunicación serial, aclaro   esto no quiere decir que  el otro programa con el minin  no tiene buena comunicación serial sino que los resultados eran no muy buenos el cual l debe ser por mala configuración. Ya para lo que tiene que ver en la parte física utilizamos un arduino mega el cual nos brinda una variedad de pines tanto analógicos, digitales, Tx, Rx etc, en nuestro caso utilizamos ocho de los pines digitales  las cuales me activaran cada uno de los  tono del xilófono  como se dijo son ocho tonos DO-RE-MI-FA-SOL-LA-SI-DO* y por consiguiente usamos  ocho pines digitales del arduino.
A continuación se describirá el funcionamiento para el xilófono  y la parte de la programación que requirió.
Este proyecto es muy sencillo, ya que el código del programa no muestra complejidad y no es muy extenso, pero por causas de comunicación serial  se genero dos códigos como se resalto anteriormente  pero en  este caso nos  centraremos  en el que si tuvo una buena comunicación serial, más adelante hablaremos de por qué  no se usó el otro código, entonces para este código utilizamos la librería del processing llamada Maxim el cual su naturalidad es de reproducir audio, por consiguiente los sonidos del   programa se debieron  truncar o se puede decir detener   después de accionar el pin que se le hacinaba a este, al  programa se le configuraron  ocho pines de entradas para el accionar de cada sonido como se ve a continuación:

//comunicacion serial arduino processing 
import processing.serial.*;
import cc.arduino.*; 
Arduino arduino;
// declarar los pines como estrada 
int Pin2= 2;
Maxim maxim;



AudioPlayer player2;
// declarar la constante T la cual es la imagen 

PImage T;
void setup()
{
  //configuracio de los pines como entrada en el arduino 
       println(Arduino.list());
       arduino = new Arduino(this, Arduino.list()[0], 57600);

         arduino.pinMode (Pin2, Arduino.INPUT);
T=loadImage("xilojugo.jpg");// imagen

  size(T.width,T.height);// de la pantalla ajustada a la imagen utilizada
   image(T,0,0);// configuracion de imagen 
     maxim= new Maxim(this);
     

        player2= maxim.loadFile("1xilofono.WAV");
player2.setLooping(true);
}
void draw()   {
  //cnfiguracion de la imagen con sus coordenadas 
      background(T);
        println(  pmouseX);
          println( pmouseY);
          // activar el pin del arduino para activar elsonido 
           if (arduino.digitalRead(Pin2)==Arduino.HIGH){
             fill(255,0,0);// color de el rectangulo
                rect(13,6,37,247);// sombreo de el rectangulo que se va activar 
         player2.play(); }
         //si no es activado el pin del sonido 
         // se tiene que detener el sonido con un stop
         // por la libreria Maxim que su naturalidad es de ser reproductor 
         // estos pasos tambie para los siguientes 7 tonos que siguen 
          else{

        player2.stop();}   
}
vemos que este código es para la activación de un solo pin consecuente a un solo tono.  
 una imagen  relacionado a  lo que se tiene es el siguiente:


las conexiones con el arduino:
una esquema mas coloquial es:
Con el xilófono como como los  pulsadores el arduino como el que hace el trabajo de la comunicación serial y  pc donde se manejan todos los que lleva de software del proyecto. Ahora hablaremos  del otro programa el cual su funcionamiento se basaba en la librería  Minim que Utiliza JavaSound para proporcionar una biblioteca que es  fácil de usar audio y  sin dejar de ofrecer flexibilidad a los usuarios.
También se puede decir que al  programa le  implementamos con las coordenadas que nos brindaba  el mouse la   delimitacion el lugar de la imagen donde queríamos tener el tono mas adelante  veremos un código para un solo pin del xilófono de con el    voimousePressed() y también cambiar el color  del lugar pulsado esto   sirve para ver bien la  función que queremos que era controlar con el mouse los tonos de xilófono, no solo se uso  ese medio de control para el instrumento  también como para ver los otra opción de   funcionamiento utilizamos el void keyPressed() para que ya no solo  el mouse sea el  que pueda manipular los tonos si no el teclado aquí el código para una sola nota : 
 :


PImage T;
import ddf.minim.*;//libreria audio
Minim minim;
AudioPlayer player1;// variables de sonidos
AudioInput input;

void setup()
{
  T=loadImage("xilojugo.jpg");// imagen
  size(T.width,T.height);// de la pantalla ajustada a la imagen utilizada
}
       void draw(){

  image(T,0,0);// configuracion de imagen 

  println("mouseX: " + mouseX + " mouseY: " + mouseY);}

  void mousePressed(){
         
         
       if(mouseX>14 && mouseX<47 && mouseY>9 && mouseY<252){// cordenadas para el mouse para el primer rectangulo
         minim = new Minim(this);//configuracion audio
 player1 = minim.loadFile("1xilofono.mp3");// sonido utilizada en la coordenada

 player1.play();

  fill(255,0,0);// color de el rectangulo
  rect(13,6,37,247);// sombreo de el rectangulo
       } }
void keyPressed(){
       if(key== 'q'){
          minim = new Minim(this);//configuracion audio
 player1 = minim.loadFile("1xilofono.mp3");// sonido utilizado en 
  
 player1.play();
fill(255,0,0);// color del rectangulo 
  rect(13,6,37,247);// restangulo en cada tono de la imagen
       }

      }

Autor : Pablo Vides 

No hay comentarios:

Publicar un comentario