Echo- Andrew Xie -Eric

CONCEPTION AND DESIGN:

When I first conceived the final project, my partner and I decided to make a project about decompression. Because we think that modern people live under great pressure and sub-health, we need to use a way to let the people living in the city release the pressure. But there are many ways to release pressure. We are thinking about how to give users an effective decompression experience in a short time. We envisioned letting users decompress by squeezing instant noodles, but it wasn’t attractive enough and environmentally friendly. So we decided to interact with our project with sound. The original idea is to take Christmas as the theme, let users blow the snow of Christmas tree through the sound, to form the concept of decompression. But it seems like a deliberate imposition of concepts. At last, we decided to make a pure interactive game. In the echo project, we have used the sound sensor and laser cut. These two simple originals can bring great benefits. The reason for giving up instant noodles is that we can’t find the sensor that matches it, and it will cause waste and can’t be reused. Violent squeezing and slapping are all potential violence, but voices can better overcome these problems. We also gave up an infrared sensor, because we want users to trigger the game at a certain distance, but in fact, it is unnecessary. In the end, I also used paper cutting, because, on user text, we found that although many people wanted to interact with our project, they were ashamed to scream in public, so I designed a phone shaped mask to help users solve this problem.

1

2

3

4

6

FABRICATION AND PRODUCTION:

In the whole project, we didn’t use laser cut to cover the computer because of the need of saving materials. Our success lies in the fact that we have successfully measured or defined the value of the sound sensor. We chose the microphone, 3 pin or 4 pin sound sensor, and finally decided the 4 pin sound sensor. Because only this is between sensitivity and dullness, we found that defining the value is a very challenging thing. Defining the sound as high and low, defining the value needs to be tested many times, because High value setting will make it difficult to reach the high standard, and reduce the low standard. Our game rule is to put pressure on users through five rounds of games, and then design a random screaming interface to let users instantly decompress.The biggest experience we gained from user text is that we should provide a mask for users to protect their privacy, because not everyone can scream in public. In order to avoid embarrassment and protect their privacy, I designed a phone shaped mask.Another useful information is that we should help users define the range of high and low in the initial interface, so that users can give feedback immediately after the game starts.As a result, users are often attracted by the phone mask I make and are willing to wear it. This improves our user experience and is very efficient. Another modification we have made is to add a free scrolling interface so that users can release their own pressure at will.But we also give up LED, because of some technical problems, our idea is to give users feedback through the change of LED color, red is the wrong range and green is the right one.7

2

CONCLUSIONS:

I don’t think my definition of interaction has changed much from the original one, but I have added some concepts, such as my definition of interaction is the interaction between people, people and machines, serving people and creating value. I think the final project has realized its value, interacted with the screen through sound, and really helped users release pressure in a short time. Some people doubt that this project is a little strange, but I think it’s inter lab. what we need to do is not to conform to some universal values, but to create something that can bring value, and create art through physical interaction.Finally, I let the user interact through the volume. If I have more time, I will design some refueling interfaces in the game interface that can make the user continue, because I found that few players can insist. Adding some decorations in the game interface and connecting the led into the program is what I will do if I have more time.What makes me gain a lot when I do the project is that the design of the project is not through a temporary interest but a long-term design. The concept is very important for a project. We need to make meaningful projects, with a group of special attention groups.I think it’s more important than the project to design concepts and care about social problems, or to imagine the future, rather than a meaningless thing. Prototyping is a very important thing. It’s the key factor in my opinion to constantly adjust through user testing and feedback through investigation. People first is the most important.Finally, let’s make a project, why should anyone care? I think designing a project for a certain group is the best way to help the group solve the problem, because every project we design is to solve the problem, express the value of care and transmission through the project, and interaction is an effective way to close the gap between different groups, just like our project, through Voice to attract more people to participate, pay attention to the problem of mental stress. Even if it can’t be solved, it is a way of art that expresses our value and people’s heart.

Recitation 9:Media controller- Andrew Xie

In this recitation, I chose to use a photosensitive resistor to control the brightness of the picture, but the effect was not obvious. The pictures are of Hobbits.

123

Code

PImage img;

void setup() {
size(600, 404);
PImage photo;
img = loadImage("hobbit.jpg");
tint(0,0,255,150);
point(mouseX,mouseY);

}

