9. Final project¶
This week tasks
2D and 3D design additive and subtractive fabrication processes microcontroller programming and use of input & output devices system integration and packaging
========================================================================================================================================
WHAT IS MY FINAL PROJECT?¶
THE IDEA
With the final week approaching , I had many ideas and rather took a while to decide on one, my instructor suggested the infinity mirror and after some research, the idea and philosophy grabbed my attention!
The mirror is based on thought of infinity and the theory of relativity. Furthermore, this project is a part of “thinking big” and “thinks small” which was the guide.
The mirrors reflect images infinitely and make viewers lost in thought of how to interpret images, or may feel like they were looking into another world by seeing an infinite space with themselves on it. Furthermore, I aimed to link light and shadow together with such technique that the form is not defined which raises questions about how we see different things differently according to our perspectives.
THE PROJECT
An modern designed table where there is a mesmerizing illusion of infinity as well as interacts with loud sounds which changes the colors with every clap or sound
===========================================================================================================================================
DESIGNING PROCESS¶
SOFTWARE USED FUSION360
Modern coffee table
I got inspired from the following tutorial with personal additions
Lastly, I added the details and joints in AutoCad
==========================================================================================================================================
CNC¶
SOFTWARE USED VCARVE
After trail and error with the design , we managed to cut the pieces by the CNC machine following the same steps from week05
Here we are putting together the pieces and fixing the joints !
Durability
===============================================================================
Mistakes
1-The mirror part on top was designed too big for the laser machine to cut the acrylic
2-One part of the joints was designed incorrectly causing them to be facing each other
3- The cnc machine did not carve out my name even after changing the text font because the drill bit was too big for the small edges.
How it was fixed
1-Instead of going around and cutting the acrylic in parts which would not look tidy, we cut another exact piece in the cnc but with smaller dimensions for the mirror.
2-We fixed it by using a jigsaw and removing one side of the joints and held the pieces together using staple gun .
3-Instead of trying to go over it using the machine which would risk messing it up , I decided to go with using acrylic and use the laser machine to engrave my name
Another issue I faced is that the engraving wasnt visible in the color acrylic that I wanted, so the instructor came up with the idea of using solar film on top and engraving it in the laser machine, then removing the letters and spray painting them
And it worked perfectly ♡ ♡ ♡ ♡ ♡
===============================================================================
LASERCUTTING¶
SOFTWARE USED RDWORKS
I used the laser machine to cut the acrylic for the mirror using a solid color with solar film to make the reflective part.
I created a basic 60x60 square in the software itself
Same steps were used for laser cutting in week03
For the one way mirror, I used fusion to design a 60x60 square and added 5mm fillets for it to sit perfectly on top of the table
This time instead of cutting the solar film individually which would have imperfections , we let the laser machine do the job by placing the film on top of the acrylic to get a perfect cut and it worked !!
And here’s how it looked after assemblying it roughly !!
===============================================================================
ELECTRONICS¶
SOFTWARE USED ARDUINO IDE
I attached the sound sensor using the jumper wires to the Arduino board using the breadboard
Here, I connected the addressable led strip to the Arduino
After uploading the code , the lights started working after a clap after debugging it using the serial monitor
THE TEST
Here is the code I used
// digital pin 2 has a pushsound attached to it. Give it a name:
//int pushsound = 2;
const byte interruptPin = 2;
volatile byte state = LOW;
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h> // Required for 16 MHz Adafruit Trinket
#endif
#define LED_PIN 6
#define LED_COUNT 140
int r = 0;
int g = 0;
int b = 0;
Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);
// the setup routine runs once when you press reset:
void setup() {
// initialize serial communication at 9600 bits per second:
pinMode(interruptPin, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(interruptPin), randomise, CHANGE);
Serial.begin(9600);
#if defined(__AVR_ATtiny85__) && (F_CPU == 16000000)
clock_prescale_set(clock_div_1);
#endif
strip.begin(); // INITIALIZE NeoPixel strip object (REQUIRED)
strip.show(); // Turn OFF all pixels ASAP
strip.setBrightness(50); // Set BRIGHTNESS to about 1/5 (max = 255)
// make the pushsound's pin an input:
//pinMode(pushsound, INPUT);
}
// the loop routine runs over and over again forever:
void loop() {
// read the input pin:
//int soundState = digitalRead(pushsound);
// print out the state of the sound:
//Serial.println(soundState);
colorWipe(strip.Color( r,g,b), 50); // Orange
// if (soundState == true )
//{
//Serial.println("clap");
//}
delay(1); // delay in between reads for stability
}
// Some functions of our own for creating animated effects -----------------
// Fill strip pixels one after another with a color. Strip is NOT cleared
// first; anything there will be covered pixel by pixel. Pass in color
// (as a single 'packed' 32-bit value, which you can get by calling
// strip.Color(red, green, blue) as shown in the loop() function above),
// and a delay time (in milliseconds) between pixels.
void colorWipe(uint32_t color, int wait) {
for(int i=0; i<strip.numPixels(); i++) { // For each pixel in strip...
strip.setPixelColor(i, color); // Set pixel's color (in RAM)
strip.show(); // Update strip to match
delay(wait); // Pause for a moment
}
}
void randomise() {
r = random(0,255);
g = random(0,255);
b = random(0,255);
}
}
Drilling a hole for the wires
And here after setting up the electronics in the table
After setting up the led and creating the illusion effect using the parallel mirrors
===============================================================================
BILL OF MATERIALS¶
Qty | Description |
---|---|
3 | CNC wood sheets |
2 | Acrylic sheet 3mm 60x60 |
1 | Solar film 1 roll |
1 | Addressable led light strip |
1 | Arduino board |
6 | Jumper wires |
1 | Sound sensor |
1 | Breadboard |
ACKNOWLEGMENTS¶
I would like to thank everyone in the picture for their incredible support throughout this journey.
And special acknowledgments to the best instructors Duaa, who’s been always by my side with every step of the way , Abdulgafoor, who helped me gain and learn everything I know today , Abdulla who ensured and helped me develop my skills, Mohammed who’s been there to aid always and of course my sister Fajer who’s the reason I reached to the end of this journey with her extereme help and emotional support!
FINAL RESULT¶
I couldnt be happier with the result 🥺❤️!!!