To make (almost) anything

About Me Assignments Final Project Fab lab 2019
Final Project: Smart Infinity Mirror Table
Robot Sketchup

Final Banner

My Final Presentation Video

Final Project

This week I worked on defining my final project idea and started to getting used to the documentation process.

Introduction

When I saw the infinity mirror effect for the first time, I was impressed with itI wanted to build my own version of it,
and so, I decided to use Infineon's 3D magnetic sensor kit with the rotator knob to control colors on an infinity mirror table with an RGB LED strip.

An infinity mirror creates a striking optical illusion - a tunnel of light that seems to tear through space.
I built this infinity-mirror table using some addressable LEDs, a Particle Photon and easily obtainable timber supplies.

The idea i got from the fab lab 2018 student sarah costan in which she made infinity mirror room. I'm inspired from her idea and i decided to make this in the form of table .This idea is applicable anywhere we want e.g Hotel , resturant , Home , offices. Therefore i have decided to add some features in this table like i can install music player in it when person so tired he/she can play relaxation music and enjoy the moments. There are many ways to connect your smartphone to an embedded microcontroller. In this project i will use an Android phone in USB host mode because these tables can be used everywhere like home , hotel etc. So we can get advatage of that smart table.Apart from that we can put things on it like wallet , key , Mobile etc.

literature Review

How does an infinity mirror work?

5 Terre

How It Works

Not surprisingly, there is no magic involved. The secret is that the infinity mirror actually contains two mirrors with different transmissivity and reflectivity.
For all practical intents and purposes, mirrors that we deal with in everyday life are 100% reflective (technically a tiny amount of light will also be absorbed, but we can ignore that for now).
That’s the regular mirror at the “back” of the infinity mirror (on the left in the diagram above).
The tinted window film, however (on the right in the diagram above), only reflects about half of the light that hits it*. This means that, when you sandwich an LED between the two mirrors,
some of the light escapes through the front mirror and into your eye. The rest is bounced back off the rear mirror,
then into the front mirror again, and this process continues off to infinity – thus the name. But, since a little bit of light escapes each time, each successive illusionary LED that you see will look a little bit dimmer, until they gradually disappear – you can’t actually see infinitely many LEDs. Note that this does not work because the window tint “only lets light through in one direction”, which is a common misconception.
In order for the illusion to work properly, the side of the front mirror the observer is on (the outside world) must be much darker than the side with the LEDs (inside the infinity mirror). This is the same effect that you see in crime dramas/movies where someone is held in an interrogation room that has a mirror on the wall, but there are people on the other side of that mirror observing as though it’s just a window. That only works if the interrogation room is well-lit and the observation room is dark.

initial Sketch

5 Terre

Initial Sketch

After table the next step is to make infinity mirror


Steps

1.Find a suitable wooden frame. Preferably get something with a deep frame or at least 1/2 half inch depth.

2.Disassemble the frame and remove the glass.

3.Prepare the glass by making it perfectly clean.

4. Spray the glass with a little water and a drop of wash liquid.

5. Take the roll of window film and cut a piece a couple of inches bigger than the mirror.

6. Remove the backing from the window film.

7. Lay it over the glass pane. Starting from one corner, spray some liquid soap as you slowly lay this over the glass. Smooth out any bubbles and leave to dry.

8. Once dry leave to one side for later.

9. Obtain a mirror with the same size as the framed glass that was tinted. As an option, get a mirror in its frame and make another frame to go over the original to give more depth with the wooden splines. about 2.5 inch (6.4 cm) to 3 inch (7.6 cm) is ideal for this.

10.Assemble the framed glass you tinted, make sure the tinted area is facing the inside of the frame.

11. Secure the tinted glass with glue.

12. Add a inner frame to hold the mirror when it is placed on lights.

13.Using a cutter, create a groove for the LED wirings and adapter.

14. nstall the LED lights around the inner frame. Drill holes big enough for the lights to push into on the frame you just made. about halfway in the width of the wood and evenly around the entire frame.

Requirements
5 Terre

Mirror

LED Strip

5 Terre

LED Strips

Black paint For Frame

5 Terre

Black paint

Solar Film For Glass

5 Terre

Solar Film

