Final Project Individual Reflection

Midterm Project Individual Reflection

By Yinuo Chen(Amy) Date: 2021.10.20

A. BRIEF INTRODUCTION

Project Title: Rumors

Co-Designer: Amy Chen

Instructor: Rudi

 

B. CONCEPTION AND DESIGN: 

Have you ever gossiped about other students in your school life?

Do you know what happened to those who were gossiped about?

Do you forget the act of gossip after laughing?

Do you know the consequence of teasing others by gossiping about their rumors?

It’s time to realize the seriousness of spreading rumors…

As the project’s title described, the concept of our final project is closely related to the topic of rumors. As described in my project proposal, “We are living in a world where information is spreading extremely quickly. Every minute, when people are just clicking on their mobile phones, thousands of messages will come to their eyes and are waiting to be viewed. However, how many of them are real and trustworthy? How many of them are Rumors and need to be thrown away?” And according to my research of this concept, in our life, it is very common that we like to talk about some “secret news” about someone. Not only do people discuss celebrities, but they also gossip about those who are next to them. But, when people are gossiping about others, they seldom think of the negative impact on those who are being discussed. When they believe in this “secret news”, which in other words, rumor, they are much likely to spread it to more people behind the back of the one that is being discussed as a way of pastime. According to my research, gossip and rumors can destroy a person’s self-confidence and affect their self-esteem. It also can lead to depression, suicidal thoughts, eating disorders, anxiety, and a host of other issues. So, this is the reason why I want to make “Rumors” and I want to make it more visible how rumors will destroy a normal person, which is allowing users to see how rumors become the ultimate force that overwhelms life-saving straws.

In this project, instead of my very first idea that focuses on fake news that is about the whole world and is about different topics, we want to focus on the fake news about one particular girl in the school.

About the design of our project, when participants pick up rumor notes, they will hear someone whispering about the rumors next to their ears. Since the choice of hearing the rumors is a way to spread the rumors, the participants are actually hurting the girl. There’s a little house which serves as the scene of the school. The door will open to show the participants the girl’s emotional change. And participants can watch the whole process of how their choice makes the girl sadder gradually through crying.

In this way, I think the action that my users pick up different notes will be the way how they interact with my project. If they pick up different notes, they are able to hear different “news” about the girl and they will interpret the news according to themselves differently. Also, since they can listen to the audio of the rumors and see short clips of video, they can get different feedbacks from the reaction of the girl who appears in the video. Considering this interaction, we provided different video clips of the girl crying to show different levels of her sadness. 

During the user test session, we finished most part of our project, so we got many useful user tests and feedback from our users. For instance, after our users tried the project, they found that it was hard to realize that these were rumors about a girl but real news. And they didn’t find the close relationship between the notes and the content of the video that we wanted to show the progressive picture of girls crying. Moreover, through trying our project, they couldn’t make full sense of what we were trying to emphasize. These are all useful feedbacks so we used them to improve our project according to them. Considering the feedback, we revised our project. Firstly, we printed a paper that asked our users whether they wanted to hear some interesting news about the girl. (But we didn’t find a correct place to place it at the end 😭) Secondly, we changed the sequence of video clips to better display a gradually increase sadness of the girl, which means that the more rumors are spread and read, the sadder the girl will be. Finally, we add one more scene at the end of our project where the picture of the girl turns from a colorful one into a black-and-white one. On the screen, there is one sentence that “When spreading rumors, you may unconsciously hurt others a lot.” We want to emphasize the concept of our project through this scene.

These are some notes about the feedback from the user testing session:

This is the adjustment of our project:

C. FABRICATION AND PRODUCTION:

  • First step: Drafting and Creating Blue Prints

These are the primary hand-made drafts of the project.

  • Second step: Sensors and Motors

In order to detect users’ action of picking up the notes, we decided to use light sensors as our major sensor. We referred to our peers’ advice and we found that the light sensor can create the effect we want much better than other sensors such as ultrasonic. For the ultrasonic, I find that if the distance is too close, it is hard to detect this slight change. So finally we chose light sensors. In the beginning, we tried a digital light sensor and we found it really efficient and sensitive. However, we also found one shortcoming of this digital sensor: it can only connect to two specific pins on the Arduino board. So, we only include one digital light sensor eventually. As for the servos, we use them to control the opening and closing of the door. We set a specific angle of 120 degrees to control the opening angle of the two doors. We connect one servo to the first three notes and the other one to the next three notes. One difficulty that we met in this part is where should we place the servos so that they can successfully control the opening of the doors. At first, we connected the servos to the computer, but then we found that it is better if we arrange them on the side of the inner wall of our little house.

  • Third Step: Appearance and Fabrication

