Tertarik dengan maraknya pemberitaan dan teknologi telepon genggam dengan kemampuan GPS berikut saya share project yang sudah lama tersimpan mengenai GPS receiver module reader. Saya memiliki beberapa GPS module sejak zaman rockwell board trus menyusut dan menyusut sampai bisa diselipkan ke balik hp atau bahkan ballpoint. (Jupiter board, WD-G-ZX4120, R1513B)
Secara singkat GPS receiver module bekerja dengan menerima isyarat pada frekwensi tertentu, sinyal dan data yang di pancarkan dari sejumlah satelit GPS. Satelit-satelit ini bergerak dalam pola yang teratur mengelilingi dan seolah menyelimuti bumi seperti jaring hingga mampu memberikan sinyal pada seluruh permukaan bumi. Sinyal dan data yang di pancarkan oleh satelit-satelit itu lalu dihitung dengan metode triangulasi hingga didapatlah koordinat pada suatu titik.
GPS receiver modul yang akan saya gunakan menggunakan chips SIRF. Perhatikan tabel berikut yang membedakan jenis NMEA informasi yang di keluarkan GPS receiver sesuai dengan standar NMEA2.0
detail informasi mengenai NMEA bisa di peroleh di link berikut
Name | Garmin | Magellan | Lowrance | SiRF | Notes: |
GPAPB | N | Y | Y | N | Auto Pilot B |
GPBOD | Y | N | N | N | bearing, origin to destination – earlier G-12’s do not transmit this |
GPGGA | Y | Y | Y | Y | fix data |
GPGLL | Y | Y | Y | Y | Lat/Lon data – earlier G-12’s do not transmit this |
GPGSA | Y | Y | Y | Y | overall satellite reception data, missing on some Garmin models |
GPGSV | Y | Y | Y | Y | detailed satellite data, missing on some Garmin models |
GPRMB | Y | Y | Y | N | minimum recommended data when following a route |
GPRMC | Y | Y | Y | Y | minimum recommended data |
GPRTE | Y | U | U | N | route data, only when there is an active route. (this is sometimes bidirectional) |
GPWPL | Y | Y | U | N | waypoint data, only when there is an active route (this is sometimes bidirectional) |
Cukup dengan menghubungkan antena (aktif atau pasif) dan supply module sudah secara priodik mengirimkan informasi terkait dengan data-data GPS dengan format sbb:
GGA essential fix data which provide 3D location and accuracy data.
$GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,46.9,M,,*47
Where:
GGA Global Positioning System Fix Data
123519 Fix taken at 12:35:19 UTC
4807.038,N Latitude 48 deg 07.038′ N
01131.000,E Longitude 11 deg 31.000′ E
1 Fix quality: 0 = invalid
1 = GPS fix (SPS)
2 = DGPS fix
3 = PPS fix
4 = Real Time Kinematic
5 = Float RTK
6 = estimated (dead reckoning) (2.3 feature)
7 = Manual input mode
8 = Simulation mode
08 Number of satellites being tracked
0.9 Horizontal dilution of position
545.4,M Altitude, Meters, above mean sea level
46.9,M Height of geoid (mean sea level) above WGS84
ellipsoid
(empty field) time in seconds since last DGPS update
(empty field) DGPS station ID number
*47 the checksum data, always begins with *
GLL – Geographic Latitude and Longitude
$GPGLL,4916.45,N,12311.12,W,225444,A,*1D
Where:
GLL Geographic position, Latitude and Longitude
4916.46,N Latitude 49 deg. 16.45 min. North
12311.12,W Longitude 123 deg. 11.12 min. West
225444 Fix taken at 22:54:44 UTC
A Data Active or V (void)
*iD checksum data
GSA – GPS DOP and active satellites
$GPGSA,A,3,04,05,,09,12,,,24,,,,,2.5,1.3,2.1*39
Where:
GSA Satellite status
A Auto selection of 2D or 3D fix (M = manual)
3 3D fix – values include: 1 = no fix
2 = 2D fix
3 = 3D fix
04,05… PRNs of satellites used for fix (space for 12)
2.5 PDOP (dilution of precision)
1.3 Horizontal dilution of precision (HDOP)
2.1 Vertical dilution of precision (VDOP)
*39 the checksum data, always begins with *
GSV – Satellites in View
$GPGSV,2,1,08,01,40,083,46,02,17,308,41,12,07,344,39,14,22,228,45*75
Where: GSV Satellites in view
2 Number of sentences for full data
1 sentence 1 of 2
08 Number of satellites in view
01 Satellite PRN number
40 Elevation, degrees
083 Azimuth, degrees
46 SNR – higher is better
for up to 4 satellites per sentence
*75 the checksum data, always begins with *
RMC – NMEA has its own version of essential gps pvt (position, velocity, time) data
$GPRMC,123519,A,4807.038,N,01131.000,E,022.4,084.4,230394,003.1,W*6A
Where:
RMC Recommended Minimum sentence C
123519 Fix taken at 12:35:19 UTC
A Status A=active or V=Void.
4807.038,N Latitude 48 deg 07.038′ N
01131.000,E Longitude 11 deg 31.000′ E
022.4 Speed over the ground in knots
084.4 Track angle in degrees True
230394 Date – 23rd of March 1994
003.1,W Magnetic Variation
*6A The checksum data, always begins with *
VTG – Velocity made good.
$GPVTG,054.7,T,034.4,M,005.5,N,010.2,K*48
where:
VTG Track made good and ground speed
054.7,T True track made good (degrees)
034.4,M Magnetic track made good
005.5,N Ground speed, knots
010.2,K Ground speed, Kilometers per hour
*48 Checksum
untuk membaca informasi diatas saya bangun sistem sebagai berikut:
- ATMega32 (saya juga pasangkan GSM Modem pada module, namun tidak dibahas pada posting ini)
- 2×16 Char LCD
- R1513B GPS Module
- GPS external active antenna
- 1x Serial Port to GPS module
- 1x Serial Port with RS232C
software akan membaca dan melakukan parsing dari data serial diatas kemudian menampilkan pada LCD atau mengirimkan kembali ke informasi tadi ke device lain seperti pc atau aplikasi peta, atau mengirimkan via serial bluetooth sehingga PDA atau ponsel menjadi memiliki fasilitas GPS.
‘*******************************************************************************
‘ CAR 01
‘ ATMega32
‘ 20×4 LCD
‘ GPS + GSM Module
‘*******************************************************************************
$regfile = “m32def.dat”
$crystal = 1159200
$baud = 38400
$swstack = 32
$hwstack = 32
$framesize = 32
‘*******************************************************************************
‘ config pin
‘*******************************************************************************
Config Lcd = 16 * 2
Config Lcdmode = Port
Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , E = Portb.4 , Rs = Portb.6
Dim Sdat As Byte
Dim Res As String * 96
Dim Nmea(15) As String * 10
Dim Dcount As Byte
Dim Scount As String * 2
Dim Sat_count As Byte
Dim Lat As String * 12
Dim Lon As String * 13
‘*******************************************************************************
‘ Main
‘*******************************************************************************
Cls : Cursor Off
Locate 1 , 1 : Lcd “CAR TRACK 01”
Waitms 500
Open “coma.0:9600,8,n,1” For Input As #2
Waitms 1000
Do
Res = “”
Do
Sdat = Inkey(#2)
Select Case Sdat
Case 0
Case 13
Case 10 : If Res <> “” Then Exit Do
Case Else
Res = Res + Chr(sdat)
End Select
Loop Until Sdat = 10
Nmea(1) = “”
Dcount = Split(res , Nmea(1) , “,” )
Lat = Mid(nmea(3) , 1 , 2) + Chr(223) + Mid(nmea(3) , 3 , 2) + “,” + Mid(nmea(3) , 6 , 4) + “‘” + Nmea(4)
Lon = Mid(nmea(5) , 1 , 3) + Chr(223) + Mid(nmea(5) , 4 , 2) + “,” + Mid(nmea(5) , 7 , 4) + “‘” + Nmea(6)
Select Case Nmea(1)
Case “$GPGGA” : Cls
Locate 1 , 2 : Lcd Lat ; ” ” ; Nmea(8)
Locate 2 , 1 : Lcd Lon
Print Res
End Select
Loop
mungkin kalau ada kesempatan akan saya bahas bagaimana menambahkan GPS receiver ke camera DSLR nikon (D200 keatas) agar ada informasi koordinat di data EXIFF sebuah foto (what a nice geo- tag) .
semoga bermanfaat
Dian Kurniawan