The parts came in the mail Monday! Was very excited to test out the raspberry pi and got a "Hello World!" working in no time! No problems with the parts so far, everything has been looking up. I'll try to edit and post the unboxing / basic project explanation video sometime over the weekend.
Bézier Curve:
For the past couple days, I've been pondering how to tackle the problem of "tracing" a Bézier curve. After a few minutes on wikipedia, I realized that Béziers are a lot more straightforward than I had originally thought!
The basics of a Bézier is to draw lines between the ends and the controls, then find a point at percentage "t" out. From these points you draw a line and continue out, etc. and repeat the process until you are left with one final point, which represents the position on the Bézier "t" percent of the way to the other end...
Wikipedia's "Constructing Bézier curves" has some great examples of how exactly this is done. The one that inspired me the most is this one.
After a couple of minutes and well under 50 lines of programming I cranked out the render seen above.
Hello! This is where I will post info and pictures of my Pen Plotter building experience.
My concept is based a lot off Ytai's IOIO pen plotter (See Right For Video), but will use a Raspberry Pi Model B instead of the IOIO board. This was a tough decision to make, but I decided in the end that using the Raspberry Pi would provide more support resources for programming, had a wider selection of libraries for the GPIO, and seemed easier to learn and set up.
My design consists of a smaller easel and notepad, but follows the same "V Plotter" setup. My plan is to have an Android tablet send an SVG to the Raspberry Pi via some intricate wifi broadcasting and LAN network programming. The Pi will then trace the file by telling the Stepper motors how to change the string length and the servo motor when to lift the pen off the paper (this is your real-world application for hanging-weight problems ;)).
An example of an Scalable Vector Graphic. An SVG uses path information to tell the renderer where to draw lines and fill in shapes instead of using the pixel by pixel data structure used by most other image file types. This allows an SVG to be drawn and scaled to any size without loss in quality. Open this file in a new tab, and zoom in and out to see how image quality is never lost.