Skip to content

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

download file here

==========================================================================================================================================

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 🥺❤️!!!


Last update: September 21, 2021