[mowbot] Lawn Ranger Part 1

Dave Everett (deverett nospam at idx.com.au)
Sun, 17 May 1998 21:23:34 +1000

The first part of the Lawn Ranger article was published in June 1990.

The Lawn Ranger was powered by 2 12-volt deep-cycle batteries and could run
for 2-3 hours on a charge.

In normal operation, the user drove the robot to the grass area using a
hand held controller, then cut a border around the area and any obstacles.
The robot was then positionedon the cut/uncut border and set running. When
the robot could detect no more uncut grass it would switch off.

The safety features were, a shut off switch, pivoting blades and a bump
switch on the front. No sorce is provided for the pivoting blades or the
blade hubs.

Grass sensing was handled by 15 IR pairs. Each IR pair had an air-gap of
about 2 inches for grass to pass through. The robot appears to have been at
least 30 inches wide. The IR pairs were available from the author for $8.99
per pair.

The sensing worked by reading the sensors every 50ms.

10 bytes were used to take 5 successive samples, then the 1s (grass) were
tallied for each column. If the count was 2 or greater then a 1 was
recorded for that sensor position, if less than 2 then a zero was recorded,
5 samples might look like this:

| byte 1 | byte 2
-----------------------------------------------------
Sensor #
sample 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
-----------------------------------------------------
1 1 1 0 1 0 1 0 1 0 1 0 0 0 1 0
2 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0
3 0 1 0 0 1 1 1 0 1 0 0 0 1 0 0
4 1 0 1 0 0 1 1 1 0 0 0 0 0 0 0
5 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0

by tallying the columns as described above you can see that the result
would be
111111110000000 the cut/uncut border clearly appearing around bits 8 and 9.

new steering data would then be sent to the motor-controller board to move
the robot so the border would be around 14 and 15. (bear in mind that I am
deducing some of the operation as the article details are scant.)

The rest of the article deals with the detail and construction of the CPU
board.
The CPU board uses a Z80 clocked at 2mhz, 2 Z8420 PIO's handle the I/O, the
program is stored in a 4k eprom and static memory is handled by 2 4k rams.
I'm not certain why so much ram was used, it seems as if the total ram
requirements could be met with less than 64 bytes. The CPU reads the
control buttons, grass sensors, bump sensor, and outputs commands to the
motor board.

End of part 1
-----------------------------------------------------------

Obviously the CPU board could be replaced with any modern single chip
micro, some extra I/O decoding would be neccessary, but the board would be
much simpler and not require as many support chips as the Z80 requires.

Using the authors guide of 2inch air-gaps for each IR pair, my robot would
only need 6 pairs. I'd also use a slightly different technique for sensor
sampling.
The author recorded the sensors as bit patterns, then after 5 samples he
determined the state of each bit and incremented a register for that sensor.

I would set up 15 registers (or 6 in my own case) and increment each one as
I read the bits, this would make final tallying very simple.

Early on in our discussions, the idea of grass sensors was damaged by the
possibility of these sensors becoming blocked with mud or grass clippings.

I'm considering revisiting that idea and will post the results here.

Dave Everett

Mowbot Project Website
http://www.idx.com.au/~deverett/mowbot/index.htm