the rudder (or other servo)
is not exactly centered,
adjusting the pot in either
direction causes the servo
to move very slightly from
the idle, center position.
Once satisfied that
everything is centered, a
momentary ground signal
to PORTB, pin PB3 causes
the software to enter the
RUN mode — and just like
that you’re calibrated!
The calibration offset
factor is incorporated into
the servo run tables. This is
much easier than twisting those tiny control rod linkages!
The completed GPS and Navigation boards are shown
in Figure 6. (GPS is on the left side). I used some thin
galvanized sheet stock I had around that was conveniently
perforated with a hole pattern. The board sandwiches are
mounted to this baseplate with 1/4”, 4-40 hex standoffs.
The SPI bus joins the boards at the top and the three-wire
rudder command line can be observed coming off the top
of the Navigation board.
The common +12V battery supply uses two-pin mini-MOLEX connectors. This subassembly fits into the forward
hold of Mr. Darby, right above the main propulsion battery
and the logic battery — an 18 amp hour gel cell for the
motors and a seven amp hour job for the logic. In Figure 7,
the end of the R/C receiver can be seen with its power
switch above. The motor speed controllers are on the
extreme left and right of the radio shelf, and a homebrew
bilge pump controller breadboard is lower center. (The bilge
pump is a window washer automotive pump.
The bilge controller senses conductivity between
a set of probes positioned deep in the bowels of
the boat and has 15 seconds of run time hysteri-sis built in after the probes are pumped dry — all
analog, no PIC!) The R/C receiver battery pack is
out of sight in the rear of the radio shelf.
companies listed in the Resources. I had the Garmin 15/H
on hand from another project. It’s nothing more than a raw
12 channel GPS receiver with WAAS that outputs a wealth
of navigation information in so-called “sentence” format —
(this being an all ASCII printable line terminated with a
CR/LF). Don’t confuse sensor units with handheld or automotive GPS units. The latter create all their functionality by
multiple layers of software. The sensor is programmable via
a free Garmin utility called Sensorconfig. This PC utility
allows the sensor to be set up to output desired navigation
sentences, arm/disarm WAAS, etc. Any so-called OEM GPS
sensor unit can be used as long as it supports WAAS; some
do not. My sensor requires 10-40 VDC and I added a lithium coin cell to hold GPS satellite parameters when the main
power is off. This allows the sensor unit to lock up to GPS
birds and present valid navigation information within 45
seconds of power-up. If interested, a sensor unit can be
directly connected to a PC with a terminal program running.
You’ll observe line after line of comma delimited fields that
don’t make much sense — except to our GPS engine!
GPS Engine Software Overview
The GPS engine extracts and processes key navigational
information from a dumb sensor unit and passes that info
to the Navigation engine.
In order to understand this process, take a look at an
actual GPS sentence as presented to the GPS engine:
This sentence is the standard “position” information
carrier. We use the following fields:
The GPS sensor is readily available from
36 SERVO 08.2009