dr4wbck
The Idea
Initially, our Idea was to build a drawing machine similar to the AxiDraw, but with a Capstancapstan Drivedrive instead of a belt for driving. We just learned about this type of drive in the lecture and withwere aneager H-bottry it out. The motion system towould notbe needan to have a typical belt and only need a rope or fishing line (and we wanted to try out this cool new technique :D).H-bot.
For this,the capstan drive, we took much inspiration from the UrumbotXY 2.0.
First, we met and firstthought triedabout how to imagine,build howthe wemachine wouldin needgeneral. We decided to alignuse thealuminum bearingsextrusions toand getwheels theas desiredlinear movement.
guides.
We made some initial sketches to better understand, how the machine whould look like and what parts we needed.would need.
Then we seperated the machine in different parts that needed to be designed and to be done.
Also hereHere you can see the inital concept,concept. whichThe waswheels thatfor the corner-bearingslinear guide as well as the v-wheels for guiding the rope are placed on the middle carriercarriage and the rope is fixedfixated onat the head.
We where a bit overwhelmed of all the tasks that needed to be done and first needed to get into managing the tasks and distribute the tasks in the team.
So we split the work into thousethe sub-tasksfollowing sub tasks.
tryTrying out RAMPS (a kit containing an Arduino for the firmware and drivers) and gettheRAMPSit working with Printrun.designDesign the different parts of thexX andyY machineaxisaxis.designDesigning a headforwiththeapen withPen z axis- produce and test the prototypes and needed parts
Initial Design
In the initial design, we kept the design simple so we could produce them fast and test out the mechanism.
So we build a simple motor bracket for the motor and the linear rails:
Then we produced the capstan and pulley from the UrumbotXY 2.0:
An Initial head for:
Then for the carriage we had a Metall Carriage already as a part, which was very sturdy.
Here we needed to be carefull with the screws.
But the wheels for the second axis where on top of the other wheels, which we couldn't implement and Ferdi advised against it.
The tail was designed with only one wheel, which may have bin one cause for our problem.
Then we redesigned it to use both metall carriage, which was pretty sturdy. Also we used eccentric screws to tighten the rope.
Then we designed a head for initialy screw down and tighten the rope.
Also we produced a wire chain to connect the head with the board. In the end we noticed, that the chain was not that sturdy and was not that usable for our machine -.-.
First Assembly
After designing and printing, we assambled everything...
... cut threads, screwed everything down, assambled the capston drive rope...
... and tried to operate it manually:
yay :D
And it worked nicely :P
Continuation & Redesign
When operating manually, we needed to hold it down so that it is stable, which was the first thing we improved.
First just making a little angle in the motor bracket improved it a lot but still was oscillating...
... so we created a sideway stabilisation, which then was pretty stable.
Here the head and the initial design for lifting holding and adjusting the pen.
Then we inkluded in the head and on the side an endstop for executing g-code.
And also a never produced new cariage for mounting the cable chains for the head.
Lessons Learned
- distributing the work in a team is hard
- also finding parts, that can be operated on parallel is not that easy
- nothings works out as expected and things that can go wrong, will go wrong (as told so before)
- we should have partitioned our time more efficiently, then we whould have had a good working product on time and not spend time on little, not necessary things
Setting up the Firmware
Getting it Running
#define BAUDRATE 250000
Determine Steps per Millimeter
// Enable one of the options below for CoreXY, CoreXZ, or CoreYZ kinematics,
// either in the usual order or reversed
#define COREXY
//#define CoreXZ
//#define COREYZ
//#define COREYX
//#define COREZX
//#define COREZY
/**
* Default Axis Steps Per Unit (linear=steps/mm, rotational=steps/deg)
* Override with M92
* X, Y, Z [, I [, J {, K...]]], E0 [, E1[, E2...]]
*/
#define DEFAULT_AXIS_STEPS_PER_UNIT { 102, 102, 400, 500 }