For the rumors notes, we created a small box with grooves so that the notes can be placed in them. Also, we created a compartment under the upper cover of the small box so that the light sensors can be attached to it and the sensors won’t expose higher than the top of the box in the air. For the notes, I wrote them by myself to create a sense of casual which would remind users of their school lives when they might pass little notes to each other during class time.

 

For the computer, I also created a house for it. To make the testing our project can be more immersive, we made a “school” that can hide the computer in it instead of exposing the computer in the air. We want to create an effect that users can secretly watch the girl when she is alone in the classroom after her rumors were spread by her peers. So we create two flexible doors (even though the door seems to be shaky finally) that can be opened. For the door, I firstly wanted to try a hinge to make the door open. However, due to the fact that we didn’t have enough time to wait for the hinge that was purchased online or wait for the 3D printer to print one, we finally chose to attach the doors with paper tapes. Also, I made the little house by laser cutting since we think that a wooden house looks better than 3D printed one. look like a school and I drew a small clock to make it look like a school better. Moreover, I cropped a piece of grass to improve the appearance of the school. 

  • Fourth Step: Serial Communication

Different from the fabrication of the elements that are mentioned above that I spent more time on, my partner spent more time on this part. We mainly focus on two parts: how to control the light sensors with the servos and how to control the light sensors with the video clips and audio. For the servos, we didn’t come with other options that could better make the door open and close so even didn’t consider other elements. For the serial communication between Arduino and Processing, we transport the figure that our light sensors showed when picking up the notes and put them back in the box. After our testing, we found that the sensitivity of each light sensor is different, so for each sensor, we set different trigger parameters. Then, based on the example of importing images and audio that were given to us during the courses, we created our own code. In the code, we used the “true” or “false” statement as the main part and successfully make the serial communication.

D. CONCLUSIONS:

The goal of our project is to let people aware of the seriousness of spreading others’ gossip and rumors without finding out whether they are true or not because their unintentional actions might hurt the master of the rumors greatly. It is very common for us to use another companion’s scandal or rumor as a topic of after-school entertainment in our school days. However, in the project, we want to show the sadness that these people who have been rumored by others may show when they leave the masses and are alone, so as to intuitively reflect the degree of harm to a person by the rumors. I think our project is successful generally and it achieve its stated goals well. Seeing the announcement that we put on the roof of the school building, our users took on the earphones and they also picked up different notes and read them. When they saw the door open, they will approach the crack where the door opens and see what happened inside. Also, after testing the project, we got very positive feedback from our users. They could understand the general meaning of our project before we explained carefully what we want to address. I think our design aligns with my definition of “interaction” well because our audience can get different responses from the project when they are communicating with it. On the other hand, our users’ choice of notes will also trigger different effects that include different audio and video clips content, which will then trigger our users’ thoughts accordingly.

However, I also realized that there are some defects in our project after presenting it and receiving feedback from both my peers and my instructor. Firstly, the door is a part that can be improved better. In our project, we can only control the left door with the upper three light sensors, and the right door can only be controlled by the below three sensors. This results in a not very clear presenting of the video content and our users need to open the door themselves if they want to see what is happening. It will be better if the door can open a little more.

Also, there seems to be a gap between our “rumors center” and the “school building”. It will be more understandable if we can find a closer relationship between the two objects. One of our classmates provided a very good idea that we could put the notes on the corners outside the school building separately so that we can create an atmosphere where everyone discusses other people’s gossip in every corner of the school.

Moreover, we can invite more peers to record the audio clips instead of just by ourselves. If more people are talking, it can produce a better feeling that many people are gossiping about one’s rumors instead of only two “big mouses” gossiping about another poor girl. I think all the feedbacks are a very good one and I will take them into consideration if I have more time to work on this project in the future.

In addition, even though it didn’t make our project fail, there’s one small part that I need to improve in the future. When I was designing the “school building”, I only measure the size of the computer, but I forget that we need to include the length of wires that connect to the Arduino board and the earphone. For the Arduino part, I made a hole in the box in advance so it didn’t affect our project much. However, we didn’t connect the earphones until the final presentation. If the plug of the headphone cable is a little longer, we can’t put the computer with the headphone in the box. This detail makes me very nervous before the speech. This is also something I need to improve in the future, and I should consider it more comprehensively so as not to be at a loss when preparing for a speech or performance. 

