
This project is moving along on the slower side of things, but moving along none the less. The completed 3-Axis motor driver board is shown on the left and the accompanying software is shown below. The board receives commands through the computers serial port and translates them to motor movement and / or configuration commands.
So far the board is programmed to do High or Low torque full stepping on each axis, but I plan to implement half stepping as well. Microstepping however, I've not yet decided if I should implement. There are also 2 dual DAC's and accompanying comparators to act as current sensors to allow chopper drive operation. I have the board set up so you can select either a 1ohm or 0.1ohm (both 1%) power resistor as the current sense operation. This allows different current level motors to be used with minimal resistive losses in the sense circuit.
The current sense level is set with the DAC's with 12bit resolution, and the set value is sent to the comparators. The other end of the comparator is shorted to the white power resistors (one for each coil) to sense the voltage and hence current through the coil. If the comparator is tripped, it triggers an interrupt on the main uC (pic18f452) which tells which coil was tripped and shuts off the associated power transistor. HOWEVER... I implemented hysteresis on the comparator to try to avoid transient witching of the power transistors but I forgot to isolate the associated resistors from the current sense resistor (with a voltage follower). This means that the hysteresis resistors are in parallel with the current sense resistor. With the 1 ohm resistor, I get an effective resistance of about 0.6 ohms. It's too much of a pain to add the buffers to the board, but adding some larger hysteresis resistors (>1Meg) might be doable, and reduce (but not fix) the problem.
As for the software, it's still in Beta form. Right now it sends individual commands to the board controlling each axis' rotation, speed, and DAC and displays the position of each motor. It also allows for abort commands, and zeroing the axes. The software also loads G-Code files but I have yet to build the parser and translator.
So the main holdups in this project right now are the power supply (which is a standard ATX supply), but more importantly the frame, and linear drives. I've been pricing out some aluminum T-slot framing from different providers. I know from some of my work around the NCSU lab, that that type of framing, when done properly, can be very sturdy. Maybe around Tax refund time I'll be ready to purchase some t-slots profile and start assembling the frame.

No comments:
Post a Comment