9. Wearables¶
Research and Ideation
In textiles, wearable refers to any material or fabric designed to be worn on the body as clothing, accessories, or functional garments. These textiles are typically flexible, durable, and comfortable to suit the needs of the wearer. Wearables also extend to technologically enhanced garments that incorporate electronics or sensors to perform specific functions.
Types of Wearable in Textile
Visual actuator
Inspiration¶
To see the full documentation and progress of my wearable project, check out E-Textiles for Healthcare.
A visual actuator in wearable technology is a component that produces visible responses—such as light, color changes, or movement—to communicate information or trigger reactions. Commonly used visual actuators include LEDs, OLED displays, or color-changing materials. In the context of wearables, they are often integrated into clothing or accessories to provide real-time feedback based on data from sensors or user interaction. These actuators not only serve a functional purpose but also enhance the aesthetic and expressive potential of the garment.
Materials needed
Material/Component | Use |
---|---|
LEDs | Visual output — emit light as feedback or decoration |
Conductive thread or wires | To connect LEDs and electronic components in a flexible way |
Microcontroller ( Arduino Nano) | Controls the LEDs and responds to sensor inputs |
Power source | Powers the circuit and wearable device |
Resistors | Used to limit current to the LEDs |
Knitted or crocheted top | The base textile for embedding the visual actuator |
Needle and scissors | For sewing conductive thread or attaching components |
Fabric adhesive | To secure components in place without damaging the fabric |
Optional sensors ( light) | To trigger LED behavior based on user movement or environment |
Circuit skecth
The circuit sketch combines LEDs, a power source, and an Arduino Nano to make the crop top interactive. It’s lightweight, flexible, and fits seamlessly into the wearable’s design.
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
For the first time, I want to use the Arduino Nano as a controller in my wearable project to explore how it can manage sensors and enhance interactivity.
CODE
#define LED1 2
#define LED2 3
#define LED3 4
#define LED4 5
void setup() {
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
}
void loop() {
// Turn all LEDs ON
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
delay(500);
// Turn all LEDs OFF
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED4, LOW);
delay(500);
}
Procedure to Integrate Visual Actuators in Wearable Technology
Step 1: Plan Your Design
• Decide where you want the LEDs to be placed on your wearable (e.g., shoulders, chest, sleeve).
• Sketch the circuit path, including where the microcontroller, battery, and any sensors will be located.
• Plan how wires or conductive thread will run through the textile.
Step 2: Prepare the Textile Base
• Lay out your knitted or crocheted top flat.
• Mark LED and component positions using chalk or removable fabric marker.
Step 3: Sew in the Circuit
• Use conductive thread or thin flexible wires to sew or connect.
• The positive (anode) side of the LED to a digital output pin on the microcontroller.
• The negative (cathode) side of the LED to the GND pin on the microcontroller.
• If needed, sew in resistors in line with each LED to limit current.
• Avoid crossing conductive threads; insulate where needed.
Step 4: Attach the Microcontroller
• Use fabric adhesive or hand-sew the microcontroller ( Arduino Nano) to a stable part of the top.
• Connect it to the LED lines using conductive thread or wires.
Step 5: Add Power Supply
• Secure the battery holder to the top.
• Connect the + and – terminals to the microcontroller's VIN and GND pins respectively.
• Add an on/off switch if desired, to control power flow.
Step 6: (Optional) Add Sensors
• Attach optional sensors ( light) as needed.
• Wire them to the analog or digital input pins of the microcontroller.
Step 7: Upload Code
• Connect the microcontroller to your computer via USB.
• Upload a basic program to control the LEDs
Result
This image beautifully captures the successful integration of wearable technology into fashion, showcasing a crocheted top enhanced with glowing blue LEDs. It exemplifies how visual actuators like LEDs can be creatively embedded into handmade garments to combine aesthetics with interactivity. This project not only highlights technical skill and creativity but also reflects the exciting potential of merging traditional craft with modern electronics to create expressive, functional wearables.
Smart Jacket:
Materials Needed¶
To build this Smart Jacket, you’ll need:
Component | Use |
---|---|
Arduino Nano | Acts as the microcontroller to process sensor input . |
Power Source (e.g., Li-ion Battery Pack) | Supplies portable power to the system. |
Jumper Wires | Connects electronic components within the jacket. |
Jacket | Base wearable garment for embedding components. |
Knitting machine and Yarns | Used for attaching and securing components inside the jacket. |
Breadboard or Custom PCB | For prototyping or permanently soldering connections. |
Circuit diagram
For the second experiment, I chose to use the Xiao ESP32 as the main controller. I want to first test the setup by building the circuit on a breadboard, which will help me understand how the components interact and ensure everything works before integrating it into the final design. This step allows for easy adjustments and gives me a clear overview of the connections and functionality.
1. Gather and Test Components¶
- LEDs
- Arduino Nano
- Power source (battery)
- jumper wires
- Test each component independently to make sure they work before embedding.
2. Embed Wiring Softly¶
- Route conductive thread or flexible wires along seams or through stitch gaps in the knit.
- Use fabric glue, stretchable tape, or zigzag stitching to secure the wiring without restricting flexibility.
- Avoid crossing threads to reduce short-circuit risks.
3. Secure Electronics¶
- Mount the Arduino on a small felt or fabric patch and hand-stitch it inside a discreet pocket or area of the jacket.
- Place the battery in a safe, balanced spot to keep weight distributed.
5. Upload and Test Code¶
-
Write Arduino code to:
-
Read sensor input (or simulate trigger events).
- Activate specific motors based on data or signals.
- Upload via USB and test motor response.
- Calibrate for comfort and appropriate vibration strength.
CODE¶
#define LED1 2
#define LED2 3
#define LED3 4
#define LED4 5
#define LED5 6
#define LED6 7
#define LED7 8
#define LED8 9
const int ledPins[] = {LED1, LED2, LED3, LED4, LED5, LED6, LED7, LED8};
const int buttonPin = 10;
bool ledState = false;
bool buttonPressed = false;
unsigned long lastDebounceTime = 0;
unsigned long debounceDelay = 50;
int currentLed = 0;
int direction = 1; // 1 = forward, -1 = backward
unsigned long previousMillis = 0;
const unsigned long interval = 300; // 300ms for each blink
void setup() {
Serial.begin(115200);
Serial.println("System Ready. Waiting for button press...");
for (int i = 0; i < 8; i++) {
pinMode(ledPins[i], OUTPUT);
digitalWrite(ledPins[i], LOW);
}
pinMode(buttonPin, INPUT_PULLUP);
}
void loop() {
static bool lastButtonReading = HIGH;
bool currentReading = digitalRead(buttonPin);
if (currentReading != lastButtonReading) {
lastDebounceTime = millis();
}
if ((millis() - lastDebounceTime) > debounceDelay) {
if (currentReading == LOW && !buttonPressed) {
buttonPressed = true;
ledState = !ledState;
if (ledState) {
Serial.println("Button Pressed: Starting blinking sequence...");
currentLed = 0;
direction = 1;
} else {
Serial.println("Button Pressed: Stopping and turning OFF all LEDs...");
for (int i = 0; i < 8; i++) {
digitalWrite(ledPins[i], LOW);
}
}
}
if (currentReading == HIGH) {
buttonPressed = false;
}
}
lastButtonReading = currentReading;
if (ledState) {
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
// Turn OFF all LEDs first
for (int i = 0; i < 8; i++) {
digitalWrite(ledPins[i], LOW);
}
// Turn ON the current LED
digitalWrite(ledPins[currentLed], HIGH);
Serial.print("Blinking LED ");
Serial.println(currentLed + 1);
// Move to next LED
currentLed += direction;
// If we reach the end, reverse direction
if (currentLed >= 8) {
currentLed = 7; // Stay at last LED
direction = -1; // Reverse
} else if (currentLed < 0) {
currentLed = 0; // Stay at first LED
direction = 1; // Forward again
}
}
}
}
Final Adjustments¶
-
Test the full system while wearing the jacket:
-
Check for overheating, vibration accuracy, and comfort.
- Reinforce any weak connection points and ensure breathability is preserved.
- Make the electronics removable if you plan to wash the jacket.
Smart Jacket Result
Vibrating sweater¶
For this vibrating textile experiment, I decided to use the digital sensor I worked with during the E-Textile week. It provided a simple way to activate the vibration when the textile was touched.
Inspiring projects¶
It's true that clothing is one of the primary ways that people express themselves—beyond providing comfort, the things you wear can help exude confidence, and in the case of high fashion, can even elicit awe. But what if your clothes could take things a step further and actually change your mental state?
Vibrating Clothes and the Future of E-Textiles – Popular Mechanics
Circuit Diagram¶
Materials Needed¶
-
knitting machine (size depends on your yarn)
-
Mini vibration motor (2)
-
3V battery
-
Battery holder
-
Small switch ( snap button as a switch)
-
jumper wire
-
XIAO ESP S32
Process¶
Some pictures were taken during my experiment to document the process and capture important steps and results. These images help illustrate the materials I used, the setup, and the changes that occurred over time, providing visual support for my findings.
Internal connection¶
Code¶
// Pin definitions
const int buttonPin = 2; // Pushbutton connected to D2
const int motorPin1 = 3; // Vibrating Motor 1 on D3
const int motorPin2 = 4; // Vibrating Motor 2 on D4
// Variable to store button state
int buttonState = 0;
void setup() {
// Initialize pins
pinMode(buttonPin, INPUT_PULLUP); // Use internal pull-up resistor
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
// Initialize motors OFF
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
}
void loop() {
// Read the state of the button
buttonState = digitalRead(buttonPin);
// Check if button is pressed
if (buttonState == LOW) {
// Button pressed → turn on motors
digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, HIGH);
} else {
// Button released → turn off motors
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
}
}