Pick Your Pokemon – Anna – Instructed by Eric

  • PROJECT TITLE

Pick Your Pokemon

  • CONCEPTION AND DESIGN:

After the idea sharing process in class, me and my partner greatly changed our design for the project. From fun test to a more game-like project did we make. This was because we reconsidered about the testing process and thought it not engaging users’ efforts in thinking enough, thus making their information processing and output part weak. To improve this, we substituted the testing part with a game process: We let our users click on clues on the screen to eventually picture a sketch of a pokemon. 

Our final design sets the clues as small gifs that picture blooming flower, popping mushrooms and lighting candles, placed carefully on screen. When the game starts, only one clue will be moving, and the next clue will start moving when the previous one was mouse-clicked on. When a clue is clicked, a curve appears between it and the previous one. Eventually, the curves will picture the pokemon. 

We took inspiration from the “Guess who I am” interlude in Pokemon anime, where sketch of pokemon is presented for the audience to guess which pokemon it is. By observing and clicking on the clues, our users would be forced to focus on the information given on screen, and searching their heads for what pokemon it is / where is the next step of the sketch going. This intensifies the input and information processing stage in interation. 

We made our picture materials by original photoshop and processing drawing. Because the clues had to be placed according to our needs, materials for sketching and background had to be our originals. 

We retained the box-opening and gift part in the primitive design. For this part, we purchased Pokebox and refit them to meet our demand, mainly by cutting and assembling them with survos. We did not use digital fabrication because that would make it hard to dress them as the pokemon theme. 

  • FABRICATION AND PRODUCTION:

Besides the great changes we made in idea sharing session, we also made another big progress in the fabrication process. We took advice from Eric, who suggested us to add a timer to the interactive process. If the user cannot solve the sketch puzzle in a certain period of time, the screen will show “failure” and tell the user to try again from the beginning. By giving the users a time limit, we added the notion of success and failure into the project, and thus increased the sense of gaming. 

We originally set the time limit to 30 seconds. However, after the user test session, we adapted it to 20 seconds to prevent the success rate from being too high – Users are cleverer than our expectation! 

Another change we made after user testing was text and image optimization. We shortened the instruction text and made the “BACK” button less confusing by deleting “Click BACK to get to the home page” from the screen. However, we did not stop the clues from moving after they were clicked once as suggested by some users who thought them being to distracting, because that distraction was intended: We did not want our users to figure out the result that easily.

Drawing Pikachu Time goes out Success in drawing Balbasaur Drawing Charmander Time goes out

The fabrication of gift boxes was time- and energy-consuming. We spent a lot of time on figuring out how to fasten the servo on the wall and use it to open the lid. As the final result, we cut 3 of 4 edges of the lid, lenthened the arm of the survo to open the lid, and use strings to pull the lid down to restore the position. After confirming the design, we made another two refit Pokebox,  for there were three types of pokemon and sketches. We also made a container box to hide the arduino and the circuit. A lot of cutting and pasting work was done. 

IMA session night
IMA session night
Gift: Pikachu
  • CONCLUSIONS:

Through reconsideration, me and my partner decided to make a more game-like project. This strengthened the information processing stage in our basic definition of interation, and kept the part we put emphasis on: the sense of final reward. However, in retrospect, I wondered whether we depended too much on delivering gifts to users to make that final reward. It certainly worked very well – but it somehow lacked a sense of design. Moreover, another part that we valued in definition of interaction, “randomness”, was also limited because we could only make limited choices of pokemon. 

Even so, our users gave very positive feedbacks for our project: It was very fun and engaging, and quite clear to learn. Most importantly, they got a strong sense of goal in the interactive process, especially when the imaginative context were introduced: We intended to make this project a cinema-site activity, where people going for Pikachu film could get a chance to win gifts through playing a theme game. 

For improvement, I would like to make different modes of the game.In the session night, I observed that while adult users could complete the game within several attempts, young users at early ages had clear difficulty in solving the puzzle within the 20-second time limit. If we could make a children mode which lifts the time limit to 40 seconds or more, the project might provide children with better experience. Also, if we have enough budget, we could by more kinds of pokemon as gift to increase the randomness and colorfulness of the game. 

Recitation 10: Media Controller by Anna

In this recitation, I was about to create a Processing sketch that controls media (images or video) by manipulating that media’s attributes using a physical controller made with Arduino. However, too much time was consumed by certain mistakes and I did not finish all bug plugging when the class ended. I intended to make an image of light bulb growing lighter/darker catering to the control of a potentialmeter, but I found the filter function not very satisfactory in achieving that very easily. 

My code for processing:

import processing.serial.*;
Serial myPort;
int valueFromArduino;
PImage lightbulb;

void setup() {
size(500, 500);
lightbulb = loadImage(“lightbulb.jpg”);
image(lightbulb, 0, 0);
lightbulb.resize(500, 500);
image(lightbulb, 0, 0);

printArray(Serial.list());
// this prints out the list of all available serial ports on your computer.

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

void draw() {
image(lightbulb, 0, 0);

//// to read the value from the Arduino
while ( myPort.available() > 0) {
valueFromArduino = myPort.read();
}
println(valueFromArduino);//This prints out the values from Arduino
for(int i=0; i<10; i++){
lightbulb.filter(THRESHOLD, valueFromArduino/1000);
}

}

My code for Arduino:

void setup() {
Serial.begin(9600);
}

void loop() {
int sensorValue = analogRead(A0);
Serial.println(analogRead(A0));
Serial.write(sensorValue);

delay(10);
}

Recitation 9: Final Project Process by Anna

Step 1
For your blog post, post about the three projects that you critiqued.

Project 1: Ball of Confusion by Olivia

This project intends to make a Mario style game in which the player can control a ball to bounce and bump into objects for points by jumping/stamping on a platform. When an object is hit, educational information about world problems pop up to the player. This is meant to bring up awareness in users of young generations of their future world. 

Olivia features her definition of interaction with being flexible and having potential of create different versions even under the same system. This reminds me of the randomness we brought up in our definition: We agree on that interaction is not programmed to a fix course but one with possibilities. 

In the feedback stage, I gave comments on the positioning of the project: Is it a serious project aiming at education, or a game project with more fun? Whichever it is, the other side might give negative effect on its aura. Also, the popping-up messages might to some extent interrupt the game experience. 

Project 2: Anger Visualizer by Rudy Song

This project is inspired by a traditional animation presenting form: When a character gets angry, steams flush out of his ears. Rudy intends to visualize the anger of the user by making that steam special effect. The project is designed to sense the heartbeat of the participant and springs out steam when the data go higher. In a funny, friendly form, Rudy means to encourage users to let out thier passive emotions sometimes. 

Rudy gives high attention to the role of translation of message form in interaction, so he puts emphasis on the visualization of invisible emotions. 

What we concerned about is how to trigger the user to be angry during testing. Another problem is, rising heartrates do not only indicate anger but also other emotions such as nervousness and fear. According to faculty’s advice, making a robot that substitutes the human user to be the “angry” subject might be a good choice. 

Project 3: The Super Bow by Henry Shatter

This project is a family video game: two players use bow sensors to shoot simulated targets on screen which has answers for multiple choice questions presented also on screen. The faster one player hits the target of correct answer, the more points he gets. 

Henry emphasizes building connection and competition between actors  in his definition of interaction. This is a new idea to me, but it somehow echoes one of the features my partner Karen points out, which is human-centered. 

Step 2
From your notes, write down any feedback that you received.

For our project, I received two precious feedbacks. One is a practical detail: In our project, participants are required to answer questions and be taken their heartrate, but the reading and digesting stage of the questions might also effect their emotion and make the data unstable/unreliable. Another is that maybe more kinds of sensors can be included in our project to add to its complexness. 

I think both comments make good sense to our improvement of the project. By now we have been considering changing the form of questioning, but I think we still need more user experience feedback after the prototype is complete. 

Final Project Essay by Anna

Project Title

Pickmon: Pick Your Pokemon!

Project Statement of Purpose *

In our discussion and research, me and my partner Karen found that people can be greatly pleased when they get a sense of belonging to a collective, on which most existing fun tests are built. However, we think these fun tests have more potential in providing entertaining experience, so we intend to make a new version of fun tests with an interactive dimension. This means we would like to challenge the traditional way of participating tests, particularly adding to the complexitiy and randomness of information delivered and received. To intensify interestingness, we decide to focus on pokemon as our theme subject, targeting at pokemon fans. 

Project Plan 

We plan to make a physical machine which tests ” the pokemon type that suits the participant”. The machine will compose of a separate screen and five boxes assembled as a cross, with a testing box at the crossing point and four result boxes around. The participant will be putting a finger on the poke ball in the testing box and answering questions put on the screen silently in mind. After answering all questions, one of the result boxes will open, showing a representitive pokemon of the type that suits the participant. 

We intent to achieve the input of information to the machine by monitoring the heart rate of the participant when answering questions: The testing box is equipped with sensor/monitor and send the data to Arduino then to Processing, where they will be calculated into a final value. The value will be sent back to Arduino to control the result boxes to open.

During the using process, the user will be required to be attentive to thinking, which emphasizes the importance of users’ participation in the input of information. The actual heart rate data that is collected, however, adds to the randomness of processing information. As for the final answer of “type”, it provides the user with a strong sense of goal/reason along with psychologic reward. 

Context and Significance 

In my preparatory analysis, I reflected on the previous experiences of creating interactive projects, and led myself to the emphasis on final feedback/reward this time. I defined interaction as a course that provides a final result by multiple particpants delivering complex information, processing and giving instant feedback to each other, so I worked on how to attach a sense of “passing the finishing line”. When discussing this with partner, fun tests that are designed according to and based on certain results came to my mind. Therefore we decided to re-create a advanced version of those fun tests. We plan to make a more engaging process of testing, involving not only simply answering questions but also bodily engagement and high awareness. If successful, our project will improve the experience of categorizing oneself for a psycological treat, and lead to more complex and fun future exploration on the form of fun tests. 

Recitation 8: Serial Communication by Anna

Exercises

1.Make a Processing Etch A Sketch

Prompt: For this exercise, use Arduino to send two analog values to Processing via serial communication. To do this, build a circuit with two potentiometers and write an Arduino sketch that reads their values and sends them serially. Then write a Processing sketch that draws an ellipse and reads those two analog values from Arduino. This sketch should modify the ellipse’s x and y values based on the input from Arduino. Just like an Etch A Sketch, one potentiometer should control the ellipse’s x-axis movement, and the other should control the ellipse’s y-axis movement.

My diagram sketch

My code for Arduino: 

void setup() {
Serial.begin(9600);
}

void loop() {
int sensor1 = analogRead(A0);
int sensor2 = analogRead(A1);

Serial.print(sensor1);
Serial.print(“,”);
Serial.print(sensor2);
Serial.println();

delay(100);
}

My code for Processing: 

int x = 0;
int y = 0;

import processing.serial.*;

String myString = null;
Serial myPort;

int NUM_OF_VALUES = 2; 
int[] sensorValues;

void setup() {
size(500, 500);
background(255);
setupSerial();
}

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

fill(#2C6EF0);
ellipse(x, y, 100, 100);
x = sensorValues[0];
y = sensorValues[1];

}

void setupSerial() {
printArray(Serial.list());
myPort = new Serial(this, Serial.list()[ 1 ], 9600);

myPort.clear();
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]);
}
}
}
}
}

2. Make a musical instrument with Arduino

Prompt: Write a Processing sketch that sends values to your Arduino based on your mouse’s x and y positions and/or keyboard interactions. Then, make a circuit with your Arduino and a buzzer. The corresponding Arduino code should read the serial values from Processing and translate them into frequency and duration for a tone, which will be sounded by the buzzer.

My diagram sketch

My code for Arduino: 

char valueFromProcessing;

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

void loop() {
while (Serial.available()) {
valueFromProcessing = Serial.read();
}

if (valueFromProcessing == ‘1’) {
tone(3, 16.35);
} else if (valueFromProcessing == ‘2’) {
tone(3, 18.35);
} else if (valueFromProcessing == ‘3’) {
tone(3, 20.60);
}

delay(10);

My code for Processing:

import processing.serial.*;

Serial myPort;
int valueFromArduino;

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

printArray(Serial.list());

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

void draw() {
if (keyPressed) {
if (key == ‘c’ || key == ‘C’);{
myPort.write(‘1’);
}
if (key == ‘d’ || key == ‘D’) {
myPort.write(‘2’);
}
if (key == ‘e’ || key == ‘E’);{
myPort.write(‘3’);
}
}
}