Skip to content

13. Skin Electronics

Its Party Time !

THis week Skin electronics is the star of the week. Learning a bit more into electronic wearables and their various applications.

My focus was to create something between a party mask and a face painting design.

I was planning on using thermocromic colours and led lights.

Second skin Mask

I had inspirations of face mapping and colourfull illustrations. Party Mood was on !

Thermocromic colours

Testing a bit with thermocromic patterns first on paper and silicone thin sheet for which i used heat gun to test

Based on the tutorials provided and following the slides and This very useful link, I tested the effects of heat on the thermocromic powder colours using a wire for which I used the multimeter to find the resistance in the two trials (first one 3 Ohm and second 8 Ohm) based on the resistance I used 4 volt 200 mAm for the first short wire and 3.7 volt and 500 mAm for the second wire to mimic Liop battery voltage. All with the help and superviosion of My mentor.

Being happy with the result, It was time to move things to Adafruit Gemme M0 and start on the mask itself.

Mask Material

Started by an experiment to create flexible thin sheet that could be the mask main material.

  1. First I used silicone rubber ( Ecoflex 30) fro which I mixed equal amounts of a total of 40 grams and poured them into an already greased mold for which My lab partner have used in a previous project ( laser cut 3mm acrylic mold ) for which was left for more than 4 hours then peeled carefully.

The Ecoflex created a very durable flexible material that is has good transperancy and sticks better to skin.

  1. Second experiment was using a gelatin recipe and poured into a glass jar As I was trying to creade a domed extra flexible shape that can mimic a hat mask.

Recipe

6 g gelatin
150 g water
22.5 g glycerine


The gelatin recipe was perhaps too thin to be peeled and is not durable but extremely trasparent.

Started a little bit of sketching

and then procedded to cut out a backing sheet paper into the layout of the mask, trying it out and fixing it to my liking.

Electronic Part.

Following Liza Stark very detailed explanation which you can access through this Link
I used the following circuit sketch using copper tape , Mosfet , 100k Ohm transistor and 1N4001 Diode.

Sketch by Liza Stark

I used Mosfet FQP30N06L which is a transistor, a semiconductor device that is widely used for switching purposes. In this case, In order to heat the wire, we need higher voltages than what the Gemma Mo can provide, therefore I am using a 7 voltage battery for the heating element and 3.5 voltage battery to run the Gemma MO. Now the Mosfet role is to act as switch that based on the arduino code, When the digitalWrite is high, the Mosfet turns on the 7 voltage battery to heat up the wire and when the digitalWrite is Low, the Mosfet turns off the 7 voltage battery to give time for the wire to cool down.

Using Adafruit Gemma M0 I connected the circuit to the computer

Make sure to choose The right port, stack, and board

Note

Make sure the Usb cable is good for transferring data and not just charging Make sure all needed boards are updated and available through the manage board option from tools


Here is the code

#include <Adafruit_NeoPixel.h>




void setup() {
  // put your setup code here, to run once:



pinMode(A0, OUTPUT);
Serial.begin(9600);
pinMode(A1, OUTPUT);


// Which pin on the Arduino is connected to the NeoPixels?
#define PIN 1

}

void loop() {




digitalWrite(A1, HIGH);

Serial.println("lighton");



digitalWrite(A0, HIGH);
Serial.println("ON");
delay(8000);

digitalWrite(A1, LOW);

Serial.println("lightoff");

delay(10000);

digitalWrite(A1, HIGH);
Serial.println("ON");
delay(5000);

digitalWrite(A1, LOW);
//off
digitalWrite(A0, LOW);
Serial.println("OFF");
delay(8000);

}

Bill of Materials

The bill of the materials for the final Project goes like this:

Material Quantity Unit
Adafruit Gemma M0 1 Unit
wires 1 m
copper tape 0.5 m
Soldering kit 1 Unit
Mosfet FQP30N06L 1 Unit
1N4001 Diode 1 Unit
100k Ohm resistor 1 Unit
3.5v round batter 1 Unit
7v recatngular batter 1 Unit
round battery base 1 Unit
rectangle battery base 1 Unit
Thermochromic ink 3 Unit
resisting wire 30 cm
Ecoflex 00-30 silicone 20 gram
acrylic sheet 30*20 cm

Now here is my Frankenstein

Under the sea - Head Piece

A sound level interactive headpice, designed to be something between a crown and a mask.Lights Fade in and out based on the sound level around it. Inspired by the sea.

Inspirations

Like Always, The sea calls to me. I knew I wanted to make a headpiece Showing organic lines yet speaks of the strength of the sea.

Physical Part

Started with a single piece of the design in 3ds Max which I exported to rhino and duplicated the piece in a series and sdjusted each piece size and wisth to create a 2d layout of the mask . Created a grasshopper file to see how it fits on a face model. When I was happy with the result I exported the 3d layout as an stl file.

You can download it the file here

Using Cura, I sliced the file and used the settings in the picture to 3d print it.

Material : PLA
3d printer : Ultimaker S5
The first print was using TPU on a stretched fabric. However, The result was a failure. For a very delicate design with very narrow pieces that move up unsupported, even PLA didn't give me the smooth result I needed. The 3d printers available at the lab that were big enough to handle the entire project couln't be used with stretching a fabric on the base. Therefore I aded a brim using Cura and didnt put a fabric underneath. Instead I cut the pieces and glued them to the fabric later on.

