"Normal" plotters have two linear axes and are controlled with Cartesian coordinates. Unlike these machines, the "Polar Drawing Machine" does only have one linear axis but a rotary plate instead of the second axis". Therefore, my drawing machine is controlled with polar coordinates. Any point on the piece of paper can be described by an angle and a radius i.e. the distance between the point an the center of the rotary plate.
Technically, this feature causes some difficulties because there is hardly any CNC software available that can handle polar coordiantes. However, I have solved the difficulties and develeped my own polar drawing machine:
- Rotary plate to adjust the angle
- Linear axis to adjast the radius
- Pen lift up / down mechanism
- Ready-to-use microcontroller, based on an Arduino Mega
The drawing paper is stuck on the rotary plate. By rotating the plate, the angle phi can be adjusted. The rotary plate is driven by a NEMA 17 stepper motor, which allows fast and accurate positioning.
The linear axis is predominantely built of fischertechnik parts. This measure saves 3D printing costs and time. Moreover, fischertechnik parts can be reused in other projects.
The linear axis is driven by a NEMA 14 stepper motor. Unlike the NEMA 17 motor, it has less torque but a higher rotational speed, which is essential due to the high gear redcution at the screw. Although the stepper motor allows precise positioning, a limit switch is required to set a reference point for calibration purposes.
Pen Lift Mechanism
The pen lift mechanism is designed to lift the pen up and down quickly. Instead of using a servo motor which often causes jitter and lacks stability, I prefer using a simple DC Motor, which rotates a cam disk. The cam disk either pushes the pen down or lets the return spring push the pen up. There is a limit switch to set the end position.
The microcontroller could be a project on its own as it is a plug-and-play controller with integrated motor drivers. It focuses on controlling fischertechnik hardware, such as DC motors and a variety of different sensors.
How to get a plot from a bitmap?
Step1: Open the bitmap in Inkskape, vectorize it and export it as.dxf file
Step 2: Generate G-code with an CAM processor
Step 3: Consisting of Cartesian coordinates, the G-code has to be transferred to polar coordinates. Therefore, I have written a Java applet.
Step 4: Transfer the polar G-code to the drawing machine. The Arduino runs a G-code interpreter in order to execute the commands. It controls the stepper motors so that the plot is drawn on the peace of paper.