Skip to content

08_WEARABLES

Overview

Wearables are electronic devices or technologies that can be worn on the body, either as accessories or embedded into clothing. These devices are equipped with sensors, processors, and communication capabilities, enabling them to collect data, perform computations, and communicate with other devices or networks. Due to the advancements in miniaturization, sensor technologies, and the growing interest in health and fitness tracking, wearables have become increasingly popular in recent years. The technology is mostly used for/in:

• Health, medical monitoring

• Smart clothing

• Augmented and virtual reality

• Industry logistics and efficiency improvements

• Navigation and location-based services

• Communication

• Payments, transactions

• Gaming

• Space technology

• Speculative technology, technology for future living

• Arts..

References & Inspiration

1 - MIT – Wearable Soft Pneumatic Actuator

2 – Masque by Xin Liu, Hongxin Zhang

3 – A wearable ultrasound scanner could detect breast cancer earlier

4 – Qamar – Neri Oxman

5 & 6 - Alexander McQueen’s 1999 fall/winter collection for Givenchy

7 - Hussein Chalayan's spring/summer 2000 Remote Control metal dress

8 - Thermochromic ink

9 - Optic fibers

10 - Krzysztof Wodiczko, Dis-Armor, 1999-2000

11 - STELARC, Ear on Arm, 2006

12 - See Yourself Sensing, Redefining Human Perception, a book by Madeline Schwartzman

Fabricademy participants Inspirations:

Noemie Carrier

Anna Cain

Clara Acioli

This week

The week started with lessons and workshops that were carried out by Gerard Montaño and Citlali Sánchez.

Main tools of this week:

Lessons with Gerard

With Gerard we navigated through Arduino and worked with capacitive sensor(s) and neopxiles strip.

Capacitive sensor

A capacitive sensor is a type of sensor that measures changes in capacitance to detect the presence or proximity of objects, materials, or changes in the environment. Capacitance is the ability of a system to store an electric charge, and in the context of capacitive sensors, changes in capacitance are used to infer the presence or absence of an object.

How does it work?

A capacitor consists of two conductive surfaces separated by an insulating material (dielectric). In the context of capacitive sensors, one of the conductive surfaces is often a sensing electrode, and the other can be a nearby object or a ground plane. When an object is in close proximity to the sensing electrode, it changes the capacitance of the system. The electric field between the electrode and the object is altered, leading to a change in capacitance.

Capacitive sensor principle

Sensor designs

Some common applications:

  • Capacitive sensors are commonly utilized in touchscreens for electronic devices, such as smartphones and tablets. When a user touches the screen, their finger alters the capacitance, allowing the device to detect the touch.

  • Capacitive sensors are also being used to detect objects without contact, for example in automatic faucets, switches, and object detection systems.

More on the capacitance sensors can be found here and here


Materials we used for designing a capacitive sensor:

  • Microcontroller Seed Studio XIAO ESP32C3 + Arduino

  • A conductive material for the sensing electrode – I used a metal ring

  • Copper tape to connect

  • Wire

  • Resistor (depends on the sensing electrode you choose, I used 1M Ohm resistor)

  • Breadboard

Steps on how to make one:

1. Choose a conductive element that will work as a sensor

2. Connect or tape it with a wire

3. If needed for callibration, attach a resistor to the circuit

4. Connect the circuit to breadboard with XIAO ESP32C3 microcontroller

5. Connect the breadboard to Arduine IDE

6. Download the library extension Note: For the capacitive sensor to work, you will need this extension.

A simple capacitive sensor I made with a metal ring

Arduino Library

''Libraries are a collection of code that makes it easy for you to connect to a sensor, display, module, etc. For example, the LiquidCrystal library makes it easy to talk to character LCD displays.''

Libraries enhance the capabilities and functionality of software. To connect a sensor with Arduino, we had to upload a new library. However, things got complicated as the library for capacitive sensors didn't work consistently. Gerard informed us about this issue, and unfortunately, we were unable to install it ourselves. Therefore, we had to use Gerard's computer to test the sensors.

