martes, 24 de noviembre de 2015

PRÁCTICA 7 - Visualización de señales analógicas con Processing


PRACTICA #7
“VISUALIZACIÓN DE SEÑALES ANALÓGICAS CON PROCESSING”

OBJETIVO:

Conocer el funcionamiento de la tarjeta Arduino con el programa Processing para visualizar señales analógicas.

 
INTRODUCCIÓN:

Processing es un lenguaje de programación y entorno de desarrollo integrado de código abierto basado en Java, de fácil utilización, y que sirve como medio para la enseñanza y producción de proyectos multimedia e interactivos de diseño digital. Fue iniciado por Ben Fry y Casey Reas a partir de reflexiones en el Aesthetics and Computation Group del MIT Media Lab dirigido por John Maeda. Se distribuye bajo la licencia GNU GPL.




El programa está basado en Java, por lo cual hereda todas sus funcionalidades, convirtiéndose en una herramienta poderosa a la hora de crear diferente tipos de proyectos, con eso me refiero a aplicaciones locales o aplicaciones para la web.

DIAGRAMA:




 CÓDIGO ARDUINO

void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
  pinMode(13, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(10, OUTPUT);
}

// the loop routine runs over and over again forever:
void loop() {
  // read the input on analog pin 0:
  int sensorValue = analogRead(A0);
  // Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
  //float voltage = sensorValue * (5.0 / 1023.0);
  // print out the value you read:
  Serial.println(sensorValue);
 
  int t=1000;
 
   if (sensorValue >= 0 && sensorValue < 125)
  {
   digitalWrite(13,LOW);
   digitalWrite(12,LOW);
   digitalWrite(11,LOW);
   digitalWrite(10,LOW);
  } 
 
  // led 1
   if (sensorValue >= 125 && sensorValue < 328)
  {
   digitalWrite(13,HIGH);
   digitalWrite(12,LOW);
   digitalWrite(11,LOW);
   digitalWrite(10,LOW);
  }
 
  // led 2
   if (sensorValue >= 328 && sensorValue < 558)
  {
   digitalWrite(13,HIGH);
   digitalWrite(12,HIGH);
   digitalWrite(11,LOW);
   digitalWrite(10,LOW);
  }

  // led 3
   if (sensorValue >= 558 && sensorValue < 767)
  {
   digitalWrite(13,HIGH);
   digitalWrite(12,HIGH);
   digitalWrite(11,HIGH);
   digitalWrite(10,LOW);
  }
  
  // led 4
   if (sensorValue >= 767 && sensorValue < 970)
  {
   digitalWrite(13,HIGH);
   digitalWrite(12,HIGH);
   digitalWrite(11,HIGH);
   digitalWrite(10,HIGH);
  }
 
 
}
 CÓDIGO DE PROCESSING// Based on examples from Arduino's Graphing Tutorial and OscP5 documentation
    import processing.serial.*;
    Serial myPort; // The serial port
    int xPos = 1; // horizontal position of the graph
    float oldHeartrateHeight = 0; // for storing the previous reading
  
PrintWriter output;

    void setup () {
   // Create a new file in the sketch directory
  output = createWriter("practica5.txt");
    // set the window size:
    size(600, 400);
    frameRate(25);

    // List available serial ports.
    println(Serial.list());

    // Setup which serial port to use.
    // This line might change for different computers.
    myPort = new Serial(this, Serial.list()[2], 9600);

    // set inital background:
    background(0);
    }
  
     
    void keyPressed() {
  output.flush();  // Writes the remaining data to the file
  output.close();  // Finishes the file
  exit();  // Stops the program
}

    void serialEvent (Serial myPort) {
    // read the string from the serial port.
    String inString = myPort.readStringUntil('\n');
  
  
    if (inString != null) {
    // trim off any whitespace:
    inString = trim(inString);
    // convert to an int
    println(inString);
    int currentHeartrate = int(inString);

    // draw the Heartrate BPM Graph.
    output.println(inString);
    float heartrateHeight = map(currentHeartrate, 0, 1023, 0, height);
    stroke(0,255,0);
  
line(0, 20, 550, 20);
line(0, 20, 0, 350);
line(0, 100, 550, 100);
line(0, 180, 550, 180);
line(0, 270, 550, 270);
line(0, 350, 550, 350);

textSize(32);
text("LED 4", 0, 50);
text("LED 3", 0, 130);
text("LED 2", 0, 210);
text("LED 1", 0, 300);

    line(xPos - 1, height - oldHeartrateHeight, xPos, height - heartrateHeight);
    oldHeartrateHeight = heartrateHeight;
    // at the edge of the screen, go back to the beginning:
    if (xPos >= width) {
    xPos = 0;
    background(0);
    } else {
    // increment the horizontal position:
    xPos++;
 
    }
    }
    }
    void draw() {
    }
   
    

  
RESULTADOS:
   

 









  


CONCLUSIONES:

Rosa María Cortés Herrera:

En esta práctica lo más complicado fue lograr que los valores obtenidos del monitor serial se reflejaran como gráfica, y después los valores de esa grafica convertirlos de nuevo en valores contables, para poder enviarlos a un Excel, que este recibiera los valores y se creará de nuevo una gráfica, fue tardado encontrar información que llevara a la solución de esta práctica pero al final se consiguió.

Cynthia Allen Espinosa:

Para esta práctica llevada a cabo se observó el comportamiento de las señales analógicas implementando processing junto con Arduino, para hacer posible esta práctica se tuvo que hacer uso de un potenciómetro, el cual tuvo el objetivo de obtener una gráfica de la señal.

Yessica Morales González:
En esta práctica visualizamos como es que entran las señales analógicas al Arduino y como este las envía a una pantalla en la que vemos como se dibuja una gráfica de acuerdo a los valores que movemos con el potenciómetro.
Vanessa Madelin Pacheco Trejo:
En esta práctica pudimos observar cómo se manejan las señales analógicas a través del arduino, fue interesante ver como se podía generar la gráfica en pantalla.
Eduardo Armando Ramos Montiel:
Para esta práctica la implementación del código no fue complicada, la parte más difícil fue poder visualizar los datos en la pantalla y después poder generar la gráfica. 

REFERENCIAS:
Arduino + processing: primeros pasos, diymakers, obtenido de: http://diymakers.es/arduino-processing-primeros-pasos/

Introducción ¿Qué es Processing?, Conociendo a Processing, obtenido de: http://pousta.com/2010/02/02/que-es-processing/
 

No hay comentarios:

Publicar un comentario