Part 1: Programming
Description
I used the modified arduino ball code and added more ellipses to the visualization (10 to be exact). Initially, I tried to replace the original ellipse with a clock visualization found on the Processing website but could not incorporate this code into this existing code.
Components
Lab 4 setup: breadboard, arduino, green LED, resistors, yellow green and red wires, force sensitive resistor
Code
import processing.serial.*;
String portname = "COM4";
Serial port;
String buf="";
int cr = 13;
int lf = 10;
void setup() {
size(300,300);
frameRate(10);
smooth();
background(40,40,40);
noStroke();
port = new Serial(this, portname, 9600);
}
void draw() {
}
void drawball(int a, int b, int d, int e, int f, int g, int h,
int j, int k, int l, int m, int n, int o, int q,
int s, int t, int u, int v, int w, int x, int y, int z, int r) {
for (int i=0; i<100; i++ ) {
fill(255-i,i,240);
ellipse(a,b,r,r);
ellipse(d,e,r,r);
ellipse(f,g,r,r);
ellipse(h,j,r,r);
ellipse(k,l,r,r);
ellipse(m,n,r,r);
ellipse(o,q,r,r);
ellipse(s,t,r,r);
ellipse(u,v,r,r);
ellipse(w,x,r,r);
ellipse(y,z,r,r);
}
}
void serialEvent(Serial p) {
int c = port.read();
if (c != lf && c != cr) {
buf += char(c);
}
if (c == lf) {
int val = int(buf);
println("val="+val);
int a = int(random(0,width));
int b = int(random(0,height));
int d = int(random(0,width));
int e = int(random(0,height));
int f = int(random(0,width));
int g = int(random(0,height));
int h = int(random(0,width));
int j = int(random(0,height));
int k = int(random(0,width));
int l = int(random(0,height));
int m = int(random(0,width));
int n = int(random(0,height));
int o = int(random(0,width));
int q = int(random(0,height));
int s = int(random(0,width));
int t = int(random(0,height));
int u = int(random(0,width));
int v = int(random(0,height));
int w = int(random(0,width));
int x = int(random(0,height));
int y = int(random(0,width));
int z = int(random(0,height));
drawball(a,b,d,e,f,g,h,j,k,l,m,n,o,q,s,t,u,v,w,x,y,z,val);
buf = "";
background(40,40,40);
}
}
Part 2: Mechanical