Santiago Salem- Final Project Blog

Partner: Sarah Waxman

“Create a Tree”

This essay has the purpose of explaining and exposing my process and progress of my final project. But before disclosing all my information in regards to the design and fabrication, I want to mention how everything I learned through this semester led me to build this project. It is evident that I learned the necessary code, Arduino, Processing, Illustrator, and how to use the components and sensors, but the most important thing I learned was that if one uses the interaction with a clear purpose in mind one can create incredible things. For me, the interaction begins when a particular factor or organisms establish (triggers) a reciprocal interrelation where, through a connection, one body or item influences the other and causes it to respond immediately in a relative (understanding) manner. This “reciprocal relationship” is what one as a creator must exploit to achieve a successful project. This reciprocal relationship is the hook that maintains and makes the user interact with oneā€™s project. For my project, this relationship was the most important thing that we wanted to establish; we intend for the user to interact with our project frequently. Since the purpose of our project is for the users to recycle, we aspire that the user regularly interacts with our project.

Our original idea was based on a game for people to recycle bottle caps (since they are more useful in the process of recycling because they contain large amounts of plastic and are short in size), but then my partner and I decided that a game was not the interaction that we wanted to create accordingly to our purpose.. Before we begin to describe how the user interaction inspired our project design, it is essential first to explain the project itself. The project is an interactive trashcan bin, which means that when people throw their plastic bottles into the basket, the user visually interacts with the basket. When the container is thrown into the hole, there is a rotating world that projects onto the surface of the lid that creates a tree every time the hole detects a bottle.

That said, when we wanted to start a game we realized that the infrared detectors did not detect the lids due to their short size and also the user had difficulty in throwing the lids inside the three holes of different sizes (each hole corresponded to how many trees they were going to project, for example, the small hole created 3 trees, the middle two, etc.). The game inspired us to create a single medium-sized hole for people to throw their bottles without difficulty (and the detector can detect the size of the containers). The materials we used to create our final project were one distance detector, one round wooden surface (laser cut), a projector, and small artificial trees (for the aesthetics of the project). In terms of programming, we use an Arduino (to send the signals of the sensors to Processing) and processing to create the world and trees (codding). We decided to use the minimum amount of materials, since the process of littering is not complicated, and neither should be the interaction between the project and the user.

On the other hand, it is important to always incorporate and immediate feedback to the user as a way of signaling that the action of the user was understood. Given that we decided to project a tree immediately after the user throws the bottle to create a visual, immediate response

The manufacturing process was not as complicated to the brainstorm of the idea. At first, my partner and I had a lot of problems thinking about an idea of how to create an interactive and attractive recycling project. Then we decided that we should create something visually appealing, easy to understand, and that motivates people to recycle, and that is why we created “Create a Tree”. In terms of fabrication, in the beginning, we cut a wooden cardboard in a circular shape with a hole. Second, we painted the wood with white paint so that the image of the projected world along with the trees it would look even more apparent. Third, we installed a distance sensor on the back of the wooden surface next to the hole so that the bottles can be detected. As for coding, this was the most complicated part (it took us around 9 hours of just coding) since we had to use a video of a rotating world in which every time the sensor detects movement, it must create a tree. But together with the help of the IMA fellows, we made it possible.

However, based on our failures and successes, one of our failures made us realize how we could even improve our project. For example, the fact that the sensors did not detect the covers, made us come with the idea that our project should not be a game but rather something with a more concrete, simple and clear purpose and that is why we created a single hole instead of three. Also, during the user testing session, the most significant responses from the users were that we should create a more personalized relationship every time the user drops a bottle, we should make it visually more attractive, and we should incorporate something that does the purpose clearer. Thanks to the feedback, we decided to include the following changes. First, each tree will represent a bottle; in that way, a person can track for a few minutes his tree as it rotates around the world. Second, we added some trees, as mentioned previously, to enhance the aesthetics of the project. Finally, by making the trees last longer instead of vanishing right away, people can track how often bottles are thrown into the recycling bin.

On the other hand, I believe that the user testing session is something vital in the process of the creation of the project. Users often give you a different perspective on how to assemble and enhance your project in unimaginable ways. It is always important to remember that your project serves a purpose that depends heavily on the userā€™s interaction, and hence, the project is for the users. Therefore, usersā€™ feedback is a crucial step in the fabrication and design of oneā€™s project.

My conclusion is based on my experience and personal perspective with the recycling bins. For example, every time I go to a basket to throw a plastic bottle, I look for the basket and I throw it there. A simple process that anyone can do. But through this project, I wanted to enhance this “process that is so simple”. What I mean is I want to give the user a kind of visual feedback every time he does the right thing to throw a plastic bottle where it belongs. This visual interaction is a simple feedback for people to see in a concrete way how the world says thank you. It is obvious that every time you throw a bottle, a tree will not appear magically in the earth. But through this symbolization, my partner and I want the user to be motivated to recycle. When we finally presented our final project to our class, we noticed the reaction and interaction of the users with our project. People were surprised to see that by throwing a simple plastic bottle, a tree appeared on the surface of the bin. The excitement of the users was the hook we wanted to create for people to interact with our project and therefore, be encouraged to recycle. Although my project was successful during the class, to be honest, if I had more time to change something in my project, I will incorporate another sensor that can turn on the projector every time someone approaches ā€œMake a Treeā€. In this was the projector wonā€™t be turn on 24/7 and we could safe some energy (Young). I am quite proud of my project from my partner, and myself. At the beginning of the course, sometimes it was difficult for me to even turn on an LED, now together with Sarah (my partner), we have created something that I never imagined possible. To create this project, you can not only value the creation of the project itself, but also assess the progress of what I learned throughout this semester in order to create my final project. The purpose of this project for me is goes beyond than just recycling, for me, it represents all my effort, knowledge, and experience that I have for interaction.

(The code is below the video)

Processing code:  Tab 1 ā€œEarthā€

import processing.serial.*;

String myString = null;

Serial myPort;

int valueFromArduino;

int NUM_OF_VALUES = 1; /** YOU MUST CHANGE THIS ACCORDING TO YOUR PROJECT **/

int[] sensorValues; /** this array stores values from Arduino **/

import processing.video.*;

Movie earth;

PImage tree;

ArrayList<Tree> trees = new ArrayList<Tree>();

void setup() {

//size(640,360); //

fullScreen();//

earth = new Movie(this, ā€œearth2.mp4ā€);

earth.loop();

earth.speed(0.5);

tree = loadImage(ā€œtree.pngā€);

filter(INVERT);

myPort = new Serial(this, Serial.list()[ 24 ], 9600);

sensorValues = new int[NUM_OF_VALUES];

}

void draw() {

updateSerial();

printArray(sensorValues);

if (earth.available()) {

earth.read();

}

filter(GRAY);

background(255);

imageMode(CORNER);

image(earth, 0, 0, width, height);

if (sensorValues[0]== 1){

trees.add( new Tree() );

}

//float timeStamp = earth.time();

// println(timeStamp);

for(int i=0; i<trees.size(); i++) {

trees.get(i).display();

trees.get(i).move();

}

for(int i=0; i<trees.size(); i++) {

if(trees.get(i).offEarth == true) {

trees.remove(i);

}

}

println(valueFromArduino);//println(mouseX, mouseY);

println(trees.size());

}

//void mousePressed() {

// trees.add( new Tree() );

//}

void setupSerial() {

printArray(Serial.list());

myPort = new Serial(this, Serial.list()[ 24 ], 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;

}

void updateSerial() {

while (myPort.available() > 0) {

myString = myPort.readStringUntil( 10 ); // 10 = ā€˜\nā€™ Linefeed in ASCII

if (myString != null) {

String[] serialInArray = split(trim(myString), ā€œ,ā€);

printArray(serialInArray);

if (serialInArray.length == NUM_OF_VALUES) {

for (int i=0; i<serialInArray.length; i++) {

sensorValues[i] = 0;

println(sensorValues[i]);

sensorValues[i] = int(serialInArray[i]);

println(sensorValues[i]);

}

}

}

}

}

Processing code: Tab 2 ā€œTreesā€ 

class Tree {

float x, y;

float speed;

boolean offEarth = false;

Tree() {

float centerX = width/2;

float centerY = height/2;

// while( dist(x, y, width/2, height/2) > 150) {

x = centerX + random(-200, 200);

//x = random(170, 200);

y = centerY + random(-200, 200);

// }

speed = 7;

}

void display() {

ellipse(x, y, 10, 10);

imageMode(CENTER);

image(tree, x, y);

}

void move() {

x += speed;

if(dist(x, y, width/2, height/2) > 300) {

offEarth = true;

}

}

}

Arduino Code: 

#define trigPin 2

#define echoPin 3

int sensor1;

void setup() {

SensorSetup();

Serial.begin(9600);

}

void loop() {

int actualDistance = MeasureDistance();

if (actualDistance < 15) {

sensor1 = 1;

}else {

sensor1 = 0;

}

// keep this format

Serial.println(sensor1);

}

void SensorSetup() {

pinMode(trigPin, OUTPUT);

pinMode(echoPin, INPUT);

}

int MeasureDistance() { // a low pull on pin COMP/TRIG triggering a sensor reading

long duration;

digitalWrite(trigPin, LOW); // Added this line

delayMicroseconds(2); // Added this line

digitalWrite(trigPin, HIGH);

delayMicroseconds(10); // Added this line

digitalWrite(trigPin, LOW);

duration = pulseIn(echoPin, HIGH);

long distance = (duration / 2) / 29.1;

return (int)distance;

}

Recitation 11- Santiago Salem

I found it really interesting that this recitation was conducted through three different workshops because we got to specialize in certain topics that will help us focus on assembling our final project. I decided to join the serial communication workshop with our professor  Young because for me, in particular, I did not have a very clear idea of how to use certain sensors to send signals from Arduino to Processing.  In this workshop, we worked primarily with a potentiometer and switch to activate and manipulate certain sketches on processing. For me this workshop was extremely important since a large part of our project is based on sensors that detect movement and send signals to processing in order to create the animation of certain objects. 

My experience in this recitation was very helpful. I was able to accomplish the recitations’ task. For me personally, it wasnā€™t very difficult due to the fact that we have been practicing serial communications in the last two recitations. But because we got the opportunity to specialize in one specific area, I was able to ask all the minor questions about how serial communication works and clarify all my doubts about the if statements.

Since a large part of my project focuses on sensors, my instructor helped me clarify certain doubts about how to send the signals that processing can understand so that it can turn them into images. For me this is quite important since the signals of the sensors are invisible I need to let the user know that his interaction signal managed to create an object in my project. And this for me is the beauty of working on interaction projects, since computers and sensors manage to captivate the most minimal signals and turn them into an (if well done) visual feedback. One as a creator must also make this operation possible, but the great majority depends on the sensors, computers, and components.

Recitation 10- Santiago Salem

During this recitation, I wanted to use my previous artwork of processing and try to manipulate it with a potentiometer through Arduino. So my original work was based on a rotational cube in space that rotated accordingly to the position of your mouse. This time I wanted to control the speed of rotation through the potentiometer, yet still control the position with the mouse. My exercise for today was very similar to the one used in class where we control the speed of some rotational hexagons with the potentiometer.

My main challenge of this recitation was looking where to put in my if statement and how to conduct the map function. Unfortunately, I forgot the order of the values inside the map function, but later a fellow explained to me that the map function is (valueFromArduino, Fromlow, from high, tolow, tohigh). Afterward, I successfully map the values in the correct order. The other reminder, Is that I must remember every time I first have to test the Arduino inputs and sensors before proceeding to Processing. I worked for 40 minutes on processing wondering why my potentiometer wasnā€™t working, and it was due to a displacement of a cable.

Code: https://gist.github.com/ss11133/ee5c91d43a7589cec96574a42c8da717

Reflection:

I believe that this new technology and arithmetical tendencies have created in themselves a new era of technological art. Not only can you see a spectacular visual show but in it, you can create a new relationship closer between the audience and the piece of art. By creating a rotating cube and being able to change it in its form and speed every time I create an alternative and new vision to my project. To me what I find most funny about this whole process of new technological art. Is that one of the most vital compounds (the computer) only manages to see numbers and patterns, but still manages to send signals that create wonderful projects. And here is when one as a creator must value that to create something not only the result must be beautiful, but the process must also be valued. It’s like a painting, every brush is a line of code, and every mistake in the process is part of learning how to become an artist.

Recitation 9- Santiago Salem

Project  1

This project main focus is to create an instrument through various sensors. For example; there will be a blowing sensor were one can blow to generate sound, and two other motion sensors to control the frequency and pitch of the sound. The instrument inputs will be displayed in processing, so the user can regulate and create various sounds and/or songs. What I found really interesting about this project is that the projects itself act like multiple instruments when actually is just one single tool that gives you not only sound feedback but also a visual one. I think he is creating an interactive instrument that the user doesnā€™t necessarily have to know much about instruments or music to a generate or create a song. Therefore, I believe each user will have a unique experience with the project, and it can help people create songs without a musical background. Is a really helpful and useful alternative to creating a musical device with pure technology that includes visual feedback.

Project 2

The project of Lana Henrich based on a game where the user has to guess the location, person, or art based on a blurred image displayed on processing. The project will display four different options of which the user has to choose one answer. The purpose of the project is to create an entertaining learning game for the users. During the recitation is suggested that to make the game more interactive, they could add a multiple player function to the game. This way, there will be more interaction taking place between the players and, simultaneously, you would create a sense of competition. I do believe this project fosters the idea of how people interact with technology because one can learn how much information (or dilatation of pixels) users need in order to recognize pictures.

Project 3

This project is based on an experience where the user is amazed by a spectacle of sounds and images that are triggered by motion sensors. Kyle aims to make each user have a different experience and thus see how people react depending on the show. I believe that this project serves as an experiment for great visual and audio shows. Well with that project we can see what is most intriguing to the audience and how it responds to the different effects caused by the sensors. He still has not quite clear what kind of sensors he intends to use, so I do not really know what kind of answers the show will have (my only doubt). I also suggested that he should do it in a closed room so that the user can have a more unique experience. But the project itself has a lot of power if done well. And I think that this project aligns very well with my definition of interaction, since the project provides direct feedback to the user, and also creates an interdependent relationship between the user and the show (where each factor needs the other to function).

My project

The least successful part of my proposal was that people believed that rotational earth is not strong feedback to the disposal of the lids. I did agree with this suggestion because it will require a lot of lids for the project to deliver strong and clear feedback to the user. Therefore, I and my partner decided that instead each time a lid goes inside of the holes, we are going to display the lid on processing (rotational homogenously with the globe). The other suggestion people said was that I should incorporate more visuals to my project. Therefore, I will bring a projector to illustrate the progress of the lids upon a wall. So far this was the only suggestion I had on my project, and apart from this everyone agreed that my project has a strong correlation with their definition of interaction. 

Final Essay Project– Santiago Salem

Tap the World

         The purpose of this project is for people to help in the recycling process as we currently suffer from a global warming problem. When separating the caps of the bottles, the recycling companies classify the lids more easily, quickly and efficiently (since the lids do not occupy as much space as the bottles and also have a large concentration of plastic). With this project we are going to give a more fun and interactive alternative when we throw away lids (and bottles) in the trash. Furthermore, there are several organizations such as “Tapas para Sanar” (lids to heal, also ā€œtapasā€ means lids) were they accumulate lids and  make them into products or sell them to large recycling companies, and with the money help fund children with cancer.

         First, it is important to describe the project in a detailed manner to understand the purpose. We are going to create a world with the laser cutter, then we are going to make three holes in the world. Each hole has a different size. The smallest hole gives you 5 points, the middle hole gives you two points, and finally the big hole gives you a point. In processing we are going to have a world that rotates, and every time a person throws the lid he has to try to put it in those holes. If it enters the small gap there will be a world in processing that will turn five degrees, and so on respectively. When the world turns complete (360 degrees) the player has won the goal of recycling the lids.

       The technology behind the project is that we are going to put a sensor inside each hole that registers the movement generated by the lid. Then the sensor will send these signals to Arduino that then Arduino converts it into values for processing (making the world rotate). The idea of the project is to encourage the recycling of these lids in a way that the audience finds it more entertaining, visual, and interactive. Therefore, if the people find it more entertaining, the audience will be more involved and helpful in the process of recycling.

Plan

  • First)Laser cut the world and work on the design. (April 27, 2019)
  • Second) Start to work on the sensors and values for Arduino and processing
    • April 28, 2019)
  • Third)User interaction session.(May 10, 2019)
  • Fourth)Make changes regarding the audience’s responses (After user
    • testing session) (May 11, 2019)
  • Fifth)Present Tap the World (Final IMA Show) (May 14, 2019)
  • Sixth) IMA Show ( May 17, 2019)

        At first, we did not have a very concrete idea of what we wanted to do. After investigating the recycling process, we discovered how to separate bottle caps can not only have a great impact on the recycling process, but also finance the battle against cancer. So, we’re looking for a way we can motivate people to separate bottle caps in an interactive and practical way. I believe that “Tap the world” has a great correlation with my definition of interaction, since there is an interactive relationship between our project and the audience. When throwing the lids into the whole, the project  will give an immediate feedback when making the world turn. In this way there is a reciprocal relationship between the audience and my project. Also, the project has a reason to entertain the audience while they help recycle.If the project manages to be a success, we could incorporate this type of recycling in the school (as this would help to facilitate recycling), and also if it is carried out on a larger scale, we could donate the covers to certain organizations to help fight cancer.