1 of 75

Welcome to:

Textile Game Controllers

  • If you are not speaking, please MUTE your microphone by clicking here -->

  • Hold down the SPACE bar while speaking to temporarily unmute yourself

Session Leaders:

Izzie Colpitts-Campbell, Olivia Prior, Kate Hartman

During today’s session:

2 of 75

Things we are going to cover:

  1. Overview of Project & Partnership
  2. Live Circuit Demo
  3. Examples from Game Jam
  4. Resources Links
  5. Resource Slides (Material, Techniques, Code)

3 of 75

  1. Overview of Project & Partnership

4 of 75

About the Project

e-textiles

alternative game controllers

Textile Game Controllers

5 of 75

About the Project

6 of 75

About the Team

Kate Hartman

Yiyi Shao

Chris Luginbuhl

Olivia Prior

Manisha Laroia

Izzie Colpitts-Campbell

Jennie

Robinson Faber

Emma Westecott

7 of 75

About the Workshops

Intro to Textile Game Controllers, November 14, 2018

Body-Centric Game Controllers, March 27, 2019

Wearable Game Controllers, October 30, 2019

Stitch and Stuff

November 26, 2019

Fun with Felting

January 15, 2020

8 of 75

About the Game Jam

Saturday, May 29th & Saturday, June 6th

The Textile Game Controller Jam was meant to explore and study how electronic textile (e-textile) techniques can be used to create bespoke, alternative game controllers.

This game jam serves as a research creation activity that produces processes and prototypes that can inform and inspire future game makers, e-textile practitioners, and researchers about the potential opportunities that may exist in the intersection of these two practices.

9 of 75

Conductive vs. Non-conductive vs. Resistive

Conductive = able to conduct electricity

Non-conductive = not able to conduct electricity. Can provide insulation between conductive materials.

Resistive = can conduct some electricity but the amount varies, in this case by how much pressure is applied to the material.

10 of 75

Sensing Techniques

  1. Digital switches
  2. Analog sensors
  3. Capacitive sensors

11 of 75

Construction Techniques

12 of 75

The Kits

13 of 75

2. Live Circuit Demo

14 of 75

3. Examples from Game Jam

15 of 75

4. Links to Resources

16 of 75

Resources

17 of 75

5. Resource Slides

18 of 75

Materials

19 of 75

Materials

Fabric

Felt

Embroidery hoop

Regular thread

Conductive thread

Embroidery floss

Needles

and threader

Circuit Playground Classic

20 of 75

Materials

Wool fibre

Conductive fabric

(iron-on adhesive)

Velostat

Resistors

Conductive fibre

Conductive fabric

(no adhesive)

21 of 75

Materials

Alligator clips

Stickers

Finger protectors

for felting

Felting needles and sponge

Thick felt

Design templates

22 of 75

Concepts

23 of 75

Conductive vs. Non-conductive vs. Resistive

Conductive = able to conduct electricity

Non-conductive = not able to conduct electricity. Can provide insulation between conductive materials.

Resistive = can conduct some electricity but the amount varies, in this case by how much pressure is applied to the material.

24 of 75

Digital vs Analog

VS.

25 of 75

Sensing Techniques

26 of 75

Three sensing techniques

  • Digital switches
  • Analog sensors
  • Capacitive sensors

These sensors can be created with different conductive materials (fabric, thread, fibre) and different crafting and/or assembly methods (sewing, gluing, felting, etc.).

27 of 75

Digital Switches: Conductive Fabric

Connect

to Ground

Connect

to Pin

Use a conductive fabric/material to place over the gap & close the switch to activate it.

Connect

to Pin

Connect

to Ground

28 of 75

Digital Switches: Video Tutorial

29 of 75

Digital Switches: Circuits

to Ground

to Pin

* as per the Digital switches code on Github

30 of 75

Analog Sensors: Conductive Fabric & Velostat

Exploded View

Circuit Connections

Assembled Sensor

to Ground

to 3.3V

to Pin

Felt Cover

Conductive Fabric

Flap fold

Velostat

Conductive Fabric

Felt Cover

10K ohm

31 of 75

Analog Sensors: Cross-section View

Cross-section View

squishy non-conductive material (neoprene or felt)

* yellow indicates glue side of fabric

Velostat

Conductive Fabric

squishy non-conductive material (neoprene or felt)

Conductive Fabric

32 of 75

Analog Sensors: Pieces

Felt/Neoprene 1

Conductive Fabric 1

Velostat

Conductive Fabric 2

Felt/Neoprene 2

33 of 75

Analog Sensors: Assembly

Stack the pieces together sandwiching the Velostat between the conductive fabric and Felt on either side.

Use glue or stitches along the perimeter to hold the pieces together. If stitching, be careful not to stitch too tight. If gluing make sure to only do it around the edges.

Felt/Neoprene 1

