Estrés hace arte: generación Visual y respuesta galvánica de la piel (2 / 3 paso)

Paso 2: código

Para la codificación parte de este proyecto, me refería a las dos fuentes más abajo. No necesitas mirar estas fuentes a menos que quiera comprenderlas en su forma original. Si desea copiar/pegar el código que funciona, vaya al 3) mi código.

1) código fuente GSR
La primera fue http://cwwang.com/2008/04/13/gsr-reader/ , que incluye el código de Arduino (para Arduino y procesamiento para comunicarse) y el código de procesamiento a utilizar los datos de respuesta galvánica de la piel de los sensores construidos. Código de Wang básicamente cartas valor de respuesta galvánica de la piel de una persona en un gráfico de línea móvil, que se parece un poco un electrocardiograma lectura visualmente. Yo quería tener una visualización más abstracta del código por lo que utiliza los datos de otra fuente para generar los elementos visuales.

2) código fuente visual
El código para crear los efectos visuales es de: http://www.generative-gestaltung.de/P_2_2_1_01

3) mi código

A) CÓDIGO DE ARDUINO A CONTINUACIÓN

void setup() {}
Serial.Begin(9600);
}

void loop() {}
int a=analogRead(0);
Si (Serial.available() > 0)
{

inbyte=Serial.read() de bytes;
if(inbyte=='a')
{
Serial.Write(a);

}
}
}

---------------------------------------------
B) PROCESAMIENTO DE CÓDIGO A CONTINUACIÓN

Usted puede copiar/pegar este código en un nuevo sketch de procesamiento
Código fuente visual desde: http://www.generative-gestaltung.de/P_2_2_1_01
Código fuente de GSR desde: http://cwwang.com/2008/04/13/gsr-reader/

Import processing.pdf.*;
Import java.util.Calendar;

Boolean recordPDF = false;

Import processing.serial.*;
Serie myPort;

int hPosition = 1;
Float currentReading;
Float lastReading;
int cuenta = 0;
int zeroLinePos = 0;

flotador gsrAverage, prevGsrAverage;
Base de flotador = 0;
lastFlatLine largo = 0;
int baselineTimer = 10000; //10 seg
int gsrValue;
int gsrZeroCount = 0;
Float gsrRange = 0;
int downhillCount = 0;
int uphillCount = 0;
descenso booleano;
alcanzó el boolean = false;
pico de flotador, Valle;
int velocidad;
int del norte = 0;
int al noreste = 1;
int este = 2;
int = sureste 3;
int del sur = 4;
int = sudoeste 5;
int oeste = 6;
int del noroeste = 7;

flotador stepSize = 1;
diámetro de flotador = 1;

int dirección;
flotador posX, posY;
int minCurrentReading = 1000;
int maxCurrentReading = 0;

void setup() {}
tamaño (800, 800); //size de la ventana de imagen
Background(255);
Smooth();
noStroke();
posX = ancho/2;
posY = altura/2;
println(serial.List());
currentReading = 0;
lastReading = 0;
gsrAverage = 0;

encontrar el puerto serie correcto para su equipo y escriba el número dentro de]
myPort = serie nueva (este, Serial.list() [8], 9600);
}

void serialEvent (serie myPort) {}
int inByte=myPort.read();
0-255
gsrValue = inByte; //taking valor del Arduino
}

void draw() {}

calculateGSR();

println ("currentReading =" + currentReading);

mapa de currentReading para la velocidad
Si (currentReading < = 50)
{
currentReading = minCurrentReading;
} else if (currentReading > 1000)
{
currentReading = maxCurrentReading;
}
Else / / válido zona
{

Si (currentReading < minCurrentReading)
{
minCurrentReading = int (currentReading);
}

Si (currentReading > maxCurrentReading)
{
maxCurrentReading = int(currentReading);
}}

println ("currentReading =" + currentReading + "minCurrentReading =" + minCurrentReading + "maxCurrentReading =" + maxCurrentReading);
currentReading = mapa (currentReading, minCurrentReading, maxCurrentReading, 15000, 10);
velocidad = int (currentReading);

