Servos and motors…
Alright… Servos are not motors and motors are not servos. Consider a motor, it is a dumb machine -add power and it spins and you can vary the power in different ways to make it faster and slower and stronger and weaker. This is done with a motor driver chip (A small robot would use a L293, for example). This motor driver takes a small signal from the robot brain and turns on/off a much bigger amount of juice that goes to the motors. There are step motors as well, but still you are just sending power to a motor and it turns now, with the steppers, just in a different way.
Now a servo (and the i2c servo driver) is a diffferent thing. A servo does not spin, rather it can rotate usually 90-180 degrees. It does have a brain in it, as well as it’s own motor driver (there is after all a motor inside the servo, as well as some gears). The servo gets constant power as well as one signal wire. This signal wire (connected to the microprocessor, and RC reciever or a servo driver chip) sends a signal to the servo that the servo decodes and uses to know what position we want it in. I.e. tell it to goto center, and it will every time.
More complicated: The robot brain uses an internal timer that it uses to control the signal going to a servo or to control the PWM (speed control) of the motors. In the case of the picaxe chips, these two things can not be done at the same time with the same internal timer. Bottom line is that with a picaxe, you can have servos or speed control of your wheels, but not both. In my case, a i2c servo driver solved the problem. This is an external chip that connects to the picaxe with the i2c lines and can control up to 20 servos. Servos, not motors. The one I use comes as just a chip without a board but there are a ton of different serial and i2c servo drivers out there.
On top of that, there are also motor drivers that speak i2c or spi or uart serial. Some of them have provisions for encoders on-board, speed control, braking and other kinds of stuff. Again, there are a ton of these out there as well.
I2C-- The nice thing about i2c in general is the fact that everything on those two lines has an address so you can stack up almost unlimited doo-dads on the same two lines with no probems. In my case, my i2c lines are attached to servo drivers, eeproms, BlinkM leds and my LCD screens. All attached to the same 2 wires, all work fine.
One more: Both voodoo and I are working on our own versions of serial motor driver boards. There is another forum thread on the subject, BTW. I don’t like how any of the serial motor driver boards work (the ones I can buy) so I/we are just making our own. The forum post is to start getting ideas about features we want to code in.
Hope that helps.
I should mention that there are continuous rotation servos as well --The accept servo commands/controls just like a regular servo, but they rotate like motors. Sending different “position” commands will vary the speed of the rotating.