Example Projects
Workshops
Announcements
Actuators
Connections
Power
Sensors
Traces

Circuits and Code Wireless

Meet the Materials
Conductive Materials
Non-Conductive Materials
Tools
Techniques
Thinking Out Loud
Sensors
  • 3D Printed Sensors
  • Adjustable Slider
  • Analog Pin Stroke Sensor
  • Balloon Sensor
  • Beaded Sway Sensor
  • Beaded Tilt Sensor Swatch
  • Bonded Bend Sensor
  • Button Buttons
  • Button Switch
  • Capacitive Fabric Slider/Wheels
  • Cast Pressure Sensor
  • Circular Knit Inflation Sensor
  • Circular Knit Stretch Sensors
  • Conductive Pompom
  • Constructed Stretch Sensors
  • Copper Pompom
  • Crochet Button
  • Crochet Conductive Bead
  • crochet crotch lemon
  • Crochet finger Sensor
  • crochet pressure sensor
  • Crochet Tilt Potentiometer
  • Crochet/Knit Pressure Sensors
  • Crochet/Knit Squeeze Sensors
  • dangle data gloves
  • Danish Krown Slide-Switch
  • Dataglove Flex Sensor Rig
  • Donut Pot
  • Resistive Sensors Overview
  • Elastic Button Fabric
  • Embroidered Potentiometers
  • extreme knobbly knee sensor
  • Fabric Button
  • Fabric Potentiometer
  • Fabric Stretch Sensors
  • felted crochet pressure sensor
  • Felted Pompom Pressure Sensor
  • Finger Sensor
  • Fingertip Contact Switch
  • Fish Scale Sensor
  • Fleckerlteppich Pressure Sensor
  • Position Sensing on the Body
  • interested sensor #2
  • interested sensor #1
  • JoyButton
  • Kinesiology Tape bend sensor
  • Knit Ball Sensors
  • Knit Contact Switch
  • Knit Stroke Sensors
  • Knit Touchpad
  • Knit Wrist Sensors
  • Knit Accelerometer
  • Knit Stretch Sensors
  • Light Touch Pressure Sensor
  • Magnetic Pincushion Sensor
  • Matrix: Anti-Static Foam
  • Matrix: Kapton + Copper
  • Matrix: Neoprene
  • Matrix: Simple (by hand)
  • Matrix: Simple (by machine)
  • Matrix: Soft Fabric
  • Matrix: Stretchy Touchpad
  • Matrix: Woven (non-stretch)
  • Matrix: Woven (stretchy)
  • Needle Felt Squeeze Sensor
  • Neoprene Bend Sensor
  • Neoprene Pressure Sensor
  • Neoprene Stroke Bracelet
  • painted stretch sensor
  • Paper + Aluminum foil pressure sensor
  • Paper + Aluminum foil contact switch
  • Piezoresistive Fabric Touchpad
  • Pin Pot
  • Pin Stroke Gauntlet
  • Pompom Tilt Sensor
  • Pressure Button
  • Sheath Bend Sensor
  • Simple Fabric Pressure Sensors
  • DON'T TOUCH, MOVE
  • Skin Sensor
  • Sole Sensing
  • Spikey Stroke Sensors
  • Spinning Sensor Yarn
  • Stickytape Sensors
  • Stocking Skin Stretch Sensor
  • Stroke Sensor
  • Textile Sensor Demos for Summer School
  • Tilt Potentiometer
  • Tilt Potentiometer II
  • Tilt Sensor
  • VOLTAGE DIVIDER worksheet
  • Voodoo Sensor
  • Wimper Switch
  • Woven Pressure sensors
  • Wrist-Flick-Sensor
  • Zebra Fabric Stroke Sensors
  • Zipper Slider
  • Zipper Switch
  • Support the creation of content on this website through PATREON!
  • About
  • E-Textile Events
  • E-Textile Spaces
  • Newsletter
  • Print & Publications
  • E-Textile Shopping

  • SEARCH
    Content by Mika Satomi and Hannah Perner-Wilson
    E-Textile Tailor Shop by KOBAKANT
    The following institutions have funded our research and supported our work:

    Since 2020, Hannah is guest professor of the Spiel&&Objekt Master's program at the University of Performing Arts Ernst Busch in Berlin

    From 2013-2015 Mika was a guest professor at the eLab at Kunsthochschule Berlin-Weissensee

    From July - December 2013 Hannah was a researcher at the UdK's Design Research Lab

    From 2010-2012 Mika was a guest researcher in the Smart Textiles Design Lab at The Swedish School of Textiles

    From 2009 - 2011 Hannah was a graduate student in the MIT Media Lab's High-Low Tech research group led by Leah Buechley


    In 2009 Hannah and Mika were both research fellows at the Distance Lab


    Between 2003 - 2009 Hannah and Mika were both students at Interface Cultures
    We support the Open Source Hardware movement. All our own designs published on this website are released under the Free Cultural Works definition
    Sensors

    Wrist-Flick-Sensor

    Made during PIFcamp 2017, this textile sensor detects the impact of a conductive pendulum slapping against the wristband when the wrist is twisted back and forth in a flicking action. The conductive pendulum is made from a small heavy stone collected by the Soca river that has been sewn into a stretch conductive pouch.

    In this example video the contact of flicking triggers a sound sample to be played, and the impact/force/pressure of the flick determines the volume of the playback. While the pressure sensor works, the pressure is always related to the speed of flicking, so in a second iteration I would like to only have a contact switch and calculate the duration between flicks to determine impact.

    Flickr set >> https://www.flickr.com/photos/plusea/albums/72157711121338118

    VID_20210416_161830

    flic flac sensor

    PIFcamp 2017

    Conductive fabric underneath the piezoresistive fabric of the pressure sensor:
    PIFcamp 2017

    /*
    wristFlickDrum Code
    >>
    reads incoming serial values [0, 1023] and triggers a sound file
    when they are bellow a set threshold.
    the volume [-20, 20] of the playback depends on the incoming value.
    */

    import processing.serial.*;
    import ddf.minim.*;

    int maxNumberOfSensors = 1; // Arduino has 6 analog inputs, so I chose 6
    Serial myPort; // The serial port
    int[] sensorValues = new int[maxNumberOfSensors]; // array of previous values
    Minim minim;
    AudioSample sample;
    AudioPlayer player;

    void setup () {
    size(400, 400);
    //size(800, 600, P3D);
    println(Serial.list());
    String portName = Serial.list()[5];
    myPort = new Serial(this, “/dev/tty.usbmodem1411”, 9600);
    myPort.clear();
    myPort.bufferUntil(‘\n’);
    background(0);
    smooth();
    minim = new Minim(this);
    sample = minim.loadSample( “ding.wav”, 512);
    }

    void draw () {
    println(sensorValues[0]);
    if (sensorValues[0] < 900) {
    float volume = constrain(sensorValues[0], 20, 900);
    volume = map(volume, 20, 900, 20, -20);
    sample.setGain(volume);
    sample.trigger();
    }
    }

    void serialEvent (Serial myPort) {
    // get the ASCII string:
    String inString = myPort.readStringUntil(‘\n’);

    // if it’s not empty:
    if (inString != null) {
    // trim off any whitespace:
    inString = trim(inString);

    // convert to an array of ints:
    int incomingValues[] = int(split(inString, “,”));

    if (incomingValues.length <= maxNumberOfSensors && incomingValues.length > 0) {
    for (int i = 0; i < incomingValues.length; i++) {
    sensorValues[i] = incomingValues[i];
    }
    }
    }
    }



    Leave a comment