Personal Electronic Artifacts

Thesis Workshop 2

Saturday 2nd April 2011, 11-6pm

This workshop is specifically for individuals who already have experience with a craft. There is no restriction as to what craft participants should have experience with. While previous experience with a craft is required, no previous electronics experience is necessary.

– Location: High-Low Tech research group, MIT Media Lab, Cambridge/MA
– craft experience required (any craft), no experience with electronics necessary
– no fee, materials and tools provided
– max. 10 participants, email me to reserve a spot: plusea@mit.edu

Description

Have you ever wondered what kinds of electronics we would be using if we had crafted them ourselves? What kind of interface would you have built to interact with your music? What would your alarm clock look like? How would your doorbell feel? What shapes, sizes, colors, textures and functionality would a craft approach to building electronics offer?

The Kit-of-No-Parts workshop introduces participants to a craft approach to building electronics. Imagine you could sculpt a switch, carve a circuit or plate your own speakers. This workshop will cover a range of traditional and contemporary craft techniques including gilding, carving, casting, sculpting and plating, and demonstrate how a variety of craft materials can be formed into functioning electronic artifacts.

Craft as an expressive building processes requires an understanding of the materials and tools involved as well as skill in working them into the desired results. The results of this process are unique, diverse and personalized artifacts that merge materiality with functionality to allow for new understanding, aesthetics and interactions.

Participant creations

Downloads

Workshop Poster PDF >> http://web.media.mit.edu/~plusea/downloads/print/workshop-posters.pdf
Powerpoint Presentation >> http://web.media.mit.edu/~plusea/downloads/present/KoNP-Workshop2-Present.pptx.zip
Circuit Booklet PDF >> http://web.media.mit.edu/~plusea/downloads/print/workshop-circuit-booklet.pdf

Links

Photos on Flickr >> http://www.flickr.com/photos/plusea/sets/72157626301099789/

Schedule

Participants will be introduced to a range of materials, tools and techniques that can be used to craft electronics. After a short presentation and introductory activity, participants will proceed to build a small electronic artifact of their own.

Morning 11-1pm
– Introductions
– Presentation
– Brainstorm ideas for your personal electronic artifact
– Sketch a design
– Begin to build!

Lunch 1-2pm

Afternoon 2-6pm
– Build

5:30pm Show and tell

Poster

Code

This is the Arduino code that is on the ATtiny85 microcontroller:

//
// hannah perner-wilson, march 2011
// www.kit-of-no-parts.at
//
// code for sound and thermochromic output on an ATtiny85
// using leah buechley’s sound code, taken from: http://web.media.mit.edu/~leah/LilyPad/07_mound_code.html
// and with much help and advice from david mellis
// !!! the clock speed fuse has been changed to be 8 times as fast as normal !!!
//

int frequencyInHertz[] = {
2093, 2349, 2637, 2793, 3136, 3520, 3951, 4186}; // array for note frequencies
long delayAmount;
long soundTimeSample;
long lastSample;
int BUTTONstate = 0;
int SENSORstate = 0;
int previousSENSORstate = 0;
int SENSORgo = 0;
int sensorPin = 2;
int speakerPin = 3;
int LED0 = 0;
int LED1 = 1;
int LED2 = 2;
int reading;
int count = 0;
int threshold = 850;

void setup()
{
pinMode(sensorPin, INPUT);
digitalWrite(4, HIGH); // set internal pull-up resistor for sensorPin
pinMode(speakerPin, OUTPUT);
pinMode(LED0, OUTPUT);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
digitalWrite(LED0, LOW);
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
}

void loop() {

if(millis() – lastSample > 50){ // only do everything (except modulate note frequency) every 20ms. this is to improve sound qualit
lastSample= millis();
reading = analogRead(sensorPin);

// THERMOCHROMIC
if(reading < threshold && BUTTONstate == 0){ count++; BUTTONstate=1; } if(count == 1 && BUTTONstate == 1) { digitalWrite(LED0, HIGH); digitalWrite(LED1, LOW); digitalWrite(LED2, LOW); } if(count == 2 && BUTTONstate == 1) { digitalWrite(LED0, LOW); digitalWrite(LED1, HIGH); digitalWrite(LED2, LOW); } if(count == 3 && BUTTONstate == 1) { digitalWrite(LED0, LOW); digitalWrite(LED1, LOW); digitalWrite(LED2, HIGH); } if(count == 4 && BUTTONstate == 1) { digitalWrite(LED0, LOW); digitalWrite(LED1, LOW); digitalWrite(LED2, LOW); } if(count > 4) count = 1;
if(reading > threshold) BUTTONstate = 0;

// SOUND
SENSORstate = reading/(threshold/8);
if(SENSORstate != previousSENSORstate && SENSORstate < 8 && SENSORgo == 0){ SENSORgo = 1; delayAmount = (long)(1000000/frequencyInHertz[SENSORstate]); soundTimeSample = millis(); } if(millis()-soundTimeSample > 500){
SENSORgo = 0;
}
previousSENSORstate = SENSORstate;
}

if(SENSORgo){ // play sound
digitalWrite(speakerPin,HIGH);
delayMicroseconds(delayAmount);
digitalWrite(speakerPin,LOW);
delayMicroseconds(delayAmount);
}
}

3 Comments so far

Leave a Reply