For a finer look. I Sprayed paint the 3d print.

I proceeded to cut the pieces , making sure I have a reference to the location of every piece. Then glued them to a tull fabric piece that I stretched lightly on a wooden board.

Then I glued the piece to it's designated place untill the head piece was ready.

Electric Part

Now for the electric part:

Note: The real life sequence of the whole process is a bit differentas at each time I get into a problem for which I would go back steps and fix stuff.

I started by Copying and pasting the link below into the Additional Boards Manager URLs option in the Arduino IDE preferences.

https://adafruit.github.io/arduino-board-index/package_adafruit_index.json

After that I started installing and updating library installations via the Library Manager interface. From the Sketch menu, > Include Library > Manage Libraries... Added "Adafruit NeoPixel by Adafruit", "Arduino SAMD Boards" and "Adafruit Circuit Playground".

Using a sound pressure example which you can find like this: file > Examples > Adafruit Circuit Playground > Microphone_Demos > Soundpressurelvl

I started testing , It was great except it worked on the interal Led lights using multiple colours and going back to z as in acting like a meter of sound. Working on the file I made it into reading the sound pressure level then creating phases with upper and lower limits for which three external flora neopixels would fade high and low based on the sound level.

As you can see here after long hours of testing and coding I managed to make it work.

I then proceeded to connect the lights using brass coated wires that are thin and can be hidden well enough. I made sure to measure the needed length first and scratching the wire where it will connect to the LED pin tie an average of 3 times and then solder it. Repeating the process with some few mistakes that made me redo some steps. I managed to finish it and test it using the adafruit circuit playground. Then I glued the electrical hardware part to the headpiece itself.

I serial print the pressure level while everything was working which looked like this:

Here is the code to make 3 flora neopixels fade by sensing sound pressure through Adafruit Playgrount circuit Express , Arduino Code.

#include <Adafruit_CircuitPlayground.h>

#define NEOPIX_PIN    A2 // you chosen pin on adafruit
#define NUM_PIXELS    3 // number of attached external neopixels 

// use Adafruit_CPlay_NeoPixel to create a separate external NeoPixel strip
Adafruit_CPlay_NeoPixel strip = Adafruit_CPlay_NeoPixel(NUM_PIXELS, NEOPIX_PIN, NEO_GRB + NEO_KHZ800);

int currentValue;  
int previousValue;

void setup() {
  CircuitPlayground.begin();
  Serial.begin(115200);
  strip.begin();
}

void loop() {
  Serial.println(CircuitPlayground.mic.soundPressureLevel(50));
  int p = CircuitPlayground.mic.soundPressureLevel(50);

    int upper = 0; 
    int lower = 0;
    int minimum = 0; //0 
    int mini = 57; //20
    int mini2 = 60; //50
    int mini3 = 64; //80
    int mini4 = 78; //150
    int mini5= 70; //255 
    int maximum = 255; //255

    if (currentValue != NULL) {
      previousValue = currentValue;
    } else {
      previousValue = maximum;
    }
    currentValue = p;

    if (previousValue >= mini5){
       upper = 250;
    }
    if (mini5 > previousValue && previousValue >= mini4){
       upper = 150;
    }
    if (mini4 > previousValue && previousValue >= mini3){
       upper = 80;  
    }
    if (mini3 > previousValue && previousValue >= mini2){
       upper = 50;
    }
    if (mini2 > previousValue && previousValue >= mini) {
       upper = 20;
    }
    if (previousValue < mini) {
      upper = 1;
    }

    if (p < mini){
       lower = 0;
       upper = 1; //h;
    }
    if (p >= mini5) {
       lower = 255;
      upper = 255;
    }
    if (mini <= p && p < mini2) {
       lower = 20;
    }
    if (mini2 <= p && p < mini3) {
       lower = 50;
    }
    if (mini3 <= p && p < mini4) {
       lower = 80;
    }
    if (mini4 <= p && p < mini5) {
       lower = 150;
    }


    int wait2 = 50; // delay when there is no transition in colour
    int wait1 = 5;  // delay when there is transition in colour

    if (lower == upper) {
      strip.setPixelColor(0, 0,   0,   lower);
      strip.setPixelColor(1, 0,   0,   lower);
      strip.setPixelColor(2, 0,   0,   lower);
      strip.show();
      delay(wait2);
    }
    if (lower < upper) {
      for (int i=upper; i>=lower; i--){
        strip.setPixelColor(0, 0,   0,   i);
        strip.setPixelColor(1, 0,   0,   i);
        strip.setPixelColor(2, 0,   0,   i);
        strip.show();
        delay(wait1);
      }
    }
    if (lower > upper) {
      for (int i=upper; i<=lower; i++){
        strip.setPixelColor(0, 0,   0,     i);
        strip.setPixelColor(1, 0,   0,   i);
        strip.setPixelColor(2, 0,   0,   i);
        strip.show();
        delay(wait1);
      }
    }

Bill of Materials

The final bill of materials goes like this:

Material Quantity Unit
Flora neopixels 3 Unit
Adafruit Circuit Playground Express 1 Unit
PLA 50 gm
lycra mesh 70*20 cm
Glue 2 Unit
spray paint 1 Unit
aligator clip wires 6 Unit
Tarnish resistor thin wire 2 m
soldering kit 1 Unit


Last update: 2022-07-04
Back to top