Deliverables¶
Planning¶
I have prepared a very light sketch and planned my activities. I am not much of a planner, so this was a little bit hard for me but, this activity helped to structure a bit more.
And made a to-do list in Milanote so I can have all my moodboards and storyboards at one place.
BoM bill of materials¶
The materials, that I have used varied a lot since, I have made quiet a lot of changes during my process. But here is the list of the things I have used.
Materials¶
Qty | Description | Price | Link | Notes |
---|---|---|---|---|
1 | Conductive Copper Fabric | 18.00 EUR | https://amzn.to/42FCtrS | |
2 | Lycra Fabric 2m | 17.00 EUR | https://www.dumlatek.cz/produkt/polyamidovy-uplet-2/ | bought in CZ |
2 | Lycra Mesh 1.5m | 15.00 EUR | bought in store | |
1 | BareConductive Touch Board | 58.90 EUR | https://www.bareconductive.com/products/touch-board | |
2 | STEMMA QT Speaker | 11.20 EUR | https://www.digikey.com/ | |
1 | magicPLA Metallic Emerald | 12.99 EUR | https://www.3djake.nl/3djake/magicpla-metallic-emerald | used in the Lab |
1 | Flexible Filament | 12.99 EUR | https://www.3djake.nl/3djake/magicpla-metallic-emerald | used in the Lab |
1 | 20 Metal Snap Buttons | 12.00 EUR | bought in store |
Useful links¶
Slide show¶
Pitch Presentation¶
Midterm Presentation¶
Final Presentation¶
Story telling script¶
The Performance Story¶
The year is 5089, words have become a lost legacy. There was a time when humans came to the conclusion that words, no matter how well they were spoken or written, were simply not enough to communicate. After many misunderstandings, it was decided that words must be wiped out from the planet altogether. Instead, they turned to technology and data to facilitate empathy and trust between individuals. They greeted each other through touch, danced through conflicts and the social media bickering became a joke no one could understand. They never use names. An evoking thought is all it’s needed to start a dialogue. But even though so much has changed, human curiosity and need for understanding the past remains the same. In this world she is known as the collector, an archeologist of sorts. She had discovered an industrial abandoned space, and the only thing she could explore was data - the pieces of not always perfectly accurate heart data left behind as artefacts. She knew that she could bring history back to life by examining and experiencing this data. And so, piece by piece, heart by heart, she danced through the data. Every time she processed a root of data-stream, she gained knowledge, a fuller picture, and a clearer melody. She kept dancing until there were no unknown pieces left. Her pocket was full. She understood. As she danced, she couldn't help but wonder and she asked herself: “Were you aware? Did you mean to leave us a message? Were you creating a story?” And she kept dancing, lost in the beauty of the past and the present.
Video Story Board¶
Fabrication Files¶
These are the final Fabrication Files:
Code¶
Here is the code that I have used the finals.
#include <Adafruit_Sensor.h>
#include <Adafruit_ADXL343.h>
#define ADXL343_SCK 13
#define ADXL343_MISO 12
#define ADXL343_MOSI 11
#define ADXL343_CS 10
#include "Compiler_Errors.h"
// touch includes
#include <MPR121.h>
#include <MPR121_Datastream.h>
#include <Wire.h>
// MP3 includes
#include <SPI.h>
#include <SdFat.h>
#include <FreeStack.h>
#include <SFEMP3Shield.h>
// touch constants
const uint32_t BAUD_RATE = 115200;
const uint8_t MPR121_ADDR = 0x5C;
const uint8_t MPR121_INT = 4;
// serial monitor behaviour constants
const bool WAIT_FOR_SERIAL = false;
// MPR121 datastream behaviour constants
const bool MPR121_DATASTREAM_ENABLE = false;
// MP3 variables
uint8_t result;
uint8_t lastPlayed = 0;
// MP3 constants
SFEMP3Shield MP3player;
// MP3 behaviour constants
const bool REPLAY_MODE = true;
SdFat sd;
Adafruit_ADXL343 accel = Adafruit_ADXL343(12345);
void setup() {
Serial.begin(BAUD_RATE);
accel.begin();
/* Set the range to whatever is appropriate for your project */
accel.setRange(ADXL343_RANGE_16_G);
pinMode(LED_BUILTIN, OUTPUT);
sd.begin();
MPR121.begin();
MPR121.setInterruptPin(MPR121_INT);
if (MPR121_DATASTREAM_ENABLE) {
MPR121.restoreSavedThresholds();
MPR121_Datastream.begin(&Serial);
} else {
MPR121.setTouchThreshold(40);
MPR121.setReleaseThreshold(20);
}
MPR121.setFFI(FFI_10);
MPR121.setSFI(SFI_10);
MPR121.setGlobalCDT(CDT_4US); // reasonable for larger capacitances
digitalWrite(LED_BUILTIN, HIGH); // switch on user LED while auto calibrating electrodes
delay(1000);
MPR121.autoSetElectrodes(); // autoset all electrode settings
digitalWrite(LED_BUILTIN, LOW);
result = MP3player.begin();
MP3player.setVolume(5, 5);
}
void loop() {
/* Get a new sensor event */
sensors_event_t event;
accel.getEvent(&event);
MPR121.updateAll();
// only make an action if we have one or fewer pins touched
// ignore multiple touches
if (MPR121.getNumTouches() <= 1) {
for (int i=0; i < 12; i++) { // check which electrodes were pressed
if (MPR121.isNewTouch(i)) {
digitalWrite(LED_BUILTIN, HIGH);
if (i <= 11 && i >= 0) {
if (MP3player.isPlaying()) {
//MP3player.setBassAmplitude(event.acceleration.x);
if (lastPlayed == i && !REPLAY_MODE) {
// if we're already playing the requested track, stop it
// (but only if we're not in REPLAY_MODE)
MP3player.stopTrack();
} else {
// if we're already playing a different track (or we're in
// REPLAY_MODE), stop and play the newly requested one
MP3player.stopTrack();
MP3player.playTrack(i-0);
lastPlayed = i;
}
} else {
// if we're playing nothing, play the requested track
MP3player.playTrack(i-0);
lastPlayed = i;
}
}
} else {
if (MPR121.isNewRelease(i)) {
digitalWrite(LED_BUILTIN, LOW);
}
}
}
}
if (MPR121_DATASTREAM_ENABLE) {
MPR121_Datastream.update();
}
}
-
File: Suit Pattern ↩
-
File: Electronics ↩
-
File: Squares for Bodice ↩
-
File: Music Files ↩