The heart of each CNC machine, and many more automated systems for that matter, is the stepper motor. This motor allows for precise control over the spin of it’s rotor by applying pulses to the stepper’s coils. This project explains how to build a cheap and simple controller for such a motor, and it does that step by step, hehe.
The components used come from an old scanner. You need a stepper, a ULN2003 IC and the two steel rods on which the scanning lamp slides. The ULN2003 has seven high current darlington transistors and four of them will be used to drive the coils of the stepper motor. The control pulses will be given by a PC software through the parallel port. Nowadays PC’s don’t have the parallel port anymore so look for an old computer. Parallel port is also called printer port on some machines.
Pins 2 to 9 of the DB25 parallel port are assigned to Data bits, in our case the first four bits are of interest. The logic words that come out on the data bus of the parallel port are given by a pc software, Turbo CNC. Of course this can be taken into a much more developed project. As presented, if a bit is set to “1” then the associated coil gets one pulse because the ULN2003’s darlingtons act as inverters.
The project provides a test program to see your controller in action. For this you will need to use those metal rods to form a testing rig. Fairly simple thing if you know your way with a screwdriver.
A PCB layout and information for a three axis controller is provided as well. With the three axis all output pins from the parallel port are used and three ULN2003 ICs but you could use only two because each one has seven darlingtons under the hood.
It is really a good project, educational as well as practical if you need a low cost controller, and steppers can be found anywhere today… look inside your cd-player for example. So go for it!
CNC Controller made from scanner components: [Link]
The project starts with a commercial remote controlled car that has to be modified so that it can be interfaced with the Phidget controller. The easiest way to accomplish this is to modify the hand-held controlling unit to receive input from the Phidget controller instead of a human driver.
The end result is a .NET-controlled RC car with wireless camera for stealthy operations.
.NET controlled RC car with wireless camera: [Link]
The ARDF controller was created after a request to be able to play random audiofiles for an ARDF transmitter, most existing designs were based on an 16F84, a somewhat aging design and better controllers are currently available. Also most controllers had a 5-10 mA current drain which can be improved, this design requires less than 400 uA.
To allow a very small controller footprint and flexible configuration the timer is not configured with (dip) switches but via a serial connection and a host PC. The memory option is optional and is only required for a wave file playback, all other options (CW, Single Tone, Tone Sequences and Audio Effects) do not require the I2C memory chip.
ARDF Timer / Controller: [Link]
This project was developed as an inexpensive way to drive small dc brushed motors as positioning servos for use on a desktop sized CNC machine. The board is interfaced to the PC through 2 pins of a parallel port. The drive signal on these pins is known as quadrature drive. The power stage consists of a power op amp driven in constant current mode. The internal PIC processor ( a 30f4012 from Microchip ) is programmed in C through the C30 compiler and the Microchip IDE. The servo loop parameters are programmed through a serial port connection and are saved in the dspic eeprom.
Once set for a particular drive, they should not need to be changed. The serial programming interface is used to tune the PID and other servo loop parameters to optimize the performance in a particular application. The serial port runs at a fixed baud rate of 9600N81. Any terminal program such as minicom, gtkterm, or hyperterminal may be used to talk to the dspic-servo.
PIC30f4012 DC motor controller: [Link]