T

GPS SAAT

Başlatan toys-23, 22 Ekim 2011, 21:43:30

toys-23

Merhabalar...

GPS saatleri hakkında bilgisi olan varmı gps ile bir saat yapmak istiyorum.Çalışma mantığı nedir pbp kodları nedir yada nerden başlamalıyım.

toys-23

Merhabalar hocam....
Herkese iyibayramlar bu arada

Hocam gps saat üzerine biraz araştırma yaptım.Aşağı yukarı bişeler analadım bir yerdede bi uygulama buldum:

GPSin VAR PORTB.2
baudGPS CON 188
digit var byte
digit1 VAR byte
digit2 VAR byte
digit3 VAR byte
digit4 VAR byte
digit5 VAR byte
digit6 VAR byte
digit7 VAR byte
digit8 VAR byte
digit9 VAR byte
digit10 VAR byte
digit11 VAR byte
digit12 VAR byte
saat var byte
saat1 var byte
saat2 var byte
saat3 var byte
saat4 var byte
saat5 var byte
tarih var byte
tarih1 var byte
tarih2 var byte
tarih3 var byte
tarih4 var byte
tarih5 var byte

LCDOUT $FE, 1, "deneme:" 
LCDOUT $FE, $c0, "deneme:"
pause 100

GPS:
SerIn2 GPSin,baudGPS,[wait("$GPRMC"),skip 10,DEC1 digit,DEC1 digit1,DEC1 digit2,dec1 digit3,skip 1,dec1 digit4,dec1 digit5,skip 3,dec1 digit6,dec1 digit7,dec1 digit8,dec1 digit9,dec1 digit10,skip 1,dec1 digit11,dec1 digit12]
    pause 1000
IF PORTB.7=1 THEN   
LCDOut $FE, 1, "LAT:",DEC1 digit,DEC1 digit1,".",DEC1 digit2,dec1 digit3,".",DEC1 digit4,dec1 digit5,"N"
LCDOut $FE, $c0, "LON:",DEC1 digit6,DEC1 digit7,DEC1 digit8,".",dec1 digit9,DEC1 digit10,".",dec1 digit11,DEC1 digit12,"E"
ELSE
SerIn2 GPSin,baudGPS,[wait("$GPRMC"),skip 1,DEC1 saat,DEC1 saat1,DEC1 saat2,dec1 saat3,dec1 saat4,dec1 saat5,skip 38,dec1 tarih,dec1 tarih1,dec1 tarih2,dec1 tarih3,dec1 tarih4,dec1 tarih5]
PAUSE 1000
LCDOut $FE, 1, "SAAT:",DEC1 saat,DEC1 saat1,":",DEC1 saat2,dec1 saat3,":",DEC1 saat4,dec1 saat5
LCDOut $FE, $c0, "TARIH:",DEC1 tarih,DEC1 tarih1,".",DEC1 tarih2,dec1 tarih3,".",DEC1 tarih4,dec1 tarih5
ENDIF   
    GOTO GPS
end


Böyle bişey similasyonda çalışıyor ama sizin fikrinizi alıp gps modül almak istedim. GPS hakkında bilginiz nedir birazcık bizi aydınlatırmısınız?

F®T

"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

ete

Bu konuda hiç çalışmadım. Bu nedenle tutarlı bir cevap verebilmem için önce oturup GPS çalışmam ve en azından elime bir GPS alıp deneme yapmam gerekiyor.
Ferittt'in verdiği linklere baktım birisi kesin çalışan bir örnek. Onu denemeni öneririm.

Ete

F®T

#4
Bende inceledim.elinde modül varsa bu örnek üzerinden istediğin çalışmayı yapabilirsin.en azından bu tip bir çalışmayı burda paylaşarak yaparsan herkes açısından güzel bir örnek olur diye düşünüyorum.çalışan kodlarda herhangi bir hata oluşmadı.

 'Working code for GPS
