12. Skin Electronics¶
Research & Inspiration¶
This week I was inspired by DuoSkin's process of creating custom body decoration that can be work directly on the skin. In researching how to replicate a version of the skin electronic pictured above, I came across the following articles which informed this project and offer opportunities for further exploration.
-
DuoSkin: Rapidly Prototyping On-Skin User Interfaces Using Skin-Friendly Materials
-
SkinLace: Freestanding Lace by Machine Embroidery for On-Skin Interface
-
SkinWire: Fabricating a Self-Contained On-Skin PCB for the Hand
References¶
Kate Hartman's Wearable Electronics continues to be an invaluable resource for me as I try to teach myself how to program microcontrollers and connect components.
This week, I referenced the circuit diagram and code from the Actuators chapter when creating the design for my NeoPixel skin electrontronic
Tools¶
- Circuit Playground Express
- Arduino IDE
- Conductive Thread
- Foil
- Biosilicon - See Week 7 for recipe
- Flora RGB Smart NeoPixel
Process¶
I began my investigation by studying the connections required for connecting and programming the NeoPixels and thinking about ways that the wearable could be secured to the skin. Both the microcontroller and battery pack are quite bulky, making them hard to attach and hide. Below are images of the two schemes I developed for applying the skin electronic to the chest. I used Arduino IDE to program the code into the microcontroller and tested it using alligator clips.
After successfully programming the microcontroller, my focus turned to figuring out how to attach them on to the body in the most invisible way possible. I used a thin layer of biosilicon that I created in Week 7 as a substrate and attached the NeoPixels and used double sided tape to determine their position on the body.
My initial goal was to try to make the connections to the neopixels as invisible as possible. I initally tried building the wearable off the body using thin conductive thread. This lights would only light correctly when the everything was perfectly placed, which made it impossible for placing it onto the body by myself. The video below shows how the connections initially performed. I tried insulating the tread with nailpolish, but that did not seem to help and called even more attention to the threads.
I then pivoted to mapping out connections in 3D on a dress with assistant Genevieve Hildebrand-Chupp, which proved more effective. I also reviewed the previous project recommendations and noticed that most people were using the adhesive tape connecting the microcontroller to the programmed elements. I used a bra to secure the microcontroller and battery pack and then draped adhesive conductive tape to form the "chain" of my necklace. I then used alligator clips to text the effectiveness of the tape. Below is the test video for the 3D sketch.
After the test, we secured the conductive tape to the NeoPixels and retested:
We then developed a paper sample of the tattoo shape which would mask the connection points. Once we had the shape and openings fit over the NeoPixels:
We then used the Xtool M1 to cut the biosilicon tattoo with the blad tool. Once cut, we applied the foil and used double sided tape to secure it over the NeoPixels:
Results¶
Below are images of the skin electronic on the body as well as videos showing the light change. If I ever have time to revisit this project, I would like to try embedding the condutive tread into the biomaterial for a more invisible approach than the adhesive conductive tape.
Video¶
Code Example¶
Below is the code used to reprogram the Circuit Playground Express in Arduino IDE:
/*
Make: Wearable Electronics
Flora NeoPixel example with 3 pixels
*/
#include <Adafruit_NeoPixel.h>
// The digital pin used to control the
// pixel strip
int pinNumber = 6;
// Rhw numvwe od pizwla in rhw areip
int numberOfPixels = 3;
Adafruit_NeoPixel strip =
Adafruit_NeoPixel(numberOfPixels, pinNumber,
NEO_GRB + NEO_KHZ800);
void setup() {
// initialize pixel strip
strip.begin()
// set pixels to off to begin
strip.show();
}
void loop() {
//set pixel 0 to yellow
strip.setPixelColor (0, 255, 255, 0);
//set pixel 1 to pink
strip.setPixelColor (1, 255, 51, 153);
//set pixel 2 to yellow
strip.setPixelColor (2, 255, 255, 0);
strip.show();
delay(1000);
//set pixel 0 to pink
strip.setPixelColor (0, 255, 51, 153);
//set pixel 1 to yellow
strip.setPixelColor (1, 255, 255, 0);
//set pixel 2 to yellow
strip.setPixelColor (2, 255, 51, 153);
strip.show();
delay(1000);
// turn pixel 0 off
strip.setPixelColor (0, 0, 0, 0);
// turn pixel 1 off
strip.setPixelColor (1, 0, 0, 0);
// turn pixel 2 off
strip.setPixelColor (2, 0, 0, 0);
strip.show();
delay(1000);
}







