Interaction Lab Final Project Fall 2018

 

Interaction Lab Final Project Fall 2018

 

As we designed our project we wanted the user to have a complete immersion into the experience. We purposely designed our control remote to emerge the user into the experience by making it as simple as possible Our design derived from the old school video game controllers which had easy to memorize keys, so that the users can be more focused on the actions rather than the buttons. By applying this theory from our point of view we created a controller which could be easily understood and memorized. With this buttons, the user was able to modify the size, shape, effect, and color of the circle projected by the video beam. The materials we used to build our controller where mainly cardboard to give it a shape, and metal to make it a little bit heavy so it would resemble a normal control.

In addition, our first model for our final project was totally different from our final version, there was a menu where users choose their preferred settings and could play around with the functions they choose. We realized in the user testing that this project will end up being unsuccessful due that it never had a clear purpose, therefore we decided on changing it. The first step into modifying our project was changing the code into something that was more user-friendly. Instead of making users choose the settings the settings where know chose but they could activate different modifications. I believe that our changes were effective due that it gave our project real meaning which is to provide users from an escape from their daily routine.

            

On the whole, our projects vision was to provide to provide our users with an escape from reality giving them a mental break from the never-ending routine of life. Our project made users interact with the buttons and knobs in order to change the properties of the various shapes, therefore making the buttons the input and the projection the output. My definition of interaction is basically any entity acting upon another and creating a result. Therefore, this project follows what I stated as my definition of interaction. The results I found when users interacted with the project where pretty much as expected, at first they got to know the buttons and then they didn’t even look at the buttons they just looked at what was changing in the screen. If we had more time we could definitely add music for every action to give it a more relaxing feeling but due to the setbacks, we were not able. From our setbacks, I definitely learned that it’s better to first find a purpose and then act upon it so that your project is backed up by a reason for its creation.

 

import processing.serial.*;

String myString = null;
Serial myPort;

int NUM_OF_VALUES = 7;
int[] sensorValues;

int snakeLength = 0;

int red = 0;
int blue = 0;
int green = 0;

int redBG = 255;
int blueBG = 255;
int greenBG = 255;

void setup() {
  //size(700, 700);
  fullScreen();
  background(255);
  setupSerial();
  delay(150);
}

void draw() {
  updateSerial();
  printArray(sensorValues);
  if(snakeLength == 35){
    changeBG();
    background(redBG, greenBG, blueBG);
    snakeLength = 0;
  } else {
    snakeLength++;
  }
  
  fill(red, blue, green);
  ellipse(sensorValues[1], sensorValues[2], (sensorValues[0]/4)+25, (sensorValues[0]/4)+25);
  
  if(sensorValues[3] == 0){
    randomBG();
    background(redBG, greenBG, blueBG);
  }
  
  if(sensorValues[4] == 0){
    horizontal();
  }
  
  if(sensorValues[5] == 0){
    crossShape();
  }
  
  if(sensorValues[6] == 0){
    changeColor();
  }

  
  filter(ERODE);
  delay(15);
}

void keyPressed(){
  if(key == '1'){
    randomBG();
    background(redBG, greenBG, blueBG);
  }
  
  if(key == '2'){
    horizontal();
  }
  
  if(key == '3'){
    crossShape();
  }
  
  if(key == '4'){
    red = int(random(0, 255));
    green = int(random(0, 255));
    blue = int(random(0, 255));
  }
}

void horizontal(){
  ellipse(sensorValues[1]+50, sensorValues[2], (sensorValues[0]/4)+15, (sensorValues[0]/4)+15);
  ellipse(sensorValues[1]+100, sensorValues[2], (sensorValues[0]/4)+10, (sensorValues[0]/4)+10);
  ellipse(sensorValues[1]+150, sensorValues[2], (sensorValues[0]/4)+5, (sensorValues[0]/4)+5);
  ellipse(sensorValues[1]+200, sensorValues[2], (sensorValues[0]/4)+5, (sensorValues[0]/4)+5);
  ellipse(sensorValues[1]-50, sensorValues[2], (sensorValues[0]/4)+15, (sensorValues[0]/4)+15);
  ellipse(sensorValues[1]-100, sensorValues[2], (sensorValues[0]/4)+10, (sensorValues[0]/4)+10);
  ellipse(sensorValues[1]-150, sensorValues[2], (sensorValues[0]/4)+5, (sensorValues[0]/4)+5);
  ellipse(sensorValues[1]-200, sensorValues[2], (sensorValues[0]/4)+5, (sensorValues[0]/4)+5);
  ellipse(sensorValues[1], sensorValues[2], (sensorValues[0]/4)+15, (sensorValues[0]/4)+15);
}