'I Dragon Fire if it can help you, here is the complete code file for a similar application I made for my GPS repeater
' Program to display returned value of a GPS on RB1
' LCD in 4-BIT mode PIC16F628 controller 4Mhz clock Fuse PWRT BODEN
'This version include: engine rpm,heading and speed,heading and range to WP
'
' LCD should be connected as follows:
' LCD PIC
' DB4 PortA.0
' DB5 PortA.1
' DB6 PortA.2
' DB7 PortA.3
' RS PortA.4 (add 4.7K pullup resistor to 5 volts)
' E PortB.3
' RW Ground
' Vdd 5 volts
' Vss Ground
' Vo 20K potentiometer (or ground)
' DB0-3 No connect
'GPS sentence: $GPRMC,192144.62,A,5041.6058,N,00412.6124,E,0.45,3 57.74,081205,,*0B
'Route sentence: $ECBWC,000000,5110.063,N,00236.403,E,276.4,T,277.6 ,M,3.15,N,02-NIEUWPOORT-BANK*34
@ DEVICE PIC16F628A,XT_OSC,WDT_OFF,PWRT_ON,MCLR_OFF,BOD_ON, LVP_OFF,PROTECT_OFF

DEFINE OSC 4
CMCON = 7

GPSin VAR PORTB.1
RPMin VAR PORTB.4 'input from rpm module optical with 2 marks on flyweel
TRISB.1=1 'define port B1 as input
TRISB.5=1 'define port B5 as input
TRISB.4=1 'define port B4 as input
TRISA.0=0 'define PORT A output for LCD DB4
TRISA.1=0 'define PORT A output for LCD DB5
TRISA.2=0 'define PORT A output for LCD DB6
TRISA.3=0 'define PORT A output for LCD DB7
TRISA.4=0 'define PORT A output for LCD RS
TRISB.3=0 'define PORT B output for LCD E


PORTA=0
PORTB=0

'Allocate Variables for GPS:
TimeOut CON 3000
baudGPS CON 24764 '16572 + 8192 (bit 13)
RPM VAR WORD 'motor revolutions

truecourse VAR WORD 'true course to WP
magcourse VAR WORD 'magnetic course to WP
dist VAR BYTE 'distance to WP units
distten VAR BYTE 'distance to WP tens
wpid VAR BYTE 'WP id nb
wp VAR BYTE[16] 'WP name



hh VAR BYTE 'hours
mm VAR BYTE 'minutes
j VAR BYTE 'day
m VAR BYTE 'month
a VAR BYTE 'year
knots VAR WORD 'speed in knots (units)
knotsten VAR BYTE 'speed in knots (tens)
course VAR WORD 'heading
latdeg VAR BYTE 'degrees latitude
latmin VAR BYTE 'minutes latitude
NS VAR BYTE 'north or south
londeg VAR BYTE 'degrees longitude
lonmin VAR BYTE 'minutes longitude
EO VAR BYTE 'east or west


fix VAR WORD 'GPS fix

'initialize variables
hh=0
mm=0
j=0
m=0
a=0
knots="0"
knotsten=0
course=0
latdeg=0
latmin=0
NS="N"
londeg=0
lonmin=0
EO="S"
truecourse=0
magcourse=0
dist="0"
distten=0
wpid=0

LCDOut $FE, 1 'Clear Screen
LCDOut " POP CORN"
LCDOut $fe,$c0
LCDOut " WELCOME ABOARD"
Pause 2000
LCDOut $FE, 1 'Clear Screen
LCDOut " YOUR SKIPPER"
LCDOut $fe,$c0
LCDOut " ALAIN DE VOS"
Pause 2000
LCDOut $FE, 1 'Clear Screen



GPS: 'read GPS

'read motor revolutions
Count RPMin,600,RPM
IF RPM<2Then
GoTo readgps
Else
RPM=RPM*50
LCDOut $FE, 1 'Clear Screen
LCDOut "ENGINE SPEED:"
LCDOut $fe,$c0
LCDOut #RPM," RPM"
Pause 2000
EndIF



readgps:
SerIn2 GPSin,baudGPS,Timeout,Nogps,[wait("$GPRMC"),wait(","),DEC2 hh,DEC2 mm,wait(","),fix,wait(","),DEC2 latdeg,DEC2 latmin,wait(","),NS,wait(","),DEC3 londeg,DEC2 lonmin,wait(","),EO,wait(","),knots,wait("."),DEC2 knotsten,wait(","),DEC3 course,wait(","),DEC2 j,DEC2 m,DEC2 a]



IF fix="V" Then 'if no GPS fix
GoTo Nofix
EndIF


LCD:


'normal display if fix ok
LCDOut $FE, 1 'Clear Screen
LCDOut "SPEED :",knots,",",DEC2 knotsten,"KNT"
LCDOut $fe,$c0
LCDOut "HEADING:",DEC3 course,223,"TRUE"
Pause 3000


LCDOut $FE, 1 'Clear Screen
LCDOut DEC2 j,"-",DEC2 m,"-",DEC2 a," ",DEC2 hh,":",DEC2 mm
LCDOut $fe,$c0
LCDOut DEC2 latdeg,223,DEC2 latmin,39,NS," ",DEC2 londeg,223,DEC2 lonmin,39,EO
Pause 3000

'Get route informations from serial port
SerIn2 GPSin,baudGPS,Timeout,norte,[wait("$ECBWC"),wait(","),wait(","),DEC2 latdeg,DEC2 latmin,wait(","),NS,wait(","),DEC3 londeg,DEC2 lonmin,wait(","),EO,wait(","),DEC3 truecourse,wait(","),wait(","),DEC3 magcourse,wait(","),wait(","),DEC2 dist,wait("."),DEC2 distten,wait(","),wait(","),DEC2 wpid,wait("-"),STR wp\16\"*"]


'display route informations
LCDOut $FE, 1 'Clear Screen
LCDOut "WAYPOINT WP",DEC2 wpid,":"
LCDOut $fe,$c0
LCDOut STR wp
Pause 3000

LCDOut $FE, 1 'Clear Screen
LCDOut "POSITION WP",DEC2 wpid
LCDOut $fe,$c0
LCDOut DEC2 latdeg,223,DEC2 latmin,39,NS," ",DEC2 londeg,223,DEC2 lonmin,39,EO
Pause 3000

LCDOut $FE, 1 'Clear Screen
LCDOut "HEADING TO WP",DEC2 wpid
LCDOut $fe,$c0
LCDOut DEC3 truecourse,223,"TRUE",61,DEC3 magcourse,223,"MAG"
Pause 3000

LCDOut $FE, 1 'Clear Screen
LCDOut "DISTANCE TO WP",DEC2 wpid
LCDOut $fe,$c0
LCDOut DEC2 dist,",",DEC2 distten," NM"
Pause 2000


GoTo GPS


'display if no gps is present
Nogps:
Pause 1000
LCDOut $FE, 1 'Clear Screen
LCDOut " NO GPS"
LCDOut $fe,$c0
LCDOut " CHECK CABLES "
Pause 1000
GoTo GPS

'display if no gps fix
Nofix:

'display last valid from GPS
Pause 1000
LCDOut $FE, 1 'Clear Screen
LCDOut " NO GPS FIX"
LCDOut $fe,$c0
LCDOut " LAST VALID"
Pause 2000
LCDOut $FE, 1 'Clear Screen
LCDOut "LAT:",DEC2 latdeg,223,DEC2 latmin,39,NS
LCDOut $fe,$c0
LCDOut "LON:",DEC2 londeg,223,DEC2 lonmin,39,EO
Pause 2000
GoTo GPS

norte:
'display if no active route
Pause 1000
LCDOut $FE, 1 'Clear Screen
LCDOut "NO ACTIVE ROUTE"
Pause 1000
GoTo GPS
"Hakk" şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

toys-23

Ete hocam sağolun..
Ferit hocam gps modül almadım kesin çalışam bişe olsunda alayım dediydim 70-80 tl arası sanırım en kısa sürede alıp verdiğiniz örneklerle denemeler yapıp sonuçlarıda yayınlarım buradan..teşekkür ederim.

zengar

Gps e bir bios pili takıp uyduyu görmediği zamanlar da( yani kapalı yerlerdeyken) saat olarak kullanabilirsin sanırım..

Powered by EzPortal