Jeremy Fu

Urgency Emotional Box

Working in a team of two, I worked to design an interactive box to illicit the emotion of Urgency. This is not about what’s in the box, but about the properties of the box and the experience of opening it.

In designing this interaction we considered the full range of possible engineering elements (mechanisms, material properties, sensors, and affectors) and the range of human senses, routines, and social/cultural influences.

My Role
  • Electronics Design
    • Hall Effect Sensor
    • Servo
    • Peristaltic Pump
    • Arduino
  • Laser Cutting
  • 3D Printing

Emotional Box with Compartments Closed
Emotional Box with Compartments Open
Brief

Urgent: You feel a need for immediate action to address a critical situation

  • How the user feels about the box
  • How the user feels about the contents and the sender
  • How the user feels about the process of opening the box
  • How the user feels about themselves when they experience this interaction.
Sense of Urgency

Factors that influence urgency

  • Time
  • Stakes
  • Unfavorable circumstances
  • Need for action

Disarming a bomb, a classic example of a situation that invokes urgency.

Brainstorm

We brainstormed multiple concepts based off of these factors, taking inspiration from situations like a pot boiling over and earthquakes.

In the end, we took inspiration from escape rooms, where a user has to complete a number of tasks within a given time

Concept

An item of value to the user lies underneath a glass of water which will overflow unless the user completes 3 tasks. To start the process of opening the box, the user has to press a button on the exterior, starting the pump which begins filling the glass.

The challenges:

  1. Decoding Challenge
  2. Wire Matching
  3. Shape Matching
Pump Subsystem
  • Glanceable clock
  • Water is intuitive
  • Fills at steady rate
    • Urgency increases as it is filled
    • User can calculate %filled
    • Item of value in the container
  • 12v, 100ml/min Peristaltic Pump
  • Pump is reversible using motor driver to reset system
  • Tilted at 30 degrees to overflow into container below
  • Item of value to the user will be placed in the container (a cookie)
  • 100 ml Graduated Flask with tapped & threaded hose barb insert
  • Joined with platform using a laser cut 6-sided insert
Wire Matching

“Complete the circuit”

  • 5 different wires with laser cut slots into breadboard below
  • Completed circuit causes servo to go from 0 to 180, releasing unlocking shape matching compartment
Shape Matching
  • 3D printed shapes with magnets on bottom
  • Hall effect sensor inside cutouts to detect presence of magnet
  • When all shapes are detected, water stops
Putting it all together
  • Electronics housed under floors
Reflection

By developing the solution over four design sprints, we were able to adapt to changes and user feedback quickly.

Code

#include
#include

/// Initiate
const int PWM = 2; //Pump
const int DIR = 3; //Direction of pump

const int BUT = 6; // Exterior Button
int BUT2 = 5; // Reset Button

int HALL1 = 8;
int HALL2 = 9;
int HALL3 = 10;
int HALL4 = 11;
int state1 = 0;
int state2 = 0;
int state3 = 0;
int state4 = 0;

Servo Myservo;
int pos=0;

ezButton button(BUT); // Set-up button to be toggled on/off

// variables will change:
int PWMState = LOW; // Current state of Pump

void setup() {
button.setDebounceTime(50); // Set debounce time to 50 milliseconds
pinMode(HALL1, INPUT); //Hall effect
pinMode(HALL2, INPUT);
pinMode(HALL3, INPUT);
pinMode(HALL4, INPUT);
Myservo.attach(4); // Servo
Myservo.write(0);
}

void loop() {
state1 = digitalRead(HALL1); // Setup hall effect sensors
state2 = digitalRead(HALL2);
state3 = digitalRead(HALL3);
state4 = digitalRead(HALL4);
button.loop(); // MUST call the loop() function first

if(button.isPressed()) { // Start system with exterior toggle button
Myservo.write(180);

// Toggle state of Pump
PWMState = !PWMState;

// Control Pump according to the toggled sate
digitalWrite(PWM, PWMState);
digitalWrite(DIR, HIGH);
}
if (digitalRead(BUT2)==LOW) { // Reset system, reverse pump, lock servo
Serial.println(“DOWN”);
digitalWrite(PWM, HIGH);
digitalWrite(DIR, LOW);
Myservo.write(0);
}
if ((state1 == LOW) && (state2 == LOW) && (state3 == LOW) && (state4 == LOW)){ //All hall effects read LOW
Serial.println(“SHAPES IN”);
digitalWrite(PWM, LOW); //Stops pump
digitalWrite(DIR, LOW);
}
}

View All Projects
Privacy Settings
We use cookies to enhance your experience while using our website. If you are using our Services via a browser you can restrict, block or remove cookies through your web browser settings. We also use content and scripts from third parties that may use tracking technologies. You can selectively provide your consent below to allow such third party embeds. For complete information about the cookies we use, data we collect and how we process them, please check our Privacy Policy
Youtube
Consent to display content from Youtube
Vimeo
Consent to display content from Vimeo
Google Maps
Consent to display content from Google