Archive for February 2010

Robot’s First Steps

Lots of work is going into the software, and the robot has broken the surly bonds of my bench supply.  Here are a few new pictures with an Apple IIgs shown for scale.

Yes, the sonar is nearly falling off.  Let that teach me to use double-sided tape.

The bottom deck includes the motors, motor driver, and the power distribution board, shown here removed.  The power distribution board contains the battery holders, a main power switch, two separate fused circuits for logic and motor power, an external power connection useful for testing on the bench, and an emergency kill switch.  The kill switch is simple and reliable: a wire in series with the motor power supply protrudes from the back.  Pull the wire out, and the motors stop.  Logic retains power for testing and diagnostics.

The final photo shows the LCD on top of the micro-controller board.  There is an XBee for wireless programming, debugging, and telemetry.  Also, note the GPS, a small board for 3.3 VDC power distribution, and a level converter board.  The unconnected yellow wires are for hardware flow control to the XBee, but the XBee operates adequately without flow control.  I also have space on the top deck reserved for a Vector V2xe magnetic compass.

Not obvious in these photographs, I’ve added a remote kill switch.  Send a “CTRL-C” character over the wireless link, and the software disables the motor driver.  The interrupt handler for the serial communications interface checks for and handles this control character, so the robot should respond to the remote kill even if the most of the software has gone haywire.

I’ve switched over to interrupt driven serial I/O from polled I/O.  This change should improve software performance and make the rest of the software easier to write.

I’ve replaced the plated metal standoffs with 2″ Nylon standoffs.  They’re lighter and should help magnetic compass accuracy.

I’ve finished software to parse NMEA data from the GPS and software for basic tele-operation.

The software needs a lot of work still, but most of the low-level infrastructure is in place and working well.  Also, I’m dissatisfied with motor torque.  The robot works well on flat ground but grinds to a halt on bumps.

Check out the robot in motion on YouTube.

It’s Alive!

SIZE: 9″ (W) x 6″ (L) x 4″ (H)

WEIGHT:  About 2 pounds

BRAINS:  MiniRoboMind – A Motorola 68332-based 32-bit processor running at 25 MHz with 512KB RAM and 512KB Flash; Software written in C with GCC; An LCD for taunting competitors; An XBee radio for telemetry and diagnostics

BRAWN: Two Pololu Micro Metal Gear-motors with a TB6612FNG motor driver and 3.25″ R/C aircraft wheels

SKELETON: Expanded PVC, 1/4″

POWER: 8xAA NiMH, with separate fused circuits for the logic and motors; Emergency kill switch (the bane of all robots attempting to conquer the world)

EYES: 3 Sharp IR range finders, 1 Maxbotix sonar, and a Locosys LS20031 GPS receiver

It works.  Electrical and mechanical integration is complete.  The GCC toolchain produces working binaries.  The software reads all of the sensors and controls the motors.