[Lab04] Roses are red, I am blue because midterm season.

Description

In this lab, I fit the force sensitive resistor between two airpacks. Upon compression, a rose is generated in Processing. This rose is created from arcs against a gradient background.

Materials

  • Arduino, LED, jumper, cables
  • Processing
  • Force sensitive resistor
  • Air packs


import processing.serial.*;

String portname = "/dev/cu.usbmodem1421";
Serial port;
String buf="";
int cr = 13;
int lf = 10;
int serialVal = 0;
int shift = 0;

void setup() {
size(800,800,P3D);
port = new Serial(this, portname, 9600);

noStroke();
colorMode(RGB, 400);
for (int i = 200; i < 400; i++) { for (int j = 200; j<400; j++) { stroke(i,j,0); point(i,j); }}} //} // void draw() { noStroke(); colorMode(RGB, 400); for (int i = 0; i < 800; i++) { for (int j = 0; j<800; j++) { stroke(i,j,0); point(i,j); } } stroke(255,0,255); noFill(); //ellipse(150,150,serialVal, serialVal); genRose((int) (serialVal*0.7),0, 350, 350); genRose((int) (serialVal*0.5), (int) HALF_PI, 350, 350);; if (serialVal > 400) {
genRose((int) (serialVal*0.5) ,0, 600, 600);
genRose((int) (serialVal*0.3), (int) HALF_PI, 600, 600);;
if (serialVal>500) {
genRose((int) (serialVal*0.5) ,0, 200, 200);
genRose((int) (serialVal*0.3), (int) HALF_PI, 200, 200);;

genRose((int) (serialVal*0.3) ,0, 700, 700);
genRose((int) (serialVal*0.1), (int) HALF_PI, 700, 700);;
if (serialVal > 600) {
genRose((int) (serialVal*0.3) ,0, 200, 600);
genRose((int) (serialVal*0.1), (int) HALF_PI, 200, 600);;
genRose((int) (serialVal*0.3) ,0, 600, 200);
if (serialVal > 700) {
genRose((int) (serialVal*0.1), (int) HALF_PI, 600, 200);;
genRose((int) (serialVal*0.3) ,0, 500, 500);
genRose((int) (serialVal*0.1), (int) HALF_PI, 500, 500);;
}
}
}
}

}

void genRose(int serialVal, int shift, int x, int y) {
fill(255,0,0);
arc(x,y,serialVal*0.9, serialVal, 0+shift, HALF_PI+shift);
arc(x,y,serialVal*1.1, serialVal*1.1, HALF_PI+shift, PI+shift);

fill(200,0,0);
arc(x,y,serialVal*0.9, serialVal, PI+shift, PI+HALF_PI+shift);
arc(x,y,serialVal*1.1, serialVal*1.1, PI+HALF_PI+shift, PI+PI+shift);
fill(175,0,0);
arc(x,y,serialVal/2, (serialVal/2)*0.8, 0+shift,PI+shift);
arc(x,y,serialVal/2, (serialVal/2) *0.8, (HALF_PI * 3)+shift,(PI * 2) +shift);
fill(150,0,0);
arc(x,y,(serialVal/4)*0.9, serialVal/4, 0+shift,HALF_PI+shift);
arc(x,y,(serialVal/4) *0.9, serialVal/4, PI+shift,PI+HALF_PI+shift);
fill(175,0,0);
arc(350,350,serialVal/8, (serialVal/8) *0.9, PI+HALF_PI+shift,PI+PI+shift);
arc(350,350,serialVal/8, (serialVal/8) *0.9, HALF_PI+shift,PI+shift);

}

void serialEvent(Serial p) {
int c = port.read();
if (c != lf && c != cr) {
buf += char(c);
} if (c==lf) {
serialVal = int(buf);
println("val="+serialVal);
buf= "";
}
}

Picture of the airpacks.
img_0420

Now I have created a garden of roses. Using a photocell would have made more sense because sunshine correlates to flowers. But also, if I attach this FSR to a water container like my water filter (will not be bringing this to class tomorrow), I can map it to the idea of watering plants.

image1-1

Leave a Reply