IMG_6316.JPG

itp

Critical Objects Week 2: Breather 129

For this week’s assignment to create a disobedient electronic device, Veronica and I were both interested in bringing attention to issues of mental health, particularly the rising suicide rates in the United States. According to the American Foundation for Suicide Prevention, there are 129 suicides on average per day, or one every 11 minutes.

Fuelled by statistic and partially inspired by the Improvised Empathetic Device, we came up with the Breather 129. It’s a lamp that, when turned on, simulates “breathing”, and every 11 minutes turns off for a full minute before resuming its breathing cycle, representing one death by suicide in the United States. Its disobedience stems from the fact that while it’s supposed to serve a utilitarian purpose (providing light), it forces the user to abide by its whims (turning off at intervals). Using the Arduino MKR ZERO and a NeoPixel, we used the Real Time Clock (RTC) to trigger a function every 11 minutes. We designed the lamp to resemble a minimalist design lamp, which could easily blend in to a bedroom or office space, but would instead function as a reminder of the mental health crisis in the USA.

The Arduino code can be found below.

#include <Adafruit_NeoPixel.h>
#include <RTCZero.h>
RTCZero rtc;
const int neoPixelPin = 5;  // control pin
const int numPixels = 12;    // number of pixels
const int buttonPin = 5;
const byte seconds = 0;
const byte minutes = 10;
int previousTime = -99;
// set up strip:
Adafruit_NeoPixel ring = Adafruit_NeoPixel(numPixels, neoPixelPin, NEO_GRB + NEO_KHZ800);
void setup() {
  Serial.begin(9600);
  rtc.begin(); // initialize RTC
  rtc.setMinutes(minutes);
  rtc.setSeconds(seconds);
  // Set the time
  pinMode(buttonPin, INPUT_PULLUP);
  ring.begin();    // initialize pixel strip
  ring.clear();    // turn all LEDs off
  ring.show();     // Initialize all pixels to 'off'
  ring.setBrightness(100);
}
void loop() {
  //Light up the LED
  for (int pix = 0; pix < numPixels; pix++) {
    ring.setPixelColor(pix, 0xFFFFFF);
  }
  ring.show();
  if ((rtc.getMinutes() != 0) && (rtc.getMinutes() % 11 == 0) ) {
    for (int pix = 0; pix < numPixels; pix++) {
      ring.setBrightness(0);
      Serial.println("turn off");
    }
  }
  else {
    for (int i=15; i<255; i++){
      ring.setBrightness(i);
      ring.show();
      delay(4);
    }
     for (int i=255; i>15; i--){
      ring.setBrightness(i);
      ring.show();
      delay(4);
    }
  }
  // print time
  print2digits(rtc.getMinutes());
  Serial.print(":");
  print2digits(rtc.getSeconds());
  Serial.println();
  delay(1000);
}
void print2digits(int number) {
  if (number < 10) {
    Serial.print("0"); // print a 0 before if the number is < than 10
  }
  Serial.print(number);
}
IMG_0155.JPG
IMG_0151.jpg
IMG_0161.JPG