Skip to content

Wearables

Introduction

As this week rolls around, admittedly I'm still working through and finishing up Soft Robotics as we speak. I'll blame that on my [somewhat] lack of resources. Regardless, that's probably apt because soft robotics, e-textiles, and wearables are all quite related. Or is that simply because I LOVE them. Anyway, I digress. I'm looking forward to this week and these are things that have been floating around in my head.

Wearables hold a very special place in my heart. It taps into my interests in dynamic expression and physical computation. I imagine interacting with our everyday materials, objects, and surroundings through computation and interactive technology. Sustainably of course.

So, while e-textiles are an exploration mainly between an electronic system and textiles, wearables are, as our lecturer Liza Stark put it, a constant dialogue between hardware and material (e.g. textiles and garment construction). You can't prioritize one over the other. Since most of my knowledge comes from electronics and less from garment construction, this should be challenging and fun!

In order to keep the concept of wearing in mind, Liza posed really important questions I felt necessary to document!

  1. How will it be used?
  2. Will it be a proof of concept, runway garment, or everyday product?
  3. How often will it be worn?
  4. How many people will wear it?
  5. Will it be worn on the body or shown on a mannequin as a demo?
  6. How should it feel?
  7. What types of textiles are appropriate for the garment?
  8. Do you need a base layer to secure components or insulate them?
  9. Does it need to be washable?
  10. Do you need to make the board removable?
  11. How much power do you need? Does it require a battery or AC or DC power supply?
  12. What safety measures do you need to account for?
  13. How long do you need to be powered for? An hour, continuously?
  14. Do the components need to be hidden or visible?
  15. Where will you place the microcontroller?
  16. Where does the power source live? Does it need to be reachable?
  17. Does the person you are designing for want to be visible?
  18. Do you need to protect, encrypt, and/or secure any personal data that you are collecting, using, or generating?
  19. What is the sustainable (or not) footprint of your project and process?
Weekly Assignment
  • Document the concept, sketches, references also to artistic and scientific publications
  • Create a swatch/sample using a microcontroller with one input and one output, using hard-soft connection solutions and battery
  • Create 2 actuator swatches and test them, chosing from examples such as:
    • motors / mini vibration
    • leds / neopixels
    • flip dot / electromagnet
    • heat pad / with thermochromic coating
    • speaker / mp3 player
    • SMA (shape memory alloy)
  • Learn how to program a microcontroller, documenting your process, the libraries added, power requirements and source code
  • Document the schematic and circuit
  • Upload a small video of your object working
  • Integrate it to a project (extra credit)
What You'll Need
  • Digital Multimeter
  • Soldering iron (Soldering station)
  • Pliers, wire stripper, flush snips, tweezers
  • Vinyl cutter
  • Embroidery / Sewing machine
  • Needles
  • Microcontroller + Arduino IDE
  • Mixture of electronics (resistors, diodes, transistors (MOSFETs), 9V battery, conductive thread, LEDs, sensors, etc.)

References + Inspiration

Liza broke down wearables really well. At least in a way that I found insightful. Other than the questions above, she described wearables, as dynamic forms of expression, in terms of actuators. Actuators are components in a circuit that that move or change based on the input in a circuit. For instance, the harder you press on a pressure sensor for example an LED becomes brighter and more dim if pressed less.

Actuators can be divided into 3 main categories - visual, sound, motion.

Liza's Actuators Slide


Visual actuators are LEDs, neopixels, fiber optics, thermochromic inks. Sound actuators are textile speakers. And motion actuators are shape memory alloy, flip dots (electromagnets), and vibe motors + haptics.

I love data and I love data visualization.

One of the projects that Liza presented was Wifi Tapestry by Richard Vijgen. It's really quite captivating in its ability to visualize wifi data in a space using thermochromic pigments embedded in yarn.

I also like this piece from Alessia Milo. It's called Aural Fabric, an interactive sound map made with embroidered conductive thread. This belongs more in e-textiles week but I thought I'd put it here because I thought it to be a beautiful concept.

I found this work investigating e-textiles I find its application relevant here. I'm fascinated by it really. Decaying fruits, fungi, etc. are used and environmental sensors capture empirical temperature/humidity data and translate it into color and light. I love this combination and input coming from something that we would find obsolete and disgusting. It's pretty hardcore, pretty metal.

There once was a strange little planet called Earth

There once was a strange little planet called Earth, Sneha Ganguly

These are textile speakers shown by Liza in lecture. Meshing sound and textiles is always a point of interest for me.

Textile Speakers

Textile Speakers

I mentioned this one in E-Textiles but, again, I love representing data using textiles and other actuators. In this case, Irene Posch uses electromagnets to visualize 0s and 1s.

Actuators

Paper Circuit for Prototyping

This is the arduino-controlled circuit I transferred to paper.

Wearables Paper Prototyping Circuit

Electromagnet - Flip Dot

I used documentation from KobaKant to make this but for reference I've included my steps here. I used a copper coil I had wound many months ago. I wound it around a cylindrical machined piece of iron to make a strong electromagnet but one can also wind it around a pen. 80+ turns is a good number to meet. I used a scrap piece of string to tie it to prevent unwinding.

I also used an enameled copper wire. This is important a bit later.

I crocheted a ring around the coil and stitched the coil (with regular thread) onto a piece of fabric. I poked the leads of copper wire to the back side of the fabric and sanded the ends of both leads. The enamel on the wire acts as an insulator so you need to sand the ends to make conductive connections.

