Objetivo: Realizar una interfaz grafica que permita emular los timbales como instrumento muscial y conjuntamente se realize la comunicacion directa con arduino.
Inicialmente no se necesitan conocimientos previos del sofware processing ya que al transcurrir del desarrollo del proyecto y con un poco de investigación se lograran aclarar dudas ya que este sofware es libre y permite realizar aportes y correciones del mismo si se logra captar alguna, al ser gratuito da muchas ventajas porque permite tomar codigos ya realizados y utilizarlos para el desarrollo del proyecto a realizar, de manera ilutrastiva se muestran las interfaces graficas que manejan arduino y processing.
//comunicacion serial arduino processing
import processing.serial.*; // se importa la libreria de processing para comunicacion serial
import cc.arduino.*; // se importa la libreria de arduiono para processing
Arduino arduino;
int Pin1= 12; // se declaran variables para asignar los puertos del arduino
int Pin= 13;
//int Pin2= 11;
//int Pin3= 10;
//int Pin4= 9;
//final configuracion comunicacion serial
Maxim maxim; // se carga la libreria Maxim para reproducir audios
AudioPlayer player1; // se declaran las variables para asignar el audio requerido
AudioPlayer player;
AudioPlayer player2;
AudioPlayer player3;
AudioPlayer player4;
AudioPlayer player5;
AudioPlayer player6;
AudioPlayer player7;
AudioPlayer player8;
PImage Stivenson; // se carga la imagen por medio de la variable stivenson
int x;
void setup()
{
println(Arduino.list()); // imprime la lista de los puertos com
arduino = new Arduino(this, Arduino.list()[1], 57600); // se escoge la lista de los puertos com reconocidos por processing y la velicidad de transmisión
arduino.pinMode (Pin, Arduino.INPUT); // se declaran los puertos del arduino como entrada
arduino.pinMode (Pin1, Arduino.INPUT);
// arduino.pinMode (Pin2, Arduino.INPUT);
// arduino.pinMode (Pin3, Arduino.INPUT);
// arduino.pinMode (Pin4, Arduino.INPUT);
size(800,600); // de cargan los pixeles de la pizarra preferiblemente los pixeles de la imagen
Stivenson= loadImage("timbales.jpg");
maxim= new Maxim(this);
/// cargar sonidos altos de los timables
player= maxim.loadFile("Timbale1.wav");
player1= maxim.loadFile("Timbale2.wav");
player2= maxim.loadFile("Timbale3.wav");
player3= maxim.loadFile("Timbale4.wav");
player4= maxim.loadFile("Timbale5.wav");
player5= maxim.loadFile("Timbale6.wav");
player6= maxim.loadFile("Timbale7.wav");
player7= maxim.loadFile("Timbale8.wav");
player8= maxim.loadFile("Timbale9.wav");
player.setLooping(true);
player1.setLooping(true);
player2.setLooping(true);
player3.setLooping(true);
player4.setLooping(true);
player5.setLooping(true);
player6.setLooping(true);
player7.setLooping(true);
player8.setLooping(true);
}
void draw() {background(Stivenson);
println( pmouseX);// imprime la posicion en x del mouse si se llega a utilizar
println( pmouseY);
if (arduino.digitalRead(Pin)==Arduino.HIGH){// de esta manera se pregunta por el estado del pin del arduino y se realizan los condicionales necesarios.
ellipse(160, 107, 75, 55);
player8.play(); }
else{
player8.stop();}
if (arduino.digitalRead(Pin1)==Arduino.HIGH){
ellipse(350, 107, 75, 55);
player4.play(); }
else{
player4.stop();}
}
nota: la libreria maxim solo recibe audios .wav, se bede cargar la libreria de arduino para processing ya que si no se realiza este paso generara errores al compilar el codigo.
se puede concluir que la experiencia fue importante ya genero errores que fueron solucionados a tiempo como la libreria que generaba errores al establecer la comunicacion con el arduino y los .wav que recibe la libreria maxim.

.jpg)
No hay comentarios:
Publicar un comentario