challenge 

How might we create an aid that allows people with asthma or dust allergies to become more aware of their health condition and better take care of themselves by providing them with information about their surroundings? 

Outcome 

Particle Taction  allows you to become more aware of your surroundings in a non-intrusive way, by providing you with haptic feedback based on the particulate matter in your surrounding environment. The user is able to better manage their health in an inclusive way through the inconspicuous design and functionality of a set of ordinary music headphones. Regardless if you have asthma, are trying to quit smoking or are simply curious about your surroundings, these headphones don’t only give you amazing tunes, but translate the invisible into touch.  

Roles 

Paper prototyping, UX testing and research, physical computing.

User Experience 

Explorative, non-intrusive, haptic, "no UI".

design process

1- Idea: I found the 3M headphones abandoned on the street whilst I was working on visualizing air quality for the same purpose, and saw an opportunity. 
2- Research: How do we perceive haptics on the body? 
3- Technical Test: Designing the schematics and testing the accuracy of the readings in different contexts.
4- Build: The focus here was rapid prototyping, and I was excited to use only materials at hand to complete this in one set. 
5- Design User Test: Personas, storyboards and scenarios. 
6 - Recruit: Recruit people with asthma or people that have air sensitivity for a two-part user test. The first part was a direct observation where users would "think out loud". The second part consisted of them taking the product home for over 24 hours and fill in a UX journal after each use. 
7- Synthesize data: Synthesize and analyze data, looking for common patterns and categorize into buckets. 
8- Conclusion: Conclude results, trends and optimize for next round of testing. 

Algorithm

If the value is higher than 225 and lower than 500, give two short vibrations. If the value is higher than 500 (caused by direct smoke) give three shorter vibrations. The LED's where used for easy testing. For more information and source code, please see this tutorial. 

int dustPin=0;
int dustVal=0;
int redVal = 0;
int blueVal = 0;
int greenVal = 0;
int vibration = 12;

#define RED 3
#define GREEN 5
#define BLUE 6

int ledPower=2;
int delayTime=280;
int delayTime2=40;
float offTime=9680;

void setup(){
  Serial.begin(9600);
  pinMode(GREEN, OUTPUT);
  pinMode(BLUE, OUTPUT);
  pinMode(RED, OUTPUT);
  digitalWrite(GREEN, HIGH);
  digitalWrite(BLUE, HIGH);
  digitalWrite(RED, HIGH);
  pinMode(ledPower,OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(vibration, OUTPUT);
}

void loop(){
  digitalWrite(BLUE, 255); 
  digitalWrite(GREEN, 255); 
  digitalWrite(RED, 255); 

  if (dustVal < 224) {
    digitalWrite(BLUE, 0);
    delay(1000); 
  }

  if (dustVal > 225 && dustVal < 500) {
    digitalWrite(GREEN, LOW); 
    digitalWrite(vibration, HIGH);
    delay(150);      
    digitalWrite(vibration, LOW);
    delay(100);
    digitalWrite(vibration, HIGH);
    delay(150);      
    digitalWrite(vibration, LOW);
    delay(10000);
  }

  if (dustVal > 501) {
    digitalWrite(RED, 0);
    digitalWrite(vibration, HIGH);
    delay(100);      
    digitalWrite(vibration, LOW);
    delay(50);
    digitalWrite(vibration, HIGH);
    delay(100);      
    digitalWrite(vibration, LOW);
    delay(50);   
    digitalWrite(vibration, HIGH);
    delay(100);      
    digitalWrite(vibration, LOW);
    delay(10000);
  }

  digitalWrite(ledPower, LOW); // power on the LED
  delayMicroseconds(delayTime);
  dustVal=analogRead(dustPin); // read the dust value via pin 5 on the sensor
  delayMicroseconds(delayTime2);
  digitalWrite(ledPower,HIGH); // turn the LED off
  delayMicroseconds(offTime);
  delay(150);
  Serial.println(dustVal);
}

Reflection

This project was a start to an exploration that I also took part of called SoundSorial, where sound is used instead of haptics for a more explorative, artistic user experience.