Introduction: Sui - Stress Reliever 水
We wanted to tackle stress in people's everyday lives. Working with how to make people slow down, and how to create time for your personal space. Looking at our alternatives, we chose to focus on music and sound, as these have been known to help people get into a certain moods. However, we didn’t just want to play some slow music and hope for people to calm down. Instead, wanted to create more of a multi-modal experience.
Touch seemed like an interesting choice to explore, as this is an essential part of our calming more intimate lives.
So, taking inspiration from the five elements of japanese culture. We chose the name Sui, which means water. Often represented by a circle, or in our case a ball. Now on Sui rests Chi, which means earth. Unlike Sui, Chi is stable and unmoving. This might just sound like gibberish, but what we wanted to have, was to have this idea of a duality. The moving and the unmoving. Our moldable ball, and our more stable box.
The idea is to to squeeze the ball, and with this haptic interaction you will be able to control the sounds of the box. Pushing it will make the waves roll in, and then releasing the grip making the waves roll out again. What we hope to achieve here is a more direct interaction with these calming sounds, as well as more parts of your senses slowing down to accommodate this different pace. Creating a more powerful impact. Currently we’re planning to have three different sounds. Waves, rain and the blowing wind.
Step 1: In the Wild
Step 2: Materials
1x Arduino Uno
Wires
- 4x 1m Red Wires
- 1x 0.1m Red Wire
- 4x 1m Blue Wire
- 1x 0.1m Black Wire
General
- 1x Stripboard
- 4x Force Sensitive Resistor
- 1x Computer with Arduino software
- 1x Speaker
- 1x Wood
- 1x Elastic fabric
Step 3: Arduino Setup
Electronics
The technical setup of “the stress ball” consists of multiple parts connected together. The heart of the product is the Arduino that tracks and registers the movements of the user by using four Force Sensitive Resistors. These resistors are connected to the Arduino using standard electrical wires from the 5V jack of the Arduino (Red Wire) to a stripboard where the the four sensors are connected in parallel. On each of the parallel instance, a 10K Ohm resistor is connected in serial with the Force Sensitive Resistor and a measuring point that is connected to the analog inputs of the Arduino (yellow wires). Finally each of the parallel instance is then connected to the ground of the Arduino (black wire). All the wires are soldered to the stripboard and to the sensors in order for the connections to be able to withstand the movements of the user.
The Force Sensitive Resistors change its resistance according to the pressure of the user onto the sensory surface. These changes are then monitored by the Arduino using its analog input ports. When the resistance of one of the ports hits the threshold of 400 Ohms, a signal is then sent to a computer (Mac or Rasberry Pie) using the serial port reading from the USB-connection between the Arduino and the computer. To describe the fullstack, The Arduino simply prints out the value of the resistance and the command play using the module Serial.println(). This is then picked up by a simple python script that consists of a while-loop iterating over the serial messages from the Arduino to the computer. The relaxing sound is then being played using the python library playsound that plays a pre recorded mp3 file. This can easily be evolved into using the Java based Proccessing or Pure Data that can use inputs to create sounds using their synth-libraries.
Code
Bellow is the running code of Sui
Arduino Code
We save our input from A0, A1, A2 and A3.
int fsrPin0 = 0; // the FSR and 10K pulldown are connected to a0 int fsrPin1 = 1; int fsrPin2 = 2; int fsrPin3 = 3; int fsrReading0; // the analog reading from the FSR resistor divider int fsrReading1; int fsrReading2; int fsrReading3; void setup(void) { // We'll send debugging information via the Serial monitor Serial.begin(9600); } void loop(void) { fsrReading0 = analogRead(fsrPin0); fsrReading1 = analogRead(fsrPin1); fsrReading2 = analogRead(fsrPin2); fsrReading3 = analogRead(fsrPin3); // We'll have a few threshholds, qualitatively determined<br>if (fsrReading0 > 300) { Serial.println("A0: " + String(fsrReading0)); } <br>if (fsrReading1 > 300) { Serial.println("A1: " + String(fsrReading1)); } <br>if (fsrReading2 > 300) { Serial.println("A2: " + String(fsrReading2)); } <br>if (fsrReading3 > 300) { Serial.println("A3: " + String(fsrReading3)); } <br>delay(100); }
Python Code
Picking up the output from the Arduino
#!/usr/bin/python3<br>import serial<br>import time<br>from playsound import playsound<br>class SqueezeBall(object):<br> #Constructor<br> def __init__(self):<br> print("building")<br> #Method for playing sounds<br> def play(self):<br> playsound('ocean.mp3')<br> #Main method<br> def main(self):<br> ser = serial.Serial('/dev/tty.usbmodem14101', 9600)<br> # read from Arduino<br> input = ser.read()<br> print ("Read input " + input.decode("utf-8") + " from Arduino")<br> # write something back<br> while 1:<br> # read response back from Arduino<br> for i in range (0,3): input = ser.read() getVal = str(ser.readline()) #print(getVal) if ("play" in getVal): self.play()<br> print("play") time.sleep(1)<br>if __name__ == "__main__": ball = SqueezeBall() ball.main()
Step 4: Sewing the Ball
The ball itself is made up of a silicone filled ball which we bought at Teknikmagasinet.
The outer fabric is bought at Ohlssons tyger in Stockholm. The fabric is stretchable in all directions since we want the interaction to be as smooth as possible. The innerball should be able to move in any direction without being stopped by the stretch of the fabric.
When sewing the outer fabric for the ball the circuit was first measured. We then sketched out a template for the fabric, making 5 to 6 of these that then together would present the hole ball. The fabric was cut out with the template and then sew together with the help of a sewing machine. It is very important to have the right setting at the machine since the fabric is very stretchable. To create a simple opening for the cords and sensors into the ball we used velcro.
Step 5: Making the Box
The arduino and cables are hidden away in a wooden box. For this a finger jointed laser cut box is used. This box consists of 6 pieces of wood that are cut out using a laser cutter using a similar pattern to the one below.
Put these pieces together and place the arduino inside. Drill holes in the box for the wires from the arduino. Make three additional holes at the top of the box for the switches. Make sure they fit nicely.