askeri tabanlı proje ?

Başlatan mustafa_cmbz, 15 Ağustos 2007, 11:26:57

XX_CİHAN_XX

Verdiğin linkte kod göremedim ancak gönderme formatından bahsetmiş.

Alıntı Yap
$GPRMC,hhmmss.ss,A,llll.ll,a,yyyyy.yy,a,x.x,x.x,ddmmyy,x.x,a*hh

RMC  = Recommended Minimum Specific GPS/TRANSIT Data

1    = UTC of position fix
2    = Data status (V=navigation receiver warning)
3    = Latitude of fix
4    = N or S
5    = Longitude of fix
6    = E or W
7    = Speed over ground in knots
8    = Track made good in degrees True
9    = UT date
10   = Magnetic variation degrees (Easterly var. subtracts from true course)
11   = E or W
12   = Checksum

Kısaca şöyle özetleyim.Gps enerji aldığında sorgusuz sualsiz/ uyduya bağlansın bağlamasın sürekli veri gönderir.
Uyduya bağlanmadığında gönderdiği veriler aşağıdaki gibidir.
$GPGGA,181916,,N,,E,0,00,,,M,,M,,*6B
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,1,1,00,,,,,,,,,,,,,,,,*79
$GPRMC,181916,V,,N,,E,,,230707,,,N*5F

bu bilgilerden sadece $GPRMC ile başlayan satırı değerlendirmen kafidir.Bu bilgiler uyduya bağlanmadan gönderildiği için buradan sadece saat bilgisi okunmaktadır.
$GPRMC,181916,V,,N,,E,,,230707,,,N*5F

Saat: 18:19:16 imiş
tarih ise 23:07:07
Henüz uyduya bağlı değil o yuzden doger bılgıler yok
Uyduya bağlanınca ise gelen $gprmc satırı şöyledir:
$GPRMC,173039,V,4056.5013,N,02907.1106,E,000.6,198.3,240707,,,N*6E

Verdiğin linkte $gprmc nin açılımı yapılmıştır.Bu satırda hangısı yer hangısı yon, hız vs... buradan cıkartabilirsin.
Yapacagın gelen bu datayı çözümlemek.
Veri alma ise usarttan yapılır default değeri 4800 baud idi sanırım.Biraz daha araştır bolca kaynak var ben yazdığım programı bulursam koyacam gerçi asm de yazdım sanırım sen basic kullanıyorsun ama belki fikir verir yada başkalarına bir faydası dokunur.
Kolay gelsin...
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

Veli B.

Device 16F877A
'DECLARE BOOTLOADER = ON 
XTAL 20 
    Declare LCD_TYPE 0
    Declare LCD_DTPIN PORTD.4 
    Declare LCD_ENPIN PORTD.3 
    Declare LCD_RSPIN PORTD.2 
    Declare LCD_INTERFACE 4  
    Declare LCD_LINES  2
PORTB_PULLUPS 1
ON_INTERRUPT GoTo INT
    Symbol GIE      =INTCON.7
    Symbol T0IE     =INTCON.5 
    Symbol INTE     =INTCON.4
    Symbol RBIE     =INTCON.3
    Symbol T0IF     =INTCON.2 
    Symbol INTF     =INTCON.1
    Symbol RBIF     =INTCON.0
    Set GIE
    Set RBIE
'DEFINE HSER_RCSTA 90H ' Enable Hardware USART receive 
'DEFINE HSER_TXSTA 24H ' Set Hardware USART parameters 
'DEFINE HSER_BAUD 4800 ' Set baud rate to 9600 
'DECLARE HSERIAL_CLEAR ON 
TRISB=255
PORTB=0
TRISD=0
PORTD=0
Dim TEMP As Byte
Dim COP As Byte
Dim YONN[10] As Byte
Dim YONE[10] As Byte
Dim GLL_N As Byte
Dim GLL_E As Byte
Dim VLD As Byte
Dim VTGT[5] As Byte
Dim VTGN[5] As Byte
Dim VTG_T As Byte
Dim VTG_N As Byte
Dim USE[2] As Byte
Dim MODE As Byte 
Dim DAS[20] As Byte 
Dim DAS_[20] As Byte 
Dim TIME[6] As Byte
Dim DATE[6]As Byte 
Dim BADD As Word
Dim TIM As Word 
Dim T As Byte        
BADD=16572
TIM=1000
Symbol IN=PORTB.1
TEMP=1
Print At 1,1, "deneme"
DelayMS 5000


MAIN:

Select Case TEMP
          If T=1 Then 
          SAS:
          Cls
          EndIf
          T=0  
    Case 1: 
            Print At 1,1,GLL_N,". ", YONN[0], YONN[1],".", YONN[2], YONN[3], YONN[4], YONN[5], YONN[6],YONN[7],At 1,14,"COG:",Str VTGT\5
            Print At 2,1,GLL_E,".",  YONE[0], YONE[1], YONE[2],".", YONE[3], YONE[4], YONE[5], YONE[6], YONE[7],YONE[8], At 2,14,"SOG:",Str VTGN\5
            SerIn IN , BADD ,TIM,HATA,[ Wait ("$GPGGA,"),SKIP 7,Str YONN\8,COP,GLL_N,COP,Str YONE\9,COP,GLL_E]
            SerIn IN , BADD ,TIM,HATA,[ Wait ("$GPVTG,"),Str VTGT\5,COP,VTG_T,COP,COP,COP,Str VTGN\5,COP,VTG_N]
            
           
    Case 2: 
            Print At 1,1,GLL_N,". ", YONN[0], YONN[1],".", YONN[2], YONN[3], YONN[4], YONN[5], YONN[6],YONN[7]
            Print At 2,1,GLL_E,".",  YONE[0], YONE[1], YONE[2],".", YONE[3], YONE[4], YONE[5], YONE[6], YONE[7],YONE[8] 
            If VLD="A" Then Print At 2,15,"GPS" ,At 1,14,"      "
            If VLD="V" Then Print At 1,14,"NO FIX",At 2,15,"   "
            SerIn IN , BADD ,TIM,HATA,[Wait ("$GPGGA,"),SKIP 7,Str YONN\8,COP,GLL_N,COP,Str YONE\9,COP,GLL_E]
            SerIn IN , BADD ,TIM,HATA,[Wait ("$GPRMC,"),SKIP 7 ,VLD]          
    Case 3: 
            Print At 1,1,"COG : ",Str VTGT\5," ",223
            Print At 2,1,"SOG : ",Str VTGN\5," ",VTG_N,"m"
            SerIn IN , BADD ,TIM,HATA,[ Wait ("$GPVTG,"),Str VTGT\5,COP,VTG_T,COP,COP,COP,Str VTGN\5,COP,VTG_N]
            
    Case 4: 
           If MODE=0 Then Print At 1,1,"STATUS    : NOT GOOD"
           If MODE=1 Then Print At 1,1,"STATUS    : GOOD    "
           If MODE=2 Then Print At 1,1,"STATUS    : GOOD    "
           Print At 2,1,"SAT IN USE: ",DEC2  USE[0]'*10+USE[1]
           SerIn IN , BADD ,TIM,HATA,[ Wait ("$GPGGA,"),Wait ("E"),Dec MODE,Dec USE[0],Dec USE[1] ]
           

    Case 5: Print At 1,1, Str DAS_\19
            Print At 2,1, Str DAS\19
            SerIn IN , BADD ,TIM,HATA,[Wait ("$") ,Str DAS_\19]
            SerIn IN , BADD ,TIM,HATA,[Wait ("$") ,Str DAS\19]
    Case 6: Print At 1,1,"TIME : ",TIME[0],TIME[1],".",TIME[2],TIME[3],".",TIME[4],TIME[5]
            Print At 2,1,"DATE : ",DATE[0],DATE[1],".",DATE[2],DATE[3],".20",DATE[4],DATE[5]
            SerIn IN , BADD ,TIM,HATA,[ Wait ("$GPRMC,"),Str TIME\6,SKIP 35,Str DATE\6 ]        
End Select 
GoTo MAIN
'*****************************************************************************************

HATA:
Cls
Print At 1,7,"GPS >>----X X---->>TERMINAL"
Print At 2,7,"GPS ILE BAGLANTI KURULAMADI"
DelayMS 5000 
GoTo MAIN 

INT:
GIE=0
If RBIF=1 Then
If PORTB.7=0 Then Inc TEMP
If PORTB.6=0 Then Dec TEMP
T=1
If TEMP>6 Then TEMP=1
If TEMP<1 Then TEMP=6
Clear RBIF
EndIf 
Context Restore


Bir aralar denemeler yaptigim kodlardan biri. *.DSN ve *.bas dosyalari picproje upload alaninda, gps dosyasi icinde. Kodlar calisiyordu, eger degisiklikler yapmadiysam. RAR şifre "www.picproje.org"

mustafa_cmbz

hocam ben pic basic kullanıoyrum fakat dediğin gibi başkalarına da faydalı olur belki...ben şimdi bu modulden alıp bu işe başlıam fakat aklıma takılan bişey var....


mesela ben kordınatları nasıl tanıyacam yanı mesela roketin gitmesi gereken yerin kordınatları var diyelim elimde ben onları ayrı bir devreye yuklerim mesla pic e, sonra bu gps den gelen kordınatları bu devre hafızasındakı lerle karşılaştırır ve kanatçıkları benım istediğim  kordınatın yönune gidecek sekilde cevirecek ve amacıma ulaşmı olurum veya fikirleri olan varmı ?

z

Zeplin turu bir arac kontrolu tamam ama roket gibi cok hizli bir aracin PIC turu islemcilerle kontrol edilmesi fikri bana cok mantikli gelmedi.

Gudumlu demode roketler buyuk ihtimalle analog devrelerle kontrol ediliyordur.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

mustafa_cmbz

hocam bu roketi deney amaçlı yapcağız ses hızını aşıcak roket yapıcaj ne bilgimiz var nede maddi durmumuz ama en azından 10 kg kadar kaldıraç kuvveti uygulayacak guçte motor yapabilriz olsun varsın yavaş gitsin :D

mustafa_cmbz

hocam bu kodda hatalar var derlemıyor


1.=

Select Case TEMP
If T=1 Then
         SAS:
         Cls
         EndIf
         T=0  


2.ve3. =

Case 1:
           Print At 1,1,GLL_N,". ", YONN[0], YONN[1],".", YONN[2], YONN[3], YONN[4], YONN[5], YONN[6],YONN[7],At 1,14,"COG:",Str VTGT\5
           Print At 2,1,GLL_E,".",  YONE[0], YONE[1], YONE[2],".", YONE[3], YONE[4], YONE[5], YONE[6], YONE[7],YONE[8], At 2,14,"SOG:",Str VTGN\5
           SerIn IN , BADD ,TIM,HATA,[ Wait ("$GPGGA,"),SKIP 7,Str YONN\8,COP,GLL_N,COP,Str YONE\9,COP,GLL_E]
           SerIn IN , BADD ,TIM,HATA,[ Wait ("$GPVTG,"),Str VTGT\5,COP,VTG_T,COP,COP,COP,Str VTGN\5,COP,VTG_N]


sebebi nedir?

hatalar kırmızı olanlar...