println ("asignan valor =" + velocidad);
Delay (50), //delay para la estabilidad

aplicar la lectura de la GSR a la velocidad de la que el dibujo orgánico "crece" en coche
para (int i = 0; i < = velocidad; i ++) {}
Dirección = (int) al azar (0, 8);

Si (dirección norte ==) {}
posY = stepSize;
}
else if (dirección noreste ==) {}
posX += stepSize;
posY = stepSize;
}
else if (dirección == este) {}
posX += stepSize;
}
else if (dirección sureste ==) {}
posX += stepSize;
posY += stepSize;
}
else if (dirección sur ==) {}
posY += stepSize;
}
else if (dirección sudoeste ==) {}
posX = stepSize;
posY += stepSize;
}
else if (dirección oeste ==) {}
posX = stepSize;
}
else if (dirección noroeste ==) {}
posX = stepSize;
posY = stepSize;
}

Si (posX > anchura) posX = 0;
Si (posX < 0) posX = ancho;
Si posY (posY < 0) = altura;
Si (posY > altura) posY = 0;

relleno (0, 40);
elipse (posX + stepSize/2, posY + stepSize/2, diámetro, diámetro);
enviar una para bytes más
}
}

void calculateGSR () {}
mejor configuración de retardo para las lecturas de la gsr
println(gsrValue);
Delay(50);
imagen (myMovie, 0, 0);

Si (gsrValue < 15 & & gsrValue > -15) {/ / nada entre -15 y + 15 se considera cero
Si alguien levanta dedos apagado durante 10 segundos en 10 0, reset justo

Si (gsrZeroCount > 10) {}
currentReading = 0; //flatline
gsrAverage = 0;
línea de base = 0;
lastFlatLine=millis();
gsrZeroCount = 0;
println("RESET");
}

gsrZeroCount ++;
} / / final de prueba para cerca de cero

Else {/ / ggood lectura
currentReading = gsrValue-línea de base;
gsrZeroCount = 0;
}

Si (millis ()-lastFlatLine > baselineTimer) {}
línea de base = gsrAverage; //if tenemos al menos 10 segundos de la lectura desde el último flatline
}

gsrRange = Valle de pico;

gsrAverage=smooth(currentReading,.99,gsrAverage);

mbral de int = 7;

Si (tres currentReading > lastReading & & pico == true) {}
descenso = false;
println(downhillCount);
uphillCount ++;
downhillCount = 0;
punto (hPosition-1, altura/2.0-lastReading);
Valle = lastReading;
pico = false;

}
Si (currentReading + tres < lastReading & & pico == false) {}
println(uphillCount);
descenso = true;
uphillCount = 0;
downhillCount ++;
punto (hPosition-1, altura/2.0-lastReading);
pico = lastReading;
pico = true;
}

prevGsrAverage = gsrAverage;
lastReading = currentReading;
enviar una para bytes más
myPort.write('a');

}

int suave (datos del flotador, flotador filterVal, flotador smoothedVal) {}
Si (filterVal > 1) {/ / comprobar que son de hacer seguro param dentro de gama
filterVal =. 99;
}
else if (filterVal < = 0) {}
filterVal = 0;
}
smoothedVal = (datos * (1 - filterVal)) + (smoothedVal * filterVal);
devolver (int) smoothedVal;
}

Artículos Relacionados

Cómo hacer arte

Cómo hacer arte

".. .el estado de cosas en el mundo artístico es siempre una relación entre algo como nuestra experimentación de sensibilidad caótico en general y la distinción, que es una distinción de movimiento, entre forma e informa, o algo como eso."-Alain
Manualidades de papel: Cómo hacer arte Floral bricolaje hermoso para la decoración de

Manualidades de papel: Cómo hacer arte Floral bricolaje hermoso para la decoración de

Manualidades de papel es un pasatiempo que todos los amantes del arte se convierten en sus primeros días de elaboración. conmigo, esta vez, te doy la oportunidad de aprender la forma más fácil de la artesanía de papel! Aprende a hacer arte Floral bri
Arte caracol: Hacer arte con caracoles

Arte caracol: Hacer arte con caracoles

