Investigation 1 - Flow State
Made by Ann Li
Made by Ann Li
Quality work can’t be rushed- Flow State is an invitation to slow down, trust the process, and reconsider what you ask of others.
Created: February 17th, 2023
This concept was initially inspired by the sense of disruption that occurs when you’re interrupted in the middle of your work. The deviation from a focused state can feel horribly timed, especially when flow is achieved.
Flow State asks you to reconsider what you ask of others. Extension sockets are overlooked middle-men, vessels for other plugs to exploit. This one is a meticulous workaholic who wants to do things right. It deserves the proper conditions to focus, refusing to charge devices when interrupted. It also advocates for your phone’s health, which prefers short burst, incomplete charges. The more pressure you exert–hovering and micromanaging– the more Flow State intervenes to combat this impatience.
Quality outcomes can’t be rushed- Flow State is an invitation to slow down and watch a master at work.
Flow State is inspired by themes of disruption, rebellion, and "seamfullness" rather than "seamlessness". It was important for me to propose a concept with explainable and justifiable reasons for its counter functionality, to expand upon our behaviors and draw attention to existing tendencies for reconsideration. What underlying assumptions undergird our relationships with objects? What do we take for granted?
Drawing inspiration from Addicted Products, I was particularly influenced by the idea of agency and advocacy from an object's perspective- what might it need, want, hope for? Just as the toaster in Addicted Products subverts the current model of ownership, possession, and subservience, I was intrigued by what provocations might result from from an object that was not arbitrarily rebellious, but had principles and values of its own. Flow State was heavily influenced by Thing Centered Design- in which the current vulnerability of devices and objects, and the indiscriminate way with which we expect them to "serve us", acts as a proxy for others, a point of reference to empathize with others.
This prototype is comprised of a relay-modified socket, powering a phone charger that has been purposefully shortened to limit the range of access. To ensure that one cannot reach for the phone without triggering the proximity sensor, I built a rough enclosure with openings at the top for the phone charger (to serve as a dock of sorts) and proximity sensor, which was attached to a breadboard and taped to the top interior of the enclosure; and bottom sides, to give room for the socket and Arduino cables to run out.
Working within the constraints of using a socket, proximity sensor as input, and relay as output, I found that the greatest challenge resided in communicating changes in state in an observable, predictable way. It was important for me to create an interaction that allowed participants to fully understand the relationship between their actions and the object's behavior.
Flow State is heavily situated and contextual, necessarily connected to the phone charger. But rather than acting as the subordinate peripheral, Flow State places the extension socket at the center of the interaction, giving it the power as an intermediary to withhold or provide electricity. After successfully writing and testing code to detect varying proximity ranges, and integrating differing relay output within those ranges, I connected the relay to the socket. Based on an approximated configuration made with foam core, I tested out ideal relative placements and sketched out rough dimensions for the enclosure. Once that was laser cut and assembled, I adjusted the proximity thresholds one last time, resolving the rhythm and timing of the relay to accommodate the speed and reactivity of the iPhone display. Originally, the on/off cycle was much shorter, but upon realizing that it would not be reflected through feedback provided through the phone itself, I decided to extend the delay within each cycle.
#include <Arduino_APDS9960.h>
// int ledState = LOW;
int val = 0; // variable to store the read value
int relayPin = D2;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
while (!Serial)
;
//initialize APDS9960 library
if (!APDS.begin()) {
Serial.println("Error initializing APDS9960 sensor!");
}
//set LEDs to behave as OUTPUT, turn all off
pinMode(LEDR, OUTPUT);
pinMode(LEDG, OUTPUT);
pinMode(LEDB, OUTPUT);
digitalWrite(LEDR, HIGH);
digitalWrite(LEDG, HIGH);
digitalWrite(LEDB, HIGH);
}
void loop() {
// put your main code here, to run repeatedly:
// read the proximity if available
if (APDS.proximityAvailable()) {
//set int proximity to value detected
int proximity = APDS.readProximity();
//print value to serial monitor
Serial.println(APDS.readProximity());
//object far?
if (proximity > 244) {
analogWrite(LEDR, 255); //255 = off
analogWrite(LEDB, 255);
analogWrite(LEDG, proximity);
Serial.println("false"); // Switch Relay Off (NC)
digitalWrite(relayPin, LOW);
}
//object medium?
else if (proximity > 240 && proximity <= 244) {
analogWrite(LEDR, 255);
analogWrite(LEDB, proximity);
analogWrite(LEDG, proximity);
Serial.println("false"); // Switch Relay Off (NC)
digitalWrite(relayPin, LOW);
delay(1000);
Serial.println("true"); // Switch Relay On (NO)
digitalWrite(relayPin, HIGH);
delay(1000);
}
//object close?
else if (proximity > 225 && proximity <= 240) {
analogWrite(LEDR, proximity);
analogWrite(LEDB, 255);
analogWrite(LEDG, proximity);
Serial.println("false"); // Switch Relay Off (NC)
digitalWrite(relayPin, LOW);
delay(500);
Serial.println("true"); // Switch Relay On (NO)
digitalWrite(relayPin, HIGH);
delay(750);
}
//object warning close?
else if (proximity > 150 && proximity <= 225) {
analogWrite(LEDR, 100);
analogWrite(LEDB, 255);
analogWrite(LEDG, proximity);
Serial.println("false"); // Switch Relay Off (NC)
digitalWrite(relayPin, LOW);
delay(75);
Serial.println("true"); // Switch Relay On (NO)
digitalWrite(relayPin, HIGH);
delay(100);
}
//object danger close?
else if (proximity > 50 && proximity <= 150) {
analogWrite(LEDR, 25);
analogWrite(LEDB, 255);
analogWrite(LEDG, proximity);
Serial.println("false"); // Switch Relay Off (NC)
digitalWrite(relayPin, LOW);
delay(50);
Serial.println("true"); // Switch Relay On (NO)
digitalWrite(relayPin, HIGH);
delay(50);
}
//object too close
else {
analogWrite(LEDR, 0);
analogWrite(LEDB, 255);
analogWrite(LEDG, 255);
Serial.println("true"); // Switch Relay On (NO), no current open loop
digitalWrite(relayPin, HIGH);
}
}
}
Click to Expand
Using proximity as a measure of “disruption”, Flow State ceases to charge your electronics when interrupted and encroached upon– need to charge up your phone for later, resign yourself to not using it for however long it takes to replenish. Supplementary tangents might also arise depending on what the socket is providing power to, raising considerations around the indiscriminate use of electricity we are often accustomed to. This makes connections to the Ethical Things approach, in which technology imbued with agency exposes ethical concerns– is it right, or necessary, to view electricity as limitless? To take for granted the amount and duration of energy supplied?
For the most part, Flow State was experienced and interpreted in alignment with my intentions, eliciting the expected emotional response and resulting behaviors. Those who interacted with it withdrew after encountering increasing protest and erraticism. Upon discovering that the relay made an audible noise when switching between NO and NC, I intended to use the clicking of the relay as an additional unexpected signifier– to not only convey a change in functional status, but to communicate and elicit an emotional response. The increasingly rapid, insistent clicks successfully acedt as a deterrent against approaching Flow State at work–many participants noted that it instilled a deep sense of anxiety, and was intuitively understood, much like a rattlesnake warns away those who might get too close. My intention was not originally to dissuade phone use as a whole, but many who first encountered it saw it as a "phone prison" of sorts, an unplanned reaction that perhaps speaks to a broader relevant cultural commentary around tech addiction and dependency.
Addicted Products, Simone Rebaudengo
Responsive Mobile Environments, Spring 2023
Quality work can’t be rushed- Flow State is an invitation to slow down, trust the process, and reconsider what you ask of others.