For this assignment I decided to make table . As I mentioned in Week4 Computer-controlled Cutting The design of week4 will help me in Week8. in week 4 i design a test part of the table , But here is the first step towards my final project .So intially i started work on sketch of the table where i discussed with my local insrutors Mr.Soahil Ahmed Somroand Mr. Noor Ahmed Pirwani.After discussing i started make sketch of the table in board and also tried on paper to clear sktech in my mind.

5 Terre

Sketch On Table

5 Terre

Anoher view

After doing this the next step i did is draw sketch on paper to clear my mind about design.Like how it looks like after designing etc.

5 Terre

Sketch On paper

5 Terre

Sketch On paper

Let’s Start to make design

As i already mention that i have design test part of the table in week4 , So in this week I actually implementing that test part using CNC milling (Shop Bot). just i have to make that design accordingly , and setting things according to CNC Milling .

5 Terre

Defining The Dimensions

5 Terre

Definig Parametric Equation

Definig the thickness parameter as variable. I defined global variable name "thk" value 16mm according to the material thickness.

5 Terre

pocket

5 Terre

After Extrude Cut

5 Terre

Side leg

5 Terre

After Extrude Cut

5 Terre

cuting outside from top

I did this by using the tool mirror entities.

5 Terre

After Extrude Cut

5 Terre

Base

Now the next step is to make side legs from other side that is little grater than previuos side .

5 Terre

Base

5 Terre

Extrude Cut

5 Terre

After Extrude Cut

Now all the components are ready the next step is to assemble them . All Compoenets are put into assebly file where i mate all components.

5 Terre

All Components are in Assembly

5 Terre

Final table

5 Terre

Another View

After succssfully doing assenbly the next step i did i make drwaing from assebly file , for dfx file

5 Terre

Making Drawing

5 Terre

Making Drawing

Genertaing Toolpaths

The Next step afer dfx file is to generate G_code for shopbot machine for this i used Vcarve. Where intially i setting design according to the material size that we have and te toolpaths according to the design. After that i performed joining and dog bones repectively.

5 Terre

Adjusting the components

5 Terre

Joining

5 Terre

DogBons

Shopbot For Cutting

After Generating G-code the Next step is to finaly start cutting with Shopbo. Before doing that we need to make sure that the tools that we used according to the design and toolpaths that we generated or not if not so we need to change it. I used two tools one for writing fab lab khairpur name in legs of the table and second for other design

5 Terre

While Changing Tool

After changing tool i ready the job for CNC machine. Initially i cut the name that i want in table side and i changed tool accordignly.

5 Terre

Cuting Name

Cuting Name

5 Terre

With Local Instructor

5 Terre

Selfie :-)

After Cutting the name the next step is to cut other compoenets for that i need only one and same tool for cut so i changed tool and given job to machine

Cutting Others part

Cutting pocket

It akes almost three hours to complete this job.Finaly here is the almost complete cut of the design

Almost completed

5 Terre

All parts

After cutting te next step is main and most critical part of the this week assigmnet is asseblig the compoents .I taken almost three hours to asseble the the all components because before doing this we must be careful about the critical parts and sides of the design.

5 Terre

While assembling the compoenets

And here is the final design that is ready.

5 Terre

My Table

5 Terre

Top

5 Terre

Now Iam Relaexd with Tariq:-)

This weeks assignment was to make a circuit that can control something i.e. output device. To combine this weekly assigment with my final project, the aim of this week is to make boad and connect RGB strips with it, and program it with different effects of lights.So fo this week assignment I decided to make Satshakit and took reference fom Daniel Ingrassia.
After redrawing so much controller boards in past weeks I planned in this week to make my own design, for this I want to make a board which is not only use in this week but kind of general purpose board for me.
I started with designing the board! .Satshakit is a 100% Arduino IDE and libraries compatible, fabbable and open source board, and also an improved version of Fabkit. I used ATmega328p .The ATmega328 is a single-chip microcontroller created by Atmel in the megaAVR family (later Microchip Technology acquired Atmel in 2016). It has a modified Harvard architecture 8-bit RISC processor core.Wikipedia

5 Terre

ATmega328

PCB Designing

For PCB designing I worked on Eagle 7.5 that I have been using since from Week4. First I made a schematic of board:

5 Terre

Schematic

After schematic I have generate PCB board and route it as we did in previous weeks .

5 Terre

PCB Board

Generating.Rml File
5 Terre

Export as Image

In the appearing window, I increase the resolution to 2000 dpi, click on monochrome, and click Ok.

5 Terre

Normal Seting

To edit the .png image, I Used Paint. I open my image in paint, and using the rectangular select tool, I select the image leaving some space from all the sides. After I press File and Copy the selected area. To continue working with the selected picture, I click again on File, and Create from the Clipboard
More detailed procedures can be found in my previous documentation Electronics Design week!

5 Terre

Trace

5 Terre

Outline

after making traces and outline of a pcb I used fabmodules to generate RML files of both traces and outline, all important settings are mentioned for detailed fabmodules settings visit Electronics Production Week

Milling and Soldering
Components
5 Terre

Components

Above list of components files i have generated from Eagle

.rml files are given to Roland SRM-20 for milling, 1/32 drill bit is used for cutting outlines and 1/64 bit drill is used to make a trace on a board and here is the result

5 Terre

Soldering

5 Terre

PCB

Programming the board

I am using Arduino IDE for programming my board. Before programming the board first it is required to burn bootloader in it. For setting up Arduino IDE to work with FabISP I mentioned in detail in Embedded Programming Week. I connect the arduino board to the USB. Under Tools select the right board, select Arduino as ISP USBtinyISP, double check the parameters, and press the Burn Bootloader button.:

5 Terre

Programmer

5 Terre

Selecting Board

5 Terre

Burn Bootloader

5 Terre

Done Burn Bootloader

After successfully upload and burn bootloader , now It is time to connect RGB strip WS2812B with board and program it to run differnet color effects

5 Terre

WS2812B RGB strip

Making Connections For RGB

Connect RBB strip address pin with Pin-6 of 328p board and connect supply pins VCC and Gnd with external source. I used five volatge adopter for external source

5 Terre

Connection

For RGB Led code I go to my local Instrcutor 2018 Student Noor Ahmed Pirwani webpage where he mention fastled library for RGB . I Used fastled Library for differnt patterns ,effects and upload it in my 328p board

5 Terre

Program

Laser Cutting

For final project one of te requiremet is it must be parametric and and cover many process and skills that we learn during fab acadmey.for including of laser cutting in one of the requirement for my final project is to desing frame for leds, Where I palced leds.So for this i decided to make it using laser cutt. So I start design of frame using solidworks.

5 Terre

Side1

After designing this side the next step is to extrude the design.

5 Terre

After extrude

The next step for frame design is to design another side according to the requirements.For this side i decide to create whole in it for wiring of leds.So I start designing and sketch image is given below.

5 Terre

Creating Whole

Again same process of extrude cutt.After extrudion the design looks like this

5 Terre

After extrude

After designing file in solidworks the next step I perform is save file as dxf.

5 Terre

Dxf

In order to generate file for laser cutt machine we need to follow some steps for setting file and save as pdf format.So for this I import file in inkscape and make some changes like fill stroke to 0.001, and document property to ARC-E

5 Terre

Open In Inkscape

I grouped all files and move them accordignly and save file as pdf . And file Is ready for laser cutting.

5 Terre

Inkscape

After applying setting in epliog I send the job to the laser cutting machine and it recieve with name ali1.

5 Terre

JOB Recieved!

Finaly machine start .

After machine finishing his job the next step is to assemble the part.

5 Terre

While Assembly

After Assembling the frame looks like this.

5 Terre

Frame

Now it's time to insall leds in frame. I used led strips and making connection for leds. As I Mention earlier that I created whole for leds connection from that whole I cross wires and easily make connection with main board.

5 Terre

LEDs

For testig purpose I give 5 volt power to leds and after that the frame looks like this.

5 Terre

LEDs

After that I also tried to program leds with differnt colors here is one of the example.

3d Printed Buttons

For 3d printed buttons and body for buttons Initillay I measure the size of the board ,width and size of the push buttons.Here i sthe image of the button board that I have dsigned for my final project.

5 Terre

buttons Board

After measuring each and everything I start design button in solidworks. initillay I just design one button for test purpose to check weather the buttons are pressed easily or not. So I started Designing in solidworks.

5 Terre

Define Dimensions

5 Terre

Define Dimensions

5 Terre

Outer Dimension

After extrude cut The button looks like this

5 Terre

After Extrude

The back side of the button

5 Terre

Back Side

After dsigning button I start Designing body for the buttons, The size of the body is actullay the size of the board buttons that I have designed.

5 Terre

Body

I add another sketch on the body and designed inner part of the buttons on it.

5 Terre

Body

After extrude I measured the size of the inner part of the button and comapre with the actual size f the button so they can easily fit and buttons can be pressed easily.

5 Terre

Measuring

Here is The image of the body After extrude cut

5 Terre

After Extrude

After designing both parts I open both files in assembly part and asemble them.

5 Terre

Assembly

Now It's time to print design on 3d printer, Before that we need to perform some steps to perpare file for 3d printer.
Here are the some steps that i follwed for perparing file for 3d printer.
Initially I generated file as stl from solidworks then I import taht STl file in cura software for perpare file for 3d printer.

5 Terre

Cura

I Setting cura file according to the Extend+2 printer that i savailable in our lab.

5 Terre

Setting

I printed three color buttons two of blue and one is red and white rspectively. Here is the video of 3d printed button during printing.

After printing one button I printed body of the board.

5 Terre

body

I decide to add one button and print simultanously because this time Iam going to print blue color button. Here is the another video during printing

After printing I tested the button when I pressed buttons it looks fine 😜

After testing I fixed that in my table and assign name to the buttons .

5 Terre

Buttons

Making of Programmable ESP-12E board

ESP-12E is a miniature Wi-Fi module present in the market and is used for establishing a wireless network connection for microcontroller or processor.
The core of ESP-12E is ESP8266EX, which is a high integration wireless SoC (System on Chip). It features ability to embed Wi-Fi capabilities to systems or
to function as a standalone application. It is a low cost solution for developing IoT applications.Source

5 Terre

ESP-12E Pin Description

PCB Designing

For PCB designing I worked on Eagle 7.5 First I made a schematic of board:

5 Terre

ESP-12E Board Schematic

After Schmatic I generate PCB board and route it.

5 Terre

ESP-12E Board

Generating .RML Files

For generating RML files, first I need my PCB design in .png format for that I export my PCB design in .png while setting up 2000 dpi and Monochrome

5 Terre

Exporting PCB design into .png format

.png is processed in Paint for making seperate files for traces, outline and drill holes of a PCB design

5 Terre

PCB Trace

5 Terre

PCB outline

5 Terre

Holes

After making traces, outline and drill holes of pcb I used fabmodules to generate RML files of both traces and outline, all important settings are mentioned in a pictures below, for detailed fabmodules settings visit Electronics Production Week

5 Terre

Generating .rml file of PCB traces

5 Terre

Generating .rml file of PCB outline

5 Terre

Generating .rml file of PCB drill Holes

.rml files are given to Roland SRM-20 for milling, 1/32 drill bit is used for cutting outlines and for drill holes, and 1/64 bit drill is used to make a trace on a board and here is the result.

List Of Components
5 Terre

List Of Compoents

Soldering
5 Terre

Soldering

5 Terre

Soldered and ready to burn board

After soldering the next step is programming the board .I configure esp8266 tcp server, and download Tcp Telenet Terminal Mobile application from Playstore.

5 Terre

Download and Install TCP Client

Programming

After Downloading TCP client I programmed My Esp8266 in such way that it work like Access point or TCP server, and tcp client get IP Address that is offered by TCP server and make connection with server and start two way communication with each other.

\

Initially I faced error realted to wifi library.I did not add Wifi library and continue uploading code. 😜

5 Terre

Library Error

After That I add Wifi Libray

5 Terre

Add Zip File

5 Terre

Included

5 Terre

Set SSID , Password and PORT Number

I Define my SSID , pasword and pot Number of the local aera network , and client must be connected to same network if client connected with other network then communication between Server and client is not possible.

Interface and application programming

For this assignment I want to write an application in java which can send and receive data from a given IP as TCP client and will make its GUI using Andorid Studio. I made Esp-12E board in Networking and communication week so for this week Iam also interface that board with my Mobile application.

1. Application Development

As I mentioned earlier that for this week Assignment Iam going to design mobile App, For App devolpment I used Andorid Studio.

Andorid Studio

Android Studio is the official Integrated Development Environment (IDE) for Android app development, based on IntelliJ IDEA . On top of IntelliJ's powerful code editor and developer tools, Android Studio offers even more features that enhance your productivity when building Android apps, such as: A flexible Gradle-based build system A fast and feature-rich emulator A unified environment where you can develop for all Android devices Instant Run to push changes to your running app without building a new APK Code templates and GitHub integration to help you build common app features and import sample code Extensive testing tools and frameworks Lint tools to catch performance, usability, version compatibility, and other problems C++ and NDK support Built-in support for Google Cloud Platform, making it easy to integrate Google Cloud Messaging and App Engine Source

The Android Studio main window is made up of several logical areas

5 Terre

User Interface Of Andorid Studio

For Runing Andorid Studio you need to downald and install jdk and and set path. You may Download Java Devolpment kit from Here

After Downloading and installation of Jdk the next step is to download andorid Studio.For downloading andorid studio you may click Here

5 Terre

Downloading Andorid Studio

For Complete Process for Installation Process You May Follow this helpful Tutorial

Create an Android project
5 Terre

Start New Project

Or if you have a project opened, select File > New > New Project.
In the Choose your project window, select Empty Activity
Click Next.
In the Configure your project window, enter the following values:
Name: "My First App"
Package name: "com.example.myfirstapp"
Check the box next to Use AndroidX artifacts
You might want to change the project location.
Leave the other options as they are.
If you prefer to write your app in Java, select Java from the Language drop down.
Click Finish. After some processing, Android Studio opens the IDE.

initially when we open IDE it takes time to open.

5 Terre

After processing

After opening

5 Terre

Fab Cafe Welcome page

5 Terre

Fab Cafe My Activity Page

Run apps on the Android Emulator

You can run an app from an Android Studio project, or you can run an app that's been installed on the Android Emulator as you would run any app on a device.
To start the Android Emulator and run an app in your project:
Open an Android Studio project and click Run .
The Select Deployment Target dialog appears.

5 Terre

USB Debuging Mode

Before Run the appliction you need to On Debuging from device in which you are want to build application.For that you need to Go to the Setting and then you have to ON Devolper Options , then Go to the USB Debuging Option and ON it.

5 Terre

Selecting Device

5 Terre

Mobile Model

LOGO Design

For Logo Design I take one cup of cofee from Google and edit it according to the requirement.I used Microsoft Powerpoint and paint for designing logo.

5 Terre

Paint

Initially I opend this picture in paint and write text on it.I tried differnt text colors for logo finaly I go for yellow .

5 Terre

Microsoft Paint

5 Terre

Microsoft Paint

Here is look of the logo that I have esignd for App.

5 Terre

Logo

After Designing Logo for app the next I design some text for front page of mobile application. I make text FABCaFe Fab Lab Khairpur

5 Terre

Microsoft Powerpoint

For desiging this text I used mirosoft powerpoint, I take logo and edit it.After Designing text I place this text in front page of my app.

5 Terre

Text View

I opened text view of the application and place text accordingly.

Interface With ESP12-E Board

After Doing designing and Runing Application I have interfce my app with ESP12-E board that I have designed in Networking and Communication Week

5 Terre

ESP12-E

For commuication with my app I connect FTDI cable with Esp board and configure ESP as TCP Server.

5 Terre

Connecting FTDI

Arduino Programming

As I mentioned earlier that I made ESp12-E as TCP Server and all client within range of that (Server )can connect using Ip Address. For that client and Server must have same network connection.
I create a hotspot Network fom my laptop and set SSID and password for that network.

5 Terre

creating Hotspot

After creating hotspot I uploaded program and connect my app.

5 Terre

Select Setting

