Friday 4 May 2018

Rubik's Cube Solver - Complete!



The group project is complete! With all 67 pages of report submitted and flashy hardware demonstrated nothing else is left to be done. 

So first up, some obligatory photos:
The Solver, in all its death-star-ness

The drama shot of the cube, the centre cube frame is used for holding colour calibration strips for the cameras and is held in place entirely using fishing wire

A resurrected version of our interim submission. We used it for demos during the presentation: wiring the servo into a lab signal generator which allowed us to demonstrate the cube actuation in a controlled (and not covered-in-wires)manner.
And an obligatory solving video:


Solving video!

In the end our gamble with the servos paid itself back, giving us a very high reliability, but rather long solve time. This contrasted well with other groups who had really quick solve times, but ended up with more frequent cube jammings.

My own major contribution to the final product was the design of a computer to cube communication system. One of the requirements put on us (to make things harder) was that we had to route all control signals through an audio cable which could not have any programmable devices after it to control motors. The design and implementation of this system has been one of the most enjoyable things I have done at uni so far - not least because I have reached a level of experience that means I can design basic circuits that work! Inputs to the audio cable were generated using a standard PC soundcard, which let me play with Python at one end, while demodulation was done with some pretty neat circuits at the other.
Signal flow diagram showing the modulation and demodulation of the information signal
 In order to increase the information carrying capacity of the communication system I decided to multiplex multiple signals on the audio cable in the frequency domain, which required a whole bunch of band-pass filters to de-multiplex again. To adequately understand how to send signals to the filters so that they would work properly (by sending them signals in their pass bands) I needed to do a frequency response test on them. To increase awesomeness, and make use of our shiny new lab equipment, I was able to do this entirely automatically, commanding and drawing data from an Oscilloscope and signal generator using MATLAB and an Ethernet cable!
Automatically produced graph of all the filters' frequency responses!
Finally (the funny bit at the end...) I got carried away with Inkscape during the closing stages of the project as we were preparing for presentations which meant that our group ended up with a 'logo'. Needless to say my courage was not up to putting it in the final report!

We were Group A. Yes, the image did start life as the Manhattan project seal.

2 comments: