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 documentationvoid 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);
}
}
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