This project demonstrates a simple AVR based GPS tracker
This project combines an 8 bit microcontroller along with a GPS module to create a simple tracking device that can record and playback location data to a mapping program like Google Maps or Google Earth. This project demonstrates the basic method of serial communication between the GPS module and microcontroller, as well as how to decode the data stream being sent from the GPS module. To make this project easy to follow, the source code and hardware are both made to be as minimal as possible, leaving a lot of room to build a much more powerful tracking system.
GPS is short for "Global Positioning System". As the name implies, it is a globally available positioning and time system that uses a radio fix on multiple orbiting satellites. A GPS receiver will operate wherever there is an unobstructed view (line of sight) to four or more GPS satellites so that it can receive the radio signal from each satellite. The receiver uses the information it receives in the radio signal to determine the distance to each satellite. The position of the receiver is calculated by an algorithm that includes both the information and strength of the radio signal received from each satellite. With this information, exact time, and position data such as latitude, longitude, height from seal level, moving speed, and direction can be computed and displayed to the user.
Figure 1 - The San Jose FV-M8 GPS module from SparkFun
A GPS module is a self contained GPS receiver that does all of the difficult signal processing and computation for you. These inexpensive and amazing 1 inch square boxes will lock onto all satellites in range and then start sending out the location and time data in a simple to read string that can be received by a microcontroller using a few IO lines. This project will explore the basics of connecting one of these GPS modules to a microcontroller in order to receive the data and record it for later use in a computer mapping program such as Google Earth.
GPS receiver modules have come a long way over the last few years. The tiny 1 inch square FV-M8 receiver module shown in Figure 1 is from San Jose Navigation, and is ready to use as soon as power is supplied. Once powered up, the GPS module will search for satellites and then send a 1 Hz "heartbeat" pulse down one of the IO lines to show that it has a valid fix. The module will also send out serial data containing all of the relevant GPS information so that a microcontroller or terminal can decode the data. So, to add GPS capabilities to your project, you really only need three wires: one for power (3.3 volts), one for ground and one to receive the serial data. All of the difficult work of receiving the RF signal for triangulation is done inside the module for you.