Tuesday, December 16, 2014

Nuview Bridge Solar Cup

I have participated in Solar Cup since I was a freshman but never thought to write about it. I am planning to change that this year by recording what we do.

A little background first:
Solar Cup is a competition in Southern California where High School teams design, build, and compete with a 15 foot, solar powered boat. While I have been in Solar Cup since a freshman, the only other person with experience, including the advisors, is my brother.

So far as a team, we have built the boat and started to epoxy it to make it waterproof. We do not have our last boat to use for parts, so we decided to use the kit designed and manufactured by the Donovan Brothers as a starting point for our boat. We have yet to start installing the drive train and are instead focusing on the Technical report.

For more information visit: http://www.mwdh2o.com/mwdh2o/pages/education/solar_cup/solar_cup_01.html
Articles about our team:
http://www.pe.com/articles/-729909--.html
http://www.pe.com/articles/-730012--.html

Wednesday, June 4, 2014

Raspberry Pi, Nook Simple Touch, and Pandora

I recently ordered a Nook simple touch which is a touch screen e-ink display that is capable of running android. It cost 35 dollars shipped so I figured I had to find a use for it.


Since it can run android, and thus run a vnc client, I thought that I could use it as a display and input for a raspberry pi. My plan right now is to create a touch friendly GUI for controlling pandora. Eventually I want to incorporate other features and display options in it but for now, this will provide a simple introduction and goal for me to finally learn python.

Friday, April 18, 2014

2x2 Physical Robot

This is the robot in its current state. I have made a program to control it but have not yet integrated it with the actual solver program. It does not have a function to turn layers though, so it is still under development. You can look at my github to see how it works so far. Eventually I plan to make a video where I explain what everything does but, until then, the code is decently commented so it shouldn't be too hard to understand.


Monday, April 14, 2014

Current status of 2x2 Rubik's Cube Solver

As of now, the program has successfully completed two cubes that were randomly scrambled. However in order to do this, I had to go through the code and debug the sections that were giving it trouble for each cube. This means that right now it probably will not be able to solve every cube position since there is still a lot of code I need to check. When I get the time, I will continue running cubes through the program and fixing the mistakes that I find.

The physical solver has made some improvements. It is able to rotate the cube, flip the cube, and turn layers of the cube. It, however, does not have an interface program yet and so all tests have so far been done by hand. Eventually I plan to work on an interface program/library to manipulate the cube.

Friday, March 21, 2014

RobotC has Issues

While I was working on Step 1 of my Rubik's Cube solver, the program kept running the first statement instead of the right one. After a few hours of experimenting I found the answer. For some reason, RobotC does not check that the whole equation is true, but only parts of it.

 task main() {
 if( PI == 10 == -30 == 15.63 == 0) { 
nxtDisplayTextLine(1,"Confused yet?I am."); 
 while(1); }

In this code, the line should not be displayed because obviously nothing is equal to each other. Yet, when I run the code, it does display the text. The solution to this is to rewrite the code in this manner:


 task main() {
 if( PI == 10 && 10 == -30 && -30 == 15.63 && 15.63 == 0) { 
nxtDisplayTextLine(1,"Confused yet?I am."); 
 while(1); }

While this works, it is not ideal. It would be better the first way but, since it doesn't work. I will need to rewrite my code to reincorporate this new findings.

Thursday, March 13, 2014

Structs and Update

As I was working on the solver, I was having difficulty because it was not possible to just reference a face. So I started my attempted to change everything to structs and pointers. I was having a hard time and eventually abandoned this attempted because I could not change the value at a pointer.

Since then I have been continuing work on my solver. Now it looks for 'bars' and moves them towards the bottom. And if there is only one bar, it will move it towards a specific spot.

Thursday, March 6, 2014

Origin of the 2x2 Solver

I am on the 7460 team thunder FTC team this year, it was our first year and we were all getting to know each other. We found out that we could all solve a Rubik's cube. Originally we planned on making a robot from plans online but we ran out of time. I decided that I wanted to do more than just use someone's plans, I wanted to build my own, though a little less ambitious, 2x2 solver.
During my spare time I would work on the code. As of now, I have code that can store and simulate a Rubik's cube. I am now starting on the actual solving algorithms. I have also attempted the actual robotic part of the design but will likely scrap it because it is not reliable.
The code I have so far is on github, though I am planning on going through it at some point in order to make it easier to understand.