This project is a Moire Kinetic Sculpture.
It involves mechanism, coding, gears, and art.
This project has many constriants. One is two independent rotating moires and the rest are listed above.
Benchmarks are accomplished as we move along with the project.
In this gear box, the parent gear is 2x the child's gear speed.
These LEDs go Red Green Blue.
My name was cutt out with a laser cutter.
In this gear box, the parent gear is going the same direction as child gear. The parent gear is the one on the left, and the child is the one the on the right.
This servo motor rotated 180 degrees to the left, then 180 degress to the right.
Two servos and one LED were all controlled by one arduino at once.
I used inkscape software to laser cut a Pumpkin that lights up Red, Yellow, and Orange for Halloween.
These are two moire sketches that have repetition at the same radial distance and have repetition of form within each and together.
I used inkscape software to design my first moire sketch.
I used inkscape to laser cut my first moire design out of cardboard.
I used inkscape software to design my second moire sketch.
I used inkscape to laser cut my second moire design out of cardboard.
I used the laser cutter to cut out the different pieces for my prototype.
I created a gear box with two independently rotating disks on one shaft.
This is the solid works file I used to reverse engineer my prototype. It was very useful, because I was able to pull out every piece of material out and see how and where each piece goes. I was also able to zoom in and out to get a better view.
The purpose of this prototype is to test how my final product will function. The gears didn't really function very easily due to cardboard, but it will be resolved using the final materials. My first moire design needs an improvement, because it is too thin. It is not durable and it needs to be more thick for it to function properly. One improvement that needs to be made in the solidworks file is being able to see the measurements of each and every piece of material so that we can picture in our heads how big each peice will be on our final product. One change in my moire file that needs to be made is the middle of my second moire design. It is shaped like a hexagon and it needs to be shaped like a circle for it to rotate properly. Finally, one last improvement I think will be great is being able to change the color of each peice. I think that makes it better for the user and their ideas of coloration.
int redPin = 11;
int greenPin = 10;
int bluePin = 9;
#define COMMON_ANODE
#include <Servo.h>
Servo right;
Servo left;
void setup()
{pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}void loop() {
setColor(255, 20, 147); // deep pink
delay(1000);
setColor(0, 0, 128); // navy
delay(1000);
setColor(0, 100, 0); // dark green
delay(1000);
right.attach(8);
right.write(180);
delay(1000);
right.write(0);
delay(1000);
left.attach(7);
left.write(180);
delay(1000);
left.write(0);
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); }
This is the code for the prototype of my kinetic sculpture. This code allows both servos to rotate independently and the lights to flash red and green. It is important to identify what pin each led goes into, becasue the wiring needs to correspond with the code.
I installed two servos into my plexiglass, for my final kinetic sculpture.
Both moires are cut out by using the Glow Forge. The material used was thin plywood.
Both moires are cut out by using the Glow Forge. The material used was thin plywood.
I installed 8 LED lights by using super glue and they all go RGB due to me soldering them together.
These moires are independently controlled by the servos .
I installed my arduino onto my middle acrylic using screws.
I assembled three acrylic layers perfectly.
The servos in my kinetic sculpture have three distinct motion patterns.
My Kinetic Sculpture does three repeated light patterens.
I finished the sides of my kinetic sculpture with excellent craftmanship.
This is my final functional kinetic scupture presentation.
#include <Servo.h>
Servo myservo;
Servo myservo2;
int redPin = 11;
int greenPin = 10;
int bluePin = 9;
#define COMMON_ANODE
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);
}
void setup(){}
void loop()
{
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
myservo.attach(3);
myservo2.attach(5);
myservo.write(105);
myservo2.write(105);
setColor(255, 0, 0);
delay(1250);
setColor(230, 0, 0);
delay(1250);
setColor(210, 0, 0);
delay(1250);
setColor(190, 0, 0);
delay(1250);
setColor(170, 0, 0);
delay(1250);
setColor(150, 0, 0);
delay(1250);
setColor(130, 0, 0);
delay(1150);
myservo.write(180);
myservo.write(80);
delay(5000);
myservo2.write(0);
myservo.write(100);
setColor(110, 0, 0);
delay(1000);
setColor(90, 0, 0);
delay(1000);
setColor(70, 0, 0);
delay(1000);
setColor(50, 0, 0);
delay(900);
setColor(30, 0, 0);
delay(800);
setColor(10, 0, 0);
delay(500);
setColor(5, 0, 0);
delay(200);
setColor(0, 0, 0);
delay(300);
myservo.write(180);
myservo2.write(135);
myservo.write(80);
myservo2.write(70);
myservo2.write(90);
delay(3000);
setColor(255, 255, 125);
delay(5000);
setColor(230, 230, 95);
delay(1000);
setColor(200, 200, 70);
delay(1000);
setColor(165, 165, 45);
delay(1000);
setColor(130, 130, 45);
delay(1000);
setColor(100, 100, 25);
delay(1000);
myservo.write(130);
myservo2.write(100);
delay(5000);
setColor(75, 75, 10);
delay(1000);
setColor(45, 45, 0);
delay(1000);
setColor(15, 15, 0);
delay(1000);
setColor(0, 30, 30);
delay(1000);
setColor(0, 65, 65);
delay(1000);
setColor(0, 90, 90);
delay(1000);
myservo.write(180);
myservo.write(110);
delay(7000);
setColor(0, 125, 125);
delay(1000);
setColor(0, 150, 150);
delay(1000);
setColor(0, 190, 190);
delay(1000);
setColor(0, 220, 220);
delay(1000);
myservo2.write(0);
myservo2.write(110);
delay(7000);
setColor(0, 255, 255);
delay(750);
setColor(0, 255, 255);
delay(2000);
setColor(0, 220, 220);
delay(1000);
setColor(0, 195, 195);
delay(1000);
setColor(0, 160, 160);
delay(1000);
myservo.write(120);
myservo.write(108);
delay(3500);
myservo2.write(60);
myservo2.write(72);
delay(3500);
setColor(0, 135, 135);
delay(1000);
setColor(0, 100, 100);
delay(1000);
setColor(0, 75, 75);
delay(1000);
setColor(0, 50, 50);
delay(1000);
setColor(0, 25, 25);
delay(1000);
setColor(255, 0, 255);
delay(2000);
setColor(255, 255, 0);
delay(2000);
setColor(255, 255, 255);
delay(2000);
myservo.write(120);
myservo.write(108);
delay(3500);
myservo2.write(60);
myservo2.write(72);
delay(3500);
}
This is the code for the final kinetic sculpture. This code allows both servos to rotate independently and the lights to flash different colors.