This instructable describes an experimental 'hanging plotter' that uses two 'Arduino Uno R3' microcontrollers each of which is connected to a stepping motor. A vertical line is obtained if both motors rotate at the same speed for the same period of time. A sloping line is obtained if the motors rotate at different speeds. [1]
Jun 12, 2018 Example Order Form Screenshot, Cable Drums not optimized I need to create an algorithm that matches: Cable Type, Cable Size & Delivery Date and optimizing the cable (circuit) lengths which can fit on each drum (usually 500m length capacity).
Using two arduinos simplifies construction as there is no limit (other than the limits imposed by I2C) as to how far the motors may be spaced. This is a distinct advantage if your motors have short leads. It also simplifies the plotting algorithm as each 'motor' can have a different delay.
G-code co-ordinates are sent to the plotter via a bluetooth link. This process, along with an Inkscape tutorial on how to create images such as the flower, are fully described in my instructable https://www.instructables.com/id/CNC-Robot-Plotter/
On receipt of a g-code XY co-ordinate, the 'master' arduino determines how much 'cord' each motor must 'pay-out', or 'reel-in', the direction each motor must turn, and the required delay-between-steps such that both motors start and stop at the same time. The 'master' then sends this information to the 'slave' after which both motors start. Two-way I2C handshaking between the 'master' and 'slave' keeps the motors in 'sync'.
![Allocating cables to drums algorithms Allocating cables to drums algorithms](/uploads/1/2/5/0/125026208/768736496.jpg)
[1] The lines will actually have a slight curve depending on the length of each cord. For a given plotting area this curve decreases as the cord length is increased. Good results are obtained with cord lengths around 1000mm. Failing that just add some intermediate plotting points.