Students/Huyen truong
From Robert-Depot
Contents |
About Me
My name is Huyen Truong, and I'm a junior in the field of Visual Arts, emphasis on computing (but I would like to soon change that to film) I chose the major because art and entertainment's been an interest for me all my life. I don't remember a time where I've stopped drawing or writing for an extended period of time. However, like with everything, I've moved on with the time; art isn't just about pen and paper anymore. I've done a lot of self-learned experiments in Photoshop, Illustrator, Final Cut, computer languages, etc. but I've learned that self-taught work is not enough. I had hoped to do more hands on work with this major in UCSD, but so far the courses required are mostly on theories, which to say I am a bit disappointed. However, when I do get classes that have lab work (i.e this course) I am very excited to learn, although I have never worked with electronics in depth or engineered anything. I hope to have fun in this course and learn new things.
Final Project
For my project, I plan on making an abstract, trippy Etch-And-Sketch. Instead of regular black and white lines, the player will instead be controlling three sets of colorful circles. I will use two potentiometers and a push button. The potentiometer will work like the regular up/down, left/right nobes for the sketching part. The faster you turn the potentiometers, the bigger the circular shapes will get. The push button would reset the sketch and change the background. I have incorporated the processing program along with the Arduino, and my laptop will be the 'toy' itself.
/*******Arduino Code*******/
/**Credit and Thanks to SandGameMod http://www.youtube.com/watch?v=64iQZHlmWbI.
*
*/
int potPinx = 2; //horizontal x potentiometer, connected to pinAnalog 2
int valuex = 0; //x is also connected to ground
int potPiny = 5; //vertical y potentiometer, connected to pinAnalog 5
int valuey = 0; //y is also connected to ground
int buttonPin = 0; //push button connected to digitalPin 0
int val = 0; //push button also connected to ground
void setup() {
pinMode(buttonPin, INPUT);
Serial.begin(9600);
}
void loop() { //Where the program reads the user's input values and then draws it out
valuex = (analogRead(potPinx)); if(valuex > 0){ Serial.print(valuex); } //if the x potentiometer is bigger than 0, screen starts to draw
Serial.print(","); valuey = (analogRead(potPiny));
if(valuey > 0){ Serial.print(valuey); //if the y potentiometer is bigger than 0, screen starts to draw
}
Serial.print(",");
val = digitalRead(buttonPin);
if (val == HIGH) { Serial.print("0"); } //reads the push button values and then prints it out
else {
Serial.print("1");
}
Serial.print(",x");
delay(50);
}
/*******************************/
/*******Processing Code*******/
/**Credit and Thanks to SandGameMod http://www.youtube.com/watch?v=64iQZHlmWbI.
*
*/
import processing.serial.*;
Serial myPort;
String myString = null;
float convx; //the x and y axis variables
int conv2x;
int pconvx;
float convy;
int conv2y;
int pconvy;
float convb;
int conv2b;
void setup()
{
size(1084, 800); //size of screen
myPort = new Serial(this, Serial.list()[0], 9600); //port lists
myPort.clear();
myString = myPort.readStringUntil(120);
myString = null;
background(102);
smooth();
}
void draw() //draw class, where it uses the user input to draw on screen
{
pconvx=conv2x;
pconvy=conv2y;
myString = myPort.readStringUntil(120);
if (myString != null) { println(myString); String[] stri= split(myString, ',');; println(stri); convx=float (stri[0]); conv2x=int(convx); convy=float (stri[1]); conv2y=int(convy); convb=float (stri[2]); conv2b=int(convb); println(conv2b);
if (conv2b==1){ background(random(256),random(256),random(256)); }
}
variableEllipse(conv2x, conv2y, pconvx, pconvy); //enacts the variableEllipse class
variableEllipse2(conv2x, conv2y, pconvx, pconvy); //enacts the variableEllipse2 class
variableEllipse3(conv2x, conv2y, pconvx, pconvy); //enacts the variableEllipse3 class
variableEllipse4(conv2x, conv2y, pconvx, pconvy); //enacts the variableEllipse4 class
}
void variableEllipse(int x, int y, int px, int py) //this class will draw out first ellipse/circle
{
float speed = abs(x-px) + abs(y-py);
stroke(speed); //speed of the potentiometer
ellipse(x, y, speed, speed); //the ellipse values, which is circle. the speed determines the circle size
fill(random(256),random(256),random(256)); //fills in the color of the ellipse
}
void variableEllipse2(int x, int y, int px, int py) //this draws the second circle
{
float speed = abs(x-px) + abs(y-py);
stroke(speed);
ellipse(x, y, speed - 10, speed - 10); //this circle is -10 bigger than the circle in variableEllipse
fill(random(256),random(256),random(256));
}
void variableEllipse3(int x, int y, int px, int py) //third circle
{
float speed = abs(x-px) + abs(y-py);
stroke(speed);
ellipse(x-20, y-20, speed - 30, speed - 30); //the size is now -30 from variableEllipse, and it is mapped -20 on the x and y axis, which means it's further down and left from the original variableEllipse circle
fill(random(256),random(256),random(256));
}
void variableEllipse4(int x, int y, int px, int py)
{
float speed = abs(x-px) + abs(y-py);
stroke(speed);
ellipse(x+20, y+20, speed - 30, speed - 30);
fill(random(256),random(256),random(256));
}
/*******************************/
Midterm Project
Originally, I had intended to do an hourglass switch, but since then I've changed it to a bootlegged Operation instead. The point of the game is to get a *wired* object out from underneath a bunch of other wires, but do not let them touch. The wiring of the Operation works like a Frankenstein switch. The wires conduct electricity, so when touched together, it completes a circuit.
Field Research
Inside, never before seen, behind-the-scene secret pictures from my wonderful job at Walmart: