The Solver Log
The Solver Log
After going through the proposal with Deko, we uploaded the proposal to the wiki page. Our mechanical design prototype is almost done. We have learned that the Raspberry Pi works with Python so we just have to learn how the GUI for the Raspberry Pi operates.
Due to a misunderstanding in the Gantt chart as far as the dates being the start of the week versus the end of the week, I(Jordan) had to do two weeks worth of work. Oscar also has decided to do two weeks worth of work while Alex has decided to shorten a different task by a week to make up for this mistake.
Solving Algorithm Resources: fulmicoton.com/posts/rubix pypi.python.org/pypi/pycuber
Jordan: This week I figured out how the Raspberry Pi worked and found a solving algorithm. I found a tutorial on the Raspberry Pi website on how to install NOOBS. The tutorial said I needed to format the SD card that came with the Pi. I plugged the SD card into my computer but after a lot of problem solving, I discovered that my computer's SD card reader could not read SDHC cards. I was told by Deko to purchase a SD to USB converter. I found one on Amazon and purchased it on my own money. At the time I thought I needed this device every time I wanted to edit code on the Pi. It turns out I did not need it at all because the SD card was already loaded with all of the necessary programs. My next task was to get the Raspberry Pi display to work so that I could edit code. Luckily, I have all I need in my room to get the Pi to work. I needed a mini-USB to USB cable, a USB to outlet plug, an HDMI cord, a monitor/TV with an HDMI in port, a USB mouse, and a USB keyboard. I downloaded Raspbian onto the Pi. I learned through the Pi's GUI that the algorithms can be in python, java, or other less commonly used languages. When we went into lab on Wednesday, Deko gave us a box that had a mini-USB to outlet plug and other useful items. I had been researching solving algorithms on the internet at first to see if there were more algorithms in python or java. I have prior knowledge in java but no knowledge of python. I found a couple of algorithms in python so as a group we decided that the project will be written in python. I found one algorithm and downloaded the source code. The problem with this code is that it needs something called setuptools, which is a python file. We tried to download it onto a school computer but it did not work. We found another algorithm that purely prints out the steps needed to solve a given cube, which will be good enough for now. The next step is to convert this algorithm in a way that the steps can be a list that can be transferred to the motors and the input can be given in the form of a list of colors.
Oscar: I have spent this week primarily learning the ropes of Raspberry Pi in order to understand how we will use it in the project. I have watched a variety of tutorials online and have tinkered with the Pi in order to learn my way around. I have also spent time refreshing my knowledge on Python as it will be the language we will program everything in. Jordan and I have found a variety source codes to use as a guide for our own solving algorithm. We were able to download two main ones, one specifically that recognizes the position of the cube and then tells you the steps needed on how to solve it. We both realized we can use it to come up with a way to convert the text of steps into commands to the motors used to turn the cube. I have also started to dig into how I will tackle the color recognition part of the project. The main potential obstacle will be having the Pi able to distinguish between certain colors from the pixels. A solution could be to have the cube well lit so the camera can be consistent with its detection of specific colors. The camera can then take the middle pixel of each square on each side of the cube and then convert that to RGB values. As soon as the budget is cleared, I can begin to use the camera to test this method.