Students/Huyen truong
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: