It is a combination of software, industrial, electrical and mechanical engineering to build a nice home decoration.
These are a list of requirements for the project.
This is how we will get to the final product. Each benchmark requires a stamp that signifies where we are in terms of progress.
#include <Servo.h>
Servo myservo;
Servo myservo2;
int redPin = 11;
int greenPin = 10;
int bluePin = 9;
//uncomment this line if using a Common Anode LED
#define COMMON_ANODE
void setup()
{
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
myservo.attach(3);
myservo2.attach(5);
myservo.write(90); // set servo to mid-point
}
void loop()
{
myservo.write(180);
myservo2.write(0);
setColor(255, 255, 255); // red
delay(1000);
setColor(0, 100, 100); // green
delay(1000);
setColor(100, 0, 255); // blue
delay(1000);
}
void setColor(int red, int green, int blue)
{
#ifdef COMMON_ANODE
red = 255 - red;
green = 255 - green;
blue = 255 - blue;
#endif
analogWrite(redPin, red);
analogWrite(greenPin, green);
analogWrite(bluePin, blue);
}
For this benchmark, I had to install two servos in acrylic.
For this benchmark, we used the glowforge to cut out our moire designs to be used on our final product.
int redPin = 11;
int greenPin = 3;
int bluePin = 5;
#include <Servo.h>
Servo myservo;
Servo myservo2;
//uncomment this line if using a Common Anode LED
//#define COMMON_ANODE
void setup()
{
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
myservo.attach(7);
myservo.write(90); // set servo to mid-point
myservo2.attach(6);
myservo2.write(90);
}
void loop()
{
// Pattern 1 S1
myservo.write(180); // set servo to mid-point
delay(4000);
myservo.write(50); // set servo to mid-point
delay(2000);
myservo.write(100); // set servo to mid-point
delay(3500);
myservo.write(10); // set servo to mid-point
delay(500);
//Pattern 1 S2
myservo2.write(20); // set servo to mid-point
delay(5000);
myservo2.write(180); // set servo to mid-point
delay(2000);
myservo2.write(90); // set servo to mid-point
delay(3500);
myservo2.write(150); // set servo to mid-point
delay(1500);
setColor(30, 0, 0); // red
delay(1000);
setColor(60, 0, 0); // green
delay(1000);
setColor(90, 0, 0); // blue
delay(1000);
setColor(120, 0, 0); // blue
delay(1000);
setColor(150, 0, 0); // blue
delay(1000);
setColor(180, 0, 0); // blue
delay(1000);
setColor(210, 0, 0); // blue
delay(1000);
setColor(240, 0, 0); // blue
delay(1000);
setColor(255, 0, 0); // blue
delay(1000);
setColor(255, 10, 0); // blue
delay(1000);
setColor(255, 20, 0); // red
delay(1000);
setColor(255, 30, 0); // green
delay(1000);
setColor(255, 40, 0); // blue
delay(1000);
setColor(255, 50, 0); // blue
delay(1000);
setColor(255, 60, 0); // blue
delay(1000);
setColor(255, 70, 0); // blue
delay(1000);
setColor(255, 80, 0); // blue
delay(1000);
setColor(255, 90, 0); // blue
delay(1000);
setColor(255, 100, 0); // blue
delay(1000);
setColor(255, 120, 0); // blue
delay(1000);
setColor(255, 140, 0); // blue
delay(1000);
setColor(255, 160, 0); // blue
delay(1000);
setColor(255, 180, 0); // blue
delay(1000);
setColor(255, 200, 20); // blue
delay(1000);
setColor(255, 220, 40); // blue
delay(1000);
setColor(255, 240, 60); // blue
delay(1000);
setColor(255, 255, 80); // blue
delay(1000);
setColor(255, 255, 100); // blue
delay(1000);
setColor(255, 255, 120); // blue
delay(1000);
setColor(255, 255, 140); // blue
delay(1000);
setColor(255, 255, 160); // blue
delay(1000);
setColor(255, 255, 180); // blue
delay(1000);
setColor(255, 255, 200); // blue
delay(1000);
setColor(255, 255, 220); // blue
delay(1000);
setColor(255, 255, 240); // blue
delay(1000);
setColor(255, 255, 255); // blue
delay(1000);
setColor(30, 0, 0); // red
delay(1000);
setColor(60, 0, 0); // green
delay(1000);
setColor(90, 0, 0); // blue
delay(1000);
setColor(120, 0, 0); // blue
delay(1000);
setColor(150, 0, 0); // blue
delay(1000);
setColor(180, 0, 0); // blue
delay(1000);
setColor(210, 0, 0); // blue
delay(1000);
setColor(240, 0, 0); // blue
delay(1000);
setColor(255, 0, 0); // blue
delay(1000);
setColor(255, 10, 0); // blue
delay(1000);
setColor(255, 20, 0); // red
delay(1000);
setColor(255, 30, 0); // green
delay(1000);
setColor(255, 40, 0); // blue
delay(1000);
setColor(255, 50, 0); // blue
delay(1000);
setColor(255, 60, 0); // blue
delay(1000);
setColor(255, 70, 0); // blue
delay(1000);
setColor(255, 80, 0); // blue
delay(1000);
setColor(255, 90, 0); // blue
delay(1000);
setColor(255, 100, 0); // blue
delay(1000);
setColor(255, 120, 0); // blue
delay(1000);
setColor(255, 140, 0); // blue
delay(1000);
setColor(255, 160, 0); // blue
delay(1000);
setColor(255, 180, 0); // blue
delay(1000);
setColor(255, 200, 20); // blue
delay(1000);
setColor(255, 220, 40); // blue
delay(1000);
setColor(255, 240, 60); // blue
delay(1000);
setColor(255, 255, 80); // blue
delay(1000);
setColor(255, 255, 100); // blue
delay(1000);
setColor(255, 255, 120); // blue
delay(1000);
setColor(255, 255, 140); // blue
delay(1000);
setColor(255, 255, 160); // blue
delay(1000);
setColor(255, 255, 180); // blue
delay(1000);
setColor(255, 255, 200); // blue
delay(1000);
setColor(255, 255, 220); // blue
delay(1000);
setColor(255, 255, 240); // blue
delay(1000);
setColor(255, 255, 255); // blue
delay(1000);
setColor(30, 0, 0); // red
delay(1000);
setColor(60, 0, 0); // green
delay(1000);
setColor(90, 0, 0); // blue
delay(1000);
setColor(120, 0, 0); // blue
delay(1000);
setColor(150, 0, 0); // blue
delay(1000);
setColor(180, 0, 0); // blue
delay(1000);
setColor(210, 0, 0); // blue
delay(1000);
setColor(240, 0, 0); // blue
delay(1000);
setColor(255, 0, 0); // blue
delay(1000);
setColor(255, 10, 0); // blue
delay(1000);
setColor(255, 20, 0); // red
delay(1000);
setColor(255, 30, 0); // green
delay(1000);
setColor(255, 40, 0); // blue
delay(1000);
setColor(255, 50, 0); // blue
delay(1000);
setColor(255, 60, 0); // blue
delay(1000);
setColor(255, 70, 0); // blue
delay(1000);
setColor(255, 80, 0); // blue
delay(1000);
setColor(255, 90, 0); // blue
delay(1000);
setColor(255, 100, 0); // blue
delay(1000);
setColor(255, 120, 0); // blue
delay(1000);
setColor(255, 140, 0); // blue
delay(1000);
setColor(255, 160, 0); // blue
delay(1000);
setColor(255, 180, 0); // blue
delay(1000);
setColor(255, 200, 20); // blue
delay(1000);
setColor(255, 220, 40); // blue
delay(1000);
setColor(255, 240, 60); // blue
delay(1000);
setColor(255, 255, 80); // blue
delay(1000);
setColor(255, 255, 100); // blue
delay(1000);
setColor(255, 255, 120); // blue
delay(1000);
setColor(255, 255, 140); // blue
delay(1000);
setColor(255, 255, 160); // blue
delay(1000);
setColor(255, 255, 180); // blue
delay(1000);
setColor(255, 255, 200); // blue
delay(1000);
setColor(255, 255, 220); // blue
delay(1000);
setColor(255, 255, 240); // blue
delay(1000);
setColor(255, 255, 255); // blue
delay(1000);
setColor(139, 0, 139); // blue
delay(10000);
// Pattern 2
setColor(0, 255, 255); // blue
delay(1000);
setColor(55, 255, 200); // blue
delay(1000);
setColor(155, 200, 155); // blue
delay(1000);
setColor(180, 180, 120); // blue
delay(1000);
setColor(200, 160, 100); // blue
delay(1000);
setColor(220, 150, 120); // blue
delay(1000);
setColor(250, 120, 140); // blue
delay(1000);
setColor(255, 100, 160); // blue
delay(1000);
setColor(255, 80, 180); // blue
delay(1000);
setColor(255, 50, 200); // blue
delay(1000);
setColor(0, 255, 255); // blue
delay(1000);
setColor(55, 255, 200); // blue
delay(1000);
setColor(155, 200, 155); // blue
delay(1000);
setColor(180, 180, 120); // blue
delay(1000);
setColor(200, 160, 100); // blue
delay(1000);
setColor(220, 150, 120); // blue
delay(1000);
setColor(250, 120, 140); // blue
delay(1000);
setColor(255, 100, 160); // blue
delay(1000);
setColor(255, 80, 180); // blue
delay(1000);
setColor(255, 50, 200); // blue
delay(1000);
setColor(0, 255, 255); // blue
delay(1000);
setColor(55, 255, 200); // blue
delay(1000);
setColor(155, 200, 155); // blue
delay(1000);
setColor(180, 180, 120); // blue
delay(1000);
setColor(200, 160, 100); // blue
delay(1000);
setColor(220, 150, 120); // blue
delay(1000);
setColor(250, 120, 140); // blue
delay(1000);
setColor(255, 100, 160); // blue
delay(1000);
setColor(255, 80, 180); // blue
delay(1000);
setColor(255, 50, 200); // blue
delay(1000);
setColor(139, 0, 139); // blue
delay(10000);
//Pattern 3
setColor(10, 0, 0); // blue
delay(1000);
setColor(20, 0, 0); // blue
delay(1000);
setColor(30, 0, 0); // blue
delay(1000);
setColor(40, 0, 0); // blue
delay(1000);
setColor(50, 0, 0); // blue
delay(1000);
setColor(60, 0, 0); // blue
delay(1000);
setColor(70, 0, 0); // blue
delay(1000);
setColor(80, 0, 0); // blue
delay(1000);
setColor(90, 0, 0); // blue
delay(1000);
setColor(100, 0, 0); // blue
delay(1000);
setColor(110, 0, 0); // blue
delay(1000);
setColor(120, 0, 0); // blue
delay(1000);
setColor(130, 0, 0); // blue
delay(1000);
setColor(140, 0, 0); // blue
delay(1000);
setColor(150, 0, 0); // blue
delay(1000);
setColor(160, 0, 0); // blue
delay(1000);
setColor(170, 0, 0); // blue
delay(1000);
setColor(180, 0, 0); // blue
delay(1000);
setColor(190, 0, 0); // blue
delay(1000);
setColor(200, 0, 0); // blue
delay(1000);
setColor(210, 0, 0); // blue
delay(1000);
setColor(220, 0, 0); // blue
delay(1000);
setColor(230, 0, 0); // blue
delay(1000);
setColor(240, 0, 0); // blue
delay(1000);
setColor(255, 0, 0); // blue
delay(1000);
setColor(10, 0, 0); // blue
delay(1000);
setColor(20, 0, 0); // blue
delay(1000);
setColor(30, 0, 0); // blue
delay(1000);
setColor(40, 0, 0); // blue
delay(1000);
setColor(50, 0, 0); // blue
delay(1000);
setColor(60, 0, 0); // blue
delay(1000);
setColor(70, 0, 0); // blue
delay(1000);
setColor(80, 0, 0); // blue
delay(1000);
setColor(90, 0, 0); // blue
delay(1000);
setColor(100, 0, 0); // blue
delay(1000);
setColor(110, 0, 0); // blue
delay(1000);
setColor(120, 0, 0); // blue
delay(1000);
setColor(130, 0, 0); // blue
delay(1000);
setColor(140, 0, 0); // blue
delay(1000);
setColor(150, 0, 0); // blue
delay(1000);
setColor(160, 0, 0); // blue
delay(1000);
setColor(170, 0, 0); // blue
delay(1000);
setColor(180, 0, 0); // blue
delay(1000);
setColor(190, 0, 0); // blue
delay(1000);
setColor(200, 0, 0); // blue
delay(1000);
setColor(210, 0, 0); // blue
delay(1000);
setColor(220, 0, 0); // blue
delay(1000);
setColor(230, 0, 0); // blue
delay(1000);
setColor(240, 0, 0); // blue
delay(1000);
setColor(255, 0, 0); // blue
delay(1000);
setColor(10, 0, 0); // blue
delay(1000);
setColor(20, 0, 0); // blue
delay(1000);
setColor(30, 0, 0); // blue
delay(1000);
setColor(40, 0, 0); // blue
delay(1000);
setColor(50, 0, 0); // blue
delay(1000);
setColor(60, 0, 0); // blue
delay(1000);
setColor(70, 0, 0); // blue
delay(1000);
setColor(80, 0, 0); // blue
delay(1000);
setColor(90, 0, 0); // blue
delay(1000);
setColor(100, 0, 0); // blue
delay(1000);
setColor(110, 0, 0); // blue
delay(1000);
setColor(120, 0, 0); // blue
delay(1000);
setColor(130, 0, 0); // blue
delay(1000);
setColor(140, 0, 0); // blue
delay(1000);
setColor(150, 0, 0); // blue
delay(1000);
setColor(160, 0, 0); // blue
delay(1000);
setColor(170, 0, 0); // blue
delay(1000);
setColor(180, 0, 0); // blue
delay(1000);
setColor(190, 0, 0); // blue
delay(1000);
setColor(200, 0, 0); // blue
delay(1000);
setColor(210, 0, 0); // blue
delay(1000);
setColor(220, 0, 0); // blue
delay(1000);
setColor(230, 0, 0); // blue
delay(1000);
setColor(240, 0, 0); // blue
delay(1000);
setColor(255, 0, 0); // blue
delay(1000);
setColor(255, 0, 100); // blue
delay(10000);
}
void setColor(int red, int green, int blue)
{
#ifdef COMMON_ANODE
red = 255 - red;
green = 255 - green;
blue = 255 - blue;
#endif
analogWrite(redPin, red);
analogWrite(greenPin, green);
analogWrite(bluePin, blue);
}