We had to make boxes and hinges in engineering that would be used to store our future projects. Our boxes, with the hinge attached, had to be stack-able so that it could be stored in the closet.
This is our second project of the school year. This is the brief that Ms. White gave us that is an introduction to our new project. This gives us an idea of what we will be doing during the project.
These are the list of constraints that are required for this project. Our final project had to meet all of these constraints in order to get a good grade. This is a bit of an extension to the brief because it further explains what we need to be able to do for this project.
These are the different things that we need to complete in order to move on with the project. We get a stamp every time a benchmark is completed. We will have grades throughout the project based on these benchmarks.
We had to figure out what gears needed to be matched together in order for the parent gear to move faster than the child gear. The small gear is the parent gear.
Without being told what to do, we had to make a gear box that had a parent gear and a child gear that moves in the same direction. In this case, we had to use at least 3 gears. The middle sized gear is the parent gear. The big
I had two disks on one drive shaft. In order to get the disks to rotate separately, one disk had to be connected to the drive shaft and the other had to be separate. A set of gears are connected to the shaft, and when those gears are rotated the top disk rotates. The other disk is connected to gears and when those gears rotate, the separate disk rotated.
I used the Arduino and the breadboard in order to make the LED blink while also using all of the RGB colors. I used the default blinking code and uploaded it onto the Arduino app. I had to make a couple of changes in order to get the LED to blink properly.
I used a starter code and added in delays of 2000 and changed the code from being in void setup to being in void loop so that the code repeated.
I used the Retina program in order to cut out my name. I used a round background and made my name "hollow".
I had to design a pumpkin on the program Inkscape. The pumpkin had to have at least 4 curved shapes and at least 4 straight shapes. In order to program the LEDs, I had to see which light colors combined to create yellow and orange. I had to mix the colors red and green in order to get yellow. In order to get an orange light, I had to mix red and a smaller amount of green.
I used Inkscape in order to design a perpendicular servo mount that can fit snugly around the servo box. The mount also had to have holes that lined up with the holes on the servo. The holes on the mount also had to be small enough for the screws that we are using for the project.
In order to code my Arduino, I basically merged my LED and servo codes. I looked to see which sections of the LED code need to go where in the servo code. After creating a working code, I wired my servos so that both of them were controlled by the same wires.
Our moire sketches had to have repetition at the same radial distance. They also had to have a repetition of form.
This image has a series of different sized triangles that are hollow.
This image has a line of triangles that are the same size. This triangles are solid, so no light will pass through them.
These moires were made using Inkscape. We had to use the cloning feature in order to make sure that our designs were symmetrical. We had issues when using the union feature with the clones. In order to fix that issue we had to unlink the clones and union all of them to the outer ring and the inner circle.
These moires were cut out using the laser cutter. One of the main issues that occurred was the laser cutter would go over one line twice. This made my design very fragile. In order to fix this I had to redo my CAD design to make sure it wouldn't have two lines. The speed also had to be lowered on the laser cutter to make sure that the laser cut through the cardboard completely.
We had to laser cut multiple pieces in order to create our prototype out of cardboard. We were given the file pieces, but it was our responsibility to have all of the pieces printed out on time.
This is the Solidworks file that we used in order to create our prototype. We used functions such as "explosive mode" in order to see the parts more clearly. We had to use our printed out parts in order to make the prototype. This was the only form of "instructions" we had to build the working prototype.
This is the completed kinetic sculpture that has working servos and 2 blinking LEDs. The prototype only had 2 LEDs but the final will have 8. It will also be more functional, because the final materials are stronger.
This is the code that I used in order to create my functional prototype. This code supports at least 2 servos and at least 1 RGB LED.
We had to screw in our servo motors into the plexi-glass. Each servo had to be connected using at least 2 screws. We had to be really careful because if we screwed the screws in too far then there was a chance that our center piece could break.
This is my first moire that had to be edited a bit to insure that it would stay intact in my final sculpture.
We had to submit both of our moires into Google Classroom in order for Ms. White to upload them and print them from her computer.
We had to superglue our 8 LEDs into the middle acrylic. We also had to line up all of the LED legs so that they could be organized more easily. We then had to connect all of the LED legs and solder them so that they won't disconnect while in use.
We had to drill holes into our middle acrylic. We only used two holes on the arduino that were diagonal from each other. After we drilled the holes we found two screws that could fit into the drilled holes. We used machine screws because they have smaller threads.
I connected my moires and gears to my drive shaft. I put spacers where they were needed so that the elements wouldn't collide. My bottom moire is connected to my big gear, which are separate from the drive shaft. My top moire and small gear are both connected to the drive shaft. This makes it to where my moires will rotate independently because they are both connected to separate servos.
I coded my servos so that the servos did 3 patterns, each for 10 seconds. I made it to where my servos will go in opposite directions at the same speed, they go in the same direction at the same speed, and they go in opposite directions at different speeds.
I used two blinking patterns and one fading pattern. I made my first blinking pattern slow. I used three separate colors that each repeated 3 times. I made my fade pattern fade smoothly by increasing the brightness by 10 each time. My last pattern was a fast blinking pattern, and each color repeated 10 times.
I used my clear acrylic on the back half of the kinetic sculpture, and the dowels fit snugly within the holes. The translucent acrylic went on the front half of the kinetic sculpture. I had to use a hammer to connect the pieces because of the holes were very fitted. I had to install a bearing onto the front translucent acrylic.
This is my final Kinetic Sculpture code. I am pasting it here so that I have access to it later.
int redPin = 11;
int greenPin = 3;
int bluePin = 9;
//uncomment this line if using a Common Anode LED
#define COMMON_ANODE
#include <Servo.h>
Servo right;
Servo left;
void setup()
{
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}
void loop() {
right.attach(5);
left.attach(6);
right.write(130);
left.write(130);
setColor(51, 255, 255); //
delay(1000);
setColor(0, 0, 204); //
delay(1000);
setColor(153, 0, 0); //
delay(1000);
setColor(51, 255, 255); //
delay(1000);
setColor(0, 0, 204); //
delay(1000);
setColor(153, 0, 0); //
delay(1000);
setColor(51, 255, 255); //
delay(1000);
setColor(0, 0, 204); //
delay(1000);
setColor(153, 0, 0); //
delay(1000);
right.write(70);
left.write(130);
setColor(255, 10, 0); //
delay(100);
setColor(250, 20, 0); //
delay(100);
setColor(240, 30, 0); //
delay(100);
setColor(230, 40, 0); //
delay(100);
setColor(220, 50, 0); //
delay(100);
setColor(210, 60, 0); //
delay(100);
setColor(200, 70, 0); //
delay(100);
setColor(190, 80, 0); //
delay(100);
setColor(180, 90, 0); //
delay(100);
setColor(170, 100, 0); //
delay(100);
setColor(160, 110, 0); //
delay(100);
setColor(150, 120, 0); //
delay(100);
setColor(140, 130, 0); //
delay(100);
setColor(130, 140, 0); //
delay(100);
setColor(120, 150, 0); //
delay(100);
setColor(110, 160, 0); //
delay(100);
setColor(100, 170, 0); //
delay(100);
setColor(90, 180, 0); //
delay(100);
setColor(80, 190, 0); //
delay(100);
setColor(70, 200, 0); //
delay(100);
setColor(60, 210, 0); //
delay(100);
setColor(50, 220, 0); //
delay(100);
setColor(40, 230, 0); //
delay(100);
setColor(30, 240, 0); //
delay(100);
setColor(20, 250, 0); //
delay(100);
setColor(10, 255, 0); //
delay(100);
setColor(10, 255, 0); //
delay(100);
setColor(20, 250, 0); //
delay(100);
setColor(30, 240, 0); //
delay(100);
setColor(40, 230, 0); //
delay(100);
setColor(50, 220, 0); //
delay(100);
setColor(60, 210, 0); //
delay(100);
setColor(70, 200, 0); //
delay(100);
setColor(80, 190, 0); //
delay(100);
setColor(90, 180, 0); //
delay(100);
setColor(100, 170, 0); //
delay(100);
setColor(110, 160, 0); //
delay(100);
setColor(120, 150, 0); //
delay(100);
setColor(130, 140, 0); //
delay(100);
setColor(140, 130, 0); //
delay(100);
setColor(150, 120, 0); //
delay(100);
setColor(160, 110, 0); //
delay(100);
setColor(170, 100, 0); //
delay(100);
setColor(180, 90, 0); //
delay(100);
setColor(190, 80, 0); //
delay(100);
setColor(200, 70, 0); //
delay(100);
setColor(210, 60, 0); //
delay(100);
setColor(220, 50, 0); //
delay(100);
setColor(230, 40, 0); //
delay(100);
setColor(240, 30, 0); //
delay(100);
setColor(250, 20, 0); //
delay(100);
setColor(255, 10, 0); //
delay(100);
right.write(100);
left.write(125);
setColor(255, 178, 102); //
delay(100);
setColor(0, 0, 153); //
delay(100);
setColor(255, 51, 153); //
delay(100);
setColor(255, 178, 102); //
delay(100);
setColor(0, 0, 153); //
delay(100);
setColor(255, 51, 153); //
delay(100);
setColor(255, 178, 102); //
delay(100);
setColor(0, 0, 153); //
delay(100);
setColor(255, 51, 153); //
delay(100);
setColor(255, 178, 102); //
delay(100);
setColor(0, 0, 153); //
delay(100);
setColor(255, 51, 153); //
delay(100);
setColor(255, 178, 102); //
delay(100);
setColor(0, 0, 153); //
delay(100);
setColor(255, 51, 153); //
delay(100);
setColor(255, 178, 102); //
delay(100);
setColor(0, 0, 153); //
delay(100);
setColor(255, 51, 153); //
delay(100);
setColor(255, 178, 102); //
delay(100);
setColor(0, 0, 153); //
delay(100);
setColor(255, 51, 153); //
delay(100);
setColor(255, 178, 102); //
delay(100);
setColor(0, 0, 153); //
delay(100);
setColor(255, 51, 153); //
delay(100);
setColor(255, 178, 102); //
delay(100);
setColor(0, 0, 153); //
delay(100);
setColor(255, 51, 153); //
delay(100);
}
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);
}