void crossShape(){
  ellipse(sensorValues[1]+50, sensorValues[2]+50, (sensorValues[0]/4)+15, (sensorValues[0]/4)+15);
  ellipse(sensorValues[1]-50, sensorValues[2]+50, (sensorValues[0]/4)+15, (sensorValues[0]/4)+15);
  ellipse(sensorValues[1]+50, sensorValues[2]-50, (sensorValues[0]/4)+15, (sensorValues[0]/4)+15);
  ellipse(sensorValues[1]-50, sensorValues[2]-50, (sensorValues[0]/4)+15, (sensorValues[0]/4)+15);
  ellipse(sensorValues[1], sensorValues[2], (sensorValues[0]/4)+15, (sensorValues[0]/4)+15);
}

void changeBG(){
  redBG = redBG + int(random(-3, 3));
  blueBG = blueBG + int(random(-3, 3));
  greenBG = greenBG + int(random(-3, 3));
}

void randomBG(){
  redBG = int(random(0,255));
  blueBG = int(random(0,255));
  greenBG = int(random(0,255));
}

void changeColor(){
  red = int(random(0, 255));
  green = int(random(0, 255));
  blue = int(random(0, 255));
}

void setupSerial() {
  printArray(Serial.list());
  myPort = new Serial(this, Serial.list()[ 2 ], 9600);
  

  myPort.clear();
  myString = myPort.readStringUntil( 10 );
  myString = null;

  sensorValues = new int[NUM_OF_VALUES];
}

void updateSerial() {
  while (myPort.available() > 0) {
    myString = myPort.readStringUntil( 10 ); // 10 = 'n'  Linefeed in ASCII
    if (myString != null) {
      String[] serialInArray = split(trim(myString), ",");
      if (serialInArray.length == NUM_OF_VALUES) {
        for (int i=0; i<serialInArray.length; i++) {
          sensorValues[i] = int(serialInArray[i]);
        }
      }
    }
  }
}

