Pulse Light

Anno 2013.

Brief del committente

Il Walking Jazz Festival è un evento di strada che si terrà a Milano a settembre 2013. Consiste in una serie di concerti, suddivisi in 4-5 palchi che si estendono per corso garibaldi e d’intorni, che proporranno musica jazz dagli anni ‘20 a ‘60.

È richiesta un’installazione multimediale che valorizzi il performer sul suo palco mentre suona.

È da sottolineare che gli eventi si terranno dalle ore 18 alle ore 22 al’aperto lungo Corso Garibaldi, pertanto vi sarà ancora luce, e che non è possibile progettare qualcosa che disturbi la musica stessa: di dovrà puntare sul visibile, col rischio che “non si veda”.

375109_10200739221058641_851862187_n 968804_10200739219298597_1143470502_n

possibili spazi dove si terranno i concerti presso Corso Garibaldi

 

Concept

img1Il progetto consiste nella visualizzazione luminosa dell’emozione di un performer o del suo pubblico. L’emozione sarà rilevata sottoforma di frequenza cardiaca tramite un sensore arduino e questi dati input verranno usati per determinare la variazione di intensità e di emissioni luminose. Il risultato dell’interazione sarà visualizzato grazie a strisce di led sullo sfondo nero del palco oppure su superfici particolari (installazioni di spartiti musicali, cubi, totem…). Visto che l’utilizzo di proiettori comporterebbe il rischio che le immagini non appaiano definite agli occhi del pubblico, l’emissione di luce da parte di led appare più efficace.

 

Descrizione dell’interazione

pulseL’interazione uomo e dispositivo è resa possibile grazie al Pulse Sensor Amped, un sensore di frequenza cardiaca plug-and-play per Arduino, il quale è in grado di rilevare i dati del battito cardiacoin tempo reale. Il software di visualizzazione dati input è appunto Arduino, ma è possibile elaborarli anche in Processing. Tuttavia questi dati verranno tradotti dal software Arduino per tradurli in output luminosi. Il sensore sarà applicato direttamente su una parte del corpo dove la presenza dei capillari sia sufficiente: grazie alla sua dimensione e forma è possibile applicarlo su diverse zone del corpo (polso, petto, polpastrello, lobo…) tramite pratico velcro Finger Strap o Clip per orecchio.

 

Schema dell’installazione

VISIONE FRONTALE DEL PALCO output del segnale cardiaco visualizzato sulla parete fondale del palco (5×3 m) attraverso strisce di led, che possono essere adattate secondo le più svariate e creative forme

fronte

 

PULSE SENSOR AMPED sensore battito cardiaco attaccato allo spettatore rileva i dati input NB: in una reale applicazione dell’installazione, il sensore andrebbe collegato ad un arduino che invia via bluetooth i dati input a un altro arduino posto dietro il palco

 

retro

VISIONE RETROSTANTE DEL PALCO – strisce di led collegate ad arduino, il quale ne programma l’emissione luminosa, ed alimentate da un alimentatore proprio – arduino già programmato è alimentato tramite porta USB al pc o batteria

 

 

 

Descrizione Tecnica

a) Arduino e Luci

ard-luci3

Per rilevare “l’emozione” del momento della persona, sottoforma di dati input che equivalgono alle frequenze cardiache, è stato scelto il sensore Pulse Sensor Amped. Il sensore è stato brevettato per lavorare con Arduino e produce (output) un’emissione luminona ogni qual volta rileva un battito cardiaco. Questi output sono chiamati “blink” = output digitale 0-1 (luce accesa o spenta) e “fade” = output analogico (l’emissione luminosa si manifesta gradualmente). Nello studio del sensore l’output analogico è risultato più efficace dal punto di vista visivo in quanto restituisce maggiormente la pulsazione cardiaca. Per questo motivo sono state progettate due uscite analogiche, costituite da una fila di led ciascuna. La potenza di Arduino consiste nel fatto che sia una scheda elettronica programmabile col pc, ma ha il limite di restituire massimo 5 volt. Pertanto, per comandare file di led, sono stati impiegati dei Mosfet Transistor (uno per ogni fila di led) in grado di amplificare il voltaggio per uscite analogiche. Se fossero state scelte uscite digitali, sarebbe bastato usare dei Relè. L’alimentazione delle file di led è data da un alimentatore proprio (collegando poli positivi e negativi), l’Arduino serve per comandare come deve rilevarsi l’emissione luminosa: secondo la rilevazione del battito cardiaco proveniente dal Pulse Sensor Amped.

