Home
Robots
Notebook
What's New
Links

A Look at the Little Green Machine II

March 2006


Fig. 1: The Little Green Machine II.

Introduction

The Little Green Machine II was entered into the Trinity Fire Fighting Contest in 2006. It failed to qualify for the competition. Anyways, from this project I learned a lot and I thought I would show off the robot a little. This note shows how it was constructed and what it looked like, it will also compare LGM2 with the original LGM.

As you can see in Figure 1, the robot was pretty simplistic in mechanical design. It uses two DC gear motors for differential drive. Although these motors provided the much needed power that the hobby servos in the original LGM did not, they were far too fast and built up too much inertia. For LGM3, I am planning on using slightly smaller motors and wheels. The wheels are RC tires, about 3.5" in diameter and 1.75" wide. The main frame is an 8" by 8" piece of 1/4" thick green PVC. The robot has one omni-directional caster which is mounted at the rear of the robot. Figure 2 has a table showing a comparision of LGM2 and the original LGM.

  LGM LGM2
MOTORS HS-311 SERVOS DC GEAR MOTORS
WHEELS 5.5" O-RING ON PVC 3.5" DIA RC TIRES
FRAME 11" ROUND DISK 8"x8" PVC DECK
Fig. 2: Little Green Machine II vs. the original

From the front and side views (Fig. 3) you can see most of the sensors. There are two GP2D12 sensors mounted on the bottom of the top deck facing to the right side, one mounted there facing to the left side, and one facing forwards. They are all set in 3" from the edge. The little mounts that the IR rangers are held on with are small pieces of L-angle aluminum, drilled and painted. The GP2D12s all are hooked up to analog inputs on the PSoC microcontroller.

The UVTron is visible in the first view of the Little Green Machine (Fig. 1), it is the small beige rectangular PCB in front of the breadboard. I modified the UVTron by adding a 1uF capacitor at position CX which increased the length of output pulse from 10mS to 1S. This means when in the presence of UV light (the candle) the UVTron puts out a constant high voltage. The pyroelectric sensor is the white cone next to the fan. The pyroelectric sensor has an analog output but since I used a window comparator with great success on the original LGM I chose to continue using it. This circuit allows me to hook up the pyroelectric sensor to a digital input and simply poll it rather than have to do AtoD conversions.


Fig. 3: Front and side view of Little Green Machine II.

The PSoC microcontroller was plugged into the breadboard you see at the back of the robot in figure 4. The breadboard also carries the 8x1 character LCD and the 7404 used to create the direction signals for the motor driver. The protoboards in front of the breadboard are for power regulation and distribution. The lower board provides servo-like headers for all the sensors as well as the window comparator for the pyroelectric sensor. The upper protoboard is the 9VDC to 5VDC DC-DC converter based on the MAX744A switch mode DC-DC converter IC. The upper protoboard also carries the fan driver circuit. (NOTE: as this was designed almost 3-years ago the 744A is now listed as being obsolete, someday I'll design a new power supply).

The two blue LEDs are the processor power ON led and the motor power ON led. The red switch next to the motor on led is the start switch. Not visible in these pictures is the power distribution bar, power switches, and motor driver PCB under the robot.


Fig. 4: Little Green Machine II's electronics.

The Little Green Machine II uses a simple program to run through the maze and put out the fire. The low level motion controller (motor.h) has functions such as:
void goForward(char inches)
void goBackward(char inches)
void turnLeft(char degrees)
void turnRight(char degrees)
These are handled at the hardware and interrupt levels and basically stop the motors when the encoders read back that the distance traveled is at its goal. Wall following (fightfire.h) is achieved by a PD loop which computes how far off the value of the side GP2D12 is from desired and adjusts the left motor speed accordingly. Update 2007: It wasn't until several months after the competition that I picked up a book by Joseph L. Jones: Robot Programming and realized what my problem all along with LGM2 was. My wall following sensors were directly above the wheels, which meant that geometrically they always gave bad date.

The higher level logic is all in fightfire.h and is built upon just those few motor control functions and some wall following and doorway detection. One of the things you might notice if you look at the code is that there are a lot of loops in which the robot goes forward 15 inches and then checks its forward IR sensor. I made the compromise of being a little slower to overcome the failure of the forward IR to accurately read distance while running when the distance is over about 8".

The sensor drivers are all fairly self-explanatory (they are well coded also). The zip file of the source code only contains the header files for the sensors and motors and the main.c file. This was done because I have limited space on the server. If you want the complete set of files, which is only really useful to those using a PSoC as thier microcontroller (which appears to be all of about 5 people on the planet), just drop me an email at mfergs7 at gmail dot com.

REFERENCE MATERIAL:
COMPLETE SCHEMATICS (PDF)
MECHANICAL DRAWING (PDF)
CODE (ZIP)