12. Skin Electronics¶
Research¶
During Skin Electronics Week, I was inspired by research on wearable tech, especially the part about integrating electronics into fashion. Katia Vega presented a lot of innovative skin electronics research, and her talk sparked my creativity, leading me to explore various references and start sketching out my prototype of skin electronics.
References & Inspiration¶
I've always been a fan of Björk's fashion and album covers. I decided to channel her unique style for my project. The Medulla album cover, with its hair-based mask, was my starting point. I loved the idea of using hair to create a wearable piece of tech.
I started by building a wire frame and then experimented with different materials. I wanted to create something using fiber and lights, so I incorporated fiber optics. I was drawn to the outfit Björk wore in the Vulnicura designed by Maiko Takeda and started a composition using the materials available in the lab. Then Petra shared some inspirational makeup tutorials and I incorporated a transversal fiber optic with an RGB LED to create a fiber optic makeup.
Tools¶
- Arduino UNO
- Adafruit Flora
Process and workflow¶
Step #1: Conceptual Sketch¶
Sketch,Germarilis Ruiz
Step #2: Sensors¶
Following the creation of our initial sketches, we attended an incredible electronics workshop taught by Citlali Hernandez. We gained hands-on experience building a Potentiometer Sensor and a Capacitive Sensor and learned how to program them using Arduino Uno to interface with our Adafruit.
Capacitive Sensors¶
Capacitive Sensor,Germarilis Ruiz
Materials
- Soldering tools
- Copper tape
- Medical tape
- Kapton tape
- Adafruit flora
- 1M Resistor
- Alligator Clip (x2)
- Aditional cable (optional)
Capacitive Sensors Arduino Code
// Including Capacitive Sensor Library
#include <CapacitiveSensor.h>
// capacitive sensing constant
CapacitiveSensor sensor = CapacitiveSensor(10, 9); // 1M resistor between pins 10 & 9, pin 9 is sensor pin
// Including Adafruit Neopixel Library
#include <Adafruit_NeoPixel.h>
// Which pin on the FLORA is connected to the NeoPixels?
#define PIN 8 // On Trinket or Gemma, suggest changing this to 1
// How many NeoPixels are attached to the FLORA?
#define NUMPIXELS 1 // Popular NeoPixel ring size
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
#define DELAYVAL 500 // Time (in milliseconds) to pause between pixels
void setup() {
Serial.begin(115200);
pixels.begin(); // INITIALIZE NeoPixel object (REQUIRED)
}
void loop()
long measurement = sensor.capacitiveSensor(30);
Serial.println(measurement); // Check the Serial Monitor to see how the values changes when touching or not touching
delay(10);
if (measurement > 1000) { // This threshold will depend on your measured values pixels.clear(); // Set my pixel colors to 'off'
// pixels.Color() takes RGB values, from 0,0,0 up to 255,255,255
// Here we're using a moderately bright green color:
pixels.setPixelColor(0, pixels.Color(0, 150, 0));
pixels.show(); // Send the updated pixel colors to the hardware.
//delay(DELAYVAL); // Pause before next pass through loop} else{
pixels.clear(); // Set my pixel colors to 'off'
pixels.setPixelColor(0, pixels.Color(0, 0, 0)); // r,g,b in 0 means black - off
pixels.show(); // Send the updated pixel colors to the hardware.
}
Potentiometer Sensor¶
Capacitive Sensor,Germarilis Ruiz
Materials
- Kapton tape
- Adafruit flora
- Eontex
- Alligator Clip (x3)
Potentiometer Adafruit Code¶
```
int sensorValue = 0;
int value = 0;
int redPin = 12;
int greenPin = 10;
int bluePin = 6;
int redVal = 255;
int greenVal = 255;
int blueVal = 255;
// the setup routine runs once when you press reset:
void setup()
{
// initialize serial communication at 9600 bits per second:
pinMode(9, INPUT);
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
Serial.begin(9600);
}
// the loop routine runs over and over again forever:
void loop() {
// read the input on analog pin 0:
int sensorValue = analogRead(9);
// print out the value you read:
sensorValue = constrain(sensorValue, 0, 850);
// Go from white to Cyan
if (sensorValue >= 0 && sensorValue <= 300);
{
int CyanColor = map (sensorValue, 0,300,0,255);
redVal = 255 - CyanColor;
greenVal = 255;
blueVal = 255;
// CyanColor rgb ( 0, 255, 255) 0 to 300
}
// Go from Cyan to Green
if(sensorValue > 300 && sensorValue <= 450){
int GreenColor = map(sensorValue, 300,450,0,255);
redVal = 0;
greenVal = 255;
blueVal = 255 - GreenColor;
// GreenColor rgb(0,255,0) 300 - 450
}
// Go from Green to Yellow
if(sensorValue > 450 && sensorValue <= 600){
int YellowR = map(sensorValue, 450,600,0,255);
redVal = YellowR;
greenVal = 255;
blueVal = 0;
// yellow rgb(255,255,0) 450 to 600
}
// Go from Yellow to Magenta
if(sensorValue > 600 && sensorValue <= 750)
{
int MagentaR = map(sensorValue, 600,750,0,255);
redVal = 255;
greenVal = 255 - MagentaR;
blueVal = MagentaR;
// Magneta rgb(255,0,255) 600 to 750
}
// Go from Magenta to Red
if(sensorValue > 750 && sensorValue <= 850){
int RedR = map(sensorValue, 750,850,0,255);
redVal = 255;
greenVal = 0;
blueVal = 255 - RedR;
// Red rgb(255,0,0) 750 to 850
}
analogWrite(redPin, redVal);
analogWrite(greenPin, greenVal);analogWrite(bluePin, blueVal);
Serial.print("sensorValue = ");Serial.print(sensorValue);Serial.print(" | ");
Serial.print("RedVal = ");Serial.print(redVal);Serial.print(" | ");
Serial.print("GreenVal = ");Serial.print(greenVal);Serial.print(" | ");
Serial.print("BlueVal = ");Serial.println(blueVal);
delay(10); // delay in between reads for stability
}
Test - Potentiometer¶
Step #4: Prototiyng¶
Materials
- RGB LED (x1)
- Adafruit flora
- Breadboard
- Alligator Clip (x8)
- Optic fiber
- Resistor 100 (x3)
- PVC pipe
Prototype, Germarilis Ruiz
Once I had a better grasp of sensors, Ana and I brainstormed together. She shared her experience with fiber optics and sensors in past projects, giving me valuable insights. We sketched out a circuit based on her previous skin electronics project and then prototyped the Arduino code on a breadboard. We programmed the LED to cycle through colors using a potentiometer.
Breadboard test¶
Test ,Germarilis Ruiz & Ana Correa
Hoodie Prototype
Prototype V01,GRG
LED joints
Results¶
Optic fiber + RGB LED
Video¶
Design Concept & Conclusion¶
The concept behind this piece is that you can use the fiber optic strands that emerge from the back of the hoodie, reaching the front in different sizes, as part of your makeup. One of the interesting aspects of the design process was that when using a white mesh and fiber optics, the color is reflected in a line from the neck to the face. Additionally, when using RGB LEDs, we can create different tones and color changes according to the programming. In my prototype, I created a color change sequence of red, blue, and green.
I also added two lateral elements that simulate light shoulder pads, which in turn connect to each other and change color with the movement of the potentiometer from left to right. The idea was to place the potentiometer near the collarbone so it would be easier to change the tones. In the prototype I made, the potentiometer ended up closer to the chest, which I thought was fine because I could connect the fiber optic strands and the battery with a longer cable that allowed it to be stored in a pocket.
On the other hand, using a rigid mesh posed the problem of not fitting aesthetically to the shape of the neck, so I created adjustable straps in two parts of the piece. This allows control over the movement and location of the fiber optic strands that are part of the makeup. The other adjustable strap allows control over the movement and location of the electronic components that make up the shoulder pads.
In the future, I would love to laser cut a pattern to cover the entire surface of the mesh and create other textures that reflect the light of the fiber optics. Something similar to the reference I showed at the beginning of the page.
Tutorials¶
Mentors¶
- Petra Garajova
- Ana Correa