void setup() {
//  Serial.begin(9600);
//  pinMode(2, INPUT_PULLUP);
//  pinMode(3, INPUT_PULLUP);
//  pinMode(4, INPUT_PULLUP);
//  pinMode(5, INPUT_PULLUP);
//}
//
//void loop() {
//  
//  int sensor0 = analogRead(A0); // size potentiometer sensorValues[0]
//  int sensor1 = analogRead(A1); // x potentiometer sensorValues[1]
//  int sensor2 = analogRead(A2); // y potentiometer sensorValues[2]
//  int sensor3 = digitalRead(2); // button 1 sensorValues[3]
//  int sensor4 = digitalRead(3); // button 2 sensorValues[4]
//  int sensor5 = digitalRead(4); // button 3 sensorValues[5]
//  int sensor6 = digitalRead(5); // button 4 sensorValues[6]
//
//  Serial.print(sensor0);
//  Serial.print(",");
//  Serial.print(sensor1);
//  Serial.print(",");
//  Serial.print(sensor2);
//  Serial.print(",");
//  Serial.print(sensor3);
//  Serial.print(",");
//  Serial.print(sensor4);
//  Serial.print(",");
//  Serial.print(sensor5);
//  Serial.print(",");
//  Serial.print(sensor6);
//  Serial.println();
//
//  delay(100);
//}

Recitation 10: Making a Media Controller

Before this recitation my partner and  I had a clear idea of what our final project was going to be about, we had previously decided that our project was going to be controlled by potentiometers that enable to change properties of an image or object. In this recitation, we expanded our code for our project and modified it to fit the requirements of the recitation. One of our main inspirations was to recreate the illusion of old technology by including the potentiometers to generate a change in the image/object. Our projects main goal is to recreate that idea new doesn’t mean better, today what society is lacking interaction between people and part of this problem is generated by newer technology. Back in time when technology was not developed as much people depended in physical interaction with other humans rather than having a medium to exchange thoughts. This has left the newer generation lacking the capability of physical interaction because they have communicated through technology their entire life. Our project purpose is to create a sense of community by the physical interaction of its users.

 

IMG_6563

 


// ARDUINO to PROCESSING

/*
 * Based on the readStringUntil() example by Tom Igoe
 * https://processing.org/reference/libraries/serial/Serial_readStringUntil_.html
 */

import processing.serial.*;

PImage gene;

String myString = null;
Serial myPort;


int NUM_OF_VALUES = 3;   /** YOU MUST CHANGE THIS ACCORDING TO YOUR PROJECT **/
int[] sensorValues;      /** this array stores values from Arduino **/

int filterNO;

void setup() {
  size(600,600);
  gene = loadImage("gene.jpeg");
  background(0);
  setupSerial();
}


void draw() {
  updateSerial();
  printArray(sensorValues);
  println();
  println();
  println();
  background(0);
  rectMode(CENTER);
  image(gene, mouseX-(sensorValues[1]/4), mouseY-(sensorValues[0]/4), sensorValues[1]/2,sensorValues[0]/2);
  
  if(sensorValues[2] < 150){
    filter(THRESHOLD);
  }
  
  if(sensorValues[2] > 150){
    if(sensorValues[2] < 300){
      filter(GRAY);
    }
  }
  
  if(sensorValues[2] > 300){
    if(sensorValues[2] < 450){
      filter(INVERT);
    }
  }
  
  if(sensorValues[2] > 450){
    if(sensorValues[2] < 600){
      filter(POSTERIZE, 80);
    }
  }

if(sensorValues[2] > 600){
    if(sensorValues[2] < 750){
      filter(ERODE);
    }
  }
  
  if(sensorValues[2] > 750){   
    filter(DILATE);
  }
}


void setupSerial() {
  printArray(Serial.list());
  myPort = new Serial(this, Serial.list()[ 2 ], 9600);
  // WARNING!
  // You will definitely get an error here.
  // Change the PORT_INDEX to 0 and try running it again.
  // And then, check the list of the ports,
  // find the port "/dev/cu.usbmodem----" or "/dev/tty.usbmodem----" 
  // and replace PORT_INDEX above with the index number of the port.

  myPort.clear();
  // Throw out the first reading,
  // in case we started reading in the middle of a string from the sender.
  myString = myPort.readStringUntil( 10 );  // 10 = 'n'  Linefeed in ASCII
  myString = null;
sensorValues = new int[NUM_OF_VALUES];
}



void updateSerial() {
  while (myPort.available() > 0) {
    myString = myPort.readStringUntil( 10 ); // 10 = 'n'  Linefeed in ASCII
    if (myString != null) {
      String[] serialInArray = split(trim(myString), ",");
      if (serialInArray.length == NUM_OF_VALUES) {
        for (int i=0; i<serialInArray.length; i++) {
          sensorValues[i] = int(serialInArray[i]);
        }
      }
    }
  }
}






// ARDUINO to PROCESSING


void setup() {
  Serial.begin(9600);
}

void loop() {
  int sensor1 = analogRead(A0);
  int sensor2 = analogRead(A1);
  int sensor3 = analogRead(A2);

  // keep this format
  Serial.print(sensor1);
  Serial.print(",");  // put comma between sensor values
  Serial.print(sensor2);
  Serial.print(","); // add linefeed after sending the last sensor value
  Serial.print(sensor3);
  Serial.println();


  // too fast communication might cause some latency in Processing
  // this delay resolves the issue.
  delay(100);
}

Recitation #9 Serial Communication

In this recitation, we were expected to create two exercises. The first task was to complete an Etch A Sketch and the second one was creating a musical instrument with Arduino. Through the creation of this project, I had the most difficulty in the second exercise which took me about 70% of the class time because I was making silly mistakes such as forgetting to put a semicolon or leaving a parenthesis opened. After finishing the first part of the exercises which didn’t take me that long I proceded to exercise #2  which took most of the recitation time to complete but I was able to complete in-class time.

 

 

 

//EXERCISE #1
//ARDUINO
void setup() {
  Serial.begin(9600);
}

void loop() {
  int sensorValue1 = analogRead(A0) / 2;
  int sensorValue2 = analogRead(A2) / 2;
  Serial.print(sensorValue1);
  Serial.print(",");
  Serial.print(sensorValue2);
  Serial.println();
  delay(100);
}





//PROCESSING
import processing.serial.*;
String myString = null;
Serial myPort;
int NUM_OF_VALUES = 4;   
int[] sensorValues;     
int hsb = 0;

void setup() {
  size(800, 800);
  background(0);
  setupSerial();
}

void draw() {
  background(0);
  updateSerial();
  printArray(sensorValues);

  fill(0,255,0);
  ellipse(sensorValues[0], sensorValues[1], 100, 100);
}

void setupSerial() {
  printArray(Serial.list());
  myPort = new Serial(this, Serial.list()[67], 9600);
  myPort.clear();
  myString = myPort.readStringUntil( 20 );  
  myString = null;
  sensorValues = new int[NUM_OF_VALUES];
}
void updateSerial() {
  while (myPort.available() > 0) {
    myString = myPort.readStringUntil( 10 ); // 10 = 'n'  Linefeed in ASCII
    if (myString != null) {
      String[] serialInArray = split(trim(myString), ",");
      if (serialInArray.length == NUM_OF_VALUES) {
        for (int i=0; i<serialInArray.length; i++) {
          sensorValues[i] = int(serialInArray[i]);
        }
      }
    }
  }
}





//EXERCISE #2
//Arduino
#define NUM_OF_VALUES 3

int tempValue = 0;
int valueIndex = 0;

int values[NUM_OF_VALUES];


void setup() {
  Serial.begin(9600);
}

void loop() {
  getSerialData();
  tone(8, values[0], values[1]);
  tone(8, values[2], values[1]);

}
void getSerialData() {
  if (Serial.available()) {
    char c = Serial.read();
    switch (c) {
      case '0'...'2':
         tempValue = tempValue * 10 + c - '0';
        break
      case ',':
        values[valueIndex] = tempValue;
        tempValue = 0;
        valueIndex++;
        break;
      case 'n':
        values[valueIndex] = tempValue;
        tempValue = 0;
        valueIndex = 0;
        break;
      case 'e': 
        for (int i = 0; i < NUM_OF_VALUES; i++) {
          Serial.print(values[i]);
          if (i < NUM_OF_VALUES - 1) {
            Serial.print(',');
          }
          else {
            Serial.println();
          }
        }
        break;
    }
  }
}




//Processing
import processing.serial.*;

int NUM_OF_VALUES = 3;  
Serial myPort;
String myString;
int values[] = new int[NUM_OF_VALUES];

void setup() {
  size(800, 800);
  background(0);
  printArray(Serial.list());
  myPort = new Serial(this, Serial.list()[67], 9600);
  myPort.clear();

  myString = myPort.readStringUntil( 10 );  
  myString = null;
}


void draw() {
  background(mouseX, mouseY, 100);
    values[0] = mouseX;
    values[1] = mouseY;
    if(keyPressed){
      values[2] = mouseY*2;
    }
    else{
      values[2] = 0;
    }
    
  sendSerialData();
  echoSerialData(200);
}

void sendSerialData() {
  String data = "";
  for (int i=0; i<values.length; i++) {
    data += values[i];
    
    if (i < values.length-1) {
      data += ","; 
    } 
    else {
      data += "n"; 
    }
  }
  myPort.write(data);
}

void echoSerialData(int frequency) {
 
  if (frameCount % frequency == 0) myPort.write('e');

  String incomingBytes = "";
  while (myPort.available() > 0) {
    incomingBytes += char(myPort.read());
  }
  print( incomingBytes );
}

Final Project Process

The main goal of our project MAKE IT YOURS is basically to engage an undefined audience that is willing to create something creating by using our machine. From what we’ve thought we will have a blank canvas and several buttons that the audience can use in order to create their personal and unique painting. Our purpose for this project is to show people that we are all unique and no matter what they tell you, everyone thinks different and even though some may think they are less capable than others the only thing that is holding them back is their own personal ideas. Our first step into the completion of this project is going to be creating the code that will support our design. After the creation of the code, we will start to create the physical design to bring the code to life and adjust the design according to the code. The last step to complete our design will be the aesthetics of it, delivering a more refined product to create a more professional and direct message towards the users. One project that impacted our decision to create this specific design was based on a poster in the dorms, this poster lets you write any message you want to deliver to your floor mates. Our project tries to take the same aspect of turning a routine activities like going into your room into an interesting experience as you can entertain yourself by drawing in a canvas relieving all the accumulated stress from your harsh day, not only that it may be a fun experience to see what you and your friends draw. Our project intends to take individuals out of their normal routine and make them think in order to persuade their creativeness because sometimes constant routine annihilates creativity due that people don’t have to think they rather just follow what they are told. MAKE IT YOURS intends to increase peoples ability to think by themselves, take them out of their routine and impulse a unique way of processing ideas, all of this by the push of buttons that let you create your own canvas. 

Preparatory Research And Analysis

A. Go back to your definition of interaction as you defined it during the group project. How has your work in this course involved that definition?

The definition I had created in the process of my midterm project about interaction, revolved on the fact of humans interacting with technology. The only factor I left out of my definition was that not only humans can interact with technology, anything from the environment to other living things can interact with technology. As long as they are able to generate an input they are able to interact. Always Green, my midterm project taught me that the environment can also interact with technology. My project was based on a self-protecting device for a plant that irrigated the plant and created shade when the sun was too harsh. 

B. Based on the initial definition and your experience developing and executing your midterm project, how has your definition of interaction evolved? Be as specific as possible.

As I mentioned before my definition of interaction has evolved from only humans to other factors. I believe anything that can cause a result can be considered interaction, being the environment, animals or anything that can generate an action that will produce a reaction. 

C. Research two other interactive projects, one that aligns with your definition of interaction and one that differs from it.

  • Discuss why the first project lines up with your definition and why the second one clashes with your definition of interaction. Be precise, as always.
  • In your research process, you are strongly encouraged to consider interactive projects and experiences drawn from and in a variety of sources, media, materials, formats, etc.

Some projects that assimilate to my definition of interaction are Human-Computer Interaction Project and DIY Interactive LED Coffee Table. Both projects had the same basic process, they generate an input and receive a result. In the Human-Computer Interaction Project whenever the guy seen as the input generated an action there was a reaction by his group mates. In the DIY Interactive LED Coffee Table whenever they placed an object onto the surface of the table, the table lighted up the section where the object was. These projects relate to my definition due that they both share an input and output relation.

Human-Computer Interaction Project https://www.youtube.com/watch?v=q3IongjD-w4

DIY Interactive LED Coffee Table https://www.youtube.com/watch?v=L3l-zJafOnc

Interaction might not be as simple as I once thought, if you imagine everything in ur daily life is based on cause and effect, but what if the effect can generate again a cause. An example I got out from Conference on Human Factors in Computing Systems referenced that humans can interact with computers, but computers can also interact with humans. If you see interaction this way, anything that is an output can become an input.

https://www.youtube.com/watch?v=pm1y-Q5oIY0 

D. Write a “new” definition of interaction in your own words. Draw from your account above and try to evolve your definition beyond the current convention. It should be polished and professional: imagine it will be printed on IMA Interaction Lab’s next course syllabus!

My definition of interaction:

The never-ending process of cause and effect. This cycle of actions and reactions creates what can be interpreted as the sensible world. But both actions and reactions can exchange roles, for example: A human types an answer into a computer, the computer analyses the response and determines that it doesn’t meet the set values. Once the human receives the result of the wrong answer the computer becomes the input and the humans’ emotions are the output. Therefore interaction is the never-ending process of cause and effect.

Documentation #7

Class Work

IMG-6375

Homework

IMG-6373

 

 

CLASSWORK

int numTri = 0;

void setup(){
  size(630,630);

}
void draw() {
      background(900);

  if (keyPressed == true) {
    fill(0);
  } else {
    fill(255);
  }
  
  if(numTri == 1) {
   triangle(30, 75, 58, 20, 86, 75); 
  }
  
  if(numTri == 2) {
    triangle(37.5, 93.75, 72.5, 25, 107.5, 93.75);
  }
  
  if(numTri == 3) {
     triangle(45, 112.5, 87, 30, 126, 112.5);
  }
  
   if(numTri == 4) {
     triangle(52.5, 131.25, 101.5, 35, 150.5, 131.25);
   }
   if(numTri == 5) {
      triangle(60, 150, 116, 40, 172, 150);
   }
   if(numTri == 6) {
      triangle(67.5, 168.75, 130.5, 45, 193.5, 168.75);
   }
   if(numTri == 7) {
     triangle(75, 187.5, 145, 50, 215, 187.5);
      }
   if(numTri == 8) {
    triangle(82.5, 206.25, 159.5, 55, 236.5, 206.25);
   }
   if(numTri == 9) {
 triangle(90,225, 174, 60, 258,225);
   }
   if(numTri == 10) {
 triangle(97.5, 243.75, 188.5, 65, 279.5, 243.75);
   }
   if(numTri == 11) {
 triangle(105, 262.5, 203, 70, 301, 262.5);
   }
   if(numTri == 12) {
 triangle(112.5, 281.25, 217.5, 75, 322.5, 281.25);
   }
   if(numTri == 13) {
 triangle(120, 300, 232, 80, 344, 300);
   }
   if(numTri == 14) {
 triangle(127.5, 318.75, 246.5, 85, 365.5, 318.75);
   }
   if(numTri == 15) {
      triangle(135, 337.5, 261, 90, 387, 337.5);
   }
   if(numTri == 16) {
      triangle(142.5, 356.25, 275.5, 95, 408.5, 356.25); 
   }
   if(numTri == 17) {
      triangle(150, 375, 290, 100, 430, 375); 
   }
   if(numTri == 18) {
      triangle(157.5, 393.75, 304.5, 105, 451, 393.75); 
   }
   if(numTri == 19) {
      triangle(165, 412.5, 319, 110, 473, 412.5); 
   }
   if(numTri == 20) {
      triangle(172.5, 431.25, 333.5, 115, 494.5, 431.25); 
   }
   if(numTri == 21) {
      triangle(180, 450, 348, 120, 516, 450); 
   }
   if(numTri == 22) {
      triangle(187.5, 468.75, 362.5, 125, 537.5, 468.75); 
   }
   if(numTri == 23) {
      triangle(195, 487.5, 377, 130, 559, 487.5); 
   }
   if(numTri == 24) {
      triangle(202.5, 506.25, 391, 135, 580.5, 506.25); 
   }
   if(numTri == 25) {
      triangle(210, 525, 406, 140, 602, 525); 
   }
   
  if(numTri > 25)
    numTri = 0;
    
}

void keyPressed() {
  numTri++; 
  
}






HOMEWORK

int x = 400;
int y = 400;
int z = 5;
int inicio = 100;
int start = 0;
int velocidad = 1;
int origen  = 0;

void setup(){
  size (800,800);
  background(0);
 
}
void draw(){
  background(255);
  strokeWeight(10);
 if (inicio == 100 ){
  origen = 0;
}if (inicio == 200){
  origen = 1;
}
if (origen ==  0){
  inicio = inicio + velocidad;
}else{ inicio = inicio - velocidad;
}


colorMode(RGB, 255);
start = int(map(inicio, 255,255,255,255));
stroke(start,random(255),random(255), random(255));
ellipse(y,x,inicio,inicio);

}


void keyPressed() {
  
  if (key == CODED) {
  
    } if (keyCode == DOWN) {
     x = x + z;
    } 
 
  else if (keyCode == RIGHT){
    y = y +z;
  }
  
  if (keyCode == UP) {
      x = x - z;
      
 } 
  if (keyCode == LEFT){
    y = y -z;
    
  }
}

Recitation #6 Processing Basics

This image was not in the ones provided in the document provided in the recitation. The reason I choose this abstract painting by Kandinski rests on the fact of how he represents the sensible world through geometry. Weiches Hart (the painting), as seen from a distance can be perceived as a face of a human staring right towards the spectators. If you pay attention to the nose can be seen to the right of the three stacked triangles in the middle of the painting, what makes this painting interesting is that there is not one right answer towards what you see. The painting becomes more interesting as more conclusions can be drawn from its analysis. This is the reason why I choose this painting.

In order to achieve this goal of producing a work of art that can model reality in an abstract form and therefore be able to create various interpretations to make it more attractive. I started by creating a single triangle, from this initial triangle I started multiplying its values by 1.25. After the triangle with the new parameters was drawn I proceeded to create a new triangle, this time I took the same initial triangle and multiplied its values by 1.50. In order to create this pattern of triangles, I kept adding 0.25 to the multiplier until the multiplier hit 7. I believe I did achieve my goal in portraying reality in an abstract way. In this design, my goal was to re-create a video beam projection but at the same time making it up to the spectators to build up their own story.


void setup(){
  size(630,630);

}
void draw(){
  
 triangle(30, 75, 58, 20, 86, 75); 
 triangle(37.5, 93.75, 72.5, 25, 107.5, 93.75);
 triangle(45, 112.5, 87, 30, 126, 112.5);
 triangle(52.5, 131.25, 101.5, 35, 150.5, 131.25);
 triangle(60, 150, 116, 40, 172, 150);
 triangle(67.5, 168.75, 130.5, 45, 193.5, 168.75);
 triangle(75, 187.5, 145, 50, 215, 187.5);
 triangle(82.5, 206.25, 159.5, 55, 236.5, 206.25);
 triangle(90,225, 174, 60, 258,225);
 triangle(97.5, 243.75, 188.5, 65, 279.5, 243.75);
 triangle(105, 262.5, 203, 70, 301, 262.5);
 triangle(112.5, 281.25, 217.5, 75, 322.5, 281.25);
 triangle(120, 300, 232, 80, 344, 300);
 triangle(127.5, 318.75, 246.5, 85, 365.5, 318.75);
 triangle(135, 337.5, 261, 90, 387, 337.5);
 triangle(142.5, 356.25, 275.5, 95, 408.5, 356.25); 
 triangle(150, 375, 290, 100, 430, 375); 
 triangle(157.5, 393.75, 304.5, 105, 451, 393.75); 
 triangle(165, 412.5, 319, 110, 473, 412.5); 
 triangle(172.5, 431.25, 333.5, 115, 494.5, 431.25); 
 triangle(180, 450, 348, 120, 516, 450); 
 triangle(187.5, 468.75, 362.5, 125, 537.5, 468.75); 
 triangle(195, 487.5, 377, 130, 559, 487.5); 
 triangle(202.5, 506.25, 391, 135, 580.5, 506.25); 
 triangle(210, 525, 406, 140, 602, 525); 


}

Midterm Project

 

                                                                                 

1.   PROJECT NAME: Always Green
2. PROJECT STATEMENT OF PURPOSE :                                                   

The purpose behind the creation of our project was to help those nature lovers take care of their plants by supplying the right level of moisture and protect the plats from intense heat. As you may know, some plants can be very sensitive to very subtle changes in climate, so with our design, we help those changes become more bearable for the plant. The main focus of our project was to prologue a plants life by supplying and regulating basic needs for it to maintain healthily. Our project is not only intended to supply individuals it can also work for plants that are out in the streets that don’t have regulation. Most humans are lazy when it comes to taking care of their plants they rather let it survive on their own and when it’s dead they just simply replace it, therefore with this device, we can incentivize humans to take care of them and avoid the deaths of many other plants.

3.     LITERATURE AND ART, PERSPECTIVES AND CONTEXTS:                                                      

One artist that ignited my desire to conduct this project, was Claude Monet, through his art I was able to appreciate nature in its essence. Not only did Monet taught me through his art to appreciate nature but rather to try and conserve it. Nature in its purest forms doesn’t exist in the fast-spreading urban civilization, for example, flowers are almost nonexistent in any urbanized city. Humans have slowly lost the touch of nature because it’s expensive to keep it constant in the noise of progression. With our project, my aim is to incentivize people to have a plant that can self-sustain so they don’t have an excuse to have one. Another artist that inspired me was Rube Goldberg, through his models that take simple tasks and converts them into an extremely complicated process I was able to see that people can be entertained with minimal effort. So we decided that our project will contain a little aspect of Rube Goldberg’s models but not its true essence. Two projects that impacted how we approached our final model, where a Rube Goldberg design to water a plant and an actual Arduino based design that could through a pressure hose water a plant. This two projects gave us ideas on how to approach our final design as we couldn’t figure out a way to water the plant and make it fun for the viewers. Therefore, our projects aim is to spread nature and its significance through a simple but entertaining model.

4.      PROJECT DESCRIPTION:                                             

Our main purpose which we based our project on was the preservation of nature, we approached this process with both a functional and entertaining vision. The first step into the completion of our project consisted of having the functional part of the project ready. We focused on the programming and the creation of our circuit so then we could adapt that to our model. For this model, we used two arduinos one controlled a light sensor with a motor the second arduino controlled a moisture sensor with a motor. Once we got the functional part of our design ready it was time to work on the appearance of the project, We decided that the most convenient option was to base our project around the pot where our plant will sit to make it easier to deliver the tasks. One of the most difficult tasks was to correctly decide how to connect both the moisture sensor and motor to work together and deliver water to the plant, but finally, we figured it out.

5.    PROJECT SIGNIFICANCE:                        

Our Project encourages the preservation and expansion of nature by convincing the possible users that having a self-sustaining plant is a fun task. If people are encouraged to use our product it can expand out of normal houses and be used in the streets to help increase and preserve the current vegetation. Our project is of special value to the targeted audience due that they don’t have to take care of as much of their plants and have more free time to what they believe is relevant to them.                                                                                                                 

6.      PROJECT DESIGN & PRODUCTION:

Every part of our project was used from recycled materials, the only materials that were not recycled were our arduino and sensors. Most of our project is made out of carboard, PVC, and other recycled materials, therefore strengthening our message of preservation. We considered ordering materials from Taobao but it will diminish the strength of our preservation message. As when tested our project in the User Testing Session the functional part was complete, the only problem was that our project as a whole wasn’t finished so our message wasn’t delivered as efficiently. Once we established the base design of our project we had a problem with the motor due that it wouldn’t generate enough force to move the cup that contained the water. Therefore we restructured the motor to fit our new problem and in the end, it worked. The choices we took during the creation of our final design were based on how the level of efficiency and how aesthetically pleasing it looked. Both factors from our point of view where important to attract individuals to use our product.

 7.     CONCLUSIONS

I believe that we accomplished the main goal of our project, that was to take care of a plant and do it in a unique way that will incentivize people on using it to preserve nature. The functionality of our project was sometimes doubtful but most of the times it worked correctly. Probably if we had more time to test our project it would have improved our final results due that we couldn’t actually test it on a live plant, due that it will take at least one month to accurately test it. If this project is successful it can exponentially improve the current esthetic view of any place because being honest a plant will always bring a nice fresh look anywhere you put it. I also believe that having a nice environment affect how you perceive life and how you act, therefore it will not only improve the esthetics it will improve the general happiness of people.

Recitation #5

Step 1: Make a 3D model

The first step was to create a model in Tinker CAD. As I was creating the model I wanted to focus more on an actual functional device, rather than going purely for design. Though the design doesn’t picture our model perfectly it’s a close approximation, due that it’s only missing the internal strings that shorten and enlarge the shirt.

 

Step 2: Edit the 3D model in Illustrator

Once I had finished my functional design in tinker CAD I proceeded to create a more artistic vision of our project. With the use of a Adobe Illustrator, I was able to find a unique font and create a possible model that depicts the main idea of our project. One of my main goals was to keep the design simple so people would get the message directly rather than having them read a bunch of text to find out what our product is. Also by creating a clean design, it shows that the project as a brand is trustworthy and of good quality.

 

Step 3: Design the advertisement

Once I finished my previous design in Adobe Illustrator I proceeded to create a poster for my project. My idea was to keep the same simple design, very little text, and color. The few words that are shown in the poster I think to give out the main purpose of our project, due that it is focused for the future and to avoid having to select T-shirt sizes.

 

Recitation #4 Drawing Machines

Materials

Some materials used where:

  1. Stepper motor
  2. SN754410NE IC chip (H-Bridge)
  3. Power jack
  4. 12 VDC power supply
  5. Wires

Circuit #1

The first task for this circuit able to rotate a stepper motor. Through the process of building my circuit, I continuously made silly mistakes, such as confusing the correct sections where to connect the wires. Therefore this first step circuit took me a little extra time to make.  

Circuit #2

Finally, when I corrected my previous mistakes from my first circuit and got it to work I could move on to the next step. The next task was to incorporate a potentiometer into the circuit to control the motor. At first, I had no idea how to do it and therefore asked for help, after I got some decent instructions on how to connect the wires to get the potentiometer to work I tried for myself. Unfortunately, I failed and ended up asking someone for help again and she corrected my mistake.

 

Circuit #3

The last circuit’s goal was to build a machine that was capable of drawing, mimicking the movement of our hand through a set of directions. The machine wasn’t very precise due to the fact that it may sometimes get stuck or the pen will simply not draw. Other times the pen moved the paper rather than drawing, therefore, we could never draw a concrete object. The activity was very interesting and helped me see how to probably do the same steps and get a better result. Probably having a paper with more support so it moves less and a better pen will solve half of the problem. The rest is in the engineering and programming of the machine, due that it was anything but perfect.

Question 1:

What kind of machines would you be interested in building? Add a reflection about the use of actuators, the digital manipulation of art, and the creative process to your blog post.

I think that the future is in the hands of 3D printers, the one that I find the most interesting is the 3D house printer. The reason 3D printers interest me its because they are slowly replacing manual labor and introducing us to a new era of robotics. Most likely in some years, we will be able to build buildings in a few weeks with absolutely no one working on them. Not only buildings or houses can be done by 3D printers I believe that almost anything can be created with it but now we just don’t have enough technology to do that or it’s too expensive. It can be interesting building a low-cost 3D house printing machine, the challenge can be immense,  but especially in reducing the cost of printing.

 

Question 2:

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?

As I was reading through the article, there was this one project that really captured my attention. Waves by Daniel Palacios can relate to the third circuit built at the lab. Both projects require direct human interaction to work, in our project a human must move the switch to direct the pen and draw. Similar to Waves where the project will start as soon as it detected some sort of motion and tried to mimic it with waves. Both projects have as their input a human interaction either it being moving a switch or walking triggers and output. I believe that both projects also have the same aim and that is to make humans attracted to use them because they are unique and therefore attractive.