judul
Breaking News
Loading...
Sabtu, 19 April 2014

GPS Data Receive dan Proses Parsing

Sabtu, April 19, 2014


Satelit adalah benda yang mengorbit dengan periode revolusi dan rotasi tertentu. Ada dua jenis satelit yakni satelit alam dan satelit buatan. Dari satelite buatan , akan mentransmisikan berupa data dengan protokol tertentu. 
Satelit navigasi adalah satelit yang menggunakan sinyal radio yang disalurkan ke penerima di permukaan tanah untuk menentukan lokasi sebuah titik dipermukaan bumi. Bila pandangan antara satelit dan penerima di tanah tidak ada gangguan, maka dengan sebuah alat penerima sinyal satelit (penerima GPS), bisa diperoleh data posisi di suatu tempat dengan ketelitian beberapa meter dalam waktu nyata.


Global Positioning System (GPS) adalah sistem untuk menentukan letak di permukaan bumi dengan bantuan penyelarasan (synchronization) sinyal satelit. Sistem ini menggunakan 24 satelit yang mengirimkan sinyal gelombang mikro ke Bumi. Sinyal ini diterima oleh alat penerima di permukaan, dan digunakan untuk menentukan letakkecepatan, arah, dan waktu. Sistem yang serupa dengan GPS antara lain GLONASS RusiaGalileoUni EropaIRNSS India.

Penerima GPS pada dasarnya menggunakan protokol NMEA0183 ( National Marine Electronics Association ). NMEA0183  menggunakan standart protokol komunikasi serial yang sederhana yang mendefenisikan  bagaimana data ditransmisikan dalam sebuah "kalimat" dari seorang "pembicara' pada banyak "pendengar" pada suatu waktu. 

Setiap Kalimat dimulai dengan karakter ' $ ' diikuti oleh lima karakter yang membuat header format ( $GPGGA).Dua karakter pertama itu mewakili "Pembicara" dan sisanya 3 dari lima mewakili jenis pesan . Semua bidang data yang mengikuti adalah koma - delimited dan dimana data tidak tersedia , bidang yang sesuai tidak mengandung byte, setelah satu koma datang koma berikutnya sendiri dalam kalimat output ASCII .Karakter pertama yang mengikuti karakter field data terakhir   adalah simbol tanda bintang ( * ) , tetapi hanya disertakan jika checksum disediakan .Setiap satu "kalimat" selalu diawali  "$" dan diakhiri <CR><LF>. 



NMEA Output Sequences

GGA- Global Positioning System Fixed Data.
For example our GGA sequence will be something like this:
$GPGGA,161229.487,3723.2475,N,12158.3416,W,1,07,1.0,9.0,M,,,,0000*18
It provides the essential fixed data which gives 3D location and accuracy data.The below table describes the GGA data format for the above values:
 Name Example Description
 Message ID  $GPGGA GGA  protocol  header
 UTC  Position 161229.487 hhmmss.sss(hour/minute/seconds )
 Latitude 3723.2475 ddmm.mmmm(Degree/minutes)
 N/S  Indicator N N=north & S=south
 Longitude 12158.3416 dddmm.mmmm
 E/W  Indicator W E=est or W=west
 Position  fix  indicator 1 See table for pos. Fix
 Satellites  used 07 Ranges from 0 to 12
 HDOP 1.0 Horizontal Dilution of Precision
 MSL Altitude 9.0 Altitude above mean Sea Level
 Units M Signifies units in meters
 Geoid  Separation Height of Geoid above reference ellipsoid
 Units M Signifies units in meters
 Age of  Diff.  Corr. Null field when DGPS not Used
 Dif.  Ref.  Station  ID DGPS station ID number
 Checksum *18 Checksum always begins with *
 <CR><LF> End of message termination


Position for FIX indicator
Value Description
 0 Fix  not  available  or  invalid
 1 GPS SPS Mode,  fix  valid
 2 Diferential  GPS, SPS Mode,  fix  valid
 3 GPS PPS Mode,  fix  valid
Now you might be wondering what these terms mean?DGPS,SPS,PPS etc. Let’s have a look into it,
DGPS” or Differential Global positioning System is an enhancement to GPS and provides improved location accuracy.DGPS uses a network of fixed, ground-based reference stations to broadcast the difference between the positions indicated by the satellite systems and the known fixed positions.
Now from the GPS Positioning Services Specified In The Federal Radio navigation Plan there are basically two types of positioning services namely:
SPS (Standard Positioning Service ) & PPS (Precise Positioning Service).


  • Authorized users with cryptographic equipment and keys and specially equipped receivers use the Precise Positioning System. U. S. and Allied military, certain U. S. Government agencies, and selected civil users specifically approved by the U. S. Government, can use the PPS.
  • PPS Predictable Accuracy
    • 22 meter Horizontal accuracy
    • 27.7 meter vertical accuracy
    • 200 nanosecond time (UTC) accuracy
We basically employ SPS which Civil users use worldwide without charge or restrictions.
  • SPS Predictable Accuracy
    • 100 meter horizontal accuracy
    • 156 meter vertical accuracy
    • 340 nanoseconds time accuracy
Penulis disini menggunakan C++, jadi untuk mengetahui data karakter per 1 byte( 8 bit) yang diterima pada komunikasi serial <CR>Carriage Return (ASCII 13, \r) <LF>Line Feed (ASCII 10,\n) , maka dengan menunggu karakter  masuk.
misal : 

while(getchar!=13);  untuk syntax coding seperti disamping akan sangat berbahaya, jika task event lebih dari satu. Secara verbal coding itu berbunyi: "tunggu disini hingga data masuk adalah <CR>". maka  procecor hanya akan stack disini dan tidak akan melayani event yang lainnya.
NB: disarankan untuk membuat subroutine sendiri untuk pembacaan data serial yang masuk atau dengan menggunakan interupsi serial.



Gambar diatas adalah tampilan Ublox Dekstop dan hypertermninal, ketika GPS menerima data dari satelite. Kemudian dibuhungkan ke PC dengan konverter USB to Serial (FTDI).

GPS module yang digunakan adalah GPS UBLOX NEO-6M, dengan spesifikasi:



  • u-blox 6 position engine with over 2 million effective correlators featuring acquisition down to 1 s,   –147 dBm coldstart sensitivity and  5 Hz update rate
  • Intelligent, user configurable power management for radically lower power consumption
  • Supports u-blox’ AssistNow Online and AssistNow Offline A-GPS services and is OMA SUPL compliant
  • 1.8 V supply voltage for low power consumption (NEO-6G)
  • UART, USB, DDC (I2C compliant) and SPI interfaces
  • Miniature 16.0 x 12.2 x 2.4 mm package
  • Pin compatible with NEO-5G, NEO-5Q and NEO-5M

Teknik parsing yang dibuat penulis tidak berdasarkan delimeted string pada GPS receiver module, tapi dengan mengurutkan data pada setiap delimated yang ada. kemudian mengecek data Valid pada String, jika Valid maka karakter yang diterima adalah 'A' dan jika tidak valid karakter yang diterima adalah 'V'.
untuk lebih detail tentang protokol NMEA disini.

Mohon maaf karena syntax progam tidak bisa dipublikasikan.



0 komentar:

Posting Komentar

 
Toggle Footer