Saturday, 12 April 2014

I made a new change to the Spherebot GUI. Now it is not necessary to have separate files for each layer any longer.The program recognizes the layer changes on its own.

Happy Easter! ;)

Wednesday, 26 February 2014

Spherebot UI 2.0

Finally I have finished the version 2.0 of the Spherebot UI. On the first look it may look like version 1.0 but under the hood there has changed a lot. I actually tried to, again, release it as a static build but I just couldn´t get Qt compiling statically. So I just extracted all needed .dlls and copied them in the folder of the .exe file .

-I completely changed the underlying communication library. In 1.0 the used library was the QextSerialPort library but because of some problems I had with it I was only able to get it working when the communication was polling-based. That was not really good because there was a high and unnecessary CPU usage. Now the communication works event-based and is completely implemented with the Qt integrated SerialPort library.

-A new feature is the Multilayer Support. If you want to print on one egg with different Pens/Layers then this is a very handy feature. Just name you .gcode files in this way:
<PictureName>_1.gcode
<PictureName>_2.gcode
<PictureName>_3.gcode
etc.

Load the first layer and start the print. after that you will get a dialog asking you to change the pen and press OK. Then it automatically loads the next layer and starts printing. After the last layer it will ask you whether you want to restart and print the next egg.

-A really nice feature is the persistence of the loaded file and the connected port. So if you connect your bot to the computer and start the program, it will remember that it was connected to this port the last time and automatically connects to it. It will also loads the file that was loaded the last time at start up.

So these were the most important changes I´ve made to it. I hope you ´ll have fun with it ;)



Wednesday, 11 December 2013

My Rep-Rap Prusa

This weekend I finally finished the new housing for my 3d printer.


I made it out of 12mm MDF and 3mm Acrylic glass. The nasty smell of plastic during operation is now completly gone and it is now considerably less loud. I used a gasket which is actually used for doors and windows to seal the gap between the glass and the MDF what makes it pretty air tight.
Also the new mounting of the filament spool works great, cause before I had the spool mounted underneath the table what caused some problems from time to time when the filament got stuck.

Proof of Concept 2: The cheap DIY optical potentiometer

Today I found some time to do some further tests regarding the idea of a printable optical potentiometer.
I tried to print gradients on some overhead sheets I had laying around and the result was this:
The vertical axis is the voltagae, the horizontal axis are the centimeters of the test-strip.
As you can see the average error is 13mm on a distance of 23 cm. That´s absolutely too much and if you calculate how much error it would be for an angular sensor then you get an average error of 21 degree.

To explain how I made the measurements: I wrote a Qt program which produced the gradient together with a millimeter raster. then I printed it out with my HP Officejet 5605z All-in-One with the maximum possible resolution and finally I used the millimeter raster to do a measurement every centimeter. The schematic of the measurement circuit

and the sensor.

As it seems the nonlinear curve that I got when I did the tests with the paper was caused by the paper, cause this time I got relatively linear values without changing the gradient.
I think if I would have access to a better printer I could improve the results but the precision is so bad that I don´t think that you could get acceptable results with this kind of sensor without using any special materials/printers. So for the use in robots it will be better to simply use the approved quadrature sensors.

Wednesday, 12 June 2013

Proof of Concept: The cheap DIY optical potentiometer

Recently I did some tests regarding the idea to make a fully printable optical potentiometer.

So I did the first proof of concept by simply using photoshop to print a linear gradient on a sheet of paper and holding this paper between an IR-diode and an IR-phototransistor. The result was this: 

The horizontal axis is the length in cm. The vertical axis is the measured voltage (transparency of the paper). At 0 cm the paper was completely black and at about 30 cm (length of an A4 sheet) it was completely white. As you can see the area of the first 10cm is relatively linear, so this test was promising. 

In the next step I cut of the area between 10 and 30 and enlarged the other therefore. The result is this: 

The blue line shows the measurement, the red line the desired and the purple one the difference. The formula above shows the regression curve that excel has calculated.

With this information I calculated the inverse function of the regression curve and wrote an openFrameworks-program that would print a non-linear gradient so that the measurement gets linear. The result is shown here:     CODE


This is the final curve. Now both axis are measured in %. As you can see the curve is relatively linear but still pretty noisy but I have to say that I used an ordinary multimeter to measure it. Maybe the curve would look better if I had something to measure it more accurately.

I have started to design a sensor case and uploaded the early version to thingiverse.

But sadly the code is still not capable of creating round gradients, only straight ones so I´m not able to try it at the moment.

Tuesday, 11 June 2013

Spherbot-GUI

Good news guys :D

It took me some days but finally I found out how to compile statically with Qt and how to upload my stuff to Github. You can find the code and the exe for the spherbot-GUI here.

If you have got any suggestions, complaints or whatever just leave a comment ;)



Monday, 3 June 2013

The Spherebot

My latest project has been a Spherebot. I used my 3D printer to print the parts and for the electronics I used an Arduino Nano with two Pololu Stepper Driver inspired by this Design: 
I had some problems in getting the Arduino to be found as a COM port by my pc. I found out that, as it seems, the designer of the Arduino Nano has forgotten to connect the Test Pin of the FTDI chip with ground. The solution of this is to do it yourself with a little solderbridge. Coincidentially the neighbouring pin is a ground pin :D .  I unintentionally connected also a 3rd pin with the solderbridge but after a look in the datasheet I knew that it is ok and the additional pin has no important function. Despite this little flaw with the missing grounding I really like these little arduinos and they are also cheap enough to be left in a project. 


After solving the problem it still didn´t work as I wanted it to work. the servo motor worked as it should but the stepper motors made crazy things. The pen motor made nothing until it was touched and then it suddenly accelerated until it reached the end. The egg motor suddenly rotated without a reason. First I tought about an unwanted feedback from the output to the step pin but as it turned out simply 2 wires of each motor were switched and this caused my problems. I didn´t thought that the motors would do anything if connected the wrong way but they teached me better xD.

The Firmware is based upon this 

Because of the lack of a convinient host-side-program I decided to write the gcode-sender on my own. It was my first Qt-project but I´m quite satisfied with it. It may not be the most beautiful code but it works. In the future I will try to write more modular code for reusing.