#include <ESP8266WiFi.h>
const char* ssid = "Ali Raza Shah";
const char* password = "nohint12345";
const int ledPin = 2;
WiFiServer server(80);
void printWiFiStatus();
void setup(void) {
Serial.begin(115200);
WiFi.begin(ssid, password);
// Configure GPIO2 as OUTPUT.
pinMode(ledPin, OUTPUT);
// Start TCP server.
server.begin();
}
void loop(void) {
// Check if module is still connected to WiFi.
if (WiFi.status() != WL_CONNECTED) {
while (WiFi.status() != WL_CONNECTED) {
delay(500);
}
// Print the new IP to Serial.
printWiFiStatus();
}
WiFiClient client = server.available();
if (client) {
Serial.println("Client connected.");
while (client.connected()) {
if (client.available()) {
char command = client.read();
Serial.print(command);
}
if (Serial.available() > 0) {
char incomingByte = Serial.read();
client.print(incomingByte);
}
}
Serial.println("Client disconnected.");
client.stop();
}
}
void printWiFiStatus() {
Serial.println("");
Serial.print("Connected to ");
Serial.println(ssid);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
}

Code

Demo

Code

5 Terre

While Assembling

After assembling the table the next task that I did is to assemble each and everything and packging of table like fiting electronic circutry, 3d printed buttons, frame for rgb strips etc.

5 Terre

Condition During Week8 Assignment

After that I reassemble the parts of the table buy mirror according to my requirement and placed inside the table.

5 Terre

Table After Placing Mirror

The next step is to buy a glass and put solar film on one side of the glass. Following are the some images while placing solar film.

5 Terre

cleaning The Glass

5 Terre

placed Plastic Cover

5 Terre

Remove Bubbles

5 Terre

After Covering With palstic

5 Terre

After packing Of Mirror & Glass

After That I design frame for Leds Strips . For that please visit this page with heading Frame for Led Strips

Bill Of The Material

Components Number of components * Price of
components(USD)
Total price (USD) link
8x4-ft 16mm MDF Board
1
bought locally
WS2812B 60 RGB LEDs-WS2812-1m Length (120 used)
120 * 0.16
14.89
click here for link
Male/Male Jumper Wire (150mm)
36 * 0.098
3.52
click here for link
Female/Female Jumper Wire (150mm)
36 * 0.098
1
click here for link
ESP-12E
1 * 6.99
1
click here for link
328p
1 * 0.1
2
click here for link
5V 2Amp Adapter
1 * 1
1
bought locally
Supporting circuitry for both circuits
1 * 1
1
www.digikey.es
PLA 3D printed case And button
$36.59/0.75kg required 13g.
4.14
www.digikey.es
Mirror
(2.9X1.91 Ft)Required
4.14
bought locally
Glass
(2.33X1.33 Ft)Required
1.59
Bought Locally
solar Film
(2.33X1.33 Ft)Required
1.46
Bought Locally
Total Cost
--
35.74
--

Acknowledgment:

Allah - beginning with the name of - the Most Gracious, the Most Merciful . All praise is due to Allah; we praise Him, seek His help, and ask for his forgiveness. I am thankful to Allah, who supplied me with the courage, the guidance, and the love to complete this course. Also, I can not forget the ideal man of the world and the most respectable personality for whom Allah created the whole universe, Prophet Mohammad(Peace Be Upon Him).

I would like to express my special thanks of gratitude to Professor Neil Gershenfeld, director of Fab Academy whose lectures increases our exposure and encourage us to learn more, specially thanks to Vice Chancellor Sir Professor Nisar Ahmed Siddqui along with his team whose vision and mission make FABLAB possible in Pakistan, local Instructors Sohail Ahmed, Noor Ahmed Pirwani and Rasheed Ahmed Qazi as well as Global Instructor Nuria Robles for reviewing my assignments. this wonderful learning Opertunity is also helped me in doing a lot of Research and I came to know about so many new things I am really thankful to them. Secondly I would also like to thank my parents and friends who helped me and motivate for to avail this learning opertunity.


You may Download All files from mention below Links

You may Download all files Related To Table here

Click Here For Main Board fILe

p>

Download Andorid Studio Code From Here

You May Download ESP12-E Files and Code From Here

You May Download Final code From Here

You May Download 3d Printed Files From Here

You May Download Lasercut(Frame For Led Strip) Files From Here

This is all for this week

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.