I used copper tape instead of conductive fabric to fold on the fabric. Simply because my conductive fabric is not solderable. I added a solder pad to each piece of copper tape on the back and it's ready to go!

Electromagnet Swatch Process

int electromag = 5; // I put the signal pin to pin 5 on the Arduino

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

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

I didn't have any polymorph to envelop the magnet and you can't place oven-bake clay in the oven to dry with a magnet. The magnet will lose its magnetic properties at a certain temperature threshold. For now, my magnet is naked but it works!

Thermochromic Pigment

I didn't have any acrylic clear coat or gel, so I did some research on making a base of my own to mix with my thermochromic pigments.

* 1 tsp of corn starch
* 2 tsp of water
* 1 tsp of white vinegar
* 1 tsp of vegetable glycerin
* 1 tsp of thermochromic pigment
NOTE: Adjust this recipe proportionally should you want to make more.
1. Mix the corn starch, water, and white vinegar in a cup together. 
2. Heat for 5-7 seconds at a time until you have a gel-like mixture. Add more water if it's too thick. Make sure this cools fully. I put it in the refrigerator to possibly decrease the heat activation temperature. Set aside.
3. Mix the vegetable glycerin and thermochromic pigment together gently in a separate cup. 
4. Put cooled corn starch mixture in the vegetable glycerin mixture and it should be good to go! Add more water to achieve a more liquid consistency if you want.

Thermochromic Pigment Process

Thrmochromic Pigment Mixing Process - I made a blue one and a pink one!

The pink one changes more easily with my own body heat and I think that's because after heating the corn starch mixture to get a gel-like consistency, I put it in the refrigerator. The warmer environment or ingredients the higher your heat threshold becomes. Meaning, much hotter temperatures (hotter than body heat) are needed to achieve the disappearing thermochromic effect. So make sure you're in a cold environment and using cold ingredients!

Thermochromic Pigment Activation

Thrmochromic Activation - Subtle but it's there!

I sewed the conductive thread to the thermochromic fabric I painted but it's kind of hard to see. It was a little hard to finesse since my at-home sewing machine can only do so much with the conductive thread. I need an industrial sewing machine.

Also here's the code to test your thermochromic circuit with! Same paper circuit from above by the way.

void setup() {
  // put your setup code here, to run once:
pinMode(3, OUTPUT);
Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
analogWrite(3,500);
Serial.println("On");
delay(2000);
analogWrite(9,0);
Serial.println("Off");
delay(2000);
}

Thermochromic MIDI Synth

I wanted to make a synthesizer using my Bare Conductive Touch Board but because the company is no longer with us and running, documentation on it is scarce. I was able to download files for Arduino IDE to recognize it but the sample code was unable to upload. Probably because some of the libraries need updating or no longer exist. I'm thinking of reaching out to the developers about it.

Bare Conductive Touch Board

Bare Conductive Touch Board - Defunct but maybe you can crack it!

Regardless, if you get your hands on one and would like to try to crack it, I included down at the bottom a PDF I found to at least get the board onto your Arduino IDE, along with other related libraries needed from their GitHub, and some sample code you can find download links to.

I opted to use the Circuit Playground. Here it is in all its glory.

Circuit Playground Express

Adafruit Circuit Playground Express

ANYWAY I was trying my best to program my Adafruit Circuit Playground to heat up the conductive thread ONLY when the capactive sensors/pads on the microcontroller were touched, but I couldn't figure out the code. At least with the time I have, I was already behind completing this week's work. BUT when I have more time and my mind is less clouded I'll tackle it again.

Again, I had problems sewing with my conductive thread probably due to my machine but also the very thin cotton fabric I'm using, not to mention needle size, etc., etc. In short, so many things.

I just opted to use copper tape for now.

NOTE: I didn't use my paper circuit from above. This just required my circuit playground, copper tape, and Arduino IDE for the code.

The synth sounds come from Garage Band on my macbook.

#include <Adafruit_CircuitPlayground.h>
#include "MIDIUSB.h"

int threshold = 100;   // adjust sensitivity here!
bool touched[7] = {false, false, false, false, false, false, false};

int notes[7] = {60, 62, 64, 65, 67, 69, 71};  
// C, D, E, F, G, A, B

void sendNoteOn(byte pitch) {
  midiEventPacket_t noteOn = {0x09, 0x90, pitch, 0x7F};
  MidiUSB.sendMIDI(noteOn);
  MidiUSB.flush();
}

void sendNoteOff(byte pitch) {
  midiEventPacket_t noteOff = {0x08, 0x80, pitch, 0};
  MidiUSB.sendMIDI(noteOff);
  MidiUSB.flush();
}

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

void loop() {
  int pads[7] = {
    CircuitPlayground.readCap(1),
    CircuitPlayground.readCap(2),
    CircuitPlayground.readCap(3),
    CircuitPlayground.readCap(6),
    CircuitPlayground.readCap(9),
    CircuitPlayground.readCap(10),
    CircuitPlayground.readCap(12)
  };

  for (int i = 0; i < 7; i++) {
    if (pads[i] > threshold && !touched[i]) {
      touched[i] = true;
      sendNoteOn(notes[i]);
    }
    else if (pads[i] <= threshold && touched[i]) {
      touched[i] = false;
      sendNoteOff(notes[i]);
    }
  }
}

References

Files