Support the creation of content on this website through PATREON!
Example Projects
Workshops
Announcements
Actuators
Connections
Power
Sensors
Traces

Circuits and Code Wireless

Conductive Materials
Non-Conductive Materials
Tools
Techniques
Thinking Out Loud
Circuits and Code
  • Arduino Overview
  • Arduino as Bluetooth HID
  • ATtiny: 7-Segment Display
  • ATtiny: Capacitive Sensing
  • ATtiny: Programming
  • ATtiny Serial & Wireless Boards!
  • ATtiny: Soft Serial
  • ATtiny: Sound
  • ATtiny: Soft Fade
  • Multiplexed Matrix
  • Controlling EL Panel and EL Wire
  • EL panel/wire inverter hack
  • EMF amplifier
  • Heat Controlling Circuit
  • LED with Light Sensor
  • Lilypad XBee Shield
  • pressure matrix code + circuit
  • Pull-up Resistors
  • RGB Colour Fade
  • simple heat circuit
  • Solar Powered Motor Circuit
  • Sound Amplifying Circuits
  • Teensy as HID Device
  • Transistor Switch
  • Volume Detection
  • Visualization: 2x2 Matrix
  • Visualization: Drawing
  • Visualization: Graph
  • Visualization: Pressure Sensor Matrix
  • Visualization: Touchpad
  • Voltage Divider
  • 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:

    From 2013-2015 Mika is 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
    Circuits and Code

    pressure matrix code + circuit

    In this post I want to try and explain how a pressure matrix built from conductive rows and columns with a piezoresistive material (Eeonyx, velostat) in between works, how to wire it up to an arduino and write the Arduino code that will parse through the rows and columns to read the individual pressure points at each row/column intersection.

    1) how a piezoresistive pressure sensor works
    2) wiring matrix to arduino
    3) the matrix code

    matrix illustrations

    More illustrations >> https://www.flickr.com/photos/plusea/albums/72157691421107353

    Translating WORLD to COMPUTER:
    matrix illustrations


    1) how a piezoresistive pressure sensor works

    the piezoresistive effect is described as “a change in the electrical resistivity of a semiconductor or metal when mechanical strain is applied”. How does this “change in electrical resistivity” happen?
    Together with Maurin D. and Adrian F., I’ve speculated about the factors that play into this, and have attempted to describe it more detail here:
    >> https://www.kobakant.at/DIY/?p=7832

    In this illustration I try to capture the fact that there is not only a change in resistance happening inside the material, but also between the electrodes and the material.
    Piezo/resistance

    In etextiles for piezoresistive materials, we most often use:
    – Velostat/Linqstat (because it is so easy and cheap to get, the downside being it is plastic sheet)
    – Eeonyx fabrics (hard to get)
    – knit/woven/felted steel fiber blends or steel fiber yarn blends (https://www.kobakant.at/DIY/?p=6005)

    And on either side of these materials we create conductors/leads/electrodes/probes by sewing lines of conductive thread, fusing strips of conductive fabric……

    There are many many ways to assemble a fabric pressure sensor or pressure sensor matrix. Here are a few:

    SOFT

    With the same principal you can go on to make larger soft fabric touchpads like this one:
    >> https://www.kobakant.at/DIY/?p=7651

    SEWN directly onto the piezoresistive

    >> https://www.kobakant.at/DIY/?p=6900

    WOVEN from strips

    >> https://www.kobakant.at/DIY/?p=4296

    WOVEN through holes

    >> https://www.kobakant.at/DIY/?p=6889

    WOVEN & stretchy

    >> https://www.kobakant.at/DIY/?p=7217

    STRETCHY

    And stretchy ones too:
    >> http://www.kobakant.at/DIY/?p=7639

    in neoprene

    >> https://www.kobakant.at/DIY/?p=213

    KAPTON and copper tape

    >> https://www.kobakant.at/DIY/?p=7443
    Type-pad pressure matrix


    3×3 Paper Matrix Example

    This is the 3 x 3 paper touchpad that you can quickly assemble in order to go through the example and learn to build the circuity and write the code.

    Photos >> https://www.flickr.com/photos/plusea/albums/72157708415692535

    template to print on paper:
    3x3 paper matrix template
    3x3 paper matrix template

    print, cut, tape, assemble:
    Pressure matrix workshop
    Pressure matrix workshop
    Pressure matrix workshop


    2) wiring matrix to arduino

    TRANSLATING: world –> computer
    – resistance –> voltage
    – analog –> digital

    matrix illustrations


    TRANSLATING: resistance(ohm) –> voltage(volt)

    Ohm’s law: V = I x R

    matrix illustrations

    Velostat = fixed resistor
    Velostat = variable resistor

    matrix illustrations

    matrix illustrations

    matrix illustrations


    Voltage Divider:

    matrix illustrations

    matrix illustrations

    matrix illustrations

    matrix illustrations

    matrix illustrations

    matrix illustrations

    matrix illustrations


    3) the matrix code

    TRANSLATING: analog –> digital (using the ADC)
    ADC = Analog Digital Converter:
    analogRead(pin#);

    matrix illustrations

    Internal pull-up resistor
    pinMode(pin#, INPUT_PULLUP);

    matrix illustrationsmatrix illustrations

    matrix illustrations

    2 sensors
    matrix illustrations

    3 sensors
    matrix illustrations

    6 sensors ?????????????
    matrix illustrations

    9 sensors !
    matrix illustrations


    CODE

    GROUND the pin:
    pinMode(pin#, OUTPUT);
    digitalWrite(pin#, LOW);

    matrix illustrations

    IGNOTE the pin:
    pinMode(pin#, INPUT);

    matrix illustrations

    1:
    matrix illustrations

    READ from this pin:
    pinMode(pin#, INPUT);
    analogRead(pin#);

    matrix illustrations

    READ from this intersection:
    matrix illustrations

    matrix illustrations

    2:
    matrix illustrations

    3:
    matrix illustrations

    4:
    matrix illustrations


    Wiring:
    matrix illustrations
    matrix illustrations



    Leave a comment