Through the project, I sincerely hope that people can stop, or at least reduce the time when they tease others with their rumors. No one wants to become a topic that will be discussed by his/her peers maliciously. And with my own experience, during my process of designing this project and after completing it, when I was talking about others with someone’s rumors, I became aware that I was gossiping about others and would converge a bit. So in my opinion, this project does help me realize the problem of rumors and it will definitely continue working in the future.

Through the process of designing and creating this project, or through the process of learning and exercising throughout this whole semester, I learned a lot. In addition to technical skills such as coding in Arduino and Processing, designing and laser cutting, building up our own circuits, and creating serial communication between Arduino and Processing, I also learned much about how to design my own project and how to make it come true in real life. The initial idea is very crucial to create a project with great significance and concept. It is never enough to just have an idea, beyond the imaginative and ideal ideas there are a lot of things that need to be considered. For instance, is this idea doable? Can this idea be understood easily by our audience? Can our design explain the concept well? These are all points that I need to consider. Through these projects, I am more familiar and confident with making projects in the future. And I am sure that I can create better and more influential projects in the future based on the knowledge and experience of Interaction Lab.

Finally, I want to send my sincere thanks to my classmates, my partner Ella and my instructor Rudi for all the help and encouragement that support me to overcome many difficulties when learning new skills, designing my own projects, and making my idea come true. 😊

E. TECHNICAL DOCUMENTATION:

Video for the project:

Code for Processing:

import processing.sound.*;
import processing.serial.*;
import processing.video.*;
PImage img;



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

boolean playSound1 = true;
boolean playSound2 = true;
boolean playSound3 = true;
boolean playSound4 = true;
boolean playSound5 = true;
boolean playSound6 = true;

String myString = null;
Serial myPort;
SoundFile sound1;
SoundFile sound2;
SoundFile sound3;

Movie myMovie1;
Movie myMovie2;
Movie myMovie3;

SoundFile sound4;
SoundFile sound5;
SoundFile sound6;

Movie myMovie4;
Movie myMovie5;
Movie myMovie6;


void setup() {
  fullScreen();
  // size(500, 500);
  background(0);
  sound1 = new SoundFile(this, "rumor1.wav");
  sound2 = new SoundFile(this, "rumor2.wav");
  sound3 = new SoundFile(this, "rumor3.wav");

  myMovie1 = new Movie(this, "cry1.mov");
  myMovie2 = new Movie(this, "cry2.mov");
  myMovie3 = new Movie(this, "cry3.mov");

  myMovie1.loop();
  myMovie2.loop();
  myMovie3.loop();

  sound4 = new SoundFile(this, "rumor4.aif");
  sound5 = new SoundFile(this, "rumor5.aif");
  sound6 = new SoundFile(this, "rumor6.aif");

  myMovie4 = new Movie(this, "cry4.mov");
  myMovie5 = new Movie(this, "cry5.mov");
  myMovie6 = new Movie(this, "cry5.mov");

  myMovie4.loop();
  myMovie5.loop();
  myMovie6.loop();

  img = loadImage("crygirl.jpg");

  setupSerial();
}

