HAVACOMM

PIC CHIPS PROGRAMMED FOR DIGITAL FEEDBACK SERVOS

HOMEOVERVIEWR/C AIRCRAFTROBOTICSOUR ADDRESS

There are basically two different programs, model airplane/car and robotics.  These 2 applications are treated quite differently.  Let us first discuss the robotics application.

There are 2 separate robotics servos.  There is the positioning servo and the wheel servo.  The wheel servo is "phase locked" to the chip clock so if you send the same number to 2 wheel servos arranged side by side the robot will track almost perfectly straight.  The only error would be the tolerance of the clock crystal.  Stop is the number 128.  Forward is from 129 to 255 while reverse is 127 to 0.  Any type of turn is possible by sending a different number to each servo.

The positioning servo is basically the same as the airplane servo except that it is addressable and only requires data when a change in position is requested.  The data format for the addressable servo is shown in data diagram.  Bits 0 through 5 are the address bits which allow addressing 64 servo.  Bit 7 is reserved for future servo resolution control and bit 7 is the address bit that enables new servos to be programmed.

Each servo in the robotics version is addressable.  The address and data for any addressed servo is sent as 2 consecutive 8 bit bytes.  The address byte is first then the data byte.  The servo comes from the factory as address 255.  to program a new address into the servo 2 bytes are sent.  The first is 255, the address of the new servo, the second is the required address.  This can be any number from 0 through 254.  Once these bytes are sent the servo will only respond to it's programmed address. 

Unlike the model airplane application, the servo is only commanded when a change is needed.  The servo remembers the last command sent and will remain in that position until commanded to change.  This makes it possible to control multiple servos, (up to 255), without a long delay in response.  The servo is actively held in position, that is you may not move the servo to a new position mechanically.

All servos are connected in parallel in a 3 wire bus.  There is no need for an address decoder and the servos will respond directly from any computer serial port or receiver squared output