Categories
Interaction Lab

Midterm Project Individual Reflection

Project Title: Career Express

Ran Xu (Charlotte) 

Instructor Name: Prof. Marcela Godoy

Context and Significance:

 The previous group project reminds me of using the material around and my ability to make full use of the material improved because of that. In addition, my understanding of the interaction: a process in which each participant in turn listens, thinks, and speaks can be shown in the process of the project. When a player wins, his sense of time is adjusted to the normal sense of time; in other words, it is an input and listening process. The player’s clock thinks about how to adjust accordingly after receiving the signal of winning or losing (winners tend to have the correct time, while losers have the same sense of time) is the thinking part. The corresponding adjustment of time sense given by the clock at the end (presented in the speed of pointer rotation) is the speaking part or the output part.  

We are inspired by a Bilibili short video (here is the link) and it is a short drama on a “career auction”. Near the ending of the video, a woman shout out “8000” but the host ignores her. So we intended to make a project to raise people’s awareness, especially men’s awareness of gender inequality in workplaces.

In order to make our project more scientific, we search for relative information from UNDP (here is the link) and use accurate data for our labels.

Conception and Design

  For the first part of the game, two players try their best to press the button as fast as they can and the serial monitor shows the times that they have pressed them. When one of the players first reaches 10 presses, the LED that represents him/ her lights up and the buzzer plays the melody. At first, we want to put this speed game on top of the equipment and use the cardboard as support. But we find that the competition is very fierce and the cardboard may break during the game. So we decided to put the breadboard aside. And we also want to change the design of the buttons and let them can be held in people’s hands. But we find the connection between wires and buttons is weak and we didn’t find appropriate material to make the connection stronger. In that case, we put the button on the breadboard.

For the second part of the game, the interaction part is people using the clip to stick the labels. Although it is manual, there is an interaction between the equipment and the player since he needs to use the clip manually and the label gives him relative feedback. (showing the content of notes) 

 

Fabrication and Production   

I think the most significant part of making the physical equipment.  Since at first, both Younian and I want to make combine the speed game and the UFO catcher together and put them in one piece of equipment. And in the original version, we have two players in the second round. I tried several ways to realize that target.

I forgot to take the picture of the finished first version. But I Cut two holes in the cardboard to hold the clips, then put the breadboard in the middle. But I found it’s not stable and the space for the clips are too small for players to control, so I just quit this idea.

(the original version design)

This is the second version of the equipment and at that time we supposed we can let the button be held in players’ hands. But after the user test, we found it is hard for us to realize that the second round only needs one player, so I also quit this idea. (We want to use the fruit button at first, but because of lockdown, we can’t buy apples immediately and the fruit we own is too juicy)

At last, I change the design and use a longer stick to make the clip hang on the hole. In addition, I move the light on the breadboard to the cardboard to make the result of the game clearer. Since the edge of my turntable is not connected with the equipment, poking down labels may break the turntable and the motor. So I try a different way from Younian’s and I use the clip to stick the label.

For the part of the concept, we also made changes. The original design of this project is to let women and men find their “true selves” and talks about gender labeling.  After talking with Professor Godoy, we realized that our target audience is too big and we need to focus on a specific topic. She also advised us to find some relative information such as data to make the design of labels more visual and scientific. So we changed the topic to “Career Express” and search for relative academic resources to support our project.

Younian and I find the relative code in the previous classes and recitations. Younian modify these codes to make them fit our project and I also made some modifications to the code such as the music. During this process, Professor Godoy helps us a lot with debugging. And after we made the physical equipment, we started to make the poster. We cooperate to write the content of the poster. Younian made the 3D model and I draw the 2D sketches. Then Younian combine everything together and made the amazing poster.  At last, we shoot the video and I did the editing part to make the final video.

Our Poster

Our Code 

int buzzerPin = 8;
int button1 = 10;
int button2 = 11;
int led1 = 3;
int led2 = 2;
int goal = 10;
int buttonState1 = LOW;
int previousState1 = LOW;
int buttonState2 = LOW;
int previousState2 = LOW;
int counter1 = 0;
int counter2 = 0;
boolean winner1 = false;
boolean winner2 = false;
long time = 0;
long debounce = 200;
boolean stage2 = false; // this is going to be a boolean variable that we will make true when we want to go to the second stage
void setup() {
  Serial.begin(9600);
  pinMode(buzzerPin, OUTPUT);
  pinMode(button1, INPUT);
  pinMode(button2, INPUT);
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  Serial.println("****ROUND 1: Once the monitor shows 【GO!!!!!!!!!!!!!!!!】, press the button as fast as you can. The one that first reaches 10 presses will win the game and can go into the 2nd round.");
  Serial.println("ROUND 2: Use the stick to poke down the label in the hole. And the game will end when you get the label with 【TRUE-SELF】 on it.****");
  delay(5000);
  Serial.println("READY");
   playBeep();
  delay(1000);
  Serial.println("SET");
 playBeep();
 playBeep();
  delay(1500);
    Serial.println("GO!!!!!!!!!!!!!!!!");
playBeep();
playBeep();
playBeep();
}
void playBeep() {
  playFreq(100, 200);
}
void playFreq(double freqHz, int durationMs) {
  //Calculate the period in microseconds
  int periodMicro = int((1 / freqHz) * 1000000);
  int halfPeriod = periodMicro / 2;
  //store start time
  long startTime = millis();
  //(millis() - startTime) is elapsed play time
  while ((millis() - startTime) < durationMs) {
    digitalWrite(buzzerPin, HIGH);
    delayMicroseconds(halfPeriod);
    digitalWrite(buzzerPin, LOW);
    delayMicroseconds(halfPeriod);
  }
} 
void loop() {
  buttonState1 = digitalRead(button1);
  buttonState2 = digitalRead(button2);
  if (counter1 < goal && winner2 == false) {
    if (buttonState1 != previousState1 && millis() - time > debounce) {
      if (buttonState1 == HIGH) {
        counter1++;
        Serial.print("player MALE: ");
        Serial.println(counter1);
        time = millis();
      }
    }
    previousState1 = buttonState1;
    if (counter1 == goal && winner2 == false) {
      winner1 = true;
      digitalWrite(led2, HIGH);
      Serial.println("PLAYER MALE WINS");
      playMelody();
    }
  }
  if (counter2 < goal && winner1 == false) {
    if (buttonState2 != previousState2 && millis() - time > debounce) {
      if (buttonState2 == HIGH) {
        counter2++;
        Serial.print("player FEMALE: ");
        Serial.println(counter2);
        time = millis();
      }
    }
    previousState2 = buttonState2;
    if (counter2 == goal && winner2 == false) {
      winner2 = true;
      digitalWrite(led2, HIGH);
      Serial.println("PLAYER MALE WINS");
      playMelody();
    }
  }
  //here we will check whether we start stage2
  if (stage2 == true) {
    moveMotor();
  }
}

void playMelody() {
  playFreq(100, 200);
  playFreq(100, 200);
  playFreq(500, 200);
  playFreq(500, 200);
  playFreq(600, 200);
  playFreq(600, 200);
  playFreq(500, 200);
  delay(100);
  playFreq(400, 200);
  playFreq(400, 200);
  playFreq(300, 200);
  playFreq(300, 200);
  playFreq(200, 200);
  playFreq(200, 200);
  playFreq(100, 200);
  delay(100);

  
  // you can find something or create your own melody for this
  //ad your melody here
  //after the melody stops we will go to stage 2
  //you can have a delay here before start moving
  delay(1000);
  stage2 = true;
}

void moveMotor() {
  float sensorValue = analogRead(A0);
  // print out the value you read:
  Serial.println(sensorValue);
  float MotorSpeed = map(sensorValue, 0, 1023, 0, 255);
  analogWrite(9, MotorSpeed);
  delay(1);        // delay in between reads for stability
}

Our video (Too big to upload. Younian uploaded this video to her Bilibili homepage and here is the link)

Conclusion

Our goal is to raise people’s awareness, especially men’s awareness of gender inequality in workplaces. We tried to express this theme by controlling some elements in the game and making it more story-telling. The result of the first-round game is fixed and only men have the opportunity to join the second round and see the labels with data on gender inequality in workplaces. In that case, men players can confront serious inequities they may not have noticed. In addition, since the first part of the game is competitive, it restores the competitive situation in the workplace to some extent to make the player more indulged. In that case, women players can also have a stronger feeling about the inequality.

Our project shows the understanding of interaction in two parts of the game and in both manual and electronic ways. If I have more time I would change the design of the button and have a better way to fix the motor. I learned that failure is normal during the process even if you know the methods. It is important to try again and make improvements to the project. In addition, communication and asking for help are important for the group project. Getting over the trouble together would make problems easier to solve.   

 

 

 

 

 

 

 

Leave a Reply

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