Unfortunately due to GCSEs I have been unable to update the blog; however I have had a few projects on the go and I have made some developments on the rubix cube solving project.




Firstly I made a second RGB LED card, this time for mothers day, and this time featuring 9 ws2812B individually addressable RGB LEDs.  I had these LEDs left over from a project which never happened so I decided to put them to good use.  On the front of the card I mounted some thin paper which light can easily shine through; then behind I printed some images and text onto an acetate.  The acetate blocks the light transferring the design to the front of the card.  I was very pleased with the effect this gave and the LEDs being individually addressable meant the effect could be made even cooler.  Because the LEDs are designed to be daisy chained the wiring wasn't too bad although it still took the best part of a day to get it all finished.  On this card I opted to use a 3 x AAA battery pack because of the number of LEDs, it may be chunky but its worth it.  Also this time I didn't have any vibration sensor; therefore I had to come up with another way of sensing the card was being looked at.  In the end I opted for capacitive touch; I used a strip of conductive tape around the back of the card which was able to sense when someone was holding the card.


For my birthday this year I was very lucky in getting an Ultimaker 3D printer; this has revolutionised my world!  It came in kit form and had to be assembled from scratch.  This took me around 7 hours over the course of 2 school days. Below are my first two prints, they are very poor quality compared to what I am able to produce now as it took me a while to work out what works well and what doesn't.


One of the things I printed early on was a case for the RGB LED cube; this a perfect application for a 3D printer because I can easily design the case in CAD to the exact dimensions.  This provides a really nice finished product:


The case also features a removable lid which has magnets in each corner; this means I can easily show people the circuitry inside which makes the cube so cool.  The other great thing about having an Ultimaker is the un-finished nature of the product.  This means there are always improvements to make to it giving way to challenging projects.  One such project was a stepper cooling system; although I have now realised this is unnecessary it was a fun project which gave me a much needed break from revision.




I decided 3 40mm fans would do the job of cooling the X, Y and extruder stepper so set about designing a PCB for this.  I also wanted the fans to react to temperature so I ordered some ds18b20 digital temperature sensors.  I had a 12v and 5v rail allowing me to power the fans and PIC.  I planned on using FETs to control the fans with the PIC however initially I got my wiring wrong and after switching them all around the board came out a little messy.  Anyway after hooking everything up it did work; the temperature sensors each gave me a temperature reading and the fans could be switched off.  However the fans produced a high pitched squealing when I tried using PWM, something I wasn't so keen on.  Although it was fully operational I decided not to mount it to the printer because I felt it would clutter it up and also a few heat sinks would do the job far better and quieter.

So onto the Rubix cube solving robot...after having settled on a rough design I worked out what I was going to need and then put in a few orders, one to sparkfun, one to hobbytronics and ebay. There are 3 main problems to overcome with such a project; firstly scanning the cube, secondly processing the cube and working out a solution and finally physically solving the cube.  Initially I plan to use a computer program called cube solver to process the cube; however I would also like to develop my own firmware which will solve the cube without being plugged into a computer.  This means that a web cam is not an option for scanning the cube.  I concluded that an array of colour sensors would be the best solution - but colour sensors don't come cheap.  After looking into it I discovered a simple LED and LDR can be used to differentiate colours.  So I had a little go at this with help from the 3D printer.
Below is my first prototype; it uses an RGB LED to shine red, green and blue light at the facelet and then uses the LDR to detect the amount of each light reflected.  Although it took a certain amount of fiddling around with I eventually got to a stage were I could differentiate the 6 colours very well.


 I concluded that 9 of these stuck together would work very well; however it would be very difficult to keep such a PCB compact yet effective; also there would have to be a lot of data lines going back to the main board.  I concluded the solution was to make my first SMD board and use a 16 channel multiplexer along with ws2812 LEDs.  This uses 8 wires to connect to the main board and is very compact.  Below is the finished board and 3D printer having just started printing the dividers which fit on top of the PCB.  I have not yet been able to scan a face of the cube as I am waiting for some black PLA in which I can print it.


 So surface mount...after doing some extensive research I concluded it wouldn't be too difficult;  I picked up a toaster oven on ebay for £20 and purchased some solder paste.  I decided that I didn't want to spend too much on equipment so I bought a cheap thermocouple temparature sensor on ebay; I could have made a reflow oven however I was mid exams and really didn't have the time.  When I toast a board I heat it to 150 degrees C and leave it for 30 seconds, then I ramp it up and reflow the board.  As soon as its all done I take it out and let it cool.  As of yet I have had no problems :)



Since then I have made a few PCBs trying out this new technology:

My first ever SMD PCB was really designed so I could try it out; it featured a SMD RGB LED, a MAXIM 7219 LED matrix controller, a ds18b20 digital temperature sensor and an ATTINY85.  It went together fine although I still haven't got round to debugging it and getting it fully operational.  I also printed a stand for it which I think is a nice touch.  Eventually I want it to display the temparature in decimal form as well as the recent high and low in binary.
 After the first board I wanted to have another go, all I had components wise was a few LEDs left over and 10k resistors.  I decided this would make for a nice night light.  I printed an octopus in clear PLA which diffuses light really well.  The I designed and built a PCB which sits over the arduino and lights up the octopus.

The files for this project are up on thingiverse: http://www.thingiverse.com/thing:348988


Anyway, back to the rubix cube solver.  I have prototyped most of the electronics and have finalised the CAD model for the claw assembly.  Design wise I just need to work out what the actual casing will look like and then I am going to get some acrylic panels laser cut.









Comment