Gps Data Logger Ew 11 09

Embed Size (px)

Citation preview

  • GPS

    THE GLOBAL Positioning System (GPS)is a satellite-based navigation systemdeveloped by the US Department of Defence.The first GPS system was tested in 1960susing a constellation of five satellites. Thissystem was implemented for militarypurposes and provided navigational fix dataapproximately every hour; it was not veryaccurate.

    In 1993 the number of satellites increasedto 24. The system became fully operationaland it was also made available to the civilianswith a lesser accuracy. Initially, the accuracyof the civilian GPS system was deliberatelydisturbed using a method called SelectiveAvailability (SA). With the SA, the positionaccuracy of a typical civilian GPS receiver wasabout 100 metres. In the year 2000 the USDepartment of Defence removed the SA and,as a result, the position accuracy of a basicGPS increased to around 10 metres.

    GPS has now become a widely used aid tonavigation and it is commonly used in manyapplications such as land surveying, shipping,piloting, route guidance, map making, studyof earthquakes, precise time reference andhobbies and games such as geocaching.

    The GPS SatellitesThe GPS satellites orbit the Earth twice a

    day with a speed of 3.9km per second. The

    actual circulation time is 11 hours and 58minutes and, hence, the same satellite is overa certain position four minutes earlier eachday.

    The satellite orbit is about 20,000km aboveEarths surface and the satellites arepositioned such that they are inclinedtowards the equator with an angle of 55. Bythis arrangement it is guaranteed that at least

    four satellites are visible at any point on earthat any time. Normally, three satellites arerequired to calculate the position of a pointaccurately on Earths surface and foursatellites are required to calculate the altitudeas well. Thus, with the arrangement of thesatellites it is possible to calculate both theposition and the altitude of any point onEarths surface accurately. In typicalapplications it is possible to get signals fromat least six or seven satellites in a place with a

    GPS data logger with SD cardstorage and GOOGLE EARTHmap interface

    28 November 09 - Electronics World

    Professor Dr Dogan Ibrahim from the Department of Computer Engineeringat the Near East University in Cyprus describes the design of a GPS data loggerdevice with SD card storage, where the collected data can be displayed instreet-level using the Google Earth mapping program

    Figure 1: dGPS correction system

    ERROR SOURCE ERROR (METRES)

    Selective Availability 30

    Ionosphere 5.0

    Orbit Errors 2.5

    Satellite Clock 1.5

    Signal Multipath 0.6

    Troposphere 0.5

    Receiver Noise 0.4

    Table 1: GPS error sources

  • GPS

    clear view of the sky. In general, the accuracyis increased as more satellites are used in theposition and altitude calculations.

    The GPS AccuracyTable 1 shows the typical GPS error

    sources (www.kowoma.de/en/gps/errors.htm).The major source of GPS error was theSelective Availability. Selective Availability wasfirst introduced during the Gulf War in 1991to prevent the Iraqi forces from benefitingfrom the accurate GPS service. What the USmilitary chiefs did was not to prevent all non-military use of the GPS, but to degrade theaccuracy of the GPS to commercial users. Bythe introduction of a deliberate error, theaccuracy of a commercial GPS was reduced toaround 100 meters and accurate receiverswere only made selectively available to onlythe US and Allied military and to certain USGovernment agencies. Fortunately, theSelective Availability has been removed by theUS since the 1st May 2000 and, hence, thenavigational accuracy of a GPS improvedsignificantly.

    The tropospheric and ionospheric effectscause electromagnetic waves to refract. Thereasons for the refraction are differentconcentrations of water vapour in thetroposphere, caused by different weatherconditions. The ionospheric errors are largerthan the tropospheric errors. The errorsintroduced by these effects can not beeliminated, but their effects can usually bereduced in calculations.

    Orbital errors are the other major sourcesof error, caused by the satellite geometry. If

    for example a receiver sees four satellites andall are arranged in the north-west, this leadsto a bad geometry and the accuracy isreduced. If on the other hand the foursatellites are well distributed over the Earth,the position accuracy will be much higher.Most GPS receivers do not only indicate thenumber of received satellites, but also theirrelative positions above Earth. This enablesthe user to judge if a relevant satellite isobscured by an obstacle and if changing theposition of the receiver might improve theaccuracy.

    The multipath effect is caused by reflectionof satellite signals from objects on Earthssurface. The multipath error in GPS systemsappear when there are large buildings near aGPS receiver and the signal reflects fromthese buildings. The reflected signal takesmore time to reach the receiver than thedirect signal and this results in accuracyerrors. The multipath errors can be avoidedby moving the receiver away from nearbylarge buildings or trees.

    Improving the GPS AccuracyThe position accuracy of a GPS signal can

    be improved significantly using a techniqueknown as Differential GPS (dGPS). Using thedGPS techniques accuracies in the region ofseveral meters can easily be achieved.

    dGPS works by placing a high performanceGPS receiver at a precisely known location onEarth (reference station). Since this referencereceiver knows its exact location, it candetermine the errors in the received GPSsatellite signals. This error signal for eachtracked satellite is formed into a correctionmessage and is transmitted to ordinary GPSreceivers. Users with the correct hardware canreceive these correction signals and improvetheir accuracies. The level of accuracyobtainable with dGPS depends upon manyfactors, such as the quality of the referencestation and user GPS receivers, and theatmospheric conditions. Figure 1 shows thelayout of a typical dGPS implementation.

    Although dGPS-based systems provide highaccuracies, they add extra complexity and alsoincrease the cost of the basic navigationsystem.

    Another technique used to improve theaccuracy of the GPS system is to transmitcorrection signals from correction GPSsatellites. The correction satellite is ageostationary satellite above the Equator. Thistechnique was first developed in the US andis known as WAAS (Wide Area AugmentationSystem). A similar and compatible system is inoperation in Europe under the name EGNOSand in the Far East under the name MSAS.Standard compatible GPS receivers canreceive the WAAS/EGNOS correction signalsand calculate their positions to an accuracy ofaround 3-5 metres.

    The advantage of this technique over thedGPS is that there is no additional cost to theuser since the required hardware andsoftware are built into the GPS receiver at avery small extra cost. One disadvantage ofthis technique is that it may be difficult toreceive correction signals at higher latitudes,away from the Equator.

    Parts of a GPS SystemThe GPS system consists of three major parts:

    Space segment Control segment User segment

    Space segment: The space segmentconsists of the orbiting satellites. The numberof satellites is increasing all the time. As ofMarch 2008, there were 31 activelybroadcasting satellites in the GPSconstellation. With the increased number ofsatellites, the reliability and availability of theoverall system has been improved.

    Control segment: The control segmentconsists of the monitoring stations locatedon Earth. These stations constantly monitorthe operational status of all the GPSsatellites and also synchronize the atomicclocks on board the satellites to within afew nanoseconds of each other and adjust

    www.electronicsworld.co.uk 29

    Figure 2: A typical commercial GPSreceiver, such as this one from Garmin

  • the orbital model of each satellite.User segment: The user segment consists

    of the user GPS receivers. A GPS receiver is asmall battery-operated portable device similarin size to a mobile phone. As shown inFigure 2, the device is equipped with a largeLCD display, a few buttons and an antenna(usually built-in). The device receives signals

    from the GPSsatellites and thendisplays usersposition, altitude,speed, heading andseveral othernavigationalparameters. Some

    sophisticated receivers also incorporate streetlevel maps where the position of the user isshown dynamically in real time on the map.GPS receivers are also used in car navigationsystems and can help the user to navigate toan unknown address or post-code bydisplaying street level turns or by audiooutputs.

    GPS receivers may include an input fordifferential dGPS corrections, known as theRTCM interface. As mentioned earlier thisinterface improves the accuracy of thereceiver considerably. In addition to theRTCM interface, some more sophisticatedGPS receivers include WAAS/EGNOScorrection hardware and software to improvethe accuracy of the basic GPS receiver.

    GPS receivers also produce RS232-compatible serial output data known asNMEA sentences, which enable them to beconnected to a PC (or similar equipment) torelay the navigational data such as thelatitude, longitude, altitude, speed, headingand so on. More details are given in the nextsection about the NMEA interface, as this isused in this project to get the time andgeographical co-ordinates of the user.

    The NMEA SentencesMany high-end GPS receivers provide

    navigational output data so that the devicecan be connected, for example, to a PC tocollect and analyse this data. This output datais usually in serial format and thecommunication protocol conforms to theRS232 serial standards.

    The default serial communicationparameters of most GPS receivers are set asfollows: 4800 Baud 8 data bits No parity bit 1 stop bit

    The data output from a GPS receiver is inASCII text format and is known as the NMEA0183, or simply the NMEA format. Accordingto this format, navigational information aresent in the form of sentences, where eachNMEA sentence starts with a $ sign, thenavigational parameters are separated by

    Figure 4: Block diagram of the project

    Figure 5: Circuit diagramof the project

    GPS

    30 November 09 - Electronics World

    Figure 3: TypicalNMEA sentences

  • GPS

    commas and each sentence is terminatedwith two hexadecimal checksum characters.

    The NMEA sentences are usually sent outevery second. Figure 3 shows the NMEAsentences obtained when a Garmin GPSMAP60CSX type GPS receiver is connected to theserial port of a PC and a serialcommunication program, such as theHyperTerm (www.hilgraeve.com/), is activatedon the PC to display the data received fromthe serial port.

    There are many NMEA sentences fordifferent navigational parameters. In additionto the standard NMEA 0183 protocol, someGPS manufacturers create and define NMEAsentences specific to their own products. TheNMEA sentence used in this project is the$GPRMC, having the following parameters:$GPRMC: Although there are some variationsin its format, this sentence basically definesthe basic navigational parameters, speed,course, date of fix and the magneticvariation. An example is:

    $GPRMC,220704,A,5127.3506,N,00003.2307,E,0.0,74.7,051108,2.5,W,A*30

    Here:220704 Fix taken at 22:07:04A Navigational data is

    correct5127.3506,N Latitude 51 deg.

    27.3506 min. North00003.2307,E Longitude 0 deg. 3.2307

    min. East0.0 Speed over ground

    (knots)74.7 Course made good051108 Fix taken on 5

    November, 20082.5 Magnetic variation 2.5

    deg West30 Checksum

    The Project OutlineThe block diagram of the project described

    in this article is shown in Figure 4. Basically,a microcontroller receives the $GPRMCsentences from a GPS receiver module as thedevice moves around. The collected data isstored on an SD card continuously with timestamping. This data is then formatted andused as an input to the Google Earth(http://earth.google.co.uk) mapping programto display the track of the movement with orwithout time stamping.

    Figure 5shows thecircuit diagramof the project.The design isbased around aPIC18F4520 typeadvancedmicrocontroller. AParallax GPS module sendsNMEA sentences to themicrocontroller every secondvia a serial TTL interface. Themicrocontroller receives theNMEA sentences, extracts the $GPRMCsentence and then extracts the time, latitudeand longitude of the user co-ordinates andstores this data every two seconds in a file onthe SD card. This file is then formatted to becompatible with the Google Earth mappingsoftware, using the GPS Visualizer (www.gpsvisualizer.com) software package. The GoogleEarth software can then show the usermovements on a street-level map.

    The GPS ModuleA Parallax GPS module is used in the

    design. This is a small, low-cost GPS with thefollowing features: On-board passive patch antenna; Single wire, 4800 baud serial TTL interface; Provides either raw NMEA output, or

    specific data can be requested via acommand interface;

    Operates with single +5V supply.The GPS module has four pins:

    Pins 1 and 2 are the ground and the supplyvoltage respectively;

    Pin 3 is the TTL compatible, non-invertedserial input-output pin. The data format is4800 baud, 8 data bits, no parity.

    Pin four is the output format selection bit,called the RAW pin. When RAW is low, theGPS module sends out NMEA sentencesautomatically every second. When RAW ishigh (or unconnected), specific GPS data(e.g. the latitude) can be requested fromthe device by sending commands. In thisproject the GPS module is operated in the

    automaticmode. NMEA

    sentences $GPGGA,$GPGSA, $GPGSV and

    $GPRMC are sent out every secondin this mode. This project uses only the

    $GPRMC to extract the navigationalparameters. Parallax GPS module outputsthe $GPRMC sentence in the followingformat:

    $GPRMC,220704,A,5127.3506,N,00003.2307,E,173.8,231.8,130608,,,A*70

    Notice that the magnetic variation and itsdirection are not output by the Parallax GPSmodule.

    The Key Elements of the ProjectThe SD card is connected to port pins RC2

    through RC5 of the microcontroller and isoperated in SPI mode. A card holder is usedto physically make connections to the cardpins. The voltage at output pins of themicro-controller is too high and can damagethe input circuitry of the SD card. A pair ofpotential divider resistors (using 2.2K and3.3K resistors) is used to lower themicrocontroller output voltages to a levelacceptable by the SD card inputs. The SDcard is powered using a 3.3V regulatedsupply, obtained using a MC3269DT-3.3(www.volkin.com/MC3269DT-3.3.html) typeregulator. In this project, a ready-made SDcard module is used (see Figure 7), which isavailable from mikroElektronika(www.mikroe.com).

    A PIC18F4520 type microcontroller (MCU)is used in the design. The microcontroller isoperated with an 8MHz crystal. A push-button switch is connected to port RB0 pinand a small LED is connected to port RB1 ofthe microcontroller. Pressing the switch

    www.electronicsworld.co.uk 31

    Figure 6: PIC-Readydevelopment board

  • GPS

    32 November 09 - Electronics World

    starts and stops the data collection. Duringthe data collection the LED flashes at a rateof about once a second. If the SD card isnot inserted into its holder, the LED willflash quickly to show an error condition.The switch should be kept pressed forabout five seconds to terminate the datalogging and wait until the LED turns OFFbefore removing the SD card from itsholder.

    The hardware was constructed on a PIC-Ready development board (see Figure 6)manufactured by mikroElektronika. This is alow-cost ($24) powerful development boardwith the following features: Socket for 40-pin PIC microcontrollers; 8MHz crystal; +5V regulator (an external 9-12V power

    supply is required); In-circuit debugger (ICD) and PIC

    programmer interface; Reset button; Easy access to microcontroller port pins via

    10-way IDC connectors; Plug-in compatible with most

    mikroElektronika development modules; Small development solder area.

    One of the nice things about the PIC-Readydevelopment board is the built-in ICD and theprogrammer. This requires the use of aPICFlash2 ICD device, manufactured bymikroElektronika. During programdevelopment one can easily insert breakpointsor single step a program with the help of theICD. The ICD can also program most of thePIC chips on-board, without having to

    remove the chip from its socket. This featureis extremely useful during programdevelopment.

    Figure 7 shows the GPS data logger devicebuilt on a PIC-Ready development board. TheSD card module can be seen on the left,while the GPS module is on the right handside of the board.

    The SoftwareThe software was developed using the

    mikroC compiler developed bymikroElektronika. This is a very powerful Clanguage compiler and supports both PIC16and PIC18 series. The compiler provides avery rich library of routines for developingapplications for SD cards, Compact Flashcards, RS232/RS485 devices, USB, CAN bus,I2C, 1-Wire bus and much more.

    Figure 8 shows operation of the softwareas a Program Development Language (PDL).The program is modular and consists of anumber of functions and procedures for easymodification, update, or maintenance of thecode. The following functions and proceduresare used:

    Format_Data: This procedure reads thereceived $GPRMC data from arrayDataLogger and stores in array LogIt in thefollowing comma delimited CSV text format.This data is then written to a file on the SDcard continuously every two seconds:

    T,22:05:16,5133.3627,00042.1240

    The data is stored in a format compatible

    with the GPS Visualizer conversion program,where:

    Character T indicates that this is a track file22:05:16 is the time the data was received5133.3627 is the latitude00042.1240 is the longitude

    As explained later, the GPS Visualizerprogram converts the file into a formatcompatible with the Google Earth mappingprogram.

    Get_GPS_Data: This procedure reads theNMEA sentence $GPRMC from the serialport where the GPS module is connected.The program first waits to receive thestarting character $. Then the stringGPRMC is matched and its parametersare read and stored in array DataLogger.

    Initialize_SD: This procedure initializesthe SD card library routines of the mikroCcompiler.

    Hex_Byte: This function converts ahexadecimal number into decimal. Thisfunction is used in the checksumcalculation.

    Conv_Hex: This function converts a twodigit hexadecimal number into decimal. Thisfunction is used in the checksumcalculation.

    Checksum: This function checks thechecksum field of the received NMEAsentence. The checksum field in an NMEAsentence is the last two hexadecimalcharacters after the * character. Thechecksum is calculated by Exclusive-ORing

    Figure 7: The GPS datalogger device

    Figure 8: Operation ofthe software

  • GPS

    all the characters in a sentence, except the$ character and the * character. Thisfunction calculates the checksum andcompares with the received checksum. Ifthe two differ, a zero is returned to indicatean error in the received data and the data isdiscarded and read again. If the checksumis correct the function returns a one.Figure 9 shows how the checksum caneasily be calculated by writing a Cfunction. Variable chk is initialised to zeroat the beginning of the function. A whileloop is then formed to check eachcharacter of the received NMEA sentence.A $ or a * character are ignored. Anyother received character is saved in variablechk and then Exclusive-Ored with theolder one. This way, the result is theExclusive-OR (or the checksum) of all thereceived characters. Variable chk2 is thedecimal equivalent of the receivedchecksum which is compared with thecalculated checksum chk.

    At the beginning of the program PORT Bis configured to be a digital port and theprogram waits until the START/STOP push-button switch is pressed. After the switch ispressed the USART is initialised to 4800Baud. The program then attempts to

    initialise the SD card. If there is no card inthe card holder the LED flashes rapidly toindicate an error condition. If on the otherhand a card is found in the card holderthen a new file is created on the card. Thecreated filename is in the following format:

    GPSLOGnn.TXT

    Where nn is a number stored in the firstlocation of the EEPROM memory. nn isbetween 01 and 99 and is incrementedeach time the device is started to collectnew data, thus causing a new file to becreated every time the data collection isstarted. The program then enters an endlessloop where after receiving valid data fromthe GPS module, the time, latitude andlongitude of the user are determined andstored on the SD card. The loop terminatesif the START/STOP button is pressed formore than a few seconds. The data is storedon the SD card in comma delimited CSVformat as shown in Figure 10, where thefirst row is a header describing what type ofdata is stored in each column of the file.

    Google Earth InterfaceThe collected data (see Figure 10) should

    first be converted into a format suitable tobe displayed by the Google Earth mappingprogram. Google Earth accepts KML(Keyhole Marked Up Language) and KMZ(compressed KML file) formatted files(http://code.google.com/apis/kml/documentation). There are many programs on theInternet that can be used to convert theCSV type file created in Figure 9 into KMLor KMZ format. The program used in thisproject is the GPS Visualizer(www.gpsvisualizer.com). GPS Visualizer is afree, easy-to-use online utility that createsmaps and profiles from GPS data, streetaddresses, or simple co-ordinates. Theprogram can convert between variousnavigational co-ordinates, calculate thedistance between two co-ordinates or twoaddresses, and many more.

    The conversion process is very simple andis given in Figure 11. Start the GPS Visualizer; Select Convert a File from the top menu; Click on Google Earth Mapping Form; Click Browse under Upload your GPS data

    files here; Select the file to be converted (on the SD

    card); Select Yes, with no names in Draw as

    Waypoints list-box, under the TrackOptions;

    Choose a colour for the track (if desired)under Track Options (the default trackcolour is magenta);

    Click Create KML File to create aconverted output file that is compatiblewith Google Earth.The file will be converted and a new form

    will be displayed. Click on the convertedfilename to invoke the Google Earthprogram automatically and display the track(Note that the Google Earth software mustbe installed in order to invoke it and displaythe track data on the map).

    Figure 9: Checksumcalculation function

    Figure 10: Example collected data

    www.electronicsworld.co.uk 33

  • GPS

    34 November 09 - Electronics World

    Figure 12 shows an example output ofdisplaying the track data at street-levelusing the Google Earth. In this example, theGPS data logger device was placed in a carand a short trip was made is South EastLondon to collect data and test the device.As can be seen from Figure 11, thecollected data is very accurate and the datapoints are placed exactly on street co-ordinates in the Google Earth map display.In Figure 13, the same data is displayedwith time stamping where the time displayis enabled in the GPS Visualizer conversionprogram before the file is converted (i.e.

    Select Yes, named with time stamps inDraw as Waypoints list-box, under the TrackOptions).

    Further ImprovementsThe device described in this article can be

    improved in several ways: Other navigational parameters can be

    added to the system, such as the speed,bearing and the altitude.

    The power consumption of the devicecan be lowered using low-power versionof the microcontroller, i.e. PIC18LF4520.

    A file conversion utility can be added to

    the microcontroller software so that thecreated file is compatible with theGoogle Map (i.e. in KML or KMZ format)and can be used directly without havingto re-format it first.

    An LCD and a keypad can be attached tothe device to make it more user friendly,e.g. to display the date, time, speed, orthe geographical co-ordinates of the useras the device moves around.

    The data collection interval and thecollection algorithm can be modified suchthat new data is stored only if the deviceis not stationary.

    Figure 11: Example GPS Visualizer screen

    Figure 12: Displaying the data using Google Earth Figure 13: Displaying the data with time stamping