Skip to content

10. Wearables

This week I suffered a lot of cervical contractures so decided to make something that could warm up the zone. So I made a HEAT PAD.

Something like this:

When you turn it ON, it's starting to warm up. After 15 seconds it's changing color from blue to white.( I used Thermochromic ink: actuator 1). I also used two Neopixels led lights and optical fiber to advice when it is warming (red light) and when is not (teal light) (actuator 2).

The logic of the circuit and coding is: The temperature sensor measures the environment and if it is less than a certain number allows the current flows warming up the Stainless steel wire that is recovered with cotton. The cotton is painted with blue thermochromic ink changing its color to white. As well, the neopixels turn on and off depending on the timing, every 15 secs it stops for 4 seconds, then on again in loop.

In the same week we learn more about the digital embroidery process. Here you can find some tests and tutorials that should clarify every doubt, enjoy! 😁

  • [Digital Embroidery | Needle Threading]
  • [Digital Embroidery | Testing with Conductive Threads]
  • [Digital Embroidery | From Rhino to the Machine]
  • [Flipping Dots Test]
  • [Arduino | Analog Sensor Neopixel Leds Test]

THERAPEUTIC HEAT PAD

Why I need a resistive thread? To generate heat! Yes, but how it works?

When current goes through and it is difficult for electrons to pass the friction generates heat. This heat is going to be responsible to change the color of the thermochromic ink and warm the fabric of the pad. To do this, the resistance of the stainless steel wire, must be enough to reach the temperature needed to activate the ink to change, warm the pad and not burn the wire itself or a component or a person if anyone touches it.

So, what is Ohm´s law? Is the relation between the current (I), that is flowing in a conductive medium (Resistance), with a certain power (Voltage) from one point to another.

  • V (Voltage) = Capacity (the power is needed to move the electrons)
  • I (Current) = Quantity (the amount of electrons moving)
  • R (Resistance) = Difficulty (the hardness for electrons to pass)

Still now convinced? Take a look here

STEPS

  • STEP 1 = Select the thread and try to warm it up, to change the thermochromic pigment.

Using ohm's law ( V = I x R ) then, ( R = V / I ) which in my case is ( R = 5V / 0.677 A ) = ( R = 7,38 Ohms ) So I needed a Wire with a resistance of 7,38 Ohms. I used a Madeira Resistive Thread, Stainless steel wire. This kind of thread is made for heating purposes, so was the perfect match for my project!

Madeira Thread DataSheet

To keep in mind the resistance of a wire depends on its lenght and in its conductive properties. The longest > current. The shortest < current. If a wire is too long and its resistance is too much (which means it can't pass current enough, which also means not enough heat) is possible to cut the wire in half and connect them in parallel so the current amount is duplicated and can reach more heat. This happens because the lenght is shorter (the current doesn't have to cover a long path) and also the current has now 4 wires to pass through.

  • STEP 2 = Create your circuit and sew the thread into your fabric
  • STEP 3 = Coding with Arduino
Warm up/Cool down Test

/ I warming up the thread and then cooling it down /

int heat_pin = 6; int led_pin = 3;

// the setup function runs once when you press reset or power the board void setup() { // initialize digital pin LED_BUILTIN as an output. pinMode(heat_pin, OUTPUT); }

// the loop function runs over and over again forever void loop() { digitalWrite(heat_pin, HIGH); // turn the LED on (HIGH is the voltage level) delay(15000); // wait for a second digitalWrite(heat_pin, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second }

  • STEP 4 = Paint your fabric/threads with Thermochromic pigments

Using blue thermochromic ink I mixed it with white glue as a mordant. I used a thin brush and my fingers to paint on the neoprene (sythetic fabrics are not the best actually 😅). Let it dry for 40 minutes aprox.

  • STEP 5 = Then try again the circuit to watch the ink change effect.

