This is my make-through for the week's assignment.
Grab a cup of coffee! Buckle up your seat belt! Enjoy the upcoming greatness!
It started to be fun and hard at the same time. For this week I went through:
Work in a team, communicate and help each other.
Organize Qubic (our smart lamp project) on GitLab using Scrum methodology.
Learn advanced CAD techniques.
(Assignment) Bluetooth speaker mount.
Design1 (failed).
Design 2 (success).
Laser cutter (Acrylic) fabrication (success).
3D printer corner joints (70% success).
Research, research, research was the exclusive thing for this week.
I had the time to play around with coding and created some cool stuff.
All Week long
Step 1: After we finished the session on Monday with Ahmed Ibrahim and everyone picked his role. Mohamed El Sayed as the product owner and will work on electronics, Ibrahim Rafaat as a designer and will work on electronics, and myself as Scrum master and will handle the coding for both hardware and UI. After that, We went straight to discuss our perspectives and final goal for this project.
Step 2: We started by everyone saying what features he has in mind so we can create the product backlog and then started to break it down to what is suitable for the skills and timing we have.
Step 3: I started creating the project in GitLab while Ibrahim & Mohamed made broader research for components and ideas.
Step 4: So I organized our project as follow:
Named Qubic-the smart lamp.
Labeled as Hardware, CAD, Coding, fabrication, …
Started creating sprint #1 and assigning the features we picked from the product backlog to add to this sprint.
Step 5: After I finished GitLab and the boys finished research we finalized the product backlog. Mohamed and I confirmed the list of electronics and fabrication components.
Step 6: The next day I wanted to work on coding, but we had an idea to work with NeoPixels LEDs and I didn’t know that much about it so I started watching and reading tutorials about it. After 8 hours I managed to understand it with tips and tricks to implement its code in many different ways for the whole project not only for sprint #1.
Issue #3 on GitLab
Issue #1 on GitLab
Issue #2 on GitLab
Qubic board on GitLab
I went searching like crazy on the smart lamp tutorials (more about it later). I wanted to create two different ways to make automatic animation for either normal RGB LEDs or NeoPixels ones.
Step1: Find model for the LED we're going to use.
Step2: Understand the required hardware and circuit components.
Step3: Wear my coding hoodie and start implementing.
Step4: This code make an auto fading sequence of RGB colors.
Arduino code for normal LEDs
It took me a lot of research to understand and implement the code.
Step1: Find model for the LED we're going to use.
Step2: Understand the required hardware and circuit components.
Step3: Wear my coding hoodie and start implementing.
Step4: This code make an auto progress sequence of RGB colors.
Arduino code for NeoPixels
The session in the lab was very fruitful. I got to know new ways of fabrication and names for new tools. Also the new designs to create joints were very useful to know as it already helped for the fabrication of the project for Sprint #1.
Step 1: I watched the videos made by Ahmed Ibrahim. I could understand the concept but the design steps weren’t that clear to me so I started looking for the same designs concept but step by step so I can manage to practice.
Step 2: As in this image I used wrong measurements, the process of design was complicated as I sketched too many elements in the same sketch.
It was a complete disaster with wrong measurements
Problem: Overwhelming process, lack of knowledge.
Potential solution: Plan, sketch and layer down the design first, practice and practice and practice.
I practiced three designs for laser cutter and 3D printer. It took some time to get used to the new joints but it came easy along the way.
Step1: I followed a tutorial to create this box.
Step2: The best thing that the man printed the part and it has some issues like there was a gab between the top and bottom parts, so he edited the snaps and the curved edge of the bottom part and printed it again and assembled it smoothly. So I know what to avoid in design.
Step3: I learned new techniques to use in fusion through this tutorial.
Snap-fit joints for 3D Printed box
Through all of this I developed a new and better mindset in designing other than the one I was working with.
Step1: I followed the video on our website to create this enclosure but I went for a different steps to design it.
Step2: This enclosure is a combination of laser cutter acrylic for the top part and 3D printed PLA for the bottom one.
Step3: I learned new techniques to use in fusion through this tutorial.
Side slide nuts & screws assembly for acrylic and 3D printed enclosure
I choose to make an enclosure to Bluetooth speaker as it's simple specially with the added electronics components.
The goal is to create a box from Acrylic & 3D printed corner joints. For the first try I had some issues with dimensions as it appeared at last it's small for the components & the speaker, but it was worth it the hours I spent on it as you will see in the next design.
Didn't fit for the electronic components & the speaker
I can truly say that was one of the most effort, time, planning, mind, … consuming assignments I did in my life but don’t take it in a bad way hehehe. 11hrs 55mins was the time I spent to finish this appealing, well structured, editable and creative design.
Step1: Add the user parameters. I created parameters for the most used dimensions in this design like materials thickness, screw hole, nut diameter, corners extrusion, …
Steps2: After that I started using those parameters while I am sketching instead of drawing with hard numbers. This will really help with the trial and error process as well as if I want to scale change materials thickness or this sort of things.
Step3: I used Acrylic 3mm for body parts and 3D printing PLA for the corner joints. This helped with staying within my quota and give it a cool look with the transparency for the inside components.
Step 4: Each one of the bottom corner joints mounts three parts top, side and bottom of the box using a side slide nut from inside and screw from the outer of the Acrylic part.
Step5: Inside the box there are two electronic components push button and DC socket that I projected there faces and mounted them through the sides. Also we have a 3D printed battery box that's fixed to the bottom using a nut and a screw, and this box have top and bottom parts that come together using snap-fits.
Step6: At the top we have 4 corner joints same as the ones in the bottom but instead of fixing three parts it only fix itself to the top Acrylic part and have these edges to mount the speaker in the middle so it doesn't slip.
Step7: I exported the corners as .stl files and went to Prusa slicer to start slicing but there happened some issues.
Pre-defined parameters
Mixed enclosure
Inside and section view
I faced some issues while slicing the parts.
Step1: I had a message that says there is empty layers in the battery part where I designed the snap fits.
Steps2: I took a closer look to find it didn't sliced in a right way as it was small sized, so I went back to fusion 360 and made the extrusion a bit bigger and it went fine.
Step3: As for the corner joints it needs support for the parts that slide the nuts and screws.
Step 4: The design will take some time to be printed so, two corners for each top and bottom and the battery case will take 1hr 50mins and will use 17.26g. Four corners for each top and bottom and battery case will take 3hrs 34mins and will use 33.24g.
Error: empty layers
After slicing
First I would like to thank Amany and Noha for helping me in the fabrication. Amany instructed me for the 3D printing parts, she reviewed my sliced files, suggested some edits with positioning parts for supports, quality, … On the other hand Noha helped me with the laser cutting machine. Providing me with Acrylic, reviewing the speed and power for the machine and test them before I start and when I started to assemble my parts she provide me with different lengths of M3 screws. Now to the work!
Step1: I used red 3mm Acrylic to fabricate the case body.
Step2: Imported .DXF files to Laser Works software, arrange them in an efficient way so I don't waste materials and last thing adjust the laser cutter machine speed to 15 and power to 65.
Step3: Placing the Acrylic sheet in the machine.
Step4: Check laser lens focus, speed and power.
Step5: 2mins was the time it took me to finish the body kit.
Step6: For the interesting and most challenging part which was the tolerance, I designed the screw hole at 3.2mm, I used the caliper to take the measurement from the Acrylic face after cutting and the screw hole became 3.5mm. The 0.3mm didn't make a problem while assembling at all.
Body kit & assembly
It wasn't easy to made the CAD or the printing. Unfortunately I the printed parts wasn't as good as I thought, First the battery bottom case should had snap fits to snap with the top part but the snaps were too small to be printed correctly and got broken while I was removing the support around it.
As for the corners my design had 4 corners but it would take a lot of time to be printed, so I printed 2 corners only. The printed corners fitted the nuts some how in one side and the other wouldn't fit for the nuts that much. I am not sure why!!!
Step1: I used Prusa slicer to slice and set the parameters for the MK2.
Step2: I choose to make supports for nuts and screw holes.
Step3: My parameters were 0.20 for layer height, 15% infill, extrude temp 215 and black PLA for the filament.
Step4: After replacing the filament, it started to print just fine with no problem.
Step5: Half way in we found there was a traction wires that going across parts, Amany to me what is the problem and how to fix it next time.
Step6: After the printer finished it took me some time to work on the parts finishing as to remove supports and traction wires and make sure the holes fits the screws and nuts.
Step7: For the interesting and most challenging part which was the tolerance, I designed the screw hole at 3.2mm just like the Acrylic, I used the caliper to take the measurement from the corners after cleaning and finishing and the screw hole became 3.26mm and I designed the nut hole at5.5mm and it became 5.71mm. The 0.3mm didn't make a problem while assembling at all.
Printed parts
Checking tolerance
We want our project to be decorative as it can be used in office or home. Most of the designs made on the internet is so similar with the concept and event the design and finish. So I understood the building rules and went replacing either materials, assembling way and even switching the building blocks with each other.
Step1: I choose a concept that made the walls not thick to make the enclosure light weight, made quiet a long distance between the place where the LEDs are mounted and the holes in the sides where the light goes out, so that the exposure would be clear and there won't be dots of lights from the LED.
Step2: Define the used material. Wood 9mm , two 3D printed parts to mount the LEDs and Acrylic or epoxy to cover the holes where the light comes out.
Step2: Start setting user parameters for the recurring dimensions.
Step3: Just design the above which isn't hard at all.
Step4: I thought of using epoxy to cover the holes in a gradient effect starting with white at the bottom and go up with some light blue degrees.
Step5: The not best part that the enclosure sides and bottom will be glued together with the top part only placed there where it makes it accessible to change LEDs or any maintenance.
Just Qubic standing there
Research can be frustrating sometimes. But I had a lot of motivation to know as much as I can about Qubic project, so I spent the free time of this week to learn about smart lamps in every aspect, CAD, hardware, coding and control.
My bookmarks folder for Qubic project
I started working on a draft for the mobile app we will be using to control Qubic in sprint #2. The idea I have for the app that it should provide basic functions, nice to have functions. Of course I started with the basics and I will build from there depending on the complexity and free time we have during the weeks until we reach week #3.
Step1: At first, it was quite hard to understand how to send the picked color from the app to parse it in the Arduino code to change Qubic’s lighting color, but research and patience are the keys.
Step2: The app can make the following functions connect via BT, Switch Qubic ON/OFF and change LEDs color from the color wheel.
Step3: Created validations to make sure users won't be confused.
Qubic's App
The Arduino code is divided to three parts. The first one defining and initializing variables I am using to receive data from the app and control functions. The second one is receiving data from the app and parsing it to Triger functions. The last part implementing the functions that the app perform.
Step1: Define the connection pins and initialize the variables used in the functions.
Step2: Receiving data from the app and start checking for which function will be performed.
Step3: Implement the functions used in the app like change LEDs color, adjust brightness, …
Arduino code
I had to debug my way to see how Arduino receive and parse the data from the app and it took some research and time of course.
I am dyeing actually to handle some case scenarios that might happen while using the app but it's really giving me headache to do it using App Inventor.
Using a normal LED isn't the best. I faced a major issue to control the brightness through the app but it didn't work at all even after so many trials. It's frustrating. I will forward this feature to sprint#2.
I followed Mohmed El Sayed circuit diagram which he draw for sprint #1. Actually he helped me a lot with getting the right components and where to buy it.
Step1: List the used components ( 3xTip122, 3x1k resistors, HC-05, SMD5050, Arduino UNO, 12v adapter).
Step2: Connect the components according to the circuit diagram.
Step3: Connect to the app and start testing.
The lamp turns ON/OFF via Bluetooth.
Can change colors from the color wheel but it lights up with 7 different colors only.
I guess the issue with the LED itself.
Looks very cool and easy to operate while on the bed
Exploded image & Connected circuit
What I learned this week is...
It was a fun and engaging week with interesting hands-on practice. I really managed to learn and practice many many things thanks to you.
More on using Agile scrum methodology.
New mindset in Making.
Advanced CAD techniques.
New fabrication skills.
Hardware components.
Wiring diagram.
Arduino C.
MIT App Inventor.