I used the same Arduino code from assignment 5.1. Here's the processing code:
import processing.serial.*;
Serial myPort;
int val; void setup() {
size(400,400); String portName = Serial.list()[0]; myPort = new Serial(this, portName, 9600); } void draw() {
background(0); // set background to black stroke(0); // set stroke color to black if ( myPort.available() > 0) { // if data is available val = myPort.read(); // read it and store it in val } if (val == 1) { fill(225, 0, 0); // sets fill color to bright red ellipse(width/2, height/2, 400, 400); // draws ellipse centered with diameter 400 fill(225, 225, 0); // sets fill color to bright yellow rect(25, 25, 350, 350); // draws rectangle from corner (25, 25) with width of 350 fill(180, 0, 0); // sets fill color to a darker red ellipse(width/2, height/2, 350, 350); // draws ellipse centered with diameter 350 fill(168.75, 168.75, 0); // sets fill color to a darker yellow rect(50, 50, 300, 300); // draws rectangle from corner (50, 50) with width of 300 fill(135, 0, 0); // sets fill color to a medium red ellipse(width/2, height/2, 300, 300); // draws ellipse centered with diameter 300 fill(112.5, 112.5, 0); // sets fill color to a medium yellow rect(75, 75, 250, 250); // draws rectangle from corner (75, 75) with width of 250 fill(90, 0, 0); // sets fill color to dark red ellipse(width/2, height/2, 250, 250); // draws ellipse centered with diameter 250 fill(56.25, 56.25, 0); // sets fill color to dark yellow rect(100, 100, 200, 200); // draws rectangle with corner at (100, 100) and width of 200 fill(45, 0, 0); // sets fill color to very dark red ellipse(width/2, height/2, 200, 200); // draws ellipse centered with diameter 200 fill(0); // sets fill color to black rect(125, 125, 150, 150); // draws rectangle with corner at (125, 125) and width of 150 stroke(0, 225, 0); // sets stroke color to bright green line(200, 125, 125, 200); // draws line from (200, 125) to (125, 200) line(200, 125, 275, 200); // draws line from (200, 125) to (275, 200) line(125, 200, 200, 275); // draws line from (125, 200) to (200, 175) line(275, 200, 200, 275); // draws line from (275, 200) to (200, 275) fill(0, 0, 0, 0); // sets fill to transparent black rect(145, 145, 110, 110); // draws rectangle with corner at (145, 145) and width 110 stroke(0); // sets stroke color to black fill(0, 0, 25); // sets fill color to a very dark blue ellipse(width/2, height/2, 100, 100); // draws ellipse with center at middle and diameter of 100 fill(0, 0, 75); // sets fill color to dark blue ellipse(width/2, height/2, 80, 80); // draws ellipse centered with diameter 80 fill(0, 0, 125); // sets fill color to blue ellipse(width/2, height/2, 60, 60); // draws ellipse centered with diameter 60 fill(0, 0, 175); // sets fill color to bright blue ellipse(width/2, height/2, 40, 40); // draws ellipse centered with diameter 40 fill(0, 0, 225); // sets fill color to a very bright blue ellipse(width/2, height/2, 20, 20); // draws ellipse centered with diameter 20 stroke(0, 0, 125); // sets stroke color to bright blue line(25, 25, 375, 375); // draws line from (0, 0) to (400, 400) line(375, 25, 25, 375); // draws line from (400, 0) to (0, 400) line(200, 0, 200, 400); // draws line from (200, 0) to (200, 400) line(0, 200, 400, 200); // draws line from (0, 200) to (400, 200) } else if (val == 0) { fill(225, 225, 0); // sets fill color to bright yellow ellipse(width/2, height/2, 400, 400); // draws ellipse centered with diameter 400 fill(225, 0, 0); // sets fill color to bright red rect(25, 25, 350, 350); // draws rectangle from corner (25, 25) with width of 350 fill(180, 180, 0); // sets fill color to a darker yellow ellipse(width/2, height/2, 350, 350); // draws ellipse centered with diameter 350 fill(168.75, 0, 0); // sets fill color to a darker red rect(50, 50, 300, 300); // draws rectangle from corner (50, 50) with width of 300 fill(135, 135, 0); // sets fill color to a medium yellow ellipse(width/2, height/2, 300, 300); // draws ellipse centered with diameter 300 fill(112.5, 0, 0); // sets fill color to a medium red rect(75, 75, 250, 250); // draws rectangle from corner (75, 75) with width of 250 fill(90, 90, 0); // sets fill color to dark yellow ellipse(width/2, height/2, 250, 250); // draws ellipse centered with diameter 250 fill(56.25, 0, 0); // sets fill color to dark red rect(100, 100, 200, 200); // draws rectangle with corner at (100, 100) and width of 200 fill(45, 45, 0); // sets fill color to very dark yellow ellipse(width/2, height/2, 200, 200); // draws ellipse centered with diameter 200 fill(0); // sets fill color to black rect(125, 125, 150, 150); // draws rectangle with corner at (125, 125) and width of 150 stroke(225, 0, 225); // sets stroke color to bright magenta line(200, 125, 125, 200); // draws line from (200, 125) to (125, 200) line(200, 125, 275, 200); // draws line from (200, 125) to (275, 200) line(125, 200, 200, 275); // draws line from (125, 200) to (200, 175) line(275, 200, 200, 275); // draws line from (275, 200) to (200, 275) fill(0, 0, 0, 0); // sets fill to transparent black rect(145, 145, 110, 110); // draws rectangle with corner at (145, 145) and width 110 stroke(0); // sets stroke color to black fill(0, 25, 25); // sets fill color to a very dark cyan ellipse(width/2, height/2, 100, 100); // draws ellipse with center at middle and diameter of 100 fill(0, 75, 75); // sets fill color to dark cyan ellipse(width/2, height/2, 80, 80); // draws ellipse centered with diameter 80 fill(0, 125, 125); // sets fill color to cyan ellipse(width/2, height/2, 60, 60); // draws ellipse centered with diameter 60 fill(0, 175, 175); // sets fill color to bright cyan ellipse(width/2, height/2, 40, 40); // draws ellipse centered with diameter 40 fill(0, 225, 225); // sets fill color to a very bright cyan ellipse(width/2, height/2, 20, 20); // draws ellipse centered with diameter 20 stroke(225, 0, 225); // sets stroke color to bright magenta line(25, 25, 375, 375); // draws line from (0, 0) to (400, 400) line(375, 25, 25, 375); // draws line from (400, 0) to (0, 400) line(200, 0, 200, 400); // draws line from (200, 0) to (200, 400) line(0, 200, 400, 200); // draws line from (0, 200) to (400, 200) } else if (val == 10) { fill(45, 45, 0); // sets fill color to bright yellow ellipse(width/2, height/2, 400, 400); // draws ellipse centered with diameter 400 fill(56.25, 0, 0); // sets fill color to bright red rect(25, 25, 350, 350); // draws rectangle from corner (25, 25) with width of 350 fill(90, 90, 0); // sets fill color to a darker yellow ellipse(width/2, height/2, 350, 350); // draws ellipse centered with diameter 350 fill(112.5, 0, 0); // sets fill color to a darker red rect(50, 50, 300, 300); // draws rectangle from corner (50, 50) with width of 300 fill(135, 135, 0); // sets fill color to a medium yellow ellipse(width/2, height/2, 300, 300); // draws ellipse centered with diameter 300 fill(168.75, 0, 0); // sets fill color to a medium red rect(75, 75, 250, 250); // draws rectangle from corner (75, 75) with width of 250 fill(180, 180, 0); // sets fill color to dark yellow ellipse(width/2, height/2, 250, 250); // draws ellipse centered with diameter 250 fill(225, 0, 0); // sets fill color to dark red rect(100, 100, 200, 200); // draws rectangle with corner at (100, 100) and width of 200 fill(225, 225, 0); // sets fill color to very dark yellow ellipse(width/2, height/2, 200, 200); // draws ellipse centered with diameter 200 fill(0); // sets fill color to black rect(125, 125, 150, 150); // draws rectangle with corner at (125, 125) and width of 150 stroke(0, 225, 0); // sets stroke color to bright green line(200, 125, 125, 200); // draws line from (200, 125) to (125, 200) line(200, 125, 275, 200); // draws line from (200, 125) to (275, 200) line(125, 200, 200, 275); // draws line from (125, 200) to (200, 175) line(275, 200, 200, 275); // draws line from (275, 200) to (200, 275) fill(0, 0, 0, 0); // sets fill to transparent black rect(145, 145, 110, 110); // draws rectangle with corner at (145, 145) and width 110 stroke(0); // sets stroke color to black fill(0, 0, 225); // sets fill color to a very bright blue ellipse(width/2, height/2, 100, 100); // draws ellipse with center at middle and diameter of 100 fill(0, 0, 175); // sets fill color to bright blue ellipse(width/2, height/2, 80, 80); // draws ellipse centered with diameter 80 fill(0, 0, 125); // sets fill color to blue ellipse(width/2, height/2, 60, 60); // draws ellipse centered with diameter 60 fill(0, 0, 75); // sets fill color to dark blue ellipse(width/2, height/2, 40, 40); // draws ellipse centered with diameter 40 fill(0, 0, 25); // sets fill color to a very dark blue ellipse(width/2, height/2, 20, 20); // draws ellipse centered with diameter 20 stroke(0, 0, 125); // sets stroke color to bright blue line(25, 25, 375, 375); // draws line from (0, 0) to (400, 400) line(375, 25, 25, 375); // draws line from (400, 0) to (0, 400) line(200, 0, 200, 400); // draws line from (200, 0) to (200, 400) line(0, 200, 400, 200); // draws line from (0, 200) to (400, 200) } else { fill(225, 225, 0); // sets fill color to bright yellow ellipse(width/2, height/2, 400, 400); // draws ellipse centered with diameter 400 fill(225, 0, 0); // sets fill color to bright red rect(25, 25, 350, 350); // draws rectangle from corner (25, 25) with width of 350 fill(180, 180, 0); // sets fill color to a darker yellow ellipse(width/2, height/2, 350, 350); // draws ellipse centered with diameter 350 fill(168.75, 0, 0); // sets fill color to a darker red rect(50, 50, 300, 300); // draws rectangle from corner (50, 50) with width of 300 fill(135, 135, 0); // sets fill color to a medium yellow ellipse(width/2, height/2, 300, 300); // draws ellipse centered with diameter 300 fill(112.5, 0, 0); // sets fill color to a medium red rect(75, 75, 250, 250); // draws rectangle from corner (75, 75) with width of 250 fill(90, 90, 0); // sets fill color to dark yellow ellipse(width/2, height/2, 250, 250); // draws ellipse centered with diameter 250 fill(56.25, 0, 0); // sets fill color to dark red rect(100, 100, 200, 200); // draws rectangle with corner at (100, 100) and width of 200 fill(45, 45, 0); // sets fill color to very dark yellow ellipse(width/2, height/2, 200, 200); // draws ellipse centered with diameter 200 fill(0); // sets fill color to black rect(125, 125, 150, 150); // draws rectangle with corner at (125, 125) and width of 150 stroke(0, 225, 0); // sets stroke color to bright green line(200, 125, 125, 200); // draws line from (200, 125) to (125, 200) line(200, 125, 275, 200); // draws line from (200, 125) to (275, 200) line(125, 200, 200, 275); // draws line from (125, 200) to (200, 175) line(275, 200, 200, 275); // draws line from (275, 200) to (200, 275) fill(0, 0, 0, 0); // sets fill to transparent black rect(145, 145, 110, 110); // draws rectangle with corner at (145, 145) and width 110 stroke(0); // sets stroke color to black fill(0, 0, 25); // sets fill color to a very dark blue ellipse(width/2, height/2, 100, 100); // draws ellipse with center at middle and diameter of 100 fill(0, 0, 75); // sets fill color to dark blue ellipse(width/2, height/2, 80, 80); // draws ellipse centered with diameter 80 fill(0, 0, 125); // sets fill color to blue ellipse(width/2, height/2, 60, 60); // draws ellipse centered with diameter 60 fill(0, 0, 175); // sets fill color to bright blue ellipse(width/2, height/2, 40, 40); // draws ellipse centered with diameter 40 fill(0, 0, 225); // sets fill color to a very bright blue ellipse(width/2, height/2, 20, 20); // draws ellipse centered with diameter 20 stroke(0, 0, 125); // sets stroke color to bright blue line(25, 25, 375, 375); // draws line from (0, 0) to (400, 400) line(375, 25, 25, 375); // draws line from (400, 0) to (0, 400) line(200, 0, 200, 400); // draws line from (200, 0) to (200, 400) line(0, 200, 400, 200); // draws line from (0, 200) to (400, 200) } }
When the button connected to pin 5 is pressed, the inner group of circles change from blue hues to cyan hues, and the diamond, square, and lines running through the middle change color to magenta. When the button connected to pin 4 is pressed, the outer ring of yellow hued circles change to red hues and the red hued squares change to yellow hues. When both buttons are pressed, the outer yellow circles and red squares change from dark to light to light to dark, and the inner blue circles change from dark to light to light to dark as well. A short video is attached.
|