void draw() {
  getSerialData();
  printArray(sensorValues);


  if ((sensorValues[0]>400)&&(sensorValues[1]<500)&&(sensorValues[2]<500)&&(sensorValues[5]<20)&&(sensorValues[4]<700)&&(sensorValues[3]<500)) {

    if (playSound1 == true) {
      // play the sound
      sound1.play();
      // and prevent it from playing again by setting the boolean to false
      playSound1 = false;
    }

    image(myMovie1, 0, 0);
  } else if ((sensorValues[0]<500)&&(sensorValues[1]>200)&&(sensorValues[2]<400)&&(sensorValues[5]<20)&&(sensorValues[4]<700)&&(sensorValues[3]<500)) {

    if (playSound2 == true) {
      // play the sound
      sound2.play();
      // and prevent it from playing again by setting the boolean to false
      playSound2 = false;
    }
    image(myMovie2, 0, 0);
  } else if ((sensorValues[0]<500)&&(sensorValues[1]<200)&&(sensorValues[2]>400)&&(sensorValues[5]<20)&&(sensorValues[4]<700)&&(sensorValues[3]<500)) {

    if (playSound3 == true) {
      // play the sound
      sound3.play();
      // and prevent it from playing again by setting the boolean to false
      playSound3 = false;
    }
    image(myMovie3, 0, 0);
  } else if ((sensorValues[0]<500)&&(sensorValues[1]<500)&&(sensorValues[2]<400)&&(sensorValues[5]>0)&&(sensorValues[4]<700)&&(sensorValues[3]<500)) {

    if (playSound4 == true) {
      // play the sound
      sound4.play();
      // and prevent it from playing again by setting the boolean to false
      playSound4 = false;
    }

    image(myMovie4, 0, 0);
  } else if ((sensorValues[0]<500)&&(sensorValues[1]<500)&&(sensorValues[2]<400)&&(sensorValues[5]<20)&&(sensorValues[4]>700)&&(sensorValues[3]<400)) {

    if (playSound5 == true) {
      // play the sound
      sound5.play();
      // and prevent it from playing again by setting the boolean to false
      playSound5 = false;
    }
    image(myMovie5, 0, 0);
  } else if ((sensorValues[0]<500)&&(sensorValues[1]<500)&&(sensorValues[2]<400)&&(sensorValues[5]<20)&&(sensorValues[4]<700)&&(sensorValues[3]>400)) {

    if (playSound6 == true) {
      // play the sound
      sound6.play();
      // and prevent it from playing again by setting the boolean to false
      playSound6 = false;
    }
    image(myMovie6, 0, 0);
  }
  // use the values like this!
  // sensorValues[0]
  // add your code

  if ((playSound1 == false)&&(playSound2 == false)&&(playSound3 == false)&&(playSound4 == false)&&(playSound5 == false)&&(playSound6 == false)) {
    image(img, 0, 0, width, height);
    filter(GRAY);
    textSize(50);
    textAlign(CENTER);
    text("When spreading rumors, you may unconsciously hurt others a lot.", width/2, height/2);
    fill(255);
  }
}

void movieEvent(Movie m) {
  m.read();
}

void setupSerial() {
  printArray(Serial.list());
  myPort = new Serial(this, Serial.list()[ 1 ], 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_FROM_ARDUINO];
}

void getSerialData() {
  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_FROM_ARDUINO) {
        for (int i=0; i<serialInArray.length; i++) {
          sensorValues[i] = int(serialInArray[i]);
        }
      }
    }
  }
}

 Code for Arduino:

#include <Wire.h>
#include <Digital_Light_TSL2561.h>
#include <Servo.h>
Servo myservo1;
Servo myservo2;


void setup() {
  Serial.begin(9600);
  Wire.begin();
  TSL2561.init();
  myservo1.attach(8);
  myservo2.attach(9);
}

void loop() {
  // to send values to Processing assign the values you want to send
  //this is an example
  int sensor1 = analogRead(A0);
  int sensor2 = analogRead(A1);
  int sensor3 = analogRead(A2);
  int sensor4 = analogRead(A3);
  int sensor5 = analogRead(A4);
 // int sensor6 = 0;
  int sensor6 = TSL2561.readVisibleLux();
  int servogo1 = 0;
  int servogo2 = 0;

  // send the values keeping this format
  Serial.print(sensor1);
  Serial.print(",");  // put comma between sensor values
  Serial.print(sensor2);
  Serial.print(",");  // put comma between sensor values
  Serial.print(sensor3);
  Serial.print(",");  // put comma between sensor values
  Serial.print(sensor4);
  Serial.print(",");  // put comma between sensor values
  Serial.print(sensor5);
  Serial.print(",");  // put comma between sensor values
  Serial.print(sensor6);
  Serial.println();


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

  // end of example sending values
if ((sensor1 > 400) || (sensor2 > 400) || (sensor3 > 400))   {
    servogo1 = 1;
  }
  if (servogo1 == 1) {
    myservo1.write(120);
    //delay(10);
  } else {
    myservo1.write(0);
  }

  if ( (sensor4 > 400) || (sensor5 > 700) || (sensor6 > 20)) {
    servogo2 = 1;
  }
  if (servogo2 == 1) {

    myservo2.write(60);
    //delay(10);
  } else {

    myservo2.write(180);
  }

}

 

Leave a Reply

Your email address will not be published. Required fields are marked *