b) Breadboard e Arduino

schemaBBREADBOARD e ARDUINO – output pin 11 e pin 6

(NB: pin con tilde “~” = uscite analogiche; pin senza tilde = uscite digitali 0-1)

– pin output analogici collegati al gate (G) del transistor

(NB: se si volesse ottenere un output digitale basterebbe utilizzare un relè al file di led posto del transistor)

– massa (GND arduino) collegata alla breadboad e conseguente voltaggio negativo collegato al source (S) del transistor

– resistenza interposta tra GND e gate del transistor

– drain (D) del transistor collegato al polo negativo delle file di led

– polo positivo delle file di led collegate alla massa della breadboard

– input (pulse sensor amped): filo viola collegato al pin A0 filo rosso (polo positivo) collegato a 3o 5V filo nero (polo negativo) collegato a GND

c) Programmazione Arduino

La programmazione Arduino è formata da 2 sketches: “PulseSensorAmped_ Arduino_1dot2” e “Interrupt”, entrambe costituite da linguaggio “C”.

Il primo sketch è il cuore del programma, mentre il secondo contiene le funzioni utilizzate da Arduino per interpretare i dati.

Di seguito verrànno spiegate le varie stringhe di codice dello sketch PulseSensorAmped_ Arduino_1dot2

Dichiarazione delle variabili input e output:

int pulsePin = 0; int blinkPin = 13; int fadePin = 5; int fadeRate = 0; int fadeRate1 = 0;

Variabili utilizzate nello sketch “Interrupt” che iniziano e finiscono per la routine del programma (la routine è un ciclo, un servizio che inizia e finisce):

volatile int BPM; //battitito per minuto volatile int Signal; incoming raw data: volatile int IBI = 600;

// variabile che tiene il tempo tra un battito e l’altro

volatile boolean Pulse = false; //variabile boleana: settata a vero (accende luce) o falso (spegne luce)

volatile boolean QS = false; //quando l’arduino rileva un battito viene settata a vero

comportamento generico del programma:

void setup(){ pinMode(blinkPin,OUTPUT); //pinomode è una funzione che prende come parametri blinkPin e OUTPUT: il primo è dove mandate il segnale (nel led) il secondo è cosa deve fare (deve essere un output)

pinMode(fadePin,OUTPUT); Serial.begin(115200); //velocità di

recezione dei dati input

delay(500); //ritardo col quale mando l’output (in miillisecondi): ritarda tra la prima coppia di luci e la seconda

pinMode(fadePin1,OUTPUT); Serial.begin(115200);

interruptSetup(); //richiama lo sketch “Interrupt” }

ciclo che comanda il funzionamento dell’arduino: azione infinita, quando finisce il ciclo, riparte dall’inizio:

void loop(){ sendDataToProcessing(‘S’, Signal); if (QS == true){

fadeRate = 500; sendDataToProcessing(‘B’,BPM); sendDataToProcessing(‘Q’,IBI); QS = false;

} // tutto questo vuol dire che quando l’arduino trova un battito, accende un led

ledFadeToBeat(); //richiama la funzione sottostante

delay(20); }

funzioni per controllare il fade:

void ledFadeToBeat(){ fadeRate = fadeRate -15 ; fadeRate = constrain(fadeRate,1,255);

analogWrite(fadePin,fadeRate); delay(10); analogWrite(fadePin1, fadeRate); }

a concludere, invia i dati a processare, stampare i dati :

void sendDataToProcessing(char symbol, int data ){ Serial.println(data); }

 

Conclusioni

Le aspettative sul sensore di frequenza cardiaca erano più alte, in quanto si sperava si potessero manipolare maggiormente i dati input, invece, con questo sensore, è possibile sapere solo quando c’è un battito cardiaco, anche per questo si è deciso di utilizzare come output una semplice emissione luminosa. Tuttavia è possibile stabilire con quale ritardo emettere la luce, così da creare diversi scenari luminosi. Un’altra difficoltà riscontrata è stata come gestire più led da un’unica uscita, ma la ricerca ha portato come soluzione l’utilizzo di Transistor. Inoltre, un’installazione di questo tipo comporta costi elevati in un contesto esclusivamente didattico. Nel caso si dovesse sviluppare per il Walking Jazz Festival, la spesa non ammonterebbe a più di 150 Euro.