After an evening at BuildBrighton, exchanging ideas and motor control circuits, we've had a re-think about our CNC-based pick-and-place machine. In fact, we've had several re-thinks, returned to abandoned ideas, discarded previously agreed ideas and gone around in circles enough times to make everyone very, very dizzy!
At first, we concentrated on making a machine that would be simple to understand during it's construction.
We concentrated on theoretical accuracy - using a small angle stepper motor, relatively few teeth on the cog, sticking to numbers that were easily divisible and so on. The problem with this approach is that actually obtaining parts is quite difficult - 1.8deg steppers are quite expensive (£20/unit) wereas cheaper, salvageable motors (from printers, cd drives etc) are more difficult to drive, and have peculiar voltage requirements.
Our compromise is this -
Where possible, use parts that can be salvaged from easily obtained hardware.
An old, obsolete PC could be a major source of parts - the power supply gives us multiple 5V and 12V supplies, the CD and floppy drives provide 4-wire (2 phase) stepper motors, specifically designed to run on 5V/12V. The IDE cables are perfect for connecting homemade PCBs to other parts on the machine (old hard drive cables use 0.1" pitch, the same as breadboard prototyping and lots of through-hole components, pin-headers etc).
Rather than concentrating on using motors and belts that make the maths for calculating steps per mm easier, we're going to build a machine that works with mostly salvaged parts. The final device will be a "puppet and playback" machine - the user will manually position the picking head either using buttons on the machine, or using a PC/software interface, then record the co-ordinates (in terms of steps rather than mm from a known origin) back to the PC/eeprom memory. Once one complete "animation" has been recorded, the script can be played back over and over again.
This way, the actual accuracy of the device becomes less important - it just has to be "accurate enough" to pick up a component and place it on the board. We're not going to be loading g-code type files into the device, or have to do tricky conversions from one format to another. The machine will simply use a record-the-steps-and-play-them-back approach for placing the components. So the actual distances travelled and units used won't matter; if you're using 1.8 deg steppers and half-stepping to give 400 steps/rev, with a 5mm belt, it doesn't matter how far between components the head moves: the machine will simply remember x number of steps on the x-axis and y number of steps along the y-axis. Someone using a machine with 7.5 deg steppers will simply have fewer steps in each axis to travel the same physical distance.
Talking of belts, we've decided to ditch them and go with a rack-and-pinion system.
This means we're removing another potentially costly part from the bill of materials - a 1.25mm belt can be had from a printer or a scanner, but it may be 1.2mm, or 1.25mm, or the imperial equivalent, a 0.05" pitch belt. All these belts need to have the right pulley or cog, with the teeth exactly spaced to match the belt.
By using a rack and pinion approach, everyone can use the same set of laser-cutting templates, and matching the right pulley/cog to your (possibly unknown) belt is no longer an issue.