After 30sec the ink started to change. 50 sec and changed to light blue 70 sec and getting white blue 90 sec and stibilized the color 120 sec and getting clearer 140 sec and the wire was almost white. Just a few things to know about the thermochromic ink are that changes the color in a temperature of 27 Celsius degrees. So if the the project is to use the paint over the skin keep this in mind because its going to react just by tact. Otherwise the ink must be isolated from the skin touch to don't affect the performance of the project. Also this ink was created to hide images. The idea is to paint over an image so the sun or heat makes it react getting transparent and discovering the image underneath.

  • STEP 6 = Sew the optical fibers on the fabric
  • STEP 7 = Glue the Neopixel on the optical fibers, with hot glue
  • STEP 8 = Code the Neopixels with Arduino
  • STEP 9 = Test the circuit again
  • STEP 10 = If it's working, you can star program the ATtiny 85 in the Breadboard (REMEMBER that ATtiny 85 has different pins than Arduino)
Heat Pad + Neopixel Leds

include

// Which pin on the Arduino is connected to the NeoPixels?

define PIN 1

// How many NeoPixels are attached to the Arduino?

define NUMPIXELS 2

// Declare our NeoPixel pixels object: Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); // Argument 1 = Number of pixels in NeoPixel strip // Argument 2 = Arduino pin number (most are valid) // Argument 3 = Pixel type flags, add together as needed: // NEO_KHZ800 800 KHz bitstream (most NeoPixel products w/WS2812 LEDs) // NEO_KHZ400 400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers) // NEO_GRB Pixels are wired for GRB bitstream (most NeoPixel products) // NEO_RGB Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2) // NEO_RGBW Pixels are wired for RGBW bitstream (NeoPixel RGBW products)

uint32_t red = pixels.Color(255, 0, 0); uint32_t blue = pixels.Color(0, 255, 0); uint32_t green = pixels.Color(0, 0, 255); uint32_t magenta = pixels.Color(255, 0, 255); uint32_t teal = pixels.Color(8, 242, 215); uint32_t orange = pixels.Color(255, 171, 0); uint32_t brown = pixels.Color(71, 54, 20);

int delayval = 500; // delay for half a second

int heat_pin = 0;

void setup() {

pinMode(heat_pin, OUTPUT); pixels.begin(); // This initializes the NeoPixel library. pixels.show(); // Turn OFF all pixels ASAP pixels.setBrightness(64); //from 0 to 255, use it only in setup

}

void loop() {

pixels.fill(red); pixels.show(); //display the color //delay(delayval); digitalWrite(heat_pin, HIGH); // turn the HEAT on (HIGH is the voltage level) delay(15000); // wait for 15 seconds pixels.fill(teal); pixels.show(); //display the color digitalWrite(heat_pin, LOW); // turn the HEAT off by making the voltage LOW delay(4000); // wait for 4 seconds

/* pixels.fill(blue, 0, 10); pixels.show(); //display the color delay(delayval);

pixels.fill(green, 0, 10); pixels.show(); //display the color delay(delayval);

pixels.fill(teal, 0, 10); pixels.show(); //display the color delay(delayval);

pixels.fill(orange, 0, 10); pixels.show(); //display the color delay(delayval);

pixels.fill(brown, 0, 10); pixels.show(); //display the color delay(delayval);

*/

}

  • STEP 11 = Embed the circuit into the pad and sew it carefully without moving to much the pad, or you would break some welding 💀
  • STEP 12 = Plug the pad into a 5V source, through an Usb connector and test it.
  • STEP 13 =

FIRST TRIAL ON A CLIENT

IMPROVEMENTS

  • I surely need to add some weight, so maybe sand or even better some healing plants powder, more or less 500g just to maintain the pad on the skin;

  • Should be great to wide the zone of heating action, right now it's just warming up a small zone;

  • Add a overlayer fabric to cover the optic fibers, so the light will fade nicely

  • I should have used more thermochromic pigment on the heating zone, to highlight better the zone and to get a brighter result with the pigment.

INSPIRATIONS


Last update: January 26, 2021