More on libraries for Arduino can be found here


The code needed for the readings

#include <CapacitiveSensor.h>

CapacitiveSensor   cs_4_2 = CapacitiveSensor(4,2);        // 10M resistor between pins 4 & 2, pin 2 is sensor pin, add a wire and or foil if desired

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

void loop() {

    long sensor =  cs_4_2.capacitiveSensor(30);
//     Serial.println(sensor);

    if (sensor > 2250) {
        Serial.println("Touching!!!");
    } else {
        Serial.println("Nothing there!!!");
    }

    delay(10);
}

Note: Due to our library not working, we tested the sensors together as a group. Following readings were made on Gerard's computer.

Biofoam as a capacitive sensor, IT WORKS!

For me this week was most interesting from material point of view. During the class, I brought a biofoam made with charcoal powder that I wanted to test it out as a sensor. Charcoal can make a material conductive, but it requires a lot of it to work effectively. After some experiments this one worked good.

Note:Keep in mind that that, when you're checking the circuit using a multimeter, you might not get any readings. This usually happens because certain conductive biomaterials require more voltage to power an LED for example (you can refer to other conductive biomaterial samples in the E-textile assignment documentation).

Here is the recipe I used to make a conductive charcoal biofoam:

Gelatine 25g
Water 150ml
Soap 1 tablespoon
Charcoal powder 50g

Conductive biofoam

Conductive biofoam as a sensor and Arduino readings

RGB LED strip - Neopixels

RGB LED Neopixels refer to a type of individually addressable RGB (Red, Green, Blue) LED lights with a built-in controller chip. This allows you to control individual LED on a longer strip of 60+ LEDs. For this assignemnt we used WS2813 RGB LED Strip.

To work with RGB LED strip you need to download the Adafruit Neopixel, and Adafruit DMA Neopixel libraries, which enables you to program individual LED light.

First trial

We used the following code to connected the LED strip to Arduino:

#include <Adafruit_NeoPixel.h>

#define LED_PIN    2
#define LED_COUNT 50

Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);

void setup() {
  strip.begin();
  strip.show();
}

void loop() {

  for(int i=0; i<strip.numPixels(); i++) {
    strip.clear();
    strip.setPixelColor(i, 153, 0, 204);
    strip.show();
    delay(20);
  }
}

After that, we changed the colors of each LED diode to create a pattern and a rainbow of different colors. I used this website to generate the RGB colors.

Picking the desired color of each LED diode follows the following code principle:

void loop() {

  strip.setPixelColor(7, 153, 102, 255);
  strip.show();
  delay(60);
}

strip.setPixelColor(7, 153, 102, 255) line is where the LED number (7 on the strip) is selected, following the R(153), G(102) and B(255) color code.

After that, I played around with my 50 LED diode strip, creating a rainbow effect by lighting up pattern on of 20 LEDs. For that I used the following code:

#include <Adafruit_NeoPixel.h>

#define LED_PIN 2
#define LED_COUNT 50

Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);

void setup() {
  strip.begin();
  strip.show();
}

void loop() {

  strip.setPixelColor(1, 255, 255, 255);
  strip.show();
  delay(20);

  strip.setPixelColor(2, 255, 255, 0);
  strip.show();
  delay(20);

  strip.setPixelColor(3, 255, 153, 51);
  strip.show();
  delay(20);

  strip.setPixelColor(4, 255, 0, 0);
  strip.show();
  delay(20);

  strip.setPixelColor(5, 255, 51, 153);
  strip.show();
  delay(20);

  strip.setPixelColor(6, 153, 0, 255);
  strip.show();
  delay(20);

  strip.setPixelColor(7, 51, 51, 255);
  strip.show();
  delay(20);

  strip.setPixelColor(8, 0, 255, 255);
  strip.show();
  delay(20);

  strip.setPixelColor(9, 102, 255, 153);
  strip.show();
  delay(20);

  strip.setPixelColor(10, 153, 255, 51);
  strip.show();
  delay(20);

    strip.setPixelColor(11, 255, 255, 255);
  strip.show();
  delay(20);

  strip.setPixelColor(12, 255, 255, 0);
  strip.show();
  delay(20);

  strip.setPixelColor(13, 255, 153, 51);
  strip.show();
  delay(20);

  strip.setPixelColor(14, 255, 0, 0);
  strip.show();
  delay(20);

  strip.setPixelColor(15, 255, 51, 153);
  strip.show();
  delay(20);

  strip.setPixelColor(16, 153, 0, 255);
  strip.show();
  delay(20);

  strip.setPixelColor(17, 51, 51, 255);
  strip.show();
  delay(20);

  strip.setPixelColor(18, 0, 255, 255);
  strip.show();
  delay(20);

  strip.setPixelColor(19, 102, 255, 153);
  strip.show();
  delay(20);

  strip.setPixelColor(20, 153, 255, 51);
  strip.show();
  delay(20);

  strip.setPixelColor(21, 153, 255, 51);
  strip.show();
  delay(20);

    strip.setPixelColor(22, 255, 255, 255);
  strip.show();
  delay(20);

  strip.setPixelColor(23, 255, 255, 0);
  strip.show();
  delay(20);

  strip.setPixelColor(24, 255, 153, 51);
  strip.show();
  delay(20);

  strip.setPixelColor(25, 255, 0, 0);
  strip.show();
  delay(20);

  strip.setPixelColor(26, 255, 51, 153);
  strip.show();
  delay(20);

  strip.setPixelColor(27, 153, 0, 255);
  strip.show();
  delay(20);

  strip.setPixelColor(28, 51, 51, 255);
  strip.show();
  delay(20);

  strip.setPixelColor(29, 0, 255, 255);
  strip.show();
  delay(20);

  strip.setPixelColor(30, 102, 255, 153);
  strip.show();
  delay(20);

  strip.setPixelColor(31, 153, 255, 51);
  strip.show();
  delay(20);


  strip.setPixelColor(32, 255, 255, 255);
  strip.show();
  delay(20);

  strip.setPixelColor(33, 255, 255, 0);
  strip.show();
  delay(20);

  strip.setPixelColor(34, 255, 153, 51);
  strip.show();
  delay(20);

  strip.setPixelColor(35, 255, 0, 0);
  strip.show();
  delay(20);

  strip.setPixelColor(36, 255, 51, 153);
  strip.show();
  delay(20);

  strip.setPixelColor(37, 153, 0, 255);
  strip.show();
  delay(20);

  strip.setPixelColor(38, 51, 51, 255);
  strip.show();
  delay(20);

  strip.setPixelColor(39, 0, 255, 255);
  strip.show();
  delay(20);

  strip.setPixelColor(40, 102, 255, 153);
  strip.show();
  delay(20);

  strip.setPixelColor(41, 153, 255, 51);
  strip.show();
  delay(20);


}

Connecting the code to the LED strip

Lessons with Cit

With Citlali we explored some different materials used in the field of wearables, which was super exciting and did screen printing with thermochromic ink.

Thermochromic ink

Thermochromic inks are a special type of ink that can alter their color in response to temperature changes. These inks are made using pigments or dyes that are highly sensitive to temperature fluctuations, meaning they can undergo a reversible color change when the temperature crosses a certain threshold. These inks typically contain microcapsules or liquid crystals that react to temperature changes by modifying their molecular structure. This modification results in a change in the absorption or reflection of light, which leads to a change in color.

How the crystals work:

More on thermochromic inks and how they work in practice can be found here and here.

An interesting site to visit is also Liza Stark's, Thermochromic Tests.

Screen printing

Materials we used:

  • Thermochromic ink

  • Cotton fabric for samples

  • Screen printing set

  • Wooden sticks

Steps we took to make prints:

Preparing the ink:

  • Mix well the thermochromic powder with paint

  • We prepared 3 different hue samples of the blue ink, to test different outcomes

Ink preparation by Barbara

Screen printing process:

  1. Create the design of the print – we used vinyl cutter to make ours stickers.

  2. Preparation of the screen, includes: setting the area for coloring, make sure the surface is flat and even.

  3. Place the screen over the fabric – strtch the fabric to get best results, and align it properly.

  4. Apply a thick line of ink on the top of the screen.

  5. With a squeegee pull/print the ink. Through the screen mesh, the ink will print onto the fabric beneath it.

  6. Run the squeegee for at least 3 times to transfer the ink properlf onto fabric.

  7. Carefully lift the wooden screen.

  8. Let the designs dry. Depending on the thickness of the ink applied, the drying time depends. Ours were finished in an hour or so.

Termo Bob

Mosfet and a paper circuit

While XIAO pins do not provide the necessary power needed to heat up the wire or other conductive material, we neede to design a new circuit using a MOSFET.

A MOSFET, or Metal-Oxide-Semiconductor Field-Effect Transistor, is a type of transistor used in electronic devices for switching and amplifying electronic signals. MOSFETs are a crucial component in modern electronic circuits and are widely employed in various applications due to their high efficiency and fast switching speeds. For that pruposes we used the 60V LOGIC N-Channel MOSFET. We designed a paper circuit using next materials:

  • Paper printed circuit by Liza Stark

  • Copper tape

  • Insulation tape

  • MOSFET FQP 30N06L

  • 100K Ohm resistor

  • 1N4001 Diode

  • Soldering machine

The circuit was created by the following sketch:

Paper circuit connected to XIAO

After that, we connected the circuit with the thermochromic ink sample we have made before.

Heating the conductive thread with power creates a white path on the ink. There are multiple ways of playing with design. Ruby Lennox did a great job this week, make sure to check out her page!

More on heat controlling circuits can be found here.

FLEXINOL - The shape memory alloy

Flexinol® is a trade name for shape memory alloy actuator wires. Made of nickel-titanium these small diameter wires contract like muscles when electrically driven. This ability to flex or shorten is characteristic of certain alloys that dynamically change their internal structure at certain temperatures. The idea of reaching higher temperatures electrically came with the light bulb, but instead of producing light these alloys contract by several percent of their length when heated and can then be easily stretched out again as they cool back to room temperature.

Technical Characteristics of Actuator Wires:

How it works

In the lab we had a short sample of that wire. It was super exciting to witness how the it works, but we were not able to use it in any of our own experiments due to the lack of the material. Would love to explore more though!

I really liked the project carried out by Anna Cain using this wire for her assignment. Check!

Video on how to make a circuit with flexinol

Wearable Photobioreactor

This week was full of different excersises, each of them were interesting, but I think we kind of didn't know quite well how to apply everything that we've learned into the final weekly assignemnt. So I see this one being experimental and getting to know some new stuff, like muscle wire, which was an impressive thing to see. Would love to explore that one more, but we lacked the material in our FabLab and only had a small sample of it.

So for this assignemnt I would like to present the final outcome of the Open-Source Hardware Week, where Hala and I did a wearable photobioreactor. The 10th-week assignment was an exciting one, and it left us both wanting to upgrade the outcome.

We put a lot of work into the project and I think this fits perfectly into this week. It is an object of speculation and a dream of future living, where humans would breathe through algae microorganisms' oxygen synthesis, wearing a photobioreactor on their backs.

Everything in detail is explaind on our pages.

Wearable photobioreactor

Additional

In this week I also collaborated with Barbara Rakowska. We were working on a necklace design using optic fibers. Due to our laser cutter at the FabLab not working properly this project was not finished, but I hope that in the future we will be able to finish it.

Wearable light

Fabrication files


  1. File: xxx 

  2. File: xxx 

  3. File: xxx