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 the 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
Description
Components
- Lab 4 setup: breadboard, arduino, green LED, resistors, yellow green and red wires
- Force sensitive distributor with soldered wires
- Force distributors:
Code
/*
* Resistive Sensor Input
* Takes the input from a resistive sensor, e.g., FSR or photocell
* Dims the LED accordingly, and sends the value (0-255) to the serial port
*/
int sensorPin = 0; // select the input pin for the sensor
int ledPin = 11; // select the output pin for the LED
int val = 0; // variable to store the value coming from the sensor
void setup() {
Serial.begin(9600);
}
void loop() {
val = analogRead(sensorPin); // read the value from the sensor, 0-1023
analogWrite(ledPin, val/4); // analogWrite (dimming the LED) can be between 0-255
Serial.println(val/4); // writing the value to the PC via serial connection
delay(50); // rest a little...
}
Pictures