AccèsCotes


a keyboard distributed over garments and accessories


the setup


the setup

AccèsCotes - a keyboard distributed over garments and accessories - was an invited project at the Berlin fashionhackday 2017.

Fashionhackday 2017

the setup- Copyright: (c) Wear It Berlin - Foto-Credit: (c) Wear It Berlin / Michael Wittig, Berlin

The fashionhackday took place at the Fablab Berlin.

the setup- Copyright: (c) Wear It Berlin - Foto-Credit: (c) Wear It Berlin / Michael Wittig, Berlin

Me (Nadja Kutz) talking at Fashionhackday.



Basic Functionality


The principle tongue-in-cheek idea behind it was to enforce more body movements via placing the "buttons" of a keyboard on different garment items/accessories (like by e.g. having the buttons for the vowels on a bag, the delete button on another accessory and the rest on the trousers). The buttons on the trousers were realized via conductive fabrics and capacitive sensors, which sent the "button pressed signal" on the trouser (which was actually only a gaiter/cuff slipped over thighs and calves) via bluetooth to a phone. The possibility to hook up visual feedback via EL Wire was also demonstrated.

In the below video the functionality of the gaiters/cuff is explained:


Howto

In the video the basic features are shown and briefly explained. In order to set-up something similar you need, apart from the conductive fabrics and yarns, the following components: A Bluefruit Feather 32x4 or a Feather MO and for the capacitive sensing MPR121 breakoutboards. The general hook-up for the Feathers and the MPR121 is exactly as described in the Adafruit tutorials. The Arduino MasterFile for the set-up is Keymaster.ino. In addition you also need the BluefruitConfig.h from Adafruit. The Feather can accomodate up to 4 MPR121 boards that means it is able to digest up to 48 fabric patches. Each MPR121 sends 12 bits for the 12 patches, which are hooked to it. In Keymaster.ino currently only the first 12 bits are used for letters.

This document documents the current status of the project.

disclaimer

This page here documents what we tried. If you want to build something similar feel free to do so but we can not be made responsible for any damage, failure to deliver the expected performace or whatever. The file Keymaster.ino is merging and supplementing two Adafruit softwares, which are referenced in the file. The merger was written by Tim Hoffmann. it has a MIT/BSD Licence (see files).

The Julia File and the table file (see below) were also written by Tim Hoffman (MIT Licence).

in addition you may need...

Being able to change the assignment of MPR121 bits to letters fastly (i.e. the assignment of letters to fabric patches) is important for testing out different usability approaches. Doing this by hand in keymaster.ino would easily become messy so this is done via an assignment table. The concrete assignment is described in the following.

The assignment of letters to patches (or to pins if you want) was very much inspired by a precursor project which was just a simple keyboard-3x5-grid cuff:

grid

It seems easier to remember letter assignments on such a grid then like via a long row. So the assignment of letters to the 12 MPR121 bits is made similarily - that is the 12 bits of the MPR121 are partitioned into 4 blocks with 3 bits each and then the 3 bits are used for encoding a 4 digit word with base 4, that is a 3 bit block is encoded as:
000 means 0
001 means 1
010 means 2
100 means 3
if more than 1 bit is set then the highest bit only counts, so 011 is the same as 010. As an example: The 12 digit base 2 number: 001 010 001 111 becomes then the 4 digit base 4 number: 1 2 1 3.
The modifier ctrl, shift, alt and cmd are currently the first 4 bits of the second MPR121.
To make life easier the 4 digit base 4 number and the modifiers can be hooked to letters via the table in km.cfg. The Julia program compileConfig.jl translates the table into a C-Headerfile which is the file km.h. That is if you change the letter-to-bit-assignments you would need to rerun the Julia program or edit the header file.