October 29, 2000

Progress

Platform:

  • Right foot constructed.

Sensors:

  • No progress.

Software:

  • A little tweaking

Motors:

  • Servo interface board constructed.

Other:

  • Hooked up MPC555 to external dual-port SRAM.


24 Chips, 36 resistors, 24 capacitors, 12 jumpers, and 87 connecting pins:  Bing's servo interface board (3.25 x 2.5 inches).  Click for a larger image.


This week's Bing time was spent on the following items:

After finishing the design of the servo interface board, I sent it off to ExpressPCB for fabrication.  It came back just as I designed it (I am very happy with the job they did), so I set out to solder it together.  Unfortunately, I made several errors in the board design (my first attempt was bound to be imperfect I suppose).  First error:  the holes for the connecting pins weren't big enough.  Second error: I somehow reversed the power and ground connections for six of the op-amps.  After blowing one set out, I tore them off and went to work rerouting traces.  Frustrating work, but eventually I got it all together and it works!  The purpose of the board is to route power and control signals to 12 of Bing's servos, as well as get two different types of feedback from each servo:  position and "torque" (approximated by servo current use).

To measure servo position, I will solder a lead onto the center lead of the potentiometer that is used inside the servos to measure position.  I then feed this into an op-amp configured as a voltage follower to isolate it from the circuit, and then the result is fed into one of the MPC555's A/D converters.  In total, this board requires 12 PWM channels to run, and 24 A/D channels to capture the feedback (25 actually, as I will need to capture the servo power voltage in order to scale the position measurements).

To measure current use, I use a little chip from Linear Tech called the LT1787 Current Sense Amplifier; I then feed the output into the other side of the op-amp, again to isolate it from the other circuitry before feeding it into another A/D converter.  The voltage is biased upwards to get it away from the zero volt ground rail using two resistors (thanks again to HarryWLewis for his assistance in getting the circuit to work!).  Here is the circuit. Most of the components are surface-mount parts which are tiny and a little bit tricky to work with (do not sneeze while working!), but their small size makes a circuit like this practical for use in a small robot.  This circuit is replicated 12 times on the board:

I also assembled Bing's right foot.  There are a few problems still at present.  The contact "switches" built into the foot pads are malfunctioning and will need to be retooled a little bit.  Also, the toe section is not quite stable enough when the main foot pad is off the ground; I will fix this with one or two small rubber pads added to the toe.  In case the picture on the main page isn't enough, here is another one:

Finally, I am making progress on the new vision board.  Well, a little bit of progress, anyway.  I got the MPC555 microcontroller to talk to the external dual-port SRAM that will be used to communicate the images between the dedicated Atmel AVR board and the MPC555.  This wasn't too difficult; the hardest part was making a cable for it.  Here is a bizarre picture of that cable, along with other messes: