Kaleidoscope
I have always been fascinated by physics since I was a kid. I have also been passionate about doing things that may seem out of the ordinary and exploring the various outcomes.
The purpose of this project is to give the user an enjoyable experience and a little bit of education (edutainment), and to showcase how a simple action could produce something mesmerising.
This project was inspired by the kaleidoscope as it was an extremely fun object to play with as kids. It consists of a very simple concept and is very easy to upgrade or downgrade to your liking. The kaleidoscope has many different shapes and sizes (not necessarily the one in the picture) and that gives me the advantage to create my own kaleidoscope with my own design language.
I was inspired by a motorised kaleidoscope (Caleiduino) that was made with Arduino. However, this project includes sound and things that I don't want to include in my final project. (https://youtu.be/M8AdgscGyK0) (http://www.caleiduino.com/en/
Caleiduino
The design (CAD) software used for this part of the project was Fusion 360.
Starting off, I started by making the mount of the servo motor and testing it to find out it fits as it was a very important part to build on the rest of the project. I imported an already existing model of the servo motor on Fusion and started sketching based on it.
I took feedback from Sherif and he told me in order not to waste time and resources, since this was only a testing prototype, to only take the top part for now and fabricate it on the lasercutter.
The first trial did not fit the servo motor unfortunately, so I had to make a few adjustments and repeat the laser cut.
After ensuring that this will fit, I started working on the design. The design process took a lot of time as there were many parameters I had to put in mind and too much details to consider.
After I finished these parts, I took feedback from Sherif and Esraa and they pointed out things that I missed and forgot to include in my design like the tabs with the t-slots, a place for the breadboard, an opening for the on/off switch, and the servo horn that will hold the rotating acrylic disc.
After taking feedback, I edited my design accordingly and then I proceeded to export the final sketches for laser cutting.
The software used for this part of the project was RdWorks.
The machine used for this project is the Malky ML1930 (laser cutter).
The materials used for this project were 3mm plywood, screws and nuts, 4mm plastic acrylic, and reflective paper.
The fabrication trials of the servo mount. (Laser cutter CUT Speed: 10, Power: 60)
Then, I started by laser cutting the wood pieces. (Laser cutter CUT Speed: 10, Power: 60)
Then, I laser cut the acrylic disc. I cut different ones to see which one I would like more. (I chose the scanned one at the end)
(Laser cutter CUT Speed: 10, Power: 60) (Laser cutter SCAN Speed: 350, Power: 23)
The softwares used for this project were Tinkercad, and Arduino.
First, I started by making the circuit on Tinkercad to make sure that I understand the connections properly.
The input components are the switch, 2 push buttons, and the IR sensor. The output components are the LEDs and the servo motor.
The function of the switch is to turn off and turn on the whole circuit, the function of the IR sensor is to sense the eye when placed in front of the eye hole, the function of the servo motor is to rotate the acrylic disc and finally the function of the LEDs is to light up the acrylic disc with different colours.
The suitable power source for the Kaleidoscope is 5V adapter or the usb cable directly.
Using week 7's code and building on it, I put the buttons as input objects, increased the number of output LEDs and added the feature of the speed up/down of the servo motor.
To make the speed feature for the motor I did some research to understand how the code will work, I found a link that explains how to do it. (https://create.arduino.cc/projecthub/bruno_opaiva/controling-servo-motors-with-buttons-and-arduino-20dd22)
I started off by testing the circuit on its own with the code to make sure that everything is working correctly without any errors. After many trials, I managed to make the circuit the way I wanted it to. At first I tried the circuit with the small push button and then I integrated the red push button in the circuit.
Then, I started putting the wood pieces together and mounting the components to make sure that everything fits.
Then, I put the components and the wiring in the electronics box.
This video only demonstrates that it works with only 2 LEDs on, this is not the final outcome.
During each phase I asked for help from different people. Sherif of course was there to provide feedback and help but I was lucky enough to be part of a group where we all offered help to each other at any time.
In the design phase, I did not know how to visualise the part which will hold the servo mount and the 8 sides of the polygon together, so I asked Ghazaly for his opinion and we researched together different ways to connect them together until we found the one that is most doable. He also helped me figure out how to make the tabs and slots so that the pieces would fit together without complications. Another thing he helped me with was fitting and adjusting my DXF files on RdWorks.
In the coding phase, I did not know how to compile the speed function code onto my already existing code but Hussein researched with me and helped me with that.
In the fabrication and assembly phase, Waleed, Mohab, Salma, and Ghazaly were always there to help me with any problem I faced. Waleed helped me by welding wires together to fit into my enclosure, Salma helped me by drilling holes onto one of the wood pieces to hold the Arduino board more firmly. Mohab and Ghazaly helped me assemble the kaleidoscope together.
In parallel with that, I was there to help Doaa, Rawan, Ghazaly and Mohab with their projects as we were all present at the lab at the same time so we were going around helping each other out.
To make the speed feature for the motor I did some research to understand how the code will work (with the help of Hussein), I found a link that explains how to do it. (https://create.arduino.cc/projecthub/bruno_opaiva/controling-servo-motors-with-buttons-and-arduino-20dd22)
When I got stuck, I turned to my group colleagues and they were more than helpful as mentioned above in the previous segment.
Mistakes that could be avoided when doing this project are:
buying jumpers that have terminals at the end to be able to mount the LEDs, buttons and switch properly,
making sure that the tabs, slots and t-slots are all aligned and present in the design,
testing the wiring several times after each adjustment to avoid a hassle at the end
If I had more time I would have liked to include the LDR feature and the sound feature in my Kaleidoscope as it would have given it a nice vibe and an exciting added value. Also, I would have coloured the outer shell of my Kaleidoscope and made a cool design to match the colourful outcome that it provides.