Categories
interaction lab midterm project

midterm project: make, present & report

Turn & Link – Anya Zhukova (& Isabel)– Haider Gottfried

Our project was inspired by a minimalistic game “Linko” as it is mentioned in the proposal. We did not end up creating a kids-friendly game, however we have, in my opinion, succeeded in creating a fun interactive iteration of a linking game. Our goal was to make people want to engage with the pieces and feel rewarded when solving the puzzle, which we were striving to achieve by incorporating bright colors, the song and rainbow LEDs.

In the first week of making, we had a lot of problems with actually finding out ways how to connect the pieces (they should form a circuit when turned at a certain way). Cardboard pieces were too light to be pressing themselves onto the copper tape. So we sought help from Andy and he proposed this idea of attaching the plastic in a certain way and then fixating the position of a piece for it to apply pressure on the plastic, so that the copper tape is pressed onto another copper tape. So, as we spent a very long time figuring out the mechanics of that, our code and the game overall was not as finished as we wanted it to be. Regardless, we hoped that it would be just enough for the first User Testing, as it might give us an idea/inspiration regarding how we should approach future enhancements of our prototype. So, during the User Testing we have received tons of valuable feedback such as: 

  • to make the the paths more evident (to be evident that it should be solved)
  • make everything (especially the pieces) more colorful overall
  • add LEDs! our weak LEDs were not providing much reward. + they were so dim
  • maybe add some sound as well

so, we did all of that. we added the LED strip, we added the sound and we added bright and fun colors. (code and photos could be seen in the end of the post). 

I believe we have dealt with the feedback in a best way possible. 

As for this process of enhancement, we were meeting pretty much everyday with Isa to do the work and we were finishing up the thing on Tuesday. As I was in charge of the code, I can share something that I was making the mistake with like an hour before the presentation and which, I thought at the time, would be the reason for our fail. Basically, as we added the LED strip, our dim single-LED did not serve any purpose other than to receive a signal that the circuit is connected (I was using INPUT_PULLOUT) however I didn’t know that by leaving OUTPUT mode has affected the precision with which the LED was detecting the absence or occurrence of the signal. So yeah, some LED were transferring “undetected” signal even when were connected and visa-versa. So, yeah, that took me a while to fix. Then also the LED strip had some issue with any tape other than the paper one. Not sure why, but they did, so we had re-attach it. We also thought that maybe copper tape sometimes reserving some energy which sometimes resulted in incorrect reaction. But that was rare. 

As for the cardboard and painting, we didn’t have many issues, except for that on the last day we had to replace some LEDs and one cardboard piece (as it kind of loosened up and wan’t connecting the circuits) in the right places we didn’t have the right paint. But that was a minor issue. During the process we also had some copper tape issues so we have soldered two places manually. 

On the last day, I also had an idea of displaying the turning movement using a motor to showcase what the players are supposed to do. We just did the Sweep example and attached the thing using a hand-made cardboard box next to the sign “Turn and Link”. 

I believe our presentation went good. I believe copper tape has been storing some energy on the pieces so it sometimes transferred the “connected” signal regardless of whether the puzzle has or has not been solved.

