The Navigator
PART 2
Last time, we introduced the concept of a user
friendly, self navigation system for larger vehicles
such as rover platforms and boats. Now, let’s build
the system! Here are the construction details for the
three boards involved, plus a detailed overview of
the software that makes it all tick.
A GPS Based Self Navigation System For Model Warship Water Or Land Based Robots
by JOHN W. MOLNAR
GPS BOARD — Assembly and Details
The schematic of the PIC16F876A based GPS board is
shown in Figure 1.
There is nothing tricky here — the PIC runs at 20 MHz
and the RS-232 connector J2 is used to receive serial data
at 4800 baud from the Garmin 15/H sensor device. J2 is
also used to provide a standard serial interface to a PC
running a terminal program — this allows the user access to
the simulator package. Finally, J2 provides an ISP interface
for programming the part. Be careful when using J2 (as
shown) as a straight serial port as the ISP lines to the PIC
can be corrupted by using a standard nine-conductor cable.
I use a cheater cable consisting of just pins 2, 3, and 5 for
RS-232 communication. The LCD requires special comment.
The surplus 2x16 LCD board — besides the LCD module
itself — has four momentary contact pushbuttons (S1-S4)
and three LEDs (two red, one yellow) available. These are
available from places listed in the Resources. The LCD
employs a standard Hitachi 44780 controller, making it easy
to interface to an eight-bit PIC digital bus. This LCD module
employs a 25-pin male connector; the female connector is
seen on the left side of the board in Figure 2. Since the
Hitachi controller latches and holds LCD update information,
the LEDs are multiplexed on PORT B, pins PB0-PB2; software
controls the access to PORTB. The PIC SPI subsystem allows
communication with the Navigation engine board. I used a
simple cable to bring SPI signals SCK, SDI, and SDO, as well
as ground off the board. The GPS board could be a very
straightforward perfboard, if desired — however, a
custom board was designed and then fabricated by
ExpressPCB (see Resources). This board conforms
exactly to the dimensions of the Hitachi board, and
neatly forms a compact “sandwich” when mated with
5/8” hex standoffs. The LM78L05 linear regulator
allows the board to accept power from a nominal
+12V source. The custom board has a large prototype
area with a footprint for an additional 28-pin PIC
processor — there is lots of room for expansion.
The Navigation engine board and display are
identical. The only difference is the PIC, as the 16F
and 18F family of devices enjoy identical pinouts. I
personally prefer very rapid turnaround cycles when
developing software, so I use a built-in bootloader
in the 16F876A. Reflashing the PIC is as quick as
dropping out of MPLAB and into the bootloader GUI
on the PC, blasting the part, and getting back to
work. The bootloader is “PICBOOTPlus,” available free
as a download from the Web (see Resources). The
FIGURE 1.
34 SERVO 08.2009