void draw() {
for (int i=0; i<100; i++) {
int size = int( random(1, 20) );
int x = int( random(img.width) );
int y = int( random(img.height) );
// get the pixel color
color c = img.get(x, y);
// draw a circle with the color
fill(c);
ellipse(x, y, size, size);
}
}

void mousePressed() {
point(mouseX,mouseY);
}

int photocellPin = 2; // 光敏电阻连接模拟端口【A2】

int ledPin = 13; // LED灯连接数字端口【D13】

int val = 0; // 存储光敏电阻值的变量

void setup() {

// 打开并设置串口

Serial.begin(9600);

// 设置数字端口ledPin用于输出

}

void loop() {

val = analogRead(photocellPin); // 读取光敏电阻的值

//在串口输出val的值 用于调试时使用

Serial.println(val);

if(val<=112){

digitalWrite(ledPin, HIGH);

}else{

digitalWrite(ledPin, LOW);

}

}

This article uses light and shadow to realize human interaction, which inspires me how to use multimedia in the project, such as using sound as a medium to trigger the interaction between the user and the machine.

Recitation 8: Serial Communication – Andrew Xie

Introduction

This time, we mainly use Arduino and processing to use the two software at the same time to achieve the interaction between electronic components and screen.

Exercise One

In this exercise, I encountered two difficulties. First, I wrote the code with the wrong version of quotation marks, which made the code unable to run. The second problem is that when drawing, the line can only move at the background edge.

001

At last, I found out that the wiring was reversed because of the X axis.

002

Code:

// IMA NYU Shanghai
// Interaction Lab
// For receiving multiple values from Arduino to Processing

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

import processing.serial.*;

String myString = null;
Serial myPort;


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

float preX;
float preY;


void setup() {
size(1023, 1023);
background(255);
setupSerial();


}


void draw() {
updateSerial();
printArray(sensorValues);
//float posx =map(sensorValues[1],0,1023,0,500);
// float posy =map(sensorValues[0],0,1023,0,500);
strokeWeight(4);
line(preX,preY, sensorValues[1],sensorValues[0]);
preX=sensorValues[1];
preY=sensorValues[0];

// use the values like this!
// sensorValues[0]

// add your code

//
}

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

Exercise Two

Because it took a long time to do exercise one, I finished it after class. With one experience, the second one is easy to do. But I didn’t do special effects on the mouse.

Code

For processing

// IMA NYU Shanghai
// Interaction Lab


/**
* This example is to send multiple values from Processing to Arduino.
* You can find the arduino example file in the same folder which works with this Processing file.
* Please note that the echoSerialData function asks Arduino to send the data saved in the values array
* to check if it is receiving the correct bytes.
**/


import processing.serial.*;

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


Serial myPort;
String myString;

// This is the array of values you might want to send to Arduino.
int values[] = new int[NUM_OF_VALUES];

void setup() {
size(500, 500);
background(0);

printArray(Serial.list());
myPort = new Serial(this, Serial.list()[ 4 ], 9600);
// check the list of the ports,
// find the port "/dev/cu.usbmodem----" or "/dev/tty.usbmodem----" 
// and replace PORT_INDEX above with the index 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 draw() {
background(0);

// changes the values
values[0] = mouseX;
values[1] = mouseY;/** Feel free to change this!! **/

// sends the values to Arduino.
sendSerialData();

// This causess the communication to become slow and unstable.
// You might want to comment this out when everything is ready.
// The parameter 200 is the frequency of echoing. 
// The higher this number, the slower the program will be
// but the higher this number, the more stable it will be.
echoSerialData(200);
}

void sendSerialData() {
String data = "";
for (int i=0; i<values.length; i++) {
data += values[i];
//if i is less than the index number of the last element in the values array
if (i < values.length-1) {
data += ","; // add splitter character "," between each values element
} 
//if it is the last element in the values array
else {
data += "n"; // add the end of data character "n"
}
}
//write to Arduino
myPort.write(data);
}


void echoSerialData(int frequency) {
//write character 'e' at the given frequency
//to request Arduino to send back the values array
if (frameCount % frequency == 0) myPort.write('e');

String incomingBytes = "";
while (myPort.available() > 0) {
//add on all the characters received from the Arduino to the incomingBytes string
incomingBytes += char(myPort.read());
}
//print what Arduino sent back to Processing
print( incomingBytes );
}

