Introduction: MCube Light
This is my first instructable and I will show you my current project. The idea come from the Ikea ps2014 light.
I am a maker and I prefer to make some things instead of buy the same thing, so I decided to create my own mechanical light starting from the ikead's idea.
Anyway, when you don't have any tools, such as 3d printer or laser cutter and a job, it's very hard to go to a fablab and create a clear model of your project. That's why my first prototype is an assembly of cardboard, wooden skewer and so on ...
Finally, make a globe for this project was an objective but unrealistic. I will show you the cube model.
Step 1: Mechanical Parts 1 - Upper Squares
The first step of the mechanical part is to make the upper moving squares. On the schematic, theses squares are identified by numbers 3, 4, 5 and 6.
The middle square will be used as a support for the light and the electronic part. They have been done by using double thickness cardboard and 100 mm side. Only one angle is beveled and measure 42 mm.
Each upper square is guided by two straws and sticks (number 1 and 2 on schematic).
Step 2: Mechanical Parts 2 - Rotating Part
The second step is about the rotating part, used to make the movement of the light. This part shall be added to the previous one.
First, you have to draw a 100mm square side with cardboard. To help you for the next step, you can draw a cross to get the square's center. At this point, draw a cricle with wc paper tube diameter (around 47 mm).
To get a cardboard part lighter, you can reduce the surface by drawing a a schematic like a star (Third photo).
At the end, cut the edge of the start and the middle circle (last photo). To be sure of the good rotating of the cross, you can stick on each side a square cardboard as shown in the schematic. The full assembly will be the part used to rotate and push the laterals parts (next step).
Step 3: Mechanical Parts 3 - Lateral Parts
This step show you how to make the lateral parts and how to stick it to the previous one.
First of all, you need 3 rectangles fo 170 by 100 mm and 4 parts shown in the schematic. To realize the articulation, you need a thin cardboard as you can see in all photos (white color) and sticks.
Step 4: Mechanical Parts 4 - Second Rotating Parts and Servo Fixing
To finish the main mechanical part, we have to make the rotating part fixed to the servo. This looks like the other cross part. The two cross shall be linked thanks to spacers and long screws.
The two cross will turn at the same, because of one is in direct link with servo-motor.
The servo-motor is fixed to the middle part (the middle square in step 1). To fixe it, we need 4 spacers at least the height of the servo (see the first schematic with servo).
In my case, it is a standart servomotor with 40 x 20 x 37 mm size and i used 26 mm spacers.
Step 5: Mechanical Parts 5 - Link Between Rotating Parts and Lateral Parts
In this step you will see how the rotating parts push the laterals parts when the light is opening. Sticks can be used in order to adjust the opening rate. This link has to be made by two parts according to the schematic. You have to make this part four time to push 4 laterals rectangles.
Step 6: Electronic Part
The electronic part is composed of the following list :
- 1 x nodemcu (esp8266)
- 32 x WS2812B RGB adressable leds
- 1 x standart servo-motor
- 2 x prototyping pcb board (45 x 55 mm)
- favorites tools to make welders and electronic boards
The nodemcu is the main component of the electronic part. It is responsible of the servo control and leds strips. The main advantage of the node mcu is to be able to use wifi connections.
Electronic part is made in two parts, the first one is used to connect the nodemcu to a power regulator. During firmware developement, usb power is used but at the end, an external power shall be connected.
The second part is used to connect four leds strip to compose the entire 16 leds strip. WS2812B offer to me a way to use only two nodemcu's output to control 32 rgb leds.
Once you have welder all your 4 leds strip, you shall be stick it to the mechanical structure and afer link all wires to the second pcb board.
Step 7: Embedded Software
The final step is the embedded software for the light control.
The software system is composed of two parts :
- Wifi http server made on NodeMCU
- Web server made on a computer (xubuntu + apache 2).
According to the schematic, the user doesn't acces to the nodemcu http server but to a webpage using html/css/jquery technologies.
This page is the only one comunicating to the nodemcu. this one analyse the calling url to determine the action (light open, switch of, color ...).
Today, the code is a simple web using a color picker and making the ajax request to the nodemcu http server
The nodemcu is using arduino coding style and make an http webserver. The screen capture show you the nodemcu's startup and its ip addresse to the local network:
Connecting to ssid :VOO-008263
Wifi connected 192.168.0.15
When I click on the web page for red color, we can see the corresponding request :
GET /?mcube.color=0;255;0 HTTP/1.1
The ajax request looks like : ip_addresse_nodemcu/?mcube.color=G;R;B;.
So the nodemcu code split the request according to ; seperator and get the RGB color to control the light.
To understand all the code, there is a lot of comments in each file and you can send me messages to discuss about it.
Step 8: Next Evolutions
As a first prototype, there is a lot of improvement points.
I have got the working principle so I decided to make 3d plans and go to a makers lab. I will make this light with thick wood parts using laser cutting tools.
If you are interested to see the final version, you can ask me to see the models.
About the software. My goal is to make an iot device able to get the gps position from internet and according to the hour trim the light color/power.
Next, the light will be able to discuss with a nodejs server (some line in the code already do it) to create a node collection of smart objects.
Any hints are welcome.
Have a nice day.
We have a be nice policy.
Please be positive and constructive.