5. E-textiles¶
goals of the week & contents¶
- Produce one digital and one analog soft sensor.
- Try to reproduce the same sensor with different materials/techniques (hard/hard hard/soft soft/soft).
- Create my own digital and analog soft sensor.
- Program a LED interaction with a soft sensor.
- Integrate it in a swatch using hard-soft connections.
Here are some inspiring projects developed by previous participants:
A Digital Sensor provides a binary output: it only has two states, typically on (1) or off (0). It detects whether a certain condition is done or not, like a button press or a motion sensor.
An Analog Sensor, gives a range of values rather than just two. It detects continuous data, like temperature, light levels, among others. The output is typically a variable voltage that represents different levels, which is read by the Arduino as a number within a range (ex: 0-1023).
- Hard/Hard: Both the sensor and the conductive connections are made from rigid or stiff materials. For example, using copper tape or metal wires on a firm surface like plastic or cardboard.
- Hard/Soft: This involves combining rigid and flexible materials. For example, using conductive thread sewn into fabric along with rigid electronic components like a circuit board.
- Soft/Soft: Both the sensor and the conductive connections are made entirely of flexible materials. For instance, using conductive fabric for both the sensor and the connections.
Voltage (V) (Unit: Volts). Is the measure of electric potential energy per unit charge. It represents the force that pushes electric charges through a circuit.
Current (I) (Unit: Amperes). Is the flow of electric charge through a conductor, like a wire. It represents how many charges are moving through the circuit per second.
Resistence (R) (Unit: Ohms Ω). Is a measure of how much a material opposes the flow of electric current. It determines how much current will flow for a given voltage.
An Input refers to the data, signals, or information that is fed into a system or device for processing. It can come from various sources, such as sensors, user commands, or other systems.
An Output is the data, signals, or information that is produced by a system or device after processing the input.
In a Series Circuit, components are connected in a single path, meaning the same current flows through each component, but the voltage is divided among them. If one component fails, the entire circuit stops working.
In a Parallel Circuit, components are connected in multiple paths, so each component gets the same voltage, but the current is split across the branches. If one component fails, the rest continue to work.
Material | Details |
---|---|
Microcontroller | Arduino UNO or ATtiny |
ATtiny | ATtiny45 or ATtiny85 |
AVR programmer | or Arduino UNO |
Arduino kit | Arduino Starter kit |
Neopixels | sewable Flora neopixels |
Adafruit Gemma | Gemma board |
FTDI cable | or FTDI board |
Fabrics | resistive/conductive fabrics |
Threads | resistive/conductive threads |
Inks | resistive/conductive inks (thermochromic ink) |
Velostat | pressure-sensitive conductive sheet |
Snap metal buttons | +Metallic zippers |
Copper tape | + isulating tape |
Actuators | Mini vibration motors, speakers... |
Wires | jumpers, alligator clips |
tools¶
inspiration¶
While I was researching, I discovered a YouTube channel that serves as an archive for the work of Hannah Perner-Wilson. Later I found out that she is one of the co-founders of KOBAKANT, along with the artist and designer Mika Satomi. Her channel features a wealth of documentation, tutorials, and project showcases, all shared as open-source resources.
She focuses on exploring the electrical properties of various materials, blending traditional and contemporary craft techniques to develop innovative methods for building electronics that emphasize both materiality and the creative process. You can check her personal website.
workflow¶
1 FADE LED
const int LED_pin = A0; // Pin the LED is attached to
int brightness = 0; // how bright the LED is
int fadeAmount = 5; // how many points to fade the LED by
// the setup function runs once when you press reset or power the board
void setup() {
// initialize LED_pin as an output
pinMode(LED_pin, OUTPUT);
}
// the loop routine runs over and over again forever:
void loop() {
// set the brightness of the LED:
analogWrite(LED_pin, brightness);
// change the brightness for next time through the loop:
brightness = brightness + fadeAmount;
// reverse the direction of the fading at the ends of the fade:
if (brightness <= 0 || brightness >= 255) { // if brightness is smaller or equal to 0 or if brightness is bigger or equal to 255
fadeAmount = -fadeAmount;
}
// wait for 30 milliseconds to see the dimming effect
delay(30);
}
2 LDR AnalogRead SERIAL + FADE LED
int sensor_pin = A1;
int LED_pin = A0; // Pin the LED is attached to
int brightness = 0; // how bright the LED is
// the setup routine runs once when you press reset:
void setup() {
// initialize serial communication at 115200 bits per second:
Serial.begin(115200);
pinMode(LED_pin, OUTPUT);
}
// the loop routine runs over and over again forever:
void loop() {
// read the input on analog pin 0:
int sensorValue = analogRead(sensor_pin);
// print out the value you read:
Serial.println(sensorValue);
brightness = map(sensorValue, 3950, 4013, 0, 255);
brightness = constrain(brightness, 0, 255);
Serial.println("Mapped brightness value:");
Serial.println(brightness);
analogWrite(LED_pin, brightness);
delay(100); // delay in between reads for stability
}
In a Parallel Circuit, components are connected in multiple paths, so each component gets the same voltage, but the current is split across the branches. If one component fails, the rest continue to work.