Speaking of the areas for the improvement, I believe  we could:

  • make the game work better (maybe enhance the copper tape or connectivity)
  • add some levels (so that there is not only 1 solution/one reward (maybe add a different song for something that did not work)
  • the single-LEDs should not be visible if they only are used as a signal determinator. 
  • handles on the pieces to enhance the 

It was interesting that the motor with the piece was perceived as something intimidating, that was hinting that players should go faster in solving the puzzle. Maybe the clock could be actually added. 

The photos: 

video of how i works: 304


the circuit:

the circuit is very close to the reality (the pins are right). One big difference is that the LED strip is much bigger (in number of pixels).

code:

//SOUND!
const int songspeed = 1.5; //Change to 2 for a slower version of the song, the bigger the number the slower the song
//*****************************************
#define NOTE_C4 262 //Defining note frequency
#define NOTE_D4 294
#define NOTE_E4 330
#define NOTE_F4 349
#define NOTE_G4 392
#define NOTE_A4 440
#define NOTE_B4 494
#define NOTE_C5 523
#define NOTE_D5 587
#define NOTE_E5 659
#define NOTE_F5 698
#define NOTE_G5 784
#define NOTE_A5 880
#define NOTE_B5 988
//*****************************************
int notes[] = { //Note of the song, 0 is a rest/pulse
NOTE_E4, NOTE_G4, NOTE_A4, NOTE_A4, 0,
NOTE_A4, NOTE_B4, NOTE_C5, NOTE_C5, 0,
NOTE_C5, NOTE_D5, NOTE_B4, NOTE_B4, 0,
NOTE_A4, NOTE_G4, NOTE_A4, 0,
 
NOTE_E4, NOTE_G4, NOTE_A4, NOTE_A4, 0,
NOTE_A4, NOTE_B4, NOTE_C5, NOTE_C5, 0,
NOTE_C5, NOTE_D5, NOTE_B4, NOTE_B4, 0,
NOTE_A4, NOTE_G4, NOTE_A4, 0,
 
NOTE_E4, NOTE_G4, NOTE_A4, NOTE_A4, 0,
NOTE_A4, NOTE_C5, NOTE_D5, NOTE_D5, 0,
NOTE_D5, NOTE_E5, NOTE_F5, NOTE_F5, 0,
NOTE_E5, NOTE_D5, NOTE_E5, NOTE_A4, 0,
 
NOTE_A4, NOTE_B4, NOTE_C5, NOTE_C5, 0,
NOTE_D5, NOTE_E5, NOTE_A4, 0,
NOTE_A4, NOTE_C5, NOTE_B4, NOTE_B4, 0,
NOTE_C5, NOTE_A4, NOTE_B4, 0,
NOTE_A4, NOTE_A4,
//Repeat of first part
NOTE_A4, NOTE_B4, NOTE_C5, NOTE_C5, 0,
NOTE_C5, NOTE_D5, NOTE_B4, NOTE_B4, 0,
NOTE_A4, NOTE_G4, NOTE_A4, 0,
NOTE_E4, NOTE_G4, NOTE_A4, NOTE_A4, 0,
NOTE_A4, NOTE_B4, NOTE_C5, NOTE_C5, 0,
NOTE_C5, NOTE_D5, NOTE_B4, NOTE_B4, 0,
NOTE_A4, NOTE_G4, NOTE_A4, 0,
 
NOTE_E4, NOTE_G4, NOTE_A4, NOTE_A4, 0,
NOTE_A4, NOTE_C5, NOTE_D5, NOTE_D5, 0,
NOTE_D5, NOTE_E5, NOTE_F5, NOTE_F5, 0,
NOTE_E5, NOTE_D5, NOTE_E5, NOTE_A4, 0,
 
NOTE_A4, NOTE_B4, NOTE_C5, NOTE_C5, 0,
NOTE_D5, NOTE_E5, NOTE_A4, 0,
NOTE_A4, NOTE_C5, NOTE_B4, NOTE_B4, 0,
NOTE_C5, NOTE_A4, NOTE_B4, 0,
//End of Repeat
NOTE_E5, 0, 0, NOTE_F5, 0, 0,
NOTE_E5, NOTE_E5, 0, NOTE_G5, 0, NOTE_E5, NOTE_D5, 0, 0,
NOTE_D5, 0, 0, NOTE_C5, 0, 0,
NOTE_B4, NOTE_C5, 0, NOTE_B4, 0, NOTE_A4,
NOTE_E5, 0, 0, NOTE_F5, 0, 0,
NOTE_E5, NOTE_E5, 0, NOTE_G5, 0, NOTE_E5, NOTE_D5, 0, 0,
NOTE_D5, 0, 0, NOTE_C5, 0, 0,
NOTE_B4, NOTE_C5, 0, NOTE_B4, 0, NOTE_A4
};
//*****************************************
int duration[] = { //duration of each note (in ms) Quarter Note is set to 250 ms
125, 125, 250, 125, 125,
125, 125, 250, 125, 125,
125, 125, 250, 125, 125,
125, 125, 375, 125,
 
125, 125, 250, 125, 125,
125, 125, 250, 125, 125,
125, 125, 250, 125, 125,
125, 125, 375, 125,
 
125, 125, 250, 125, 125,
125, 125, 250, 125, 125,
125, 125, 250, 125, 125,
125, 125, 125, 250, 125,
125, 125, 250, 125, 125,
250, 125, 250, 125,
125, 125, 250, 125, 125,
125, 125, 375, 375,
250, 125,
//Rpeat of First Part
125, 125, 250, 125, 125,
125, 125, 250, 125, 125,
125, 125, 375, 125,
 
125, 125, 250, 125, 125,
125, 125, 250, 125, 125,
125, 125, 250, 125, 125,
125, 125, 375, 125,
 
125, 125, 250, 125, 125,
125, 125, 250, 125, 125,
125, 125, 250, 125, 125,
125, 125, 125, 250, 125,
125, 125, 250, 125, 125,
250, 125, 250, 125,
125, 125, 250, 125, 125,
125, 125, 375, 375,
//End of Repeat
 
250, 125, 375, 250, 125, 375,
125, 125, 125, 125, 125, 125, 125, 125, 375,
250, 125, 375, 250, 125, 375,
125, 125, 125, 125, 125, 500,
250, 125, 375, 250, 125, 375,
125, 125, 125, 125, 125, 125, 125, 125, 375,
250, 125, 375, 250, 125, 375,
125, 125, 125, 125, 125, 500
};
int redLED = 12;
int yellowLED = 13;
int whiteLED = 6;
int greenLED = 5;
int buzzer = 3;
int redState = -1;
int yellowState = -1;
int whiteState = -1;
int greenState = -1;
 
//definitions for the LEDS
#include <FastLED.h>
#define LED_PIN 10
#define NUM_LEDS 54
#define BRIGHTNESS 64
#define LED_TYPE WS2811
#define COLOR_ORDER GRB
CRGB leds[NUM_LEDS];
#define UPDATES_PER_SECOND 100
CRGBPalette16 currentPalette;
TBlendType currentBlending;
extern CRGBPalette16 myRedWhiteBluePalette;
extern const TProgmemPalette16 myRedWhiteBluePalette_p PROGMEM;
void setup() {
 
 
//pinMode(redLED, OUTPUT);
//pinMode(yellowLED, OUTPUT);
//pinMode(whiteLED, OUTPUT);
//pinMode(greenLED, OUTPUT);
//pinMode(buzzer, OUTPUT);
pinMode(redLED, INPUT_PULLUP);
pinMode(yellowLED, INPUT_PULLUP);
pinMode(whiteLED, INPUT_PULLUP);
pinMode(greenLED, INPUT_PULLUP);
pinMode(buzzer, INPUT_PULLUP);
Serial.begin(9600);
delay( 3000 ); // power-up safety delay
FastLED.addLeds<WS2812, LED_PIN, RGB>(leds, NUM_LEDS);
FastLED.setBrightness( BRIGHTNESS );
currentPalette = RainbowStripeColors_p;
currentBlending = LINEARBLEND;
}
void loop() {
digitalWrite(redLED, LOW);
digitalWrite(yellowLED, LOW);
digitalWrite(whiteLED, LOW);
digitalWrite(greenLED, LOW);
 
redState= digitalRead(redLED);
Serial.print(“red “);
Serial.println(redState);
if (redState == 0){
//digitalWrite(redLED, HIGH);
leds[43] = CRGB(0,255,0);
leds[42] = CRGB(0,255,0);
FastLED.show();
tone(buzzer, 800);
delay(1000);
noTone(buzzer);
//digitalWrite(redLED, LOW);
}
else{
noTone(buzzer);
leds[43] = CRGB(0,0,0);
leds[42] = CRGB(0,0,0);
FastLED.show();
}
yellowState = digitalRead(yellowLED);
Serial.print(“yellow “);
Serial.println(yellowState);
if (digitalRead(yellowLED) == 0){
//digitalWrite(yellowLED, HIGH);
tone(buzzer, 600);
leds[46] = CRGB(255, 255 ,0);
leds[45] = CRGB(255, 255, 0);
FastLED.show();
delay(1000);
noTone(buzzer);
//digitalWrite(yellowLED, LOW);
}
else{
noTone(buzzer);
leds[46] = CRGB(0,0,0);
leds[45] = CRGB(0,0,0);
FastLED.show();
}
whiteState = digitalRead(whiteLED);
Serial.print(“white “);
Serial.println(whiteState);
if (whiteState == 0){
//digitalWrite(whiteLED, HIGH);
leds[48] = CRGB(255,255,255);
leds[49] = CRGB(255,255,255);
FastLED.show();
tone(buzzer, 400);
delay(1000);
noTone(buzzer);
//digitalWrite(whiteLED, LOW);
}
else{
noTone(buzzer);
leds[48] = CRGB(0,0,0);
leds[49] = CRGB(0,0,0);
FastLED.show();
}
greenState = digitalRead(greenLED);
Serial.print(“green “);
Serial.println(greenState);
if (greenState == 0){
//digitalWrite(greenLED, HIGH);
leds[51] = CRGB(255,0,0);
leds[52] = CRGB(255,0,0);
FastLED.show();
tone(buzzer, 200);
delay(1000);
noTone(buzzer);
//digitalWrite(greenLED, LOW);
}
else{
noTone(buzzer);
leds[51] = CRGB(0,0,0);
leds[52] = CRGB(0,0,0);
FastLED.show();
}
 
if (redState == 0 && yellowState == 0 && whiteState == 0 && greenState == 0){
int color = 0;
for (int i=0;i<203;i++){
int k = 0;
uint8_t brightness = 255;
 
int wait = duration[i] * songspeed;
tone(buzzer,notes[i],wait);
delay(wait);
if (i < 56){
leds[i] = CHSV(color, 255, 255); /* The higher the value 4 the less fade there is and vice versa */
color+=4;
FastLED.show();
}
else if (i – 56 < 56){
leds[i-56] = CHSV(color, 255, 255); /* The higher the value 4 the less fade there is and vice versa */
color+=4;
FastLED.show();
}
else if (i < 112 < 56){
leds[i-112] = CHSV(color, 255, 255); /* The higher the value 4 the less fade there is and vice versa */
color+=4;
FastLED.show();
}
else {
leds[i-168] = CHSV(color, 255, 255); /* The higher the value 4 the less fade there is and vice versa */
color+=4;
FastLED.show();
}
}
}
}
//leds[2] = CRGB(0,255,0);
//leds[3] = CRGB(0,0,255);
// leds[4] = CRGB(0,0,255);
// leds[5] = CRGB(0,0,255);
// leds[6] = CRGB(0,0,0);
Categories
rapid prototyping weekly design discussions

Torpedo Proof Chair

What insights did you gain about this product and how perception of the artifact has changed over its history. What surprised you about this product. Find another artifact that has followed a similar path by deviating from some of its original intent. 

As I have already heard about this chair and seen it (once I saw the real one and the others were replicas ofc), some information that was shared on the podcast and in the article was already familiar to me, so there weren’t many things that surprised me that much; however, I didn’t not know that it undergoes such a long (77 step process). Of course, these chairs are known for being basically indestructible for about 150 years, however I though it is mainly about the shape (ofc it is as well about the shape but I thought it is mass produced anyway).  That this chair is simply fascinating in terms of its utilitarian shape and material that serve the purpose perfectly. Plus the “curved butt divot” is what makes is relatively to sit on! I believe without it would be very uncomfortable. I am not sure if the Navy Chair was a pioneer at that, but regardless, I believe that without it, chair would not be as successful as it was, even in replicas terms. 

It is kind of sad that the original costs that much and I believe that is clearly gatekeeping that should be rethought by the company. I believe they could invest more into expensive and precise material to actually automate the process and then in a couple of years when the machinery bills are less actually decrease the distribution price. 

And I believe that if the chair was intended for a mass-use and was quite popular (would be much more popular if the price was lower), it should not suddenly become a designer piece. If designers want to use them – they absolutely should, but that shouldn’t affect the price. 

On the other hand, I appreciate the recognition of good design and always like to see some deviations or reimagining of a certain “classic” design in different designer collaborations. It is always interesting to look at. 

As for another artifact that underwent a similar path, I found this article that lists 15 inventions that were originally developed for military. Sometimes, the way to use some of them were discovered by accident, e.g. Microwave oven:

Microwave technology was originally used as a radar to help locate enemies during World War II. The ability of microwaves to cook food was discovered by accident. While conducting research on microwave radar technology, an engineer at defense contractor Raytheon Co. noticed that a candy bar in his pocket had melted. This led to the realization that microwave equipment could be repurposed to heat and cook foods. Later that year, Raytheon filed the first patent for a microwave oven. The first commercial microwave was manufactured in 1954 and was about the size of a refrigerator. Today, more than nine in 10 U.S. households own a microwave oven. The technology is one of many military inventions that have shaped the American kitchen and kitchens worldwide.

more info here: https://www.usatoday.com/story/money/2019/05/16/15-commercial-products-invented-by-the-military/39465501/ 

Categories
prototyping documentation rapid prototyping

week7: My problem, My solution

As I decided to follow forward with a problem #1, The Carry-on Toothbrush Holder, I started experimenting with some shapes and thinking about materials. As of now I have outlined the main two directions that I based my two prototypes on:

  1. folding holder that can be exclusively used when using it when arriving to a place (that unfolds and could be put on the sink)
  2. holder that could be also used as a storing space for the toothbrush while carrying it and as a object to put it on the sink.

hence, I had a couple of sketches that represent each direction:

I started experimenting with cardboard a little bit, however not sure if I will have actual prototypes made out of them. 

I also had this idea with an origami folding thing, however could not assemble it from using paper yet. 

Some things that I have came up with that apply to both are:

  • it should 100% be vertical when using it on a sink as usually there is not enough space to use it otherwise.
Categories
interaction lab recitations

Actuators & Mechanisms

In the beginning of this recitation me and my partner (Dana) briefly went through the tasks and then divided responsibilities: I was in charge of the cardboard work, while Dana was following the instructions and connecting the wires. 

  • Cardboard struggles (none)

As I spent past two weeks with a glue gun in hand for another class, the gluing and folding part were quite easy for me. I found the paper cutouts a very useful and great idea! It took me approximately 20 minutes to assemble. 

  • Wiring struggles 

Dana has followed the instructions precisely, and got that as she forgot to connect it to the higher power:

After I reminded her of that, we were basically done with the base. 

Then, when we put the motor into the construction, we realized that due to the movement it kept falling out, so we added this cardboard “fence” to prevent that:

and moved forward to personalizing the construction.

  • personalization: idea

from the very moment we have assembled the construction we had an idea of making it look like a frog that moves her tongue to catch a fly (doing that at the same speed but random intervals). so we decided to make the tongue look like an actual tongue by painting it read in some places + adding two eyes and add some green details as well. 

  • code

as for the code, i have already mentioned the random() delay idea. we also personalized the steps per revolution. //you can find the code in the end of the post//

the final result:

Question 1: Choose an art installation mentioned in the reading ART + Science NOW, Stephen Wilson (Kinetics chapter). Post your thoughts about it and make a comparison with the work you did during this recitation. How do you think that the artist selected those specific actuators for his project.This is the project I have chosen called Feral Robot Dogs by Natalie Jeremijenko. This use of actuators is similar to what we did they are used to mimic animal part’s movement. Our was the tongue, here is the movement of a dog. Also this project is quite interesting as it has an element of environmental activism to it, which is always great! I am curious how the sensors work though, do they somehow detect the clarity of the air? fascinating. 

Question 2: What kind of mechanism would you be interested in building for your midterm project? Explain your idea using a sketch (conceptual or technical) with a list of materials that you plan to use. Include details about the ways that you expect the user to embrace in a physical interaction with your project. In particular, explain how would your motor (or motors) with a mechanism will be different than using an animation on a digital screen.

this is my midterm proposal:

midterm project: proposal

The mechanism that I am planning to build for the midterm does not really involve motors. We might use it to display how our puzzle work. Me and my partner are going to experiment with how we can make the interaction a bit more interesting and complex (from technical side). 

*
 This program drives a unipolar or bipolar stepper motor.
 The motor is attached to digital pins 8 - 11 of the Arduino.

 The motor should revolve one revolution in one direction, then
 one revolution in the other direction.


 Created 11 Mar. 2007
 Modified 30 Nov. 2009
 by Tom Igoe

 */

#include <Stepper.h>

const int spr = 400;  // change this to fit the number of steps per revolution
// for your motor

// initialize the stepper library on pins 8 through 11:
Stepper myStepper(spr, 8, 9, 10, 11);

void setup() {
  // set the speed at 60 rpm:
  myStepper.setSpeed(56);
  // initialize the serial port:
  Serial.begin(9600);
}

void loop() {
  // step one revolution  in one direction:
  Serial.println("clockwise");
  myStepper.step(spr);
  delay(random(200-400));
/*
  // step one revolution in the other direction:
  Serial.println("counterclockwise");
  myStepper.step(-stepsPerRevolution);
  delay(500);
  */
}
Categories
prototyping documentation rapid prototyping

week6: My problem, My solution

In the beginning of the previous week I have generated a couple of ideas that I would like to consider for further prototyping:

  • CARRY-ON HOLDER FOR BATHROOM UTILITIES (TOOTHBRUSH, TOOTHPASTE…)

This idea was inspired by my recent arrival to Shanghai and realization that while in the past 6 years I haven’t been living in one place for more than 4 months, this product has always been something I ended up buying on the place and sometimes it hasn’t been easy (I still didn’t buy it here cause cant order from 淘宝). I would sometimes just end up getting some cup to put my toothbrush, but it would often make the cup unusable after a while as the taste of toothpaste would be engraved into it. I am still doing some research about possible solutions for it, however the main problems that I have defined and which I am going to be aiming to solve in this prototype are:

  1. easy-to-clean surface 
  2. foldable and easy to transport in a backpack (+ weight element)
  3. easy to use everyday at least two times (the mechanics should allow easy extraction and insertion of objects 
  4. multi-use: maybe something that could allow storing multiple-sized objects (hairbrush? scissors? cotton pads? ear sticks?)

sketches + photos pending….

here, I will try to research more mechanisms and folding structures to achieve the results. going to start with cardboard, but for further prototyping going to have to use materials that won’t break if something moist is interacting with them. not sure what yet. 

  • MULTI–USE COMPUTER/IPAD HOLDER

yes, there are so many of them in the market right now, however as I have tried a lot of them, I was able to identify several issues that none of them could address completely and that I will try solving in my prototype:

  1. size + weight(most of the holders I tried are very heavy and I just ended up not even bringing it to school with me as I didn’t wanna carry it around)
  2. visual appealing + safety (most of them are ugly and pointy and unsafe. I imagine someone tripping over the table and a stand could be the reason for a serious injury)

sketches + photos pending…

again, folding structures. probably going to use cardboard for most prototypes.