For Arduino

// IMA NYU Shanghai
// Interaction Lab


/**
This example is to send multiple values from Processing to Arduino.
You can find the Processing example file in the same folder which works with this Arduino file.
Please note that the echo case (when char c is 'e' in the getSerialData function below)
checks if Arduino is receiving the correct bytes from the Processing sketch
by sending the values array back to the Processing sketch.
**/

#define NUM_OF_VALUES 3 /** YOU MUST CHANGE THIS ACCORDING TO YOUR PROJECT **/


/** DO NOT REMOVE THESE **/
int tempValue = 0;
int valueIndex = 0;

/* This is the array of values storing the data from Processing. */
int values[NUM_OF_VALUES];


void setup() {
Serial.begin(9600);
pinMode(11, OUTPUT);
}

void loop() {
getSerialData();

// add your code here
// use elements in the values array
// values[0]
// values[1]

tone(11,values[0],values[1]);

}


//recieve serial data from Processing
void getSerialData() {
if (Serial.available()) {
char c = Serial.read();
//switch - case checks the value of the variable in the switch function
//in this case, the char c, then runs one of the cases that fit the value of the variable
//for more information, visit the reference page: https://www.arduino.cc/en/Reference/SwitchCase
switch (c) {
//if the char c from Processing is a number between 0 and 9
case '0'...'9':
//save the value of char c to tempValue
//but simultaneously rearrange the existing values saved in tempValue
//for the digits received through char c to remain coherent
//if this does not make sense and would like to know more, send an email to me!
tempValue = tempValue * 10 + c - '0';
break;
//if the char c from Processing is a comma
//indicating that the following values of char c is for the next element in the values array
case ',':
values[valueIndex] = tempValue;
//reset tempValue value
tempValue = 0;
//increment valuesIndex by 1
valueIndex++;
break;
//if the char c from Processing is character 'n'
//which signals that it is the end of data
case 'n':
//save the tempValue
//this will b the last element in the values array
values[valueIndex] = tempValue;
//reset tempValue and valueIndex values
//to clear out the values array for the next round of readings from Processing
tempValue = 0;
valueIndex = 0;
break;
//if the char c from Processing is character 'e'
//it is signalling for the Arduino to send Processing the elements saved in the values array
//this case is triggered and processed by the echoSerialData function in the Processing sketch
case 'e': // to echo
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;
}
}
}

Final Project Essay: Andrew Xie – Eric

Project Title

“Release yourself”

Project Statement Of Purpose

Our project focuses on people who live with anxiety or are under a lot of stress, whether it’s at work or at school. But people living in places like Shanghai are more stressed. Studies have shown that people who live with anxiety or stress for a long time are more likely to suffer from heart disease, depression, and even suicide. In order to relieve the anxiety of people living in the city, we designed the interaction with the machine to visually release people’s stress. Studies have shown that people are willing to take more physical violence to relieve stress and watching videos, screaming or crying are the most effective and intuitive ways to relieve anxiety. In my previous thinking, I wanted to help people reduce stress by creating a dark night and playing soothing music. According to the survey, this kind of passive immersion decompression effect is not as good as screaming and noise, and it is more difficult to create a closed environment. So we chose a more physical way to help people reduce stress.At present, the difficulty we are facing is that there are many ways of physical decompression. We don’t know what to choose, such as screaming, crushing instant noodles, jumping all the time. How to make these behaviors happen at the same time and interact with the screen is what we are thinking about. And we don’t want to cause waste or noise pollution. How to create a small area of closed environment is also a problem we are thinking about.When these people who feel great pressure have used our project, our expected impact is that these people relieve the psychological pressure through physical interaction and can directly feel this person happier than before through others. We hope that the audience can reduce the pressure through 5 minutes of project experience, and the effect is visible.

Project Plan

