12. Skin Electronics#
What I Made#
A skin newt with blinking lights changing colors by touching the pressure sensor in the tongue. The bottom of the skin newt is from latex and can be glued to the skin. Paws are painted on the skin with make-up. The newt is made from fabric and fiberfill.
A woman wearing a skin newt on her bare shoulder will certainly meet people that want to touch it. They change the colors by doing so. Deeds are not without consequences. Perhaps the skin newt can be as much as an attractor as a protector.
First Draft#
A stand alone ‘skin newt’ on the shoulder as a crossover between a tattoo and a necklace. The body of the newt is from latex and includes the electronics. The paws are painted on the skin. Among many things, the building of WAAG used to be a witch weigh house. Witches were often accused of having a ‘familiar spirit’ in the shape of an animal. The Skyperoom at WAAG is tiled with ‘Delfts Blauw’ that depicts many animals. I found a really strange animal and guessed it must be a newt. So I chose a newt for this project.
The Skyperoom at WAAG.
Latex Newt Prototypes#
After I made an initial model with children’s clay, I made some models with latex. The first models I cut from a sheet of latex with sciccors. The later models I made with acrylic molds in which I poured the liquid latex. One mold I made of children’s clay in which I pressed a 3D texture and a ‘dorsal fin’ before pouring the latex in. The last mold worked fine but I had to scrub off the clay with soap and hot water. I used the latex prototypes to work with the electronics.
Fabric for the Final Newt#
I finally decided only to use the latex on the bottom part of the skin newt. Latex is easy to attach to the skin. For the cover I found fabric to be more elegant and soft for a woman to wear on her bare skin. The latex models had a bit too much of the halloween party look. For the top I used a piece of marbled blue fabric that I had left over from the natural dye classes (dyed in red cabbage without mordent, so in time the skin newt might turn pink in close contact with accidic body fluids). If I would have had more time, I would have liked to adorn the skin newt with more beads and embroidery. And I would have liked to put it on myself with full make-up (meaning: with the paws painted on the skin.)
Figuring Out the Electronics#
So how can you make an interesting skin electronics object that does something more than simply gleam or blink? And how can you make it as small and compact as possible? And also: without having too much connective electronics in the ‘open air’ (for example conductive threads on the outside) because it is worn so close to the skin? The examples you find on internet, say on the Adafruit website, are not so sophisticated. I did a lot of research to finally end up with the concept of the ‘neopixie dustbag’. This seemed a nice project to tweak into a feature skin gem (because it has a sensor input and a surprising output). The circuit was quite easy to make. It only needed an extra resistor of 1 mega-ohm. For the pressure sensor I used a ready-made piezo-sensor, although I would better have used a pressure sensor made from fabric. The piezo turns out to be a bit too stiff; a fabric pressure would have had more souplesse.
Figuring out the Programming#
The Adafruit Gemma works like a regular Arduino, except that it does not automatically upload sketches. Before uploading a sketch you need to manually press the reset-button on the Gemma. Only when the red light starts blinking you can upload the sketch (and you need to be quick at that). My classmate Jessica Stanley made great documentation on skin electronics. I used her instructions for setting up and using the Gemma.
Gemma Setup as explained by Jessica#
- If you’re using the latest version of Arduino (I’m using 1.8.7), the Adafruit boards come pre-installed, and you go to Tools > Board, you should be able to find Gemma in the list.
- Make sure to choose the right version of Gemma! There’s an ‘Arduino Gemma’, which is turquoise coloured, and an ‘Adafruit Gemma’, which is black. THESE ARE NOT THE SAME :)
- Select ‘USBtinyISP’ as the programmer
- The ‘Port’ section in the Tools menu will be greyed out, even when the Gemma is connected to your computer. This is ok! With other types of Arduino this would mean that there’s a problem, but with Gemma this is normal - it can’t do normal serial communication so doesn’t register as a serial port.
- To upload a sketch to the Gemma, you need to press the reset button before you hit ‘upload’ - while the red LED is flashing on and off, the Gemma is able to receive information from your computer.
Arduino Code for Skin Newt#
I only used the small part for the bottom of the piece. The top ‘skin’ had a bit too much of the party superstore look, it would not be seen as a serious ‘jewel’.
It took me awhile to put two pieces of ready-made code together (matching the input of the pressure sensor with the output of the neopixels). Initially I wanted to use a touch sensor but I failed to write or compile the right code. I find that it would help to have some better understanding of the Arduino syntax. I do understand the general flow and most of the seperate functions, but it still difficult for me to coherently link these together. I found a website with a ‘from A to B’ course on Arduino programming that I will study during the Christmas break. The code below is what I managed for the skin newt and it works.
//Teresa van Twuijver
//SKIN NEWT WITH PRESSURE SENSOR TONGUE FOR CHANGING COLORS
// Fabricademy 2018
//Code based on:
// - NeoPixie Dust Bag by John Edgar Park jpixl.net
// - Adafruit GEMMA earring code and Adafruit NeoPixel buttoncycler code
// - Arduino knock sensor example
#include <Adafruit_NeoPixel.h> //Include the NeoPixel library
#define NEO_PIN 1 // DIGITAL IO pin for NeoPixel OUTPUT from GEMMA
#define PIXEL_COUNT 4 // Number of NeoPixels connected to GEMMA
#define DELAY_MILLIS 10 // delay between blinks, smaller numbers are faster
#define DELAY_MULT 8 // Randomization multiplier on the delay speed of the effect
#define BRIGHT 100 // Brightness of the pixels, max is 255
// Parameter 1 = number of pixels in strip
// Parameter 2 = pin number on Arduino (most are valid)
// Parameter 3 = pixel type flags, add together as needed:
// NEO_RGB Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)
// NEO_GRB Pixels are wired for GRB bitstream, correct for neopixel stick (most NeoPixel products)
// NEO_KHZ400 400 KHz bitstream (e.g. FLORA pixels)
// NEO_KHZ800 800 KHz bitstream (e.g. High Density LED strip), correct for neopixel stick
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(PIXEL_COUNT, NEO_PIN, NEO_GRB + NEO_KHZ800);
//Piezo bits
#define knockSensor 1 // the piezo is connected to analog pin 1
const int threshold = 50; // threshold value to decide when the detected sound is a knock or not
int sensorReading = 0; // variable to store the value read from the sensor pin
int showColor = 0; //color mode for cycling
void setup() {
pixels.begin();
pixels.setBrightness(BRIGHT);
pixels.show(); //Set all pixels to "off"
//pinMode(knockSensor, INPUT);
}
void loop() {
int RColor = 100; //color (0-255) values to be set by cylcing touch switch, initially GOLD
int GColor = 0 ;
int BColor = 0 ;
if (showColor==0) {//Garden PINK
RColor = 242;
GColor = 90;
BColor = 255;
}
if (showColor==1) {//Pixie GOLD
RColor = 255;
GColor = 222;
BColor = 30;
}
if (showColor==2) {//Alchemy BLUE
RColor = 50;
GColor = 255;
BColor = 255;
}
if (showColor==3) {//Animal ORANGE
RColor = 255;
GColor = 100;
BColor = 0;
}
if (showColor==4) {//Tinker GREEN
RColor = 0;
GColor = 255;
BColor = 40;
}
//sparkling
int p = random(PIXEL_COUNT); //select a random pixel
pixels.setPixelColor(p,RColor,GColor,BColor); //color value comes from cycling state of momentary switch
pixels.show();
delay(DELAY_MILLIS * random(DELAY_MULT) ); //delay value randomized to up to DELAY_MULT times longer
pixels.setPixelColor(p, RColor/10, GColor/10, BColor/10); //set to a dimmed version of the state color
pixels.show();
pixels.setPixelColor(p+1, RColor/15, GColor/15, BColor/15); //set a neighbor pixel to an even dimmer value
pixels.show();
//piezo check
// read the sensor and store it in the variable sensorReading:
sensorReading = analogRead(knockSensor);
// if the sensor reading is greater than the threshold:
if (sensorReading >= threshold) {
showColor++;
if (showColor > 4)
showColor=0;
}
}
References and Inspiration#
Wise women have been considered witches throughout the ages. Nowadays wise women are not called witches but bitches.
A Sorry Ending#
I wanted to re-use the Adafruit Gemma microporcessor so I did not solder or glue the connections. Also I did not attach a battery because I did not have a battery connector to go with the Gemma. It all worked fine. But of course as soon as I had closed the skin newt by sowing the fabric on the latex it short-circuited. Ironically my witches’ skin newt was burnt at the stake. Luckely it did not fry the Gemma, but the neopixels are gone I’m afraid. Also I noticed that when you put the Gemma inside a small object with a pressure sensor attached, the reset-button might start blinking, meaning that the code will be erased and must be uploaded again. This might be very unhandy when you want to use the Gemma in a ‘covered’ environment with no opening for the USB-cable. I guess you might want to put in a rig or casing for the Gemma.
Note to Self#
I must admit that I was quite shocked by the skin electronics lecture. We live in an age of ubiquitous spyware, I think. Who needs Google glasses when you can code your hair extentions to send direct messages by satelite? But I suppose this finally reveals the secret of Donald Trump’s crazy coiffure: it must contain sophisticated state-of-the-art visual and audio nanotechnology with a direct communication link to Vladimir Putin. The gif below shows Trump having a phonecall with Putin.
Download Files Here#
Skin newt molds for lasercutting
Shakespeare has the Last Word#
Eye of newt, and toe of frog,
Wool of bat, and tongue of dog,
Adder’s fork, and blind-worm’s sting,
Lizard’s leg, and howlet’s wing,–
For a charm of powerful trouble,
Like a hell-broth boil and bubble.
Macbeth (IV, i, 14-15)