BioLite – Maxine and Stephanie

biolite

BioLite is a visualization of neurofeedback. Laser cut from acrylic, the lamp is modeled after the traditional wave formation of EEG data- in this case, Mediation levels. The LED inside the lamp  changes  color and fade speed based on varying levels of attention.

Watch our final concept video here: https://vimeo.com/95454375

This is the code we used:

//this is a mash up of code from the BrainSerialTest that we used in class, code from Kyle Li to break up the CSV, and code from Julie Huynh to assign the serial output to a PWN and thus connect it to the LED

#include <Brain.h>
int lightPin = 0;  //define a pin for Photo resistor
const int ledPin = 6; // the pin that the LED is attached to
int incomingByte;      // a variable to read incoming serial data into
int brightness = 0;    // how bright the LED is
int fadeAmount = 10;    // how many points to fade the LED by
Brain brain(Serial);
void setup()
{
    Serial.begin(9600);  //Begin serial communcation
    pinMode(ledPin, OUTPUT);
    analogWrite(ledPin, 255);
}
void loop()
{
     if (brain.update()) {
        //Serial.println(brain.readErrors());
        String temps = brain.readCSV();
        String arrays[3];
        //String[] arrayS = temps.split(“,”);
        //Serial.print(brain.readCSV());
        int index1 = -1;
        int index2;
        for(int i=0; i<3;i++){
        index1 = temps.indexOf(“,”,index1+1);
        index2 = temps.indexOf(“,”,index1+1);
        arrays[i] = temps.substring(index1+1, index2);
        }
        Serial.print(“data:”);
        Serial.println(arrays[2]);
        //String [] subtext = splitTokens(temps,”,”);
    }
    //Serial.println(analogRead(lightPin));
   delay(10); //short delay for faster response to light.
   // see if there’s incoming serial data:
  if (Serial.available() >= 0) {
    // read the oldest byte in the serial buffer:
    incomingByte = Serial.read();
//    Serial.print(“sensor = “);
//    Serial.print(sensorValue);
//    Serial.print(“/t output = “);
//    Serial.print(outputValue);
    analogWrite(ledPin, incomingByte);
    delay(20);
  }
}

 

IMG_1928

 

IMG_1930

 

visualizer-screenshot

The most challenging part of this project was getting the code to work. The hardest step was parsing the serial data in order to create a variable for the ‘attention’ data.  Also, the Mind Flex was not easy to work with. We would love to implement this concept with Open BCI in the future. We like the idea of embodying the qualified self in an object through neurofeedback visualizations.

There are so many implications of what this kind of data can do for people, both good and bad. Does seeing your level of attention improve it? Or are you really unable to control it? There is a lot of talk of using neurofeedback as behavior therapy. It would be interesting to see a study done on how effective this idea really is. Or comparing the attention levels of someone diagnosed with ADHD with someone not.

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>