Tuesday, September 1, 2009

“I like to move it, move it”

I decided to use a belt drive to move the printer, partly because I already had an old timing belt (did I mention I’m cheap?). My intention was to use the printer’s stepper motor to move the printer, but while it was more than adequate to move a sheet of paper, it wasn’t up to the task. That’s just as well because I hadn’t figured out how to make it return to the same starting position reliably. Clearly a more powerful stepper was needed but how do I get it to move the printer EXACTLY the same distance as the original moved the paper? If you are already familiar with how steppers work then you can skip this next bit.

Stepper motors require a driver. There are two input signals which tell the driver what to do. The first is a step pulse. With each pulse the motor advances (turns) one step. The second is the direction signal. This tells the driver which direction the motor is to turn. The signals are 5v logic and can come from any source (a push button, 555 timer, PC, whatever). A PC running software (like TurboCNC) can be used to turn the stepper an exact number of steps, at the specified speed, in the direction of your choice. I'll use this later to reset the printer and control my bins.

OK, so I decided to use the original stepper to produce “step” pulses, to run the driver, to turn the stepper attached to the pulley, to pull the belt and move the printer, and catch the fly. Easy, right? Well… First I had to figure out how far the paper moved with each step of the old stepper. Then I had to match that to the distance the belt would be moved with each step. As I found out early on, if the printer doesn’t move exactly the right distance it doesn’t just stretch the image it makes it unusable. I did some research on the internet (how did we ever get anything done before?) and found that this particular stepper has a 7.5 deg. step (48 steps/ revolution). Then I counted all the teeth on the gears and calculated the reduction ratio. Then I measured diameter of the paper feed roller to get the circumference. All that gave me the distance the paper was advanced with each step (and a headache). But wait, we’re only half done! Now I worked backwards from the belt pulley to the new stepper (1.8 deg or 200 steps/ rev) and found the gear ratio that would make them match. I got lucky and found some RC car gears that gave me the right ratio.

I made an encoder from a Sharp opto-interrupter and a disk I printed on overhead transparency film. I attached the disk directly to the old stepper. The first one didn’t work so well, but as long as you learn from your mistakes it’s not a total loss. The final and functional encoder has 48 narrow clear marks. As each of these marks spin under the sensor it produces a -5v pulse. This is fed to the stepper driver as the step input and the motor turns in synch with the encoder. Success!!! But what to do when it wants to go beyond the end of your rails? I ran the step signal through a normally closed push button switch and put the switch near the end of travel so the printer hits it, opens the circuit cutting off the signal, and stops the motion before slamming into the end and breaking something. I put a spring on the bearing block which presses the switch before it crashes into it.

Now that I had it moving I noticed that with each burst of movement the side that didn't have the drive belt would “bounce” wildly. Rather than reinstall my cable system I decided to add a second belt for the other side. This eliminates the bounce and now I can easily adjust the skew of the printer.

NEXT UP, Resetting the printer to print more than one page.

No comments:

Post a Comment