Hola y Bienvenidos al segmento de "Arte de caracol" de nuestro show! Arte de caracol. Arte con caracoles. Por caracoles. Y para los caracoles. Especie de. Arte de caracol. ... ¿Snart?En este segmento, a cubrir procesos de impresión basados en ca
Hacer arte con piezas Vintage de juego

Hacer arte con piezas Vintage de juego

Juegos y juguetes especiales no tienen que ser almacenados en cajas apiladas cuidadosamente. Disfrute de su diario de recuerdos recreando esas piezas en el arte de la pared.Me inspiré por un viejo bloques de madera y juego de anagramas para hacer art
Cómo hacer arte de plegado de libro más fácil utilizar el equipo

Cómo hacer arte de plegado de libro más fácil utilizar el equipo

En varios lugares, vi las obras de arte hermoso libro doblado (como en estos instructables: Book-Art-How-to-Fold-a-Book-into-a-Word, Folded-Book-Art-Best-most-clear-Tutorial-available)- y como yo soy un ávido lector y libros de amor, papel y arte, se
Cómo pintar, dibujar, color y si no hacer arte!

Cómo pintar, dibujar, color y si no hacer arte!

A slideshow depicting various media in animal portraits, and other assorted subjects. Se muestran diferentes técnicas para incluir: lápiz, color de lápiz, acuarela, pintura acrílica, leña y así sucesivamente. Soy autodidacta pero dar crédito a varios
Cómo hacer arte de punto de caramelo gigante (o pequeño)

Cómo hacer arte de punto de caramelo gigante (o pequeño)

Como artista, trabajo mucho con la idea de la individualidad y mirar de manera que nuestra identidad se forma por cómo nos presentamos al mundo y los métodos que utilizamos para proyectar esa identidad. A menudo, esto implica la interacción con la te
Cómo hacer arte Crayola derretida

Cómo hacer arte Crayola derretida

Hola! Espero que disfruten este video de cómo hacer arte crayon hermoso.
Cómo hacer arte de un Pringle pack!

Cómo hacer arte de un Pringle pack!

Ver como es fácil transformar el mayor Pringle en algo más grande todavía! Y es una forma maravillosa de regalo!Pedir a mis amigos!! * LOL *¡Nos vemos!Paso 1: Cómo hacer arte de un Pringle pack! Ver como es fácil transformar el mayor Pringle en algo
Cómo hacer arte de papel de un modelo de juego o 3d

Cómo hacer arte de papel de un modelo de juego o 3d

primero perdón por mi inglés it´s no es mi idiomaEl software necesarioA juego con Direct X o un 3d del modelo (en la web hay mucho gratis)3D RIPPER DXAutodesk 3D Studio Maxo algo similar como sketch up para trabajar con archivos *.3dr y guardar como
USF hacer-arte UFO

USF hacer-arte UFO

Este instructable fue creado en cumplimiento de la exigencia de proyecto de Makecourse-arte en la Universidad de Florida del Sur (www.makecourse-art.com). Nuestro equipo estaba compuesto por dos talentosos artistas y un ingeniero mecánico. Combinamos
Hacer un juego usando Visual Studio

Hacer un juego usando Visual Studio

Hola chicos, es cierto. Puede crear su propio juego con conocimientos básicos de Visual Studio y C#. Antes de empezar quiero decir si te gusta este instructable entonces por favor ME voto para Concurso de creaciones de codificado, simplemente haga cl
Cómo hacer arte de pared de papel higiénico

Cómo hacer arte de pared de papel higiénico

este es probablemente uno de mis favoritos proyectos DIY. Me tomó un poco mientras que recoger los rollos de papel, pero estaba bien vale la pena. Rollos de papel Quién sabía que podría convertirse en arte de la pared dulce!!!! Este proyecto es muy v
Cómo hacer arte corte láser impresionante!

Cómo hacer arte corte láser impresionante!

Este instructable le mostrará el proceso que atravesó para crear casi todos mis regalos de Navidad que dieron este año. Yo estoy entrando en este insructable en la fiesta concurso de regalo si te gusta Asegúrese de votar en el concurso!El proceso en