For an experiment I needed to motorize a linear stage and also monitor the temperature throughout the lab. Instead of doing the easy thing and purchasing pre-built sensors and controllers, I decided that it would be fun to build my own.
The project consists of a main controller board, and several distributed smaller temperature sensor boards. The controller board is driven by a PIC18F2321 micro-controller. It interfaces with a bi-polar motor controller chip, Allegro A4982. By sending the motor controller a simple pulse, it moves a stepper motor between 1/16 and 1 full steps, depending on the configuration. It also talks to the distributed temperature sensors via I2C. While I2C is typically for interchip communication on a simple circuit board, by slowing the clock down sufficiently, the chips can actually be quite a ways apart, with the limiting length being effected by the inductive/capacitive effect of the cables.
The controller then sends the gathered temperature data to the host computer via RS-232. Unfortunately, the computer I am interfacing with runs Windows 98, so a USB implementation would be much more complicated than if a more recent operating system were in use.
If you are interested in more information or the schematics and board layouts, leave a comment and let me know.