Ms. White gave us the project brief for our project. It is a Moire Kinetic Sculpture.
This is a list of constraints for the project.
We have a list of project constraints:
Laser cut pumpkin with yellow, orange, and red LEDS, Laser cut your name in cardboard, LEDS go RGB, Gear box parent gear 2x child gear speed, Gear box parent gear same direction as child gear, Get a servo to rotate left and right, Gear box two independently rotating disks on one shaft, Perpendicular servo mount created using laser cutter, Two servos and one LED all controlled by one Arduino at once, Moire design 1 completed on paper, Moire design 2 completed on paper, Moire design created in Illustrator, and Functional prototype from cardboard layers.
Our first benchmark we had to build a single gear box that had the parent gear rotating twice as fast as the child gear.
Our next benchmark was to have our parent gear rotate in the same direction as the child gear. The left gear represents the parent gear and the gear farthest to the right is the child gear.
We used a laser cutter to cut our names out of cardboard.
The arduino software was used to make the RGB LED show red, green, and blue.
The servo rotated rotated left and right at 180 degrees using Arduino coding.
For our moires, a servo box had to be made to fit around our servo. I recorded the dimensions of the servo and made the file in Inkscape to be cut out.
I laser cut a pumpkin head through Inkscape and coded two LEDS to flash yellow, orange, and red. The LEDS were connected by wire that plugged into pin 9, 10, and 11, and 5V in the arduino.
These are two sketches of two moires that I plan to make. There were a set of requirements that they had to follow: They have repetition at the same radial distance and they have repetition of form within each and together.
One arduino was used to control two rotating servos and one LED. I wired the two servos together, then wired it to the arduino. For the LED, I plugged in two of the legs into pin 10 and 11 and the third one into GND. The servo wires were plugged into pin 9(white), 5V(red), and GND(black).
These are my moire design sketches that I created on Inkscape. One single shape was made then it was cloned around the center black circle. Afterwards, it was joined together by using the path: union tool to the black circle and the outer black circle.
I printed the file from Inkscape onto RetinaEngrave and it cut out the design on cardboard.
Using the files provided from the computer's hardrive made by my teacher, I cut the six files out on cardboard.
This video shows two rotating disks on one shaft. The disks are rotating in opposite directions.
This file was used to show the overall setup of the kinetic sculpture. I used it to determine where the different parts went.
#include <Servo.h>
Servo S1;
Servo S2;
int pos=0;
int redPin = 11;
int greenPin = 10;
int bluePin = 3;
#define COMMON_ANODE
void setup() {
S1.attach(5);
S2.attach(6);
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}
void loop() {
setColor(255, 0, 0);
S2.write(110);
delay(5000);
S1.write(110);
delay(3000);
setColor(255, 255,0);
delay(2000);
setColor(255, 0, 0);
delay(2000);
setColor(255, 255, 0);
S2.write(80);
delay(5000);
S1.write(170);
delay(6000);
setColor(255, 0, 25);
delay(200);
setColor(204, 0, 51);
delay(200);
setColor(143, 0, 102);
delay(200);
setColor(102, 0, 143);
delay(200);
setColor(51, 0, 204);
delay(200);
setColor(25, 0, 255);
delay(200);
setColor(51, 0, 204);
delay(200);
setColor(76, 0, 143);
delay(200);
setColor(102, 0, 102);
delay(200);
setColor(127, 0, 25);
delay(200);
setColor(255, 0, 25);
delay(200);
setColor(204, 0, 51);
delay(200);
setColor(143, 0, 102);
delay(200);
setColor(102, 0, 143);
delay(200);
setColor(51, 0, 204);
delay(200);
setColor(25, 0, 255);
delay(200);
setColor(51, 0, 204);
delay(200);
setColor(76, 0, 143);
delay(200);
setColor(102, 0, 102);
delay(200);
setColor(127, 0, 25);
delay(200);
setColor(255, 0, 25);
delay(200);
setColor(204, 0, 51);
delay(200);
setColor(143, 0, 102);
delay(200);
setColor(102, 0, 143);
delay(200);
setColor(51, 0, 204);
delay(200);
setColor(25, 0, 255);
delay(200);
setColor(51, 0, 204);
delay(200);
setColor(76, 0, 143);
delay(200);
setColor(102, 0, 102);
delay(200);
setColor(127, 0, 25);
delay(200);
setColor(255, 0, 25);
delay(200);
setColor(204, 0, 51);
delay(200);
setColor(143, 0, 102);
delay(200);
setColor(102, 0, 143);
delay(200);
setColor(51, 0, 204);
delay(200);
setColor(25, 0, 255);
delay(200);
setColor(51, 0, 204);
delay(200);
setColor(76, 0, 143);
delay(200);
setColor(102, 0, 102);
delay(200);
setColor(127, 0, 25);
delay(200);
setColor(0, 255, 255);
delay(200);
setColor(0, 0, 255);
delay(100);
setColor(0, 128, 255);
delay(200);
setColor(51, 255, 255);
delay(100);
setColor(51, 51, 255);
delay(200);
setColor(51, 153, 255);
S2.write(60);
delay(5000);
S1.write(130);
delay(6000);
setColor(0, 255, 255);
delay(200);
setColor(0, 0, 255);
delay(100);
setColor(0, 128, 255);
delay(200);
setColor(51, 255, 255);
delay(100);
setColor(51, 51, 255);
delay(200);
setColor(51, 153, 255);
delay(100);
setColor(0, 255, 255);
delay(200);
setColor(0, 0, 255);
delay(100);
setColor(0, 128, 255);
delay(200);
setColor(51, 255, 255);
delay(100);
setColor(51, 51, 255);
delay(200);
setColor(51, 153, 255);
setColor(0, 255, 255);
delay(200);
setColor(0, 0, 255);
delay(100);
setColor(0, 128, 255);
delay(200);
setColor(51, 255, 255);
delay(100);
setColor(51, 51, 255);
delay(200);
setColor(51, 153, 255);
setColor(0, 255, 255);
delay(200);
setColor(0, 0, 255);
delay(100);
setColor(0, 128, 255);
delay(200);
setColor(51, 255, 255);
delay(100);
setColor(51, 51, 255);
delay(200);
setColor(51, 153, 255);
setColor(0, 255, 255);
delay(200);
setColor(0, 0, 255);
delay(100);
setColor(0, 128, 255);
delay(200);
setColor(51, 255, 255);
delay(100);
setColor(51, 51, 255);
delay(200);
setColor(51, 153, 255);
}
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 that I uploaded into the arduino that coded my LEDs and servos. I can refer back to this if needed.
This is the final prototype which includes the cardboard moires and coded LEDs and servos. The lights show the colors purple, green, and cyan. This prototype was made possible through the various benchmarks above.
The purpose of this functional prototype was to give a representation of what the final prototype will look and function like. However, because the material that was used was cardboard, the functionality of the prototype had a few flaws. The cardboard gears were thinner towards the edge and therefor would gradually tear when in use but once they are cut using wood, it will no longer be an issue. To further improve the sculpture, I would need to make a few edits to the files that were used. When the servo mounts were cut out, they were not wide enough and I resorted to smushing it in order for it to fit over the servo. Also, there were too many holes that were to fit the LEDs on the middle acrylic file so if I were to not use all the holes for LEDs, they would be left vacant and that would be seen through the acrylic in the final. My moires are stable whenever they rotate but to ensure nothing breaks off when the material is changed to wood, I should increase the thickness towards the edge of the entire moire.