final project -- weekly assignments -- about me -- fab academy
Week 08/09: Paint Me On One Of Your Whiteboards
For this assignment, I teamed up with Daniel. But what to build? It is supposed to be something cool, but then it is also supposed not to be too much work. We ended up rejecting a lot of more or less sensible ideas, mostly because the standard, X/Y/Z machine is just too boring to do.
What we did finally build is a simple thing, at a first glance. The basic idea was to build a draw bot - a pen hanging from two strings in front of one of our whiteboards and drawing whatever we want it to draw. The missing downwards actuation can be done by gravity, while magnets can keep the pen at the board.
Two Strings Attached - Mechanics
While simple at a first glance, the mechanics of the draw bot are a bit tricky when actually building it.
The pen is held by a bogie that also provides a function to "switch the pen off" - We won't want to draw all the time. That bogie is hanging from two strings, which can't be totally horizontal - That just plainly wouldn't work. So, we had to put their mounting points a bit above the whiteboard:
The parts to mount those Item profiles, as well as the motor mounts themselves and the spools on the motors were drawn in Inventor and printed on some of our Ultimakers (ending up in hardly two parts being the same colour):
The string is doubled up - it runs from the spool to the bogie, around another, free wheeling spool there and back to the corner mount (where I forgot to add a mounting point... Luckily, there is half a ton of screws you can tie the string to). Effectively, that doubles the resolution of the 0.9° stepper motors, and roughly halves the torque on the motors, hopefully making them just work.
The source files for the motor mounts are here to download, with the stl-exports of the print parts here.
In Flames - Electronics
We couldn't order MTM-kits due to the difficult ways orders are handled here at the uni, so we had to improvise. Seeed Studio had no problem making a bunch of motor boards, and Digikey of course had no problem sending us the parts to stuff them. So, we did just that, just adding a few markings, like marking the first pin of the ribbon cable connectors.
They looked good. And they blew up. More on that is on Daniel's page - There is an error in the BOM.
More documentation on our machine can be found here.
To Math, Or Not To Math...
...that is not the question. To get the draw bot to actually draw, a bit of maths is inevitable - That is one of the drawbacks of not building the standard cartesian machine.
I packed up the modifications to the framework and our machine, so you can play around with it.
So, for the more mathematically inclined, a bit of math.
The Reverse Transformation
The reverse transformation (from cartesian coordinates to machine coordinates) is actually fairly easy - An old greek madman and his famous way to calculate the sides of a triangle is enough to achieve that. The biggest problem about this part was to actually get it into the Gestalt framework - First, it assumes all transformations to be linear (very few are), second, it's a heap of undocumented, mostly uncommented code that is hard to add to. Kevin's mail documenting his delta bot additions was a great help:
The Forward Transformation
The forward transformation (from machine coordinates to cartesian coordinates) is a bit harder, essentially it is about finding the sensible of two possible solutions to the problem of having a triangle defined by the lengths of its sides. I started out with a google-found solution, which of course didn't work. Then, I started working with the reverse transformation, and found a different solution that worked. And seems not to be used by the framework, as a massive typo in it never lead to any kind of problem.
Lessons learned:
- The Gestalt Framework doesn't synchronise axis at all. Each axis just starts at its own pace and finishes when it's done. That fucks up any moves which are not along one of the machine axis.
- The Gestalt Framework doesn't do anything to move straight if the machine axis are not, so any longer move on our draw bot ends up as an arc segment.
- Doing Maths is fun. Programming Maths into Python when you don't really speak Python is no fun and has strange results.
final project -- weekly assignments -- about me -- fab academy