Midterm Reflection

Modern Self-driven Gym Equipment – Eadin Wang – Andy Garcia

Our previous group project gave me deep thoughts on the actual usage of interactive technologies. The two projects I researched are mostly limited to visual enjoyment and entertainment. I also mentioned that the clock one seems not so interactive because all the clocks are operating according to the program set before. Meanwhile our group performance points out some side effects of technology like addiction. Therefore in the midterm project, my partner and I were thinking of making something meaningful to people. Initially we wanted to show that everyone can make a difference to the city by lightening up a city visually. However it only includes one way of interaction and we found it hard to think of great improvements. Therefore we shifted our minds and identified one popular topic nowadays which is the unhealthy habit of drinking too much bubble tea. The targeted audience is young people who absorb too much sugar by drinking and lack exercise in their daily life. By this device people who lack exercise or simply want to do fitness can burn their calories in an entertaining way which constantly encourages them.

We planed to make connections between changing the LED bubble tea and doing exercise. Under this subject we thought about several ideas. Choosing whether or not one has drunk bubble tea today, exercise to fill up a cup of tea and the final decision is exercising to drink a cup of tea. To make a cup of bubble tea light up, we used three lines of Neopixel strips around in the cup instead of simply put one LED board inside due to the visual effect.  For people to do exercise, we 3D printed two handles and bought some elastics. In terms of the sensor, we planned to use the ultrasonic sensor, and turned to light sensor to avoid cheating midway, and got back to ultrasonic distance sensor because it makes the device function more naturally. 

Our most significant step might be changing the general set-up of the whole device. At first we were thinking of making some sort of hook to hold the vertical elastics, but it’s a bit hard to achieve and made our set-up confusing. Based on the advice from Eric and fellows, we decided to change the elastics to be pulled horizontally. Luckily I realized that I have two coat hangers in my dorm that can be fixed on the table and hold the tension so we used them. We changed the way of pulling, the sensor, and added a face with mouth, making it more logical and easy for usage. Although changes were made, we know it’s still hard to figure out how to use the device and the thing makes people a bit confused. However it does make more sense compared to the initial state.

Sketches we did throughout the project (a bit scary).
Some user test notes.

Our goal in this project is to constantly encourage people to do exercise with interactive feedback, reward and fun. The project can “listen to” users doing exercise, and by the program’s “thinking”, it can “speak” by presenting the reduce of LED bubble tea as well as feedback of finishing one cup, five times of pulling. This is a human&object interaction, where the differences being made are the LED effect and users’ calories. If we had more time, we would try to alter the exercise way. For example to change the sensor into pressure sensors behind the pulled elastics so that users would focus more on doing exercise rather than how to do “correct” exercise that will activate the device. One important thing is to find more people to test the project and observe their reaction to see what causes confusion.  Also we might also need to work more on the fabrication of the whole project to make it more connected and looks nicer. Anyway, we learned great lessons and gained sense of achievement in the project! 

 

Sources: 

3D model, Fist, https://www.thingiverse.com/thing:1398942

3D model, Handles, https://www.thingiverse.com/thing:1008941 

Recitation 4: Drawing Machines

Step 1: Build the circuit

For this step I basically followed the diagram and built a circuit step by step. Like Andy recommended, I first connected all the power and ground cables.

For the protection of laptops. We need to first upload the code to Arduino and then connect it to alternative USB power. After doing that my circuit worked successfully. The motor rotated smoothly.

Uploaded successfully.

Step 2: Control rotation with a potentiometer

Aside from adding the potentiometer to the circuit, some changes need to be done with the code. I first had some trouble with the function “map()”, but later I figured out that I missed the “val” inside the map function. Then the motor works (under my control)!

Code:

#include <Stepper.h>
#define STEPS 200
Stepper stepper(STEPS, 8, 9, 10, 11);
int previous = 0;
void setup() {
  stepper.setSpeed(30);
}
void loop() {
  int val = analogRead(0);
  val = map(val, 0, 1023, 0, 255);
  stepper.step(val - previous);
  previous = val;
}

Result:

Step 3: Build a Drawing Machine

I also helped my partner with the code of “map()” function before we started the final step.  

Ready to go.

It’s not hard to build the drawing arm device, but one particular difficulty we met is to control the position of the penpoint. We tried both sides of the pen. It seemed that the pen did not fit perfectly in the hole so that sometimes it could not touch the paper. I think another reason is that the machine we built is relatively simple and lacks enough stability and flexibility at the joints. Anyway we were drawing with our machine.

What we have done finally: 

Maybe…we don’t have a pattern but we have ART…

Questions

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.

