We designed, built, and sold a cornhole board. we had to design it and come together and transfer the design to board. We painted our board and drew on the design. We then added a technology side to the board. We installed LED lights into the board and coded them to shine a particular way
This taught me how labor is in the workforce. This was very hard to put together from scratch. But in the end, it was worth it because we got to get 50% of the earnings from selling for our hard work.
For this project we were given scrapwood and was told to make anything we wanted out of it. We first started sketching ideas and brainstorming before we started building. Then when we decided what to make we spent 3-4 days constructing, designing, and painting. When it was over we present to the class and took home our creations. I enjoyed this because in this project we weren’t required to do anything we could do what we wanted and that excited me.
Ms. White gave us the project brief for our project. It is a Moire Kinetic Sculpture.
Here is a list of the constraints for the project.
These are small tasks that we will complete to eventually lead to completion of a Moire Sculpture.
Our first benchmark we had to build a simple gear box that had the parent gear going in the same direction as the child gear. Both the bottom and top gears are going in the same direction.
Our second Benchmark was to build a gear that had the parent gear going twice as fast as the child gear.
Our next benchmark was to laser cut out our name in cardboard.
For this benchmark we had to make a LED flash the colors red, green, and blue in that order.
This benchmark was to make our servo continuously turn left and right.
In this benchmark we were required to get two servos spinning continuously and have a RGB LED all being controlled by one Arduino Board.
For this benchmark we were required to laser cut a pumpkin using Inkscape and put RGB LEDs inside of it and make them go orange, yellow and red.
For this benchmark we had to create our first moire design in inkscape.
For this benchmark we had to laser cut our first moire design in cardboard.
For this benchmark we had to create our first moire design in inkscape.
for this benchmark we had to laser cut our second design in cardboard.
For this benchmark we had to laser cut our servo mount and attach it to our servo.
For this benchmark we had to laser cut all our parts for our final prototype.
Solid works provided us with a detailed view of how to construct our prototype of our moire.
This code allowed each servo to independently rotate in different directions and flash the lights different various colors.
The purpose of having a functional prototype is to imitate the real product and to see if there is anything wrong that needs to be fixed before we move on the the real thing. The only problem I faced that was the materials fault was the cardboard gears because they grinded against each other and destroyed them. In the solid works file it had 3 servo mounts on the servos when I only used two and it worked just fine. I don't think there is anything wrong with my moire file. To make the overall aesthetic of the final product better I think we should.
For this benchmark we had install our 2 servos into our middle acrylic.
For this benchmark we had to cut out our first moire design using the glowforge lasercutter.
For this benchmark we had to cut out our second moire design using the glowforge lasercutter.
For this benchmark we had to install and solder all 8 LEDs and make them shine red, green, blue.
For this Benchmark we had to install our arduino board into our middle acrylic.
For this benchmark we had to make it so that each moire was independently controlled.
For this benchmark we had to fully assemble all three acrylic pieces of our moire together.
// Include the Servo library
#include <Servo.h>
//#define COMMON_ANODE
// Declare the Servo pin
int servoPin = 6;
int servoPin2 = 5;
int redPin = 11;
int greenPin = 10;
int bluePin = 9;
// Create a servo object
Servo Servo1;
Servo Servo2;
void setup() {
// We need to attach the servo to the used pin number
Servo1.attach(servoPin);
Servo2.attach(servoPin2);
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}
void loop(){
Servo2.write(-180);
delay(0);
Servo1.write(180);
delay(0);
setColor(0, 0, 0);
delay(50);
setColor(10, 0, 0);
delay(50);
setColor(20, 0, 0);
delay(50);
setColor(30, 0, 0);
delay(50);
setColor(40, 0, 0);
delay(50);
setColor(50, 0, 0);
delay(50);
setColor(60, 0, 0);
delay(50);
setColor(70, 0, 0);
delay(50);
setColor(80, 0, 0);
delay(50);
setColor(90, 0, 0);
delay(50);
setColor(100, 0, 0);
delay(50);
setColor(110, 0, 0);
delay(50);
setColor(120, 0, 0);
delay(50);
setColor(130, 0, 0);
delay(50);
setColor(140, 0, 0);
delay(50);
setColor(150, 0, 0);
delay(50);
setColor(160, 0, 0);
delay(50);
setColor(170, 0, 0);
delay(50);
setColor(180, 0, 0);
delay(50);
setColor(190, 0, 0);
delay(50);
setColor(200, 0, 0);
delay(50);
setColor(210, 0, 0);
delay(50);
setColor(220, 0, 0);
delay(50);
setColor(230, 0, 0);
delay(50);
setColor(240, 0, 0);
delay(50);
setColor(250, 0, 0);
delay(50);
setColor(240, 0, 0);
delay(50);
setColor(230, 0, 0);
delay(50);
setColor(220, 0, 0);
delay(50);
setColor(210, 0, 0);
delay(50);
setColor(200, 0, 0);
delay(50);
setColor(190, 0, 0);
delay(50);
setColor(180, 0, 0);
delay(50);
setColor(170, 0, 0);
delay(50);
setColor(160, 0, 0);
delay(50);
setColor(150, 0, 0);
delay(50);
setColor(140, 0, 0);
delay(50);
setColor(130, 0, 0);
delay(50);
setColor(120, 0, 0);
delay(50);
setColor(110, 0, 0);
delay(50);
setColor(100, 0, 0);
delay(50);
setColor(90, 0, 0);
delay(50);
setColor(80, 0, 0);
delay(50);
setColor(70, 0, 0);
delay(50);
setColor(60, 0, 0);
delay(50);
setColor(50, 0, 0);
delay(50);
setColor(40, 0, 0);
delay(50);
setColor(30, 0, 0);
delay(50);
setColor(20, 0, 0);
delay(50);
setColor(10, 0, 0);
delay(50);
setColor(0, 0, 0);
delay(50);
Servo2.write(-180);
delay(0);
Servo1.write(-180);
delay(0);
setColor(0, 0, 0);
delay(50);
setColor(10, 0, 0);
delay(50);
setColor(20, 0, 0);
delay(50);
setColor(30, 0, 0);
delay(50);
setColor(40, 0, 0);
delay(50);
setColor(50, 0, 0);
delay(50);
setColor(60, 0, 0);
delay(50);
setColor(70, 0, 0);
delay(50);
setColor(80, 0, 0);
delay(50);
setColor(90, 0, 0);
delay(50);
setColor(100, 0, 0);
delay(50);
setColor(110, 0, 0);
delay(50);
setColor(120, 0, 0);
delay(50);
setColor(130, 0, 0);
delay(50);
setColor(140, 0, 0);
delay(50);
setColor(150, 0, 0);
delay(50);
setColor(160, 0, 0);
delay(50);
setColor(170, 0, 0);
delay(50);
setColor(180, 0, 0);
delay(50);
setColor(190, 0, 0);
delay(50);
setColor(200, 0, 0);
delay(50);
setColor(210, 0, 0);
delay(50);
setColor(220, 0, 0);
delay(50);
setColor(230, 0, 0);
delay(50);
setColor(240, 0, 0);
delay(50);
setColor(250, 0, 0);
delay(50);
setColor(240, 0, 0);
delay(50);
setColor(230, 0, 0);
delay(50);
setColor(220, 0, 0);
delay(50);
setColor(210, 0, 0);
delay(50);
setColor(200, 0, 0);
delay(50);
setColor(190, 0, 0);
delay(50);
setColor(180, 0, 0);
delay(50);
setColor(170, 0, 0);
delay(50);
setColor(160, 0, 0);
delay(50);
setColor(150, 0, 0);
delay(50);
setColor(140, 0, 0);
delay(50);
setColor(130, 0, 0);
delay(50);
setColor(120, 0, 0);
delay(50);
setColor(110, 0, 0);
delay(50);
setColor(100, 0, 0);
delay(50);
setColor(90, 0, 0);
delay(50);
setColor(80, 0, 0);
delay(50);
setColor(70, 0, 0);
delay(50);
setColor(60, 0, 0);
delay(50);
setColor(50, 0, 0);
delay(50);
setColor(40, 0, 0);
delay(50);
setColor(30, 0, 0);
delay(50);
setColor(20, 0, 0);
delay(50);
setColor(10, 0, 0);
delay(50);
setColor(0, 0, 0);
delay(50);
Servo2.write(180);
delay(0);
Servo1.write(-180);
delay(0);
setColor(0, 0, 0);
delay(50);
setColor(10, 0, 0);
delay(50);
setColor(20, 0, 0);
delay(50);
setColor(30, 0, 0);
delay(50);
setColor(40, 0, 0);
delay(50);
setColor(50, 0, 0);
delay(50);
setColor(60, 0, 0);
delay(50);
setColor(70, 0, 0);
delay(50);
setColor(80, 0, 0);
delay(50);
setColor(90, 0, 0);
delay(50);
setColor(100, 0, 0);
delay(50);
setColor(110, 0, 0);
delay(50);
setColor(120, 0, 0);
delay(50);
setColor(130, 0, 0);
delay(50);
setColor(140, 0, 0);
delay(50);
setColor(150, 0, 0);
delay(50);
setColor(160, 0, 0);
delay(50);
setColor(170, 0, 0);
delay(50);
setColor(180, 0, 0);
delay(50);
setColor(190, 0, 0);
delay(50);
setColor(200, 0, 0);
delay(50);
setColor(210, 0, 0);
delay(50);
setColor(220, 0, 0);
delay(50);
setColor(230, 0, 0);
delay(50);
setColor(240, 0, 0);
delay(50);
setColor(250, 0, 0);
delay(50);
setColor(240, 0, 0);
delay(50);
setColor(230, 0, 0);
delay(50);
setColor(220, 0, 0);
delay(50);
setColor(210, 0, 0);
delay(50);
setColor(200, 0, 0);
delay(50);
setColor(190, 0, 0);
delay(50);
setColor(180, 0, 0);
delay(50);
setColor(170, 0, 0);
delay(50);
setColor(160, 0, 0);
delay(50);
setColor(150, 0, 0);
delay(50);
setColor(140, 0, 0);
delay(50);
setColor(130, 0, 0);
delay(50);
setColor(120, 0, 0);
delay(50);
setColor(110, 0, 0);
delay(50);
setColor(100, 0, 0);
delay(50);
setColor(90, 0, 0);
delay(50);
setColor(80, 0, 0);
delay(50);
setColor(70, 0, 0);
delay(50);
setColor(60, 0, 0);
delay(50);
setColor(50, 0, 0);
delay(50);
setColor(40, 0, 0);
delay(50);
setColor(30, 0, 0);
delay(50);
setColor(20, 0, 0);
delay(50);
setColor(10, 0, 0);
delay(50);
setColor(0, 0, 0);
delay(50);
Servo2.write(-180);
delay(0);
Servo1.write(-180);
delay(0);
setColor(0, 255, 0);
delay(200);
setColor(255, 0, 255);
delay(200);
setColor(0, 255, 0);
delay(200);
setColor(255, 0, 255);
delay(200);
setColor(0, 255, 0);
delay(200);
setColor(255, 0, 255);
delay(200);
setColor(0, 255, 0);
delay(200);
setColor(255, 0, 255);
delay(200);
setColor(0, 255, 0);
delay(200);
setColor(255, 0, 255);
delay(0);
Servo2.write(180);
delay(0);
Servo1.write(180);
delay(0);
setColor(255, 0, 0);
delay(100);
setColor(255, 255, 0);
delay(100);
setColor(255, 0, 0);
delay(100);
setColor(255, 255, 0);
delay(100);
setColor(255, 0, 0);
delay(100);
setColor(255, 255, 0);
delay(100);
setColor(255, 0, 0);
delay(100);
setColor(255, 255, 0);
delay(100);
setColor(255, 0, 0);
delay(100);
setColor(255, 255, 0);
delay(100);
setColor(255, 0, 0);
delay(100);
setColor(255, 255, 0);
delay(100);
setColor(255, 0, 0);
delay(100);
setColor(255, 255, 0);
delay(100);
setColor(255, 0, 0);
delay(100);
setColor(255, 255, 0);
delay(100);
setColor(255, 0, 0);
delay(100);
setColor(255, 255, 0);
delay(100);
setColor(255, 0, 0);
delay(100);
setColor(255, 255, 0);
delay(100);
setColor(0, 255, 0);
delay(100);
setColor(0, 255, 255);
delay(100);
setColor(0, 255, 0);
delay(100);
setColor(0, 255, 255);
delay(100);
setColor(0, 255, 0);
delay(100);
setColor(0, 255, 255);
delay(100);
setColor(0, 255, 0);
delay(100);
setColor(0, 255, 255);
delay(100);
setColor(0, 255, 0);
delay(100);
setColor(0, 255, 255);
delay(100);
setColor(0, 255, 0);
delay(100);
setColor(0, 255, 255);
delay(100);
setColor(0, 255, 0);
delay(100);
setColor(0, 255, 255);
delay(100);
setColor(0, 255, 0);
delay(100);
setColor(0, 255, 255);
delay(100);
setColor(0, 255, 0);
delay(100);
setColor(0, 255, 255);
delay(100);
setColor(0, 255, 0);
delay(100);
setColor(0, 255, 255);
delay(100);
setColor(0, 255, 0);
delay(100);
setColor(0, 255, 255);
delay(100);
setColor(255, 0, 255);
delay(100);
setColor(255, 0, 0);
delay(100);
setColor(255, 0, 255);
delay(100);
setColor(255, 0, 0);
delay(100);
setColor(255, 0, 255);
delay(100);
setColor(255, 0, 0);
delay(100);
setColor(255, 0, 255);
delay(100);
setColor(255, 0, 0);
delay(100);
setColor(255, 0, 255);
delay(100);
setColor(255, 0, 0);
delay(100);
setColor(255, 0, 255);
delay(100);
setColor(255, 0, 0);
delay(100);
setColor(255, 0, 255);
delay(100);
setColor(255, 0, 0);
delay(100);
setColor(255, 0, 255);
delay(100);
setColor(255, 0, 0);
delay(100);
setColor(255, 0, 255);
delay(100);
setColor(255, 0, 0);
delay(100);
setColor(255, 0, 255);
delay(100);
setColor(255, 0, 0);
delay(100);
setColor(255, 0, 255);
delay(100);
setColor(255, 0, 0);
delay(100);
setColor(255, 0, 255);
delay(100);
setColor(255, 0, 0);
delay(100);
setColor(255, 0, 255);
delay(100);
setColor(255, 0, 0);
delay(100);
setColor(255, 0, 255);
delay(100);
setColor(255, 0, 0);
delay(100);
setColor(255, 0, 255);
delay(100);
setColor(255, 0, 0);
delay(100);
setColor(250, 0, 0);
delay(50);
setColor(240, 0, 0);
delay(50);
setColor(230, 0, 0);
delay(50);
setColor(220, 0, 0);
delay(50);
setColor(210, 0, 0);
delay(50);
setColor(200, 0, 0);
delay(50);
setColor(190, 0, 0);
delay(50);
setColor(180, 0, 0);
delay(50);
setColor(170, 0, 0);
delay(50);
setColor(160, 0, 0);
delay(50);
setColor(150, 0, 0);
delay(50);
setColor(140, 0, 0);
delay(50);
setColor(130, 0, 0);
delay(50);
setColor(120, 0, 0);
delay(50);
setColor(110, 0, 0);
delay(50);
setColor(100, 0, 0);
delay(50);
setColor(90, 0, 0);
delay(50);
setColor(80, 0, 0);
delay(50);
setColor(70, 0, 0);
delay(50);
setColor(60, 0, 0);
delay(50);
setColor(50, 0, 0);
delay(50);
setColor(40, 0, 0);
delay(50);
setColor(30, 0, 0);
delay(50);
setColor(20, 0, 0);
delay(50);
setColor(10, 0, 0);
delay(50);
setColor(0, 0, 0);
delay(0);
Servo2.write(-180);
delay(0);
Servo1.write(-180);
delay(0);
setColor(255, 0, 255);
delay(200);
setColor(255, 255, 255);
delay(200);
setColor(255, 0, 255);
delay(200);
setColor(255, 255, 255);
delay(200);
setColor(255, 0, 255);
delay(200);
setColor(255, 255, 255);
delay(200);
setColor(255, 0, 255);
delay(200);
setColor(255, 255, 255);
delay(200);
setColor(255, 0, 255);
delay(200);
setColor(255, 255, 255);
delay(200);
setColor(255, 0, 255);
delay(200);
setColor(255, 255, 255);
delay(200);
setColor(255, 0, 255);
delay(200);
setColor(255, 255, 255);
delay(200);
setColor(255, 0, 255);
delay(200);
setColor(255, 255, 255);
delay(200);
setColor(255, 0, 255);
delay(200);
setColor(255, 255, 255);
delay(200);
setColor(255, 0, 255);
delay(200);
setColor(255, 255, 255);
delay(200);
setColor(255, 0, 255);
delay(200);
setColor(255, 255, 255);
delay(200);
setColor(255, 0, 255);
delay(200);
setColor(255, 255, 255);
delay(200);
setColor(255, 0, 255);
delay(200);
setColor(255, 255, 255);
delay(200);
setColor(255, 0, 255);
delay(200);
setColor(255, 255, 255);
delay(200);
}
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 my final moire code. I uploaded it here just in case anything happens
This is my final presentation where you can see my moire do it three light patterns and three moire patterns. The first light pattern in my moire is fade up to red then fade back down three times then flicker purple and green. The second pattern is red and green flicker then green and cyan flicker then purple and red flicker then it fades down from red. The last pattern is flicker between white and purple. My first moire pattern is both moires moving counterclockwise then when the first fade is done it switches to the front moire going counter clockwise and the back moire going clockwise. Then after the second fade both moires go clockwise. Then at the last fade the front moire goes clockwise and the back moire goes counterclockwise. For my second moire pattern when the second light pattern starts the front moire goes counterclockwise and the back moire goes clockwise. For my last pattern after the red light fades down in the second light pattern the front moire goes clockwise and the back moire goes counterclockwise
Since we have finished our inventeam application and we are waiting for a response, we are staring a small project that will coincidentally help us for inventeam
In the beginning we first started by labeling all of our materials for the project so that we know what we are working with
this video explains how the matrix works showing us many diagrams and gives examples with code on how to make it work and display the message or picture we want it to
this video helps us understand the matrix and goes in depth about how to code it. It gives us many examples on how to code many designs and gets into both the simple and more complex designs possible using the matrix
This site helps us understand how to connect the many different complex parts of the matrix and put it together in order for it to work
For this we had to confirm that our LED matric could turn on and off
For this we had to create 3 different shapes using the matrix so I decided to spell out my name
In this video it shows us how to wire the sensor to the nano and gives us to code for us to function it
This source teaches us how to use the sensor and goes in more detail for the preparation and wiring of the sensor