Conductive Fabric 1

Velostat

Conductive Fabric 2

Felt/Neoprene 2

34 of 75

Analog Sensors: Video Tutorial

35 of 75

Capacitive Sensors: Conductive Fabric

(the sensor could take any shape you prefer. Here it is circular for simplicity.)

Tracing shape & cutting it out of conductive fabric.

Stitch the cut piece with conductive thread to the Adafruit board.

Conductive Thread

36 of 75

Capacitive Sensors: Conductive Fabric Video Tutorial

37 of 75

Capacitive Sensors: Felted

38 of 75

Capacitive Sensors: Felting Video Tutorial

39 of 75

Capacitive Sensors: Embroidered with conductive thread

40 of 75

Capacitive Sensors: Embroidery Video Tutorial

41 of 75

Circuit Diagrams

42 of 75

Digital Circuit Diagram

Another piece of conductive material/ a design is needed that allows for the two sections to touch i.e. bridge the switch.

Switch is activated!

Ground

Digital Pin

43 of 75

Analog Circuit Diagram

A stitched circuit with conductive thread used for the connections.

(*10k ohm resistor)

*10k Ω

Analog

sensor

Ground

3.3V

Digital Pin

44 of 75

Capacitive Circuit Diagram

A stitched circuit with conductive thread connecting the sensor to the capacitive pin.

45 of 75

What sensing method should I use?

46 of 75

Digital Switch

Activation

Surface Area

Sensitivity

Fabrication

Best suited materials

Is activated by bridging the gap between the positive and ground using any type of conductive material.

Works very well with a variety of surface areas.

Digital switches are either activated or they are not. The sensitivity relies on the material that is connecting the power and the ground - is it sizeable enough to consistently connect the two sides when using? I

Very simple - requires any conductive material.

Requires conductive thread to attach the sensing pad to the Circuit Playground

Any conductive material + conductive thread.

47 of 75

Analog Sensor

Activation

Surface Area

Sensitivity

Fabrication

Best suited materials

Is activated by pressure.

Works best on a smaller surface area.

Larger surface areas have a lower sensitivity.

Smaller surface areas give a more precise input value.

The input values may not be consistent between sensors.

This sensor works in a variable resistor circuit.

Assembly requires multiple steps.

Requires conductive thread to attach the sensing pad to the Circuit Playground

Conductive fabric

Velostat

Conductive Thread

10k Ohm Resistor

Felt

48 of 75

Capacitive Sensing

Activation

Surface Area

Sensitivity

Fabrication

Best suited materials

Is activated by skin or another conductive material.

Works well with a variety of surface areas.

The sensitivity varies depending on how far the sensing pad is placed from the pin.

Can not place capacitive sensing pad too close to another one because they may trigger each other.

Very simple - requires any conductive material.

Requires conductive thread to attach the sensing pad to the Circuit Playground

Any conductive material + conductive thread.

49 of 75

How do we use this stuff to control GAMES?

(Reading & Responding to Sensor Values)

50 of 75

Circuit Playground can act as a keyboard!

51 of 75

Testing Your Board as a Keyboard: Video Demo

52 of 75

Pre-Programmed Code

Every board is pre-programmed with a sample code containing 4 capacitive sensors, 2 digital switches, and 1 analog sensor.

The code is uploaded on GitHub Here

Screenshot of the code on Arduino

53 of 75

Adafruit Circuit Playground

  • Works with Arduino
  • Built in Neopixels
  • Built in speaker
  • Built in capacitive sensing
  • Powered via USB micro
  • Built in temperature sensor
  • Built in light sensor
  • Built in sound sensor
  • Built in buttons
  • Built in motion sensor

*note this is for the Adafruit Circuit Playground Classic

54 of 75

Coding Concepts

55 of 75

Thresholds

threshold

True

False

Sensor Value

Time

56 of 75

High/ Low

Input (e.g. buttons)

Output (e.g. LEDs)

High

Low

High

Low

57 of 75

Key press

Keyboard.press()

It functions as if a key was pressed and held on your keyboard.

Keyboard.write()

This is similar to pressing and releasing a key on your keyboard.

*Both are necessary to call Keyboard.begin() before using.

Keyboard Functions

58 of 75

Connecting to the Circuit Playground

59 of 75

Pinouts

Pinouts are the available connections you can make to your board.

Different types of Pinouts include:

  • Ground
  • Power
  • Digital
  • Analog
  • Capacitive

Each of these open spaces are

Pinouts

60 of 75

Pinouts: Power and Ground

Each pinout has a label.

This image highlights both

Power and Ground connections.

Ground = GND

Power = 3.3V

Battery Voltage= VBATT

61 of 75

Pinouts: Inputs

Pins can take in multiple types of inputs.

Input types are

  • Digital
  • Analog
  • Capacitive

Pins:

3, 2, 0, 1, 10, 9, 6, 12 are Capacitive & Digital

62 of 75

Pinouts: Analog Inputs

Analog inputs are not directly labelled on the board.

#10 = A10

#9 = A9

#6 = A7

#12 = A11

** The “A” beside the number just indicates that the pin is analog. When using this pin in Arduino, simply use the “11” instead of A11 or 12. **

63 of 75

Pin Outs in the example code

All of your boards are pre-programmed with this sample code.

(If you haven’t uploaded new code!) These are the following pins that you can test:

Capacitive Touch = 3, 10, 9, 6

Digital Switch = 0, 1, GND

Analog Sensor = 12

64 of 75

  1. Download the latest Arduino
  2. Install drivers (Windows 7 only)
  3. Select board under the “Tools” menu - Adafruit Circuit Playground

How to Program the Circuit Playground Classic

Step 3

65 of 75

  • Download the latest Arduino
  • Install drivers (Windows 7 only)
  • Select board under the “Tools” menu - Adafruit Circuit Playground
  • Select port under the “Tools” menu - COMx (Adafruit Circuit Playground)
  • Copy and Paste example code (link here)
  • Modify the code
  • Hit upload (the arrow beside the check mark in the upper left corner of the Arduino window)

How to Program the Circuit Playground Classic

Step 4

66 of 75

Alligator Clips are an easy and quick way to test your code before assembling your controller.

Clip them onto the pins to test your connections.

Testing: No thread!

An analog sensor connected to the Circuit Playground using alligator clips

67 of 75

Pins used: 3, 10, 6, 9

Items used: your finger

Other items that can be used: an alligator clip or another other conductive material

To test:

  • Use your finger (or other material) to touch each of the pins.

Testing: Capactive Touch

A video demonstrating how to test a capacitive sensor without any hard connections

68 of 75

Pins used: 0, 1, GND

Items used: 3 x alligator clips

To test:

  • Connect an alligator clip to each of the pins.
  • Touch the GND alligator clip to the 0 or the 1 alligator clip.

Testing: Digital Switch

A video demonstrating how to test a digital switch without any hard connections

69 of 75

Pins used: 3.3V, 12, GND

Items used: 4 x alligator clips, 1 x analog sensor, 1 x 10k Ohm resistor

To test:

  • Connect one end of the alligator clip to the 3.3V and the other end to the analog sensor.
  • Connect another alligator clip on the other side of the sensor. Use the other end to clip onto a 10k ohm resistor
  • Connect a third alligator clip from the second alligator clip to Pin 12
  • Connect a fourth alligator to the end of the 10k resistor. Use the other end to connect to the GND

Testing: Analog Sensor

A video demonstrating how to test an analog sensor without any hard connections

70 of 75

Pins used: 1, GND

Items used: conductive fabric & conductive thread

To test:

  • Copy & paste code (Link Here)
  • Connect an alligator clip to pin 1 and any GND pin on the board
  • Touch the GND alligator clip to the alligator clip connected to pin 1.

Example Code: Digital Switch

Image of the prototype made in the digital switch tutorial video

71 of 75

Pins used: 3.3V, 12, GND

Items used: conductive fabric, conductive thread, velostat, felt, 10k Ohm resistor

To test:

  • Copy & paste code (Link Here)
  • Connect one end of the alligator clip to the 3.3V and the other end to the analog sensor.
  • Connect another alligator clip on the other side of the sensor. Use the other end to clip onto a 10k ohm resistor
  • Connect a third alligator clip from the second alligator clip to Pin 12
  • Connect a fourth alligator to the end of the 10k resistor. Use the other end to connect to the GND

Example Code: Analog Sensor

Image of the prototype made in the analog sensor tutorial video

72 of 75

Pins used: 0

Items used to test: finger or alligator clip or conductive material

To test:

  • Copy & paste code (Link Here)
  • Use your finger or an alligator, or any conductive material to connect to pin 0.

Example Code: Capacitive Touch

Image of the prototype made in the capacitive touch sensor tutorial video

73 of 75

Pins used: 6, 9

Items used to test: finger or alligator clip or conductive material

To test:

  • Copy & paste code (Link Here)
  • Use your finger or an alligator, or any conductive material to touch pin 6 or 9.

Example Code: Capacitive Touch (Felt)

Image of the prototype made in the capacitive touch sensor tutorial video

74 of 75

Pins used: 2, 9

Items used to test: finger or alligator clip or conductive material

To test:

  • Copy & paste code (Link Here)
  • Use your finger or an alligator, or any conductive material to touch pin 2 or 9.

Example Code: Capacitive Touch (Embroidery)

Image of the prototype made in the capacitive touch sensor tutorial video

75 of 75

Designing Your Controller

Using the pre-programmed code to design a controller using all the pinouts in the example code

Making a design based off of new code