Light Me Up Jacket!
It is a fact that physical contact between humans through senses generates a magical and wonderful stimulus. As humans, we are in need of physical contact. However, we are slowly loosing this affection through technology. Phones, computers and other devices are taking up the physical contact space in our society; people is starting to emotionally connect through displays instead of our bodies. This is a current issue that needs to be addressed.
To do so, we created a lightening jacket that lights up when people touch or hug the person that wears it. This project pretends to encourage people to remember that humans need physical contact. This jacket gathers a deep message about human relationships: sometimes is not about words, it is about actions. Who doesn't love a hug from a friend or a family member?
To build this jacket we used Arduino Technology; which is highly useful to represent fast prototypes, such as this jacket. With this project we intend to encourage you people to remember that phones aren't what makes you happy in life, people around you will. Hug and tell them you love them!
This project is created by Anna Camps and Joana Fort, two engineering on industrial design students at ELISAVA in Barcelona.
Materials and Supplies
First of all, we'll list the materials and supplies needed to build this jacket.
- Jacket
- Arduino LilyPad Board
- Arduino Uno Board
- Conductive Thread
- Needle
- 2 Touch Sensors
- 5 LilyPad LEDs
- 7 1k Resistors
- Tape
- Jumpers
- Laptop with Arduino Software
Generating the Arduino Code
Before building any prototype the first step is generating an Arduino Code for the application. To ease the process, we facilitate the code below:
* Beforehand, this code has been tested with an Arduino Uno Board, normal LEDs and touch sensors on a plain protoboard (not the Arduino LilyPad Board).
<em>//Arduino to I/O for RAPID, ABB control<br>int pressPin = 2; //pressure sensor to Arduino A0 int pressPin2 = 4; //pressure sensor to Arduino A4</em>
<em>int intReading = 0;</em>
<em>int reading = 0; //variable for storing current pressure //reading boolean startUp; //sets up a calibration ‘switch’</em>
<em>int di13Pin = 13; //sends signal to robot controller int di12Pin = 12; int di11Pin = 11; int di9Pin = 9; int di8Pin = 8;</em>
<em>void setup() { //reading = analogRead(pressPin); //Reading equals the value, //returned by the sensor. startUp = true; //Initialize the calibration switch to ‘on’ pinMode(di13Pin, OUTPUT); //Pin 13 is set to SEND a signal. pinMode(di12Pin, OUTPUT); pinMode(di11Pin, OUTPUT); pinMode(di9Pin, OUTPUT); pinMode(di8Pin, OUTPUT);</em>
<em> pinMode(pressPin, INPUT); pinMode(pressPin2, INPUT);</em>
<em> Serial.begin(9600); }</em>
<em>//aquí determinem quins pins s'engeguen amb el sensor 1 (connectat a A0) i quins al 2 (connectat a A4) void loop() { calibrate(); //calls the function defined below</em>
<em> //sensor1 reading = analogRead(pressPin2); //Reading equals the value</em>
<em> Serial.println(reading);</em>
<em> if (reading > 940) //If reading is less than 90%, { //of the initial sensor value Serial.println("hola"); digitalWrite(di12Pin, HIGH); //send a signal to the controller. digitalWrite(di9Pin, HIGH); digitalWrite(di8Pin, HIGH); } else //Otherwise, { digitalWrite(di12Pin, LOW); //send no signal. digitalWrite(di9Pin, LOW); digitalWrite(di8Pin, LOW); } delay(100); //sensor2 reading = analogRead (pressPin2);</em>
<em> if (reading > 940) { digitalWrite(di11Pin, HIGH); digitalWrite(di13Pin, HIGH); } else { digitalWrite(di11Pin, LOW); digitalWrite(di13Pin, LOW); } }</em>
<em>void calibrate() //The first thing to do in the loop, { if (startUp == true) //if the calibration switch is on (which it is), { intReading = reading; //set initReading equal to the sensor //value. startUp = false; //And shut of the calibration switch. } }</em>
Once the Arduino Code is correctly generated and fully functioning, we let the code aside until the prototype is built.
Placing Arduino LilyPad Board
We placed and sewn the ArduinoLilyBoard on the inside of the jacket to avoid visual seeking from the outside. We placed it on the middle of the jacket.
Placing 5 Arduino LEDs
Next, we placed and sewn the LEDs on the outer part, so that the light can be visible. We decided to place 5 LEDs with the following pattern:
- The first line (3 LEDs) lights up when your right arm is being touched.
- The second line (2 LEDs) lights up when your left arm is being touched.
Each LED has two outputs, the positive and the negative. The connections with the LilyPad Board are the following:
- The positive output is attached to a 1k resistor, then followed with conductive thread to be connected to each LED's PIN. Check the Arduino code to know each LED's PIN (grey slim connections).
- The negative output is connected through conductive thread to the board's ground (yellow connections).
Take into account that PIN connections between LEDs MUST NOT be touching one another, this could cause a short-circuite or an error when uploading the code to the board. Note that ground connections can indeed be touching one another, this should not cause any issue; you can use tape to prevent this.
Placing Both Touch Sensors
Once the LEDs connections are made, the Pressure Sensors are next. Each Pressure Sensor has two outputs as well. The connections are the following:- The first output is connected straight to the power, the positive sign on the LilyPad Board (orange connections).
- The second output is connected to a 1k resistor. This resistor has two legs, the first one is connected to the analog output on the LilyPad Board (blue connections). The second leg of the resistor is connected straight to the ground (cyan connections).
Note that connections on each output of the touch sensor MUST NOT touch each other. You can use tape to prevent them from short-circuiting.
Connect the LilyPad Board to the Arduino UNO Board
Once the prototype is ready and the connections are fully done it's time to upload the code to the LilyPad Board. The LilyPad Board that we used did not have an USB output, therefore, we had to use an Arduino UNO Board to transport the code from the laptop to the LilyPad.
Please take note that you need to remove the Arduino UNO Chip, since we want the information to travel to the LilyPad board instead of staying at the Arduino UNO.
First of all, grab 6 jumpers and join the following connections:
- The first connection (brown) is connected to the ground.
- The second connection (brown) is also connected to the ground, beside the first one.
- Following them, the third connection (red) is connected to the 5 V.
- Next and fourth, connect it to the RXD 0 (purple).
- Following this, the fifth connection is beside it. Connected to the TXD 1 (white).
- Last, connect the sixth connection to the RESET connection on the Arduino UNO Board (green).
This connection is in charge of transporting the information of the Arduino UNO Board (received by the laptop) to the LilyPad Board.
Check the Connections
Before uploading the code to the board, please check the connectinons. We ease the circuit diagram below.
Upload the Code
Once the LilyPad and the Arduino UNO boards are connected, it's time to upload the code. Use an USB cable from the Arduino Board to the laptop and open the code that was created on Step 2.
Make sure that the Port on the Arduino App is correctly chosen and the Board is set as Arduino/Genuino UNO. Find these options at the Tools window on the Arduino App.
Verify the code once again and then upload it. This should be the final step. If there is any problem uploading check the code and the connections on the prototype.
(foto del lilypad, larduino i lordinador)
Ready to Wear!
After uploading the code, we checked if the jacket needed any sewing. After this, the jacket was ready to use!
The Power of Touch!
Touch is the first sense we acquire and the secret weapon in many a successful relationship. Let's not loose it.
If touch is a language, it seems we instinctively know how to use it. But apparently it's a skill we take for granted, since we are swapping it for display or phone relationships.
This project helped the team realise how important this sense is and how it is slowly fading. Creating such jacket has helped not only as a personal lesson but as a student lesson. We learned how to use LilyPad components, since we had never used them before. It has also helped to improve code generating skills as engineers, as well as, to learn new electronics knowledge.
We thank our teacher team for helping through this rough but successful path.
We hope you liked this wearable workshop!!
Anna Camps and Joana Fort