Saturday, September 10, 2005

Making Circles 10 Sept '05

One thing I didn't mention in my last report was making circles. The Bresenham circle routine is particularly good because it uses partial differentials to compute the next point. Since a circle is a second order curve the problem can be solved using only addition and subtraction.

I have the software for that solved for one octant. I just need to extend it to the rest of the circle. I have some ideas.

For some good not too technical discussions of the Bresenham circle and line drawing algorithms visit here.

I use a variation of the Bresenham line drawing algorithm. It is much slicker in the way that it accomplishes its purpose than any other algorithm that does the same thing.

Wednesday, September 07, 2005

Design Progress - 07 Sept '05

I have been working on the hardware and software for the simple control system. It is a 16 bit system that uses a parallel port to control the phase windings of the stepper motors rather than the usual step and direction controls.

My thinking is: why not let software in the computer stand in for hardware on the boards. This hardware and software combination has been working for four years so it is pretty well tested. There are some problems. Maximum step speed in the start stop mode is about 400 steps a second. This is caused by three features of the current system.

1. There is no acceleration/deceleration ramp.
2. There is no quick way to collapse the magnetic field of a de-energised coil.
3. A high voltage (relative to the motor voltage) and current limiting resistor are not used. This is called a L/2R or L/4R system depending on the volatge comingfrom the power supply. With the motors I'm using a 24 Volt (nominal) at 10 Amp DC supply should be adequate. It is kind of an energy hog, but it is cheap. A good place to start.

For the acceleration/deceleration ramp problem I have mapped out a way to handle it that uses a table driven system with a standard acceleration table, a custom derived no load acceleration table, and a cutting acceleration table. The no load and cutting acceleration tables are derrived from the standard tables on startup by reading acceleration values from a start up text file.

The second problem is a hardware problem. I have figured out a way to collapse the magnetic field of a de-energized coil up to three times as fast as it was originally charged up. It will require a power resistor to dissipate the energy. It will require a modified board design, but should be easy to prototype with the current boards.

For the third problem I'm going to get a power supply and some resistors. I'm going to use a separate resistor for each coil pair (6 wire motors) That would be six resistors of about 15 ohms each 50 watts dissipation per resistor. That would be for a 24 volt supply and 1.5 Amps per energized coil.

Further updates as they become available.