Introduction

Our goal was to autonomously turn the sides of a rubiks cube and solve it. We needed to read in the colors of each panel at the beginning, run that state through an algorithm, and perform the resulting turns needed.

High Level Design

We needed two color sensors to read in the colors of each panel. We needed six continuous servos to turn each side of the cube and one non-continuous servo to move the color sensor toward and away from the cube so the cube could move. We needed six light sensors and wheels to determine when each servo turned 90 degrees.

Each light sensor corresponded to a continuous servo and allowed us to determine how far it turned. The color sensors were mounted on the non-continuous servo so that they could be close enough to get accurate readings, but able to move away after so they wouldn't impede the cube's movements.

Here is a Diagram.

To solve the cube, we read in the color of each panel of the cube and returned the cube to its original state. Then, we used that state as input to an algorithm to solve the rubiks cube. We parsed that output and performed the necessary turns.

I/O

Component List

Task distribution:

John Marcoux:

Yan Zhang:

Cheng Li:

Brian Kirkpatrick: