Students/Scott Chiu

From Robert-Depot
Jump to: navigation, search

My name is Scott Chiu, and I am a third year undergraduate student at UCSD. I am a Interdisciplinary Computing and the Arts Major (ICAM) in the Visual Arts department as well an Economics major, after a switching through a mess of various majors of which included Undeclared in the Social Sciences, Electrical Engineering, Human Biology, and Visual Arts - Film.

Art background

I have half a childhood's worth of self-taught experience in graphic design (Photoshop; more recently Illustrator and Indesign) and some less in web design. Any type of art intrigues me; I have been drawing ever since I was a kid, I take amateur photographs whenever I see anything exciting, and I design pieces digitally whether it is for work or to satisfy my boredom. To me, aesthetics and design are important factors in piquing my eyes' attention. I like to play with my mind by experimenting with the unknown hands-on, even if it means screwing up and ending up with a bizarre yet engaging art project--that only motivates me to create more. However, I have absolutely no experience in electronic art. My decision to take this class not only possesses a heavy basis in satisfying my major course requirements but also to continue taking that risk of scaling the unseen boundaries of my personal artistic creativity.

Assignment #1: Field Research

Here are several old and new snapshots I took of some electrical devices around my community that I would like to control and experiment with.

1. Claw Machine(s)
I would control the machine by adjusting the pressure of the claw so that the game can be fairer... and give out more prizes. Picture taken in Taiwan.
2. Scissor Lift
I would most definitely help maneuver objects and other people to higher heights for decoration or working. Or just mess around with the machine in general.
3. Pen Tablet
This is used to create drawings digitally. This device is already an apparatus which is to be personally controlled, but I would add onto it by including finger gestures and multi-touch capabilities, like that of a standard Macbook trackpad, and customize the responses of the mouse gestures.
4. Roller Coaster
Picture taken in California's Great America.
5. Light Show
A light show looks fascinating, so controlling one would be even more amusing. Picture taken in Rio Las Vegas

Assignment #2: Midterm Project Proposal

Proposed Description

Pressure Light Switch: I plan to make a simple pressure-activated switch contraption for my midterm project. When a person steps on a certain area on the floor in which a pressure pad is located, his or her weight restores current flow in the circuit and causes a light (or maybe alarm) to be activated. The pressure switch will either function similarly to a push on/off switch, so that it may be useful when a person crosses some place such as the hallway without needing to switch on the main lights; or, the device will only be activated when pressure is applied, and automatically deactivated when pressure is relieved. To be a little more creative, the light will be attached to some sort of homemade materials, possibly with shining light on hanging discarded CDs.

Proposed Visualization & Diagram

Scottc-mtvisual.jpg
Scottc-mtdiagram.jpg


Midterm Project: Pressure Drink Coaster

Description

The pressure switch, as part of a drink coaster, will now activate lights around it for aesthetic looks. The concept is exactly the same as the first draft, except that the pressure of a drink's weight on the coaster will activate the lights instead.

Visualization & Diagram

Note: The batteries are drawn incorrectly, please disregard the + and - signs.
Scottc-mtdiagramfinal.jpg
Scottc-mtvisfinal3.jpg
Scottc-mtvisfinal2.jpg


Assignment #3: Final Project Proposal

Proposal Description

We have so many electronic ways to be notified of e-mail, social media e.g. Facebook, Twitter, RSS feeds, etc. but we rarely see a way to be physically notified. I propose to make an Arduino project that ties in this internet networking notification ceoncept. The appropriate coding will be used to allow an apparatus to notify an user when he/she receives a new e-mail, specifically using Gmail in this case. The apparatus exactly is to be determined, as it will possibly be a self-constructed mailbox whose flag will raise up (servo?), or an artisically modified lamp that lights up.

Proposal Visualization

Missing in this diagram is the energy source

Final Project: eMailbox

Description

