Skip to content

9. Wearables

Research

In textile design, "weable" typically refers to materials, structures, or components that are suitable for weaving. These can be fibers, threads, or other flexible elements that can interlace in a warp and weft pattern to form a fabric. For example, traditional fibers like cotton, wool, and silk are weable because they have the flexibility, durability, and strength to be woven on a loom. Modern weable materials might also include synthetic fibers like polyester or specialized conductive threads used in smart textiles and e-textiles, which can carry electrical signals and allow for interactive or responsive fabric designs.

References & Inspiration

Today's manufacturers understand the importance of meeting customer needs. In the textile and fashion industries, success often comes from adding advanced technology into fabrics. This has led to the rise of "smart clothes." Unlike regular wearable devices, these clothes look normal but have built-in technology. smart clothes

alt text

Inspiration

Inspired by the vibrant and futuristic designs of Neon Cowboys' scarves, I envision creating a wearable textile that merges bold, glowing aesthetics with functionality. Their playful use of neon colors and light elements sparks ideas for integrating LED or electroluminescent components into textiles, crafting accessories that are both fashion-forward and interactive. This inspiration aligns perfectly with my passion for blending technology and design to create unique, eye-catching pieces. Neon Cowboys

alt text

By using VISUAL ACTUATOR

In the fifth week of the course, I focused on experimenting with various circuits and components to understand their functions and interactions. This hands-on process helped me learn how the components behave, test their compatibility, and fine-tune configurations for better performance. These explorations laid a solid foundation for designing my envisioned wearable device and ensured I could integrate the components effectively into my final project.

XIAO ESP32-C3

The XIAO ESP32-C3 is a tiny, powerful board that combines Wi-Fi and Bluetooth. It uses a fast RISC-V processor and is perfect for small projects like wearables and smart devices. alt text

1. Materials Needed

XIAO ESP32-C3 : The main microcontroller for your wearable project.

Neopixels: for lighting effects in wearables

Jumper wires: To connect the components.

Battery pack: To power the Flora board when worn.

Potentiometer: for adjusting opixels brightness,

Circuit sketch

The circuit sketch integrates LEDs, a power source, and a Xiao ESP32 to make the scarf interactive and functional. It ensures flexibility, aligns with the scarf’s design, and offers a lightweight, wearable solution with smart connectivity. alt text

Scarf sketch

alt text

Circuit diagram

To simplify the process, I used a TinkerCAD sketch to visualize and experiment with the design before building it. 🧩 Feel free to try it out yourself—here’s the link Check it out on TinkerCAD circuit diagram

Code

//
// Define the LED pins
const int ledPin1 = 1;  // D1 corresponds to GPIO1 on the ESP32-C3
const int ledPin2 = 2;  // D2 corresponds to GPIO2 on the ESP32-C3
const int ledPin3 = 3;  // D3 corresponds to GPIO3 on the ESP32-C3
const int ledPin4 = 4;  // D4 corresponds to GPIO4 on the ESP32-C3
const int ledPin5 = 5;  // D5 corresponds to GPIO5 on the ESP32-C3

void setup() {
  // Initialize all LED pins as outputs
  pinMode(ledPin1, OUTPUT);
  pinMode(ledPin2, OUTPUT);
  pinMode(ledPin3, OUTPUT);
  pinMode(ledPin4, OUTPUT);
  pinMode(ledPin5, OUTPUT);

  // Ensure all LEDs start off
  digitalWrite(ledPin1, LOW);
  digitalWrite(ledPin2, LOW);
  digitalWrite(ledPin3, LOW);
  digitalWrite(ledPin4, LOW);
  digitalWrite(ledPin5, LOW);
}

