We are curious by nature - all four of us team members realised that the moment we had our initial conversations and it was very clear that we are all very fond of solving complex problems or create things which deal with multitude of complexities. One of us expressed that she was big fond of playing with the rubik’s cube which is the definition of solving something complex and we all realised that’ something we all are fascinated by. Finally, as per wish of every member of the team we decided we will build a rubik’s cube scrambler with the intention of also giving our creation the added functionality of unscrambling the cube. The root of our project’s choice was purely based on the intriguing nature of science and its practical application and we thoroughly enjoyed executing our ideas in the best ways we could.
What it does
Do you ever get bored of scrambling and re-scrambling your cube after solving it for the millionth time? Scramble it! is the new solution for quick, unbiased, and reliable scrambling method. The project is built using an Arduino with an attached motor shield to power the the attached DC and servo motors.
How we built it
For starters, we were excited with our idea and immediately looked into what would be needed for the design and what materials we were provided. To build Scramble It! we first planned out what the design would require in terms of movement. We determined that there would be three motors necessary - for three axes of rotation. Following, we split our workforce in mainly two divisions - one focused on building the base and structures to allow for rotation of the Rubik’s Cube faces, and another focused on controlling motors using Arduino and learning how to randomize Rubik’s cube faces. For the structure of the design, we first used CAD to design and laser cut a clamp and base which would be the platform of the design. Then, we used a lot of popsicle sticks, cardboard, tape, zip ties even a juicebox - anything we could find to prototype and build our dream design. At the same time, we worked on interfacing the servo and DC motors with the motor shield for the Arduino; determining viable speeds and power supplies. Finally, we pieced the motors with the rest of the design then tinker with the values of the motor commands to fine tune each of the motors to clamp the cube, lift the clamp, or rotate the cube.
Challenges we ran into
We had a lot of trouble trying to figure out the proper power distribution and electronics needed for powering 3 motors. We ran into a lot of brown-out issues which took up a significant amount of our time. In terms of hardware, we had troubles with securing the mount holding the Rubik’s Cube, as well as the other motors and positioning the clamp in a manner which could grip the cube. A major challenge is the time constraint - as we needed more time to both prototype the design, as well as test and finetune the final design.
Accomplishments that we're proud of
We are proud of learning, troubleshooting, and especially the successes that come along the way. Due to the challenges we faced, we high fived for every small success. For example, we were ecstatic the first time we got all 3 motors to work at the same time; as previously mentioned, they acted abnormally due to inefficient power (we ended up using 3 different power supplies). Another major milestone is when we got the base of the cube to turn - to us it was like a dream seen only in movies. Every small milestone, from connecting and running a motor, to flipping the cube, are all achievements we are proud of. A major key to our success is our team, since our individuality (being from different universities and programs) allowed us to troubleshoot problems with different mindsets, and allowed us to work together efficiently.
What we learned
One of the biggest achievement for us as both a team and an individual was - the learning of new things and applications of the science and math we learn everyday as university students. Opportunities like these gives us the chance to feel proud of creating and executing our own thoughts and ideas and also apply innovative approaches of problem-solving like ‘using a juice box we just drank from as a mount for a motor’.Other than that if we try to break it down- all of us had different , little wins - for example, one sawed wood and used drilling machine for the first time; some went into the depths of learning how to write arduino code for specific motors; for one it was the first time she used a CAD software. By the end of the day, most importantly we all learned the gravity of good teamwork and how to support one another in a team; we learnt to be patient; we learnt to accept that not all of us knows everything and this is a great opportunity to learn from your peers. Our participation was more inspirational rather than being solely educational.
What's next for Scramble It!
Three main features will be added - LCD display, selection of difficulty, and Solve It! An LCD display will be used to display the current locations/colours of different piece of the cube. With it, there will be an option to have manual scramble; but with push buttons (1 button controlling each motor). In addition, Scramble It! will have different difficulty levels - correlating to how scrambled the cube will be (# of rotations). With an extremely difficult cube, a goal to reach for would be a feature called Solve It!. As suggested by the name, the new feature will solve the scrambled Rubik’s cube using vision and pattern recognition. For optimization of Solve It! either Rubik’s cube algorithms or machine learning may applied. For cubes of size nxn, where n > 3 attach another scissor clamp to grip onto the cube to allow for manipulation of cubes of greater size. In terms of aesthetics, we hope to add RGB LEDs as well as having a more aesthetic final product.
By Dora, Chenyan, Jason and Lamisa