In this modern age of technology and instant notification, the now ubiquitous standard of e-mail has replaced snail mail. And one of the most dominant companies in maintaining the most productive e-mail systems is Gmail by Google. As such, the eMailbox is a literal, physical manifestation of our transfer and absorption of electronic information through the Internet. It combines the unreal, virtual mail with the real, being notified in the tradition of snail mail.

Features

Unfortunately, I was unable to get the code to work. In addition to the Arduino software, a programming software named Python was required, as long as the modification of a pfile. The original source was by j4mie, and the application of a servo was implemented by an Angelo Coppola.

Proposed Arduino Code

The first part involves the coding for Arduino. This was to move the servo motor in order to raise the flag, as well as activate the notification lights within the mailbox, in response to receiving an e-mail.

#include <MsTimer2.h>
#include <Servo.h>
Servo myservo;
int val;
int pos;
void flash() {
static boolean output = HIGH;
digitalWrite(9, output);
output = !output;
}
void setup()
{
Serial.begin(9600);
Serial.flush();
myservo.attach(10);
}
void loop()
{
if (Serial.available())
{
val = Serial.read();
Serial.println(val, BYTE);
if (val == 110) // n = 110 in dec
{
pinMode(9,0);
pos = 0;
}
else if (val == 109) //109 = m in dec
{
pinMode(9, OUTPUT);

MsTimer2::set(150, flash); // 150ms periodo
MsTimer2::start();
pos =140;
}    
}
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15);
}

Proposed Python Code

The Python script was to allow communication between the internet server (specified as Gmail) and the Arduino by opening the serial port that contained the Arduino. Credits to Angelo Coppola.

#import serial, sys, feedparser
#Settings - Change these to match your account details
USERNAME="[omit]@gmail.com"
PASSWORD="[omit]"
PROTO="https://"
SERVER="mail.google.com"
PATH="/gmail/feed/atom"
SERIALPORT = "/dev/tty.usbserial-COM9" # Change this to your serial port!
# Set up serial port
try:
	ser = serial.Serial(SERIALPORT, 9600)
except serial.SerialException:
	print "no device connected - exiting"
	sys.exit()


newmails = int(feedparser.parse(PROTO + USERNAME + ":" + PASSWORD + "@" + SERVER + PATH)["feed"]["fullcount"])
   
# Output data to serial port
if newmails > 0: 
	ser.write("m")
	print "some mail"
else: 
	ser.write("n")
	print "no mail" 
#print data to terminal


# Close serial port
ser.close()

Actual Arduino Code: Simple Servo Motor Activation

Due to my difficulty in executing the Python and Arduino scripts, I decided only to activate the servo motor. This very simple code only provides movement of the servo. I was going to include the blinking of the notification lights as well, but did not get the chance to implement it.

// Sweep
// by BARRAGAN <http://barraganstudio.com>

#include <Servo.h> //include the servo libary

Servo myservo;  // create servo object to control a servo
// a maximum of eight servo objects can be created

int pos = 0;    // variable to store the servo position

void setup()
{
myservo.attach(9);  // attaches the servo on pin 9 to the servo object
}

void loop()
{
for(pos = 0; pos < 180; pos += 1)  // goes from 0 degrees to 180 degrees
{                                  // in steps of 1 degree
myservo.write(pos);              // tell servo to go to position in variable ‘pos’
delay(15);                       // waits 15ms for the servo to reach the position
}
for(pos = 180; pos>=1; pos-=1)     // goes from 180 degrees to 0 degrees
{
myservo.write(pos);              // tell servo to go to position in variable ‘pos’
delay(15);                       // waits 15ms for the servo to reach the position
}
}


Visualization & Diagram

Pictures

Scottc-mailbox1.jpg
With a Gmail logo
Servo motor attached to rotating flag
Inside: Arduino board, breadboard, wiring, servo motor.

Video

This video illustrates how the mailbox is supposed to have worked like if it were to work with the Gmail code. (Minus notification lights)

http://www.youtube.com/watch?v=kd807JuxrPY

Diagram

Missing is the notification lights.


Details will be posted here after the Final presentation.