My interest is to build machines that can facilitate and/or bring joys to people’s life. We are sometimes amazed by the dazzling machines with advanced technologies behind, but people need to bear in mind that the ultimate purpose of new tech should focus on humans. Therefore, the actuators are made to operate more actions of a machine to bring people convenience. The digital manipulation of art and the creative process show how machines, or computers help humans in more dynamic ways. For one thing, digital manipulation offers more accurate and efficient arts to us human. For another, human can be educated and inspired in creative interaction with machines.  This is a new trend where both artists and machines are involved in a creation.

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?

Louis-Philippe Demers and Garry Stewart, Devolution, 2006. This art installation was made more for a performative use. The dance focuses on expressing the notions of biological processes by the cooperation of humans and robots.  It’s kind of a bold trial to empower robots equal status with humans, which reflects deep thoughts on the human-machine relationship. In general I think this installation inspires people of the future trend of robotics, in parallel with a new way of performing art. However as a performance, the interaction process only occurs between robots and performers and there is less interactivity for audiences.

Drawing and dancing, this installation and the drawing machine both focus on an artistic output and bring the enjoyment of art to human. There is a cooperation between human and machines throughout the creation in both cases. While the dance intends to inspire people with a set interaction beforehand, the drawing machine enables humans to be involved in the process. The different goals of these installations determine different forms of operation and degree of humans’ engagement. 

 

Thanks for reading.

Recitation 3: Sensors

Class process:

I first chose the force sensitive resistor and later tried a bit on the ultrasonic ranger.

Force Sensitive Resistor (FSR)/Pressure Sensor

A FSR can convert physical force into electrical signals. The resistance value changes along with the force received. 

Reference: https://www.makerguides.com/fsr-arduino-tutorial/ 

Circuit 1: This circuit is about connecting the FSR to Arduino Uno. I followed the diagram and went smoothly. The code aims at changing analog read input into the numerical output in the serial monitor.

 

Code:

#define fsrpin A0
int fsrreading; 
void setup() {
  Serial.begin(9600);
}
void loop() {
  fsrreading = analogRead(fsrpin);
  Serial.print("Analog reading = ");
  Serial.print(fsrreading);
  
  if (fsrreading < 10) {
    Serial.println(" - No pressure");
  } else if (fsrreading < 200) {
    Serial.println(" - Light touch");
  } else if (fsrreading < 500) {
    Serial.println(" - Light squeeze");
  } else if (fsrreading < 800) {
    Serial.println(" - Medium squeeze");
  } else {
    Serial.println(" - Big squeeze");
  }
  delay(500);
}

Final Result: 

Circuit 2: This time the FSR served as a switch. With the analog read, we can set the LED to change once the pressure value exceeds/is under 500.

One particular thing I noticed besides the circuit is that we might need to use resistors with different values for different colors’ LEDs.

“The value of the resistor depends on the color LED you are using. You can use the following values as a guide:

      • Blue, Green, White or UV: 68 Ω
      • Red, Yellow or Yellow-Green: 150 Ω

If you don’t have any of these resistor values, try to find one that is close. You can also put multiple resistors in series, to get the correct value.”

Therefore I used a 220Ω resistor for a yellow LED. 

Code: 

#define fsrpin A0
#define ledpin 2
int fsrreading; 
int state = HIGH; 
int previous = 0; 
long time = 0; 
long debounce = 40;
void setup() {
  Serial.begin(9600);
  pinMode(ledpin, OUTPUT);
}
void loop() {
  fsrreading = analogRead(fsrpin);
  Serial.println(fsrreading);
  if (fsrreading > 500 && previous < 500 && millis() - time > debounce) {
    if (state == HIGH)
      state = LOW;
    else
      state = HIGH;
    time = millis();
  }
  digitalWrite(ledpin, state);
  previous = fsrreading;
}

Final result: 

Circuit 3: Here the FSR and LEDs are connected similarly as the previous circuit. But the FSR can now control more LEDs in a more dynamic way. The analog input leads to an analog output, showing the degree of pressure added. 

Code:

#define led1 2
#define led2 3
#define led3 4
#define led4 5
#define led5 6
#define led6 7
#define echoPin 2 
#define trigPin 3
long duration; 
int distance;

void setup() {

  pinMode(trigPin, OUTPUT); 
  pinMode(echoPin, INPUT); 
  Serial.begin(9600); 
  Serial.println("Ultrasonic Sensor HC-SR04 Test"); 
  Serial.println("with Arduino UNO R3");

  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  pinMode(led5, OUTPUT);
  pinMode(led6, OUTPUT);
}