The main goal of our project is to help people who are under pressure release pressure in a short period of time. In order to avoid making noise for others, we plan to let the audience wear helmets, and the sound insulation effect of helmets will be very good, and then build electronic components to place in the instant noodles, so that the audience can realize the movement of characters in the game by squeezing the instant noodles. So we plan to make a game of controlling personas through sound, squeeze, and foot movement. Business is responsible for jumping, squeezing instant noodles, controlling direction through pressure, and finally moving forward through steps. According to the research, when people feel stressed, looking at some complex pictures will feel that the pictures are moving, so at the beginning, we test people’s stress by some pictures. People who are really anxious don’t focus on one thing, so at the beginning of the game we will ask the audience to focus on a certain picture all the time. There are no other special requirements for the audience, just be able to focus on one thing at the beginning. As for the progress of the project, we plan to make the first cover of processing, the design of complex patterns, and test the actual effect of putting electronic components into instant noodles from next week, and use laser cut to make helmets. In the second week, we will make pressure floor design and game interface design, and finally form a system of them. Decoration and beautification. And made some changes after the user text,

Context  And Significance

As mentioned before, the survey on the Internet lets us switch from providing immersive passive decompression method to actively releasing pressure through various senses of the body. For example, an interesting project lets people shatter the glass in the screen by screaming. When the decibel is higher than a certain value, the audience succeeds. So I decided to use the sound as the medium in my project. My definition of interaction is to make the project interesting and practical in a physical way to meet the needs of a specific population. Through human-computer interaction or human interaction. Our project is original.I think the biggest significance of our project is to focus on the people who live under pressure and help them release energy in a short period of time, so as to avoid the physical or mental diseases caused by the lack of pressure release. Most importantly, the anxiety of modern people is rising. If there is no way to effectively alleviate it, it will become a serious social problem. If our project is successful, it is a happy experience for anxious people, and we hope to continue to develop into a complete decompression experience. In this way, it will become a real commodity, which can effectively reduce the pressure, be simple and replicable, and enable people to easily access the decompression service. I’ve noticed that there’s no such thing as high stress in health insurance, so our project essentially provides health care outside the hospital. Let people get rid of sub-health is our value

Work cited

https://www.techrepublic.com/article/9-stress-reduction-tips-for-project-managers-and-teams/

https://www.fastcompany.com/3057648/this-interactive-stress-ball-is-better-than-valium

Jaques, Lura. “More than Pins and Needles Series: Anbfaces.0922: 1 Edition].” Orange County Register, Sep 22, 2005. ProQuest, http://proxy.library.nyu.edu/login?url=https://search.proquest.com/docview/273830879?accountid=12768.

Final project proposal-Andrew Xie

1 Shouting machine

Inspired by the artist Xu Zhen’s performing art, the project brought two people face-to-face screams. I think it’s an intuitive way for modern people to reduce stress. So my audience is the people who live in the modern world and need to release the pressure. I think screaming is a very direct way to release pressure. Therefore, the project is designed by using a sound collector to collect the database size of the audience. If the screen exceeds a certain value, the screen will shatter the cup. I want to use a glass to represent people’s anxiety and express it through a crushing Scream (this action can release the pressure). The current difficulty is that the project is a bit thin and we need to add other core concepts. I don’t want this project to cause people to scream, but I want people to release pressure through their voices.

1个

2 The dark night

My idea for the second project is to provide people with dark nights. I was inspired by cartoons. Because some people are more efficient at studying in the dark night, I want to model people who can’t sleep in the dark sky or at night. Therefore, my project is to provide a dark and immersive space with instruments to detect people’s heart rhythm. If the rhythm is very fast, the light in the space will turn red, and if the rhythm reaches a normal level, the color will turn blue. In short, the light in the space will change color according to the speed of people’s heartbeat. The ultimate goal is to let people get spiritual release, and there will be soothing background music in the experience process. The difficulty I encountered was that I didn’t implement the core concept of the project, and if you just sat the audience in a space that didn’t reflect the interaction between people, it wasn’t interactive enough. Determine where to get the heart rate meter.

2

3 Be the traffic light

I have noticed that when pedestrians wait for a red light, they are generally impatient. Many people choose not to wait for a green light and cross the road directly because they have been waiting for a red light for too long. This is very unsafe. Many traffic accidents are caused by pedestrians not complying with traffic regulations. So my project is to make pedestrians willing to wait for the red light. When the red light is on, the pedestrian sign inside the red light does not move, so my idea is that when the red light is on, you can not use the action capture machine to make the pedestrian be the sign in the red light, in other words, the sign in the red light is consistent with the pedestrian action, which can attract the pedestrian’s attention. The difficulty I encountered was a technical problem, and I didn’t know how to implement it.