void loop() {
  // First, blink all LEDs together
  for (int i = 0; i < 5; i++) {
    digitalWrite(ledPin1, HIGH);
    digitalWrite(ledPin2, HIGH);
    digitalWrite(ledPin3, HIGH);
    digitalWrite(ledPin4, HIGH);
    digitalWrite(ledPin5, HIGH);
    delay(500);  // Wait for 500 milliseconds

    digitalWrite(ledPin1, LOW);
    digitalWrite(ledPin2, LOW);
    digitalWrite(ledPin3, LOW);
    digitalWrite(ledPin4, LOW);
    digitalWrite(ledPin5, LOW);
    delay(500);  // Wait for 500 milliseconds
  }

  // Then, blink LEDs one by one
  digitalWrite(ledPin1, HIGH);
  delay(500);
  digitalWrite(ledPin1, LOW);

  digitalWrite(ledPin2, HIGH);
  delay(500);
  digitalWrite(ledPin2, LOW);

  digitalWrite(ledPin3, HIGH);
  delay(500);
  digitalWrite(ledPin3, LOW);

  digitalWrite(ledPin4, HIGH);
  delay(500);
  digitalWrite(ledPin4, LOW);

  digitalWrite(ledPin5, HIGH);
  delay(500);
  digitalWrite(ledPin5, LOW);
}
                     // wait for a second

Process

Brown Aesthetic Photo Collage Phone Wallpaper by joselyn ingabire

First trial

For my first trial, I placed a small textile piece on my body to test its flexibility and comfort. This helped me assess its wearability and sparked ideas for improvement.

Results

This picture shows how my wearable looks, highlighting the seamless integration of the pixels into the fabric for a sleek, functional design.

alt text Here is a video showcasing my wearable textile, taken over three different periods to demonstrate its development and functionality.

Servo Experiments

My initial exploration of servo motors led me into a simple yet captivating experiment: manually controlling the motor through direct data input. It was like sending secret commands to a little robot—type in a number, and watch it spring to life, ready to follow your lead

I programmed a script that let me control the servo’s rotation angle with pinpoint accuracy. Tweaking the values made it turn exactly how I wanted—precision at our fingertips. Much wow indeed!

Code

#include <Servo.h>

Servo myservo; // Create servo object to control a servo

void setup() {
  Serial.begin(9600);
  myservo.attach(9); // Attach the servo on pin 9 to the servo object
}

void loop() {
  int val; // Creating a variable val

  while (Serial.available() > 0) {
    val = Serial.parseInt();
    if (val != 0) {
      Serial.println(val);
      myservo.write(val);
    }
    delay(5);
  }
}

Vibrating Textile

Inspiring projects

Vibrating Clothes and Body Perception Researchers Ana Tajadura-Jiménez, Kristi Kuusk, and Aleksander Valjamae have developed "Magic Lining," a prototype garment embedded with vibration motors controlled by an Arduino Uno microcontroller. Their experiments demonstrated that specific vibration patterns can influence individuals' perceptions of their bodies and mental states. For instance, outward-moving vibrations on the back induced feelings of lightness and relaxation, while inward-moving patterns led to sensations of heaviness and anxiety. This innovative use of e-textiles suggests potential applications in enhancing mental well-being through wearable technology.Vibrating Clothes and E-Textiles – Popular Mechanics

Materials Needed

✅ Crochet hook (size depends on your yarn)

✅ Mini vibration motor (coin or small DC motor)

✅ Conductive thread (or thin flexible wires)

✅ 3V coin cell battery or LiPo battery

✅ Battery holder (optional)

✅ Small switch (or use a snap button as a switch)

✅ Needle & thread

Step-by-Step Instructions:

1️⃣ Crochet the Base Glove

Use a simple crochet pattern to make a fingerless glove or a full glove.

2️⃣ Attach the Vibration Motor

Sew the motor inside the glove, ideally at the palm, fingertips, or back of the hand. You can create a small crochet pocket to hold the motor in place.

3️⃣ Connect the Circuit

Sew conductive wire sfrom the motor’s positive wire to the battery’s positive side. Sew another wire from the motor’s negative wire to the battery’s negative side.

4️⃣ Secure the Connections

Insulate the conductive wire so it doesn’t short-circuit. You can use fabric glue, clear nail polish, or heat shrink tubing to protect the wires.

5️⃣ Test Your Glove!

Circuit Diagram

alt text

Process

alt text

Code

const int buttonPin = 2;      // Button input pin
const int motorPin = 9;       // Motor output pin

void setup() {
  pinMode(buttonPin, INPUT_PULLUP); // Use internal pull-up resistor
  pinMode(motorPin, OUTPUT);
}

void loop() {
  int buttonState = digitalRead(buttonPin);

  if (buttonState == LOW) { // Button pressed
    digitalWrite(motorPin, HIGH); // Turn motor on
  } else {
    digitalWrite(motorPin, LOW);  // Turn motor off
  }
}

Results