Our first project in engineering we made wooden boxes, and we also made wooden hinges. It took a long time because we had to make notes on how to use tools, even though we already know how to use these simple tools.
We had to stain, cut, biscuit, plane, and sand our boxes and hinges to make the final product. The final product took about 2 months to make. The project was easy but very much over-complicated by the teacher.
This benchmark tested both our design skills and out knowledge of Inkscape. This took some trial and error but I was able to do it.
This is the second moire that we designed, but instead of paper we used Inkscape
This was the result of creating the first CAD model of our moire sketch but we used the laser cutter to print it out.
After we created the Inkscape file we were able to print the second design out on cardboard.
We had to get one LED working with the two servos at once. The way I wired it was I had to connect both the servo wires to the five volt pin in the breadboard. I also had to connect the LEDs to the breadboard.
We used the laser cutter to print a servo mount using the correct dimensions of the servo.
We made a functional prototype of our end project. We did this to make sure we knew how to make the end goal.
We made a functional Gear box using Laser cut pieces and different sized gears.
We had to make sure that all of our cardboard pieces were printed out.
This is a Final CAD model of the project and serves as the model to help guide the process of making our final project. There were some problems however... the bearing hole was too small and the holes for the LED's were too small. The holes for the dowels were also too big. I need to fix those before the final design.
The functional prototype serves as a model and a way to understand how your final product will come together. This also finalizes the code, so you know what code you are going to use for the final product. You will also be able to know what changes you will have to make. Although there are many parts of the prototype that weren't functional due to the materials used. One of the changes we knew we had to make was the fact that many of the holes where not the right size.
This was the final code that will be used in the final product. We had to make the arduino's spin in different directions so they spin the moire. We also had to make the LED light up in different colors.
#include <Servo.h>
Servo myservo1;
Servo myservo2;
int red_light_pin= 11;
int green_light_pin = 10;
int blue_light_pin = 9;
void setup()
{
myservo1.attach(8);
myservo1.write(90); // set servo to mid-point
myservo2.attach(7);
myservo2.write(90); // set servo to mid-point
pinMode(red_light_pin, OUTPUT);
pinMode(green_light_pin, OUTPUT);
pinMode(blue_light_pin, OUTPUT);
}
void loop() {
myservo1.write(0); // set servo to mid-point
delay(1000);
myservo2.write(0); // set servo to mid-point
delay(1000);
RGB_color(255, 0, 0); // Red
delay(1000);
RGB_color(0, 255, 0); // Green
delay(1000);
RGB_color(0, 0, 255); // Blue
delay(1000);
RGB_color(255, 255, 125); // Raspberry
delay(1000);
RGB_color(0, 255, 255); // Cyan
delay(1000);
RGB_color(255, 0, 255); // Magenta
delay(1000);
RGB_color(255, 255, 0); // Yellow
delay(1000);
RGB_color(255, 255, 255); // White
delay(1000);
}
void RGB_color(int red_light_value, int green_light_value, int blue_light_value)
{
analogWrite(red_light_pin, red_light_value);
analogWrite(green_light_pin, green_light_value);
analogWrite(blue_light_pin, blue_light_value);
}
Using the screws that we where given in class we were able to attach our servos to the middle acrylic.
Using the Glowforge laser cutter we were tasked to cut out the first moire out of wood. This was also the last moire we had to cut out.
Using the Glowforge laser cutter we were tasked to cut out the second moire out of wood. This was also the final moire to cut out
This objective was achieved by inputting the code from the cardboard model into the new wood model.
We were only able to get the led's to go blue and green, but we are in the process of getting them to go red.
In this task we had to screw our Arduino into our middle acrylic.
The three layers that we were given in class should be assembled and put together.
The LEDs that we assembled earlier need to have three light patterns.
The servos that we have in our sculptures need to have three different patterns when rotating.
All the constraints that we were given need to be complete and finished.
// Include the Servo library
#include <Servo.h>
#define COMMON_ANODE
// Declare the Servo pin
int servoPin = 3;
int servoPin2 = 5;
int redPin = 11;
int greenPin = 10;
int bluePin = 9;
// Create a servo object
Servo Servo1;
Servo Servo12;
void setup() {
// We need to attach the servo to the used pin number
Servo1.attach(servoPin);
Servo12.attach(servoPin2);
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}
void loop(){
setColor(255, 0, 0); // green
delay(500);
setColor(0, 255, 0); // green
delay(500);
setColor(0, 0, 255); // blue
delay(500);
{
setColor(0, 0, 255); // green
delay(500);
setColor(20, 0, 0); // green
delay(500);
setColor(0, 25, 0); // blue
delay(500);
}
// Make servo go to 0 degrees
Servo1.write(180);
delay(1000);
// Make servo go to 90 degrees
Servo1.write(90);
delay(1000);
// Make servo go to 180 degrees
Servo1.write(180);
delay(1000);
setColor(0, 0, 255); // green
delay(500);
setColor(20, 0, 0); // green
delay(1500);
setColor(0, 25, 0); // blue
delay(500); // Make servo go to 0 degrees
Servo1.write(180);
delay(1000);
// Make servo go to 90 degrees
Servo1.write(90);
delay(1000);
// Make servo go to 180 degrees
Servo1.write(180);
delay(1000);
setColor(0, 0, 255); // green
delay(500);
setColor(20, 0, 0); // green
delay(1500);
setColor(0, 25, 0); // blue
delay(500); // Make servo go to 0 degrees
Servo1.write(180);
delay(1000);
// Make servo go to 90 degrees
Servo1.write(90);
delay(1000);
// Make servo go to 180 degrees
Servo1.write(180);
delay(1000);
setColor(0, 0, 255); // green
delay(500);
setColor(20, 0, 0); // green
delay(1500);
setColor(0, 25, 0); // blue
delay(500);
// Make servo go to 0 degrees
Servo12.write(90);
delay(1000);
// Make servo go to 90 degrees
Servo12.write(45);
delay(1000);
// Make servo go to 180 degrees
Servo12.write(180);
delay(1000);
setColor(0, 0, 255); // green
delay(500);
setColor(255, 0, 0); // green
delay(1500);
setColor(0, 255, 0); // blue
delay(500); // Make servo go to 0 degrees
Servo12.write(90);
delay(1000);
// Make servo go to 90 degrees
Servo12.write(45);
delay(1000);
// Make servo go to 180 degrees
Servo12.write(180);
delay(1000);
setColor(0, 0, 255); // green
delay(500);
setColor(255, 0, 0); // green
delay(1500);
setColor(0, 255, 0); // blue
delay(500); // Make servo go to 0 degrees
Servo12.write(90);
delay(1000);
// Make servo go to 90 degrees
Servo12.write(45);
delay(1000);
// Make servo go to 180 degrees
Servo12.write(180);
delay(1000);
setColor(0, 0, 255); // green
delay(500);
setColor(255, 0, 0); // green
delay(1500);
setColor(0, 255, 0); // blue
delay(500);
// Make servo go to 0 degrees
Servo1.write(180);
delay(1000);
// Make servo go to 90 degrees
Servo1.write(90);
delay(1000);
// Make servo go to 180 degrees
Servo1.write(180);
delay(1000);
setColor(255, 0, 0); // green
delay(500);
setColor(0, 0, 255); // green
delay(1500);
setColor(0, 255, 0); // blue
delay(500); // Make servo go to 0 degrees
Servo1.write(180);
delay(1000);
// Make servo go to 90 degrees
Servo1.write(90);
delay(1000);
// Make servo go to 180 degrees
Servo1.write(180);
delay(1000);
setColor(255, 0, 0); // green
delay(500);
setColor(0, 0, 255); // green
delay(1500);
setColor(0, 255, 0); // blue
delay(500); // Make servo go to 0 degrees
Servo1.write(180);
delay(1000);
// Make servo go to 90 degrees
Servo1.write(90);
delay(1000);
// Make servo go to 180 degrees
Servo1.write(180);
delay(1000);
setColor(255, 0, 0); // green
delay(500);
setColor(0, 0, 255); // green
delay(1500);
setColor(0, 255, 0); // blue
delay(500);
}
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);
}
//uncomment this line if using a Common Anode LED
#define COMMON_ANODE
This is the final presentation that we did in class. I also had to make the video shorter in order to fit into the website.