LED Rubik’s Cube Team 54: Meghan LeMay & Michael Rupp TA: Bryce Smith
Problem Statement There is no way for a user to reset a Rubik’s Cube without completely solving the puzzle.
Nomenclature “Cube” refers to entire Rubik’s Cube “Block” refers to smaller cubes that make up the “cube”
Fast Facts The cube is comprised of 26 blocks. Each of the six colors represents the initial state of one of the cube’s faces. Each center block is stationary and can only rotate. In our project, we have an RGB LED representing each face of each block visible to the user.
High-level Requirements Rotation Reset Low Power Consumption
Physical Implementation
Rotation Mechanism
Design Considerations No wires between blocks RGB LEDs must change color on demand Power to each block
Power Problem Solutions Metal Contacts Wireless Power Each block individually powered
Proposed Solutions Gyroscope/accelerometer with arrays of transmitters and receivers Optical communication in IR band
Center Blocks Responsible for initiating reset sequence using microphone Propagate reset signal to side blocks using infrared LEDs Never change color
Block Diagram of Center Blocks
Center Block PCBs
Microphone Reads 1 kHz sine wave Autocorrelation Peak detection
Microphone – Voltage vs Time
IR Transmission IR spectrum does not interfere with RGB LEDs 940 nm IR LEDs 20 ms pulses
IR LED Timing Diagrams
RV: IR LED
Side Blocks Contains infrared transmitters and receivers Receives reset signal from center block Send reset signal to corner RGB LEDs on two faces
Block Diagram of Side Blocks
Side Block PCBs
Photodiode – Voltage vs Time
Corner Blocks Contains infrared receivers Receives reset signal from side blocks RGB LEDs on three faces
Block Diagram of Corner Blocks
Corner Block PCBs
So what went wrong…?
26 Total PCBs…
Fixes We Made Extra grounds to attach last minute components Filing the corners of PCBs to allow them to fit in blocks
Conclusions Successful proof of concept! Further work must include more consideration of the mechanical constraints. Implementation of “pseudorandom” reset could be achieved with further programming work.
Questions?