void loop() {
  digitalWrite(trigPin, LOW);
  delayMicroseconds(12);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = duration * 0.034 / 2; 
  Serial.print("Distance: ");
  Serial.print(distance);
  Serial.println(" cm");
  
  fsrreading = analogRead(distance);
  Serial.println(fsrreading);

  if (fsrreading > 200) {
    digitalWrite(led1, HIGH);
  }
  else digitalWrite(led1, LOW);
  if (fsrreading > 450) {
    digitalWrite(led2, HIGH);
  }
  else digitalWrite(led2, LOW);
  if (fsrreading > 550) {
    digitalWrite(led3, HIGH);
  }
  else digitalWrite(led3, LOW);
  if (fsrreading > 650) {
    digitalWrite(led4, HIGH);
  }
  else digitalWrite(led4, LOW);
  if (fsrreading > 800) {
    digitalWrite(led5, HIGH);
  }
  else digitalWrite(led5, LOW);
  if (fsrreading > 900) {
    digitalWrite(led6, HIGH);
  }
  else digitalWrite(led6, LOW);
}

Final result: 

Ultrasonic Ranger

After exploring the pressure sensor I started to look into the ultrasonic ranger. One particular thing I notice immediately is that to connect the ultrasonic ranger, we have to use the F/M jumper cables instead of the M/M ones. Then I followed the instruction to build the circuit.

Code:

#define echoPin 12 
#define trigPin 13 
long duration; 
int distance; 

void setup() {
  pinMode(trigPin, OUTPUT); 
  pinMode(echoPin, INPUT); 
  Serial.begin(9600); 
  Serial.println("Ultrasonic Sensor HC-SR04 Test"); 
  Serial.println("with Arduino UNO R3");
}
void loop() {
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = duration * 0.034 / 2; 
  Serial.print("Distance: ");
  Serial.print(distance);
  Serial.println(" cm");
}

Final result:  

Question 1: What did you intend to assemble in the recitation exercise? If your sensor/actuator combination were to be used for pragmatic purposes, who would use it, why would they use it, and how could it be used? 

I first chose the FSR because I think pressure is one of the most straightforward way to realize an analog input. By connecting the pressure sensor with a line of LEDs, the pressure can have a more direct and visualized way of presenting. Therefore I’m thinking of using this idea in elevators. We often experience the situation when an elevator is overloaded and beeps, so someone has to get out of it. If we can set a device to show the passengers’ weight, which is equal to pressure added to the elevator floor, and present it with LEDs showing the load degree, taking the elevator would be more convenient and efficient. To achieve that based on the simple circuit model, we might need to insert pressure sensors into the elevators’ floor and connect more LEDs whose colors can indicate the extent of load.

Question 2: Code is often compared to following a recipe or tutorial.  Why do you think that is?

Because the whole program is following codes to run. The computer needs someone to tell it how to read the inputs and transform them into outputs that we want. Therefore we humans are writing the “recipe” or “tutorial” for a computer/program to learn and carry out its practice.

Question 3: In The Language of New Media, Manovich describes the influence of computers on new media. In what ways do you believe the computer influences our human behaviors?

I think computers are a complement to human intelligence. Human make computers do those regular but complex things so that human can save their time and gain more accurate analyses. Lifestyle is also different since we more often use computer for work and entertainment. For instance, we are used to typing words but more unfamiliar with writing by hand. One very thing stands out in my mind is the way computer changes human’s communication. The Chinese poet Mu Xin has once written that everything was slow in the past, the bike, the horse, and the epistle (云雀叫了一整天 n.d.). When there’s no computer, people can’t get in touch conveniently enough,  therefore things were likely to operate in a low pace. But now computer and the internet enable human to communicate without time and location limit, with multiple media like videos and pictures for people’s reference. Some trends also emerged such as the decrease of face-to-face communication and an increase of sharing personal life online. 

On the other hand, we are also developing negative behaviors with the popularization of computers. For me, chatting online makes me less willing to talk to people face-to-face. We also tend to be less healthy when spending more time in front of computers. No matter working, playing video games or just surfing online, people sit and look at screens all day long, which hurts different parts of our bodies. Students have worse eyesight and need to learn more about algorithms in school. More generally, 

However, I do think that every coin has two sides. The key here is to make the best use of computers by us humans.

 

Works Cited

Bakker, Benne. “Force Sensing Resistor (FSR) Arduino Tutorial (3 Examples)”. Makerguides.Com, 2021, https://www.makerguides.com/fsr-arduino-tutorial/. 

Jabbaar, Arbi Abdul. “Ultrasonic Sensor HC-SR04 With Arduino Tutorial”. Arduino Project Hub, 2019, https://create.arduino.cc/projecthub/abdularbi17/ultrasonic-sensor-hc-sr04-with-arduino-tutorial-327ff6.

Xin, M. (n.d.) 从前慢 (Chinese poem).