GPS MODÜL OKUMA

Başlatan LukeSkywalker, 25 Temmuz 2008, 18:25:01

LukeSkywalker

Arkadaşlar ikitane PIC i haberleştirerek de denedim. Yazdığım kod çalışıyor. PIC lerden verici olanına $GPGGA cümlesini 4800 baudda göndertiyorum diğeride bu cümleyi çözüp lcd de yazdırıyor. Fakat modülden alamadım bilgiyi henüz. MAX 232 ile deneyeceğim..

LukeSkywalker

MAX 232 kullanarak PIC'i bilgisayarın com portuna bağladım. Virtual terminal ile Virtual GPS programını bilgisayarın com portuna bağladım. Virtual GPS den alınan bilgiler yine abuk subuk. Ama simülasyonda
Virtual GPS den aldığım verileri PIC'e rahatlıkla okutuyorum. İş pratğie dönünce düzgün çalışmıyor? Acaba nerede hata yapıyorum?
Arkadaşlar devrenin simülasyonu aşağıda bi inceleyip yardımcı olursanız sevinirim. Şimdiden teşekkürler.

XX_CİHAN_XX

Pc den okuma yaparken farklı baudlarda okumayı bence birdene. Bir ihtimal ama 4800 dışında bir baud seçili kalmış olabilir gpsde.
Birde ascii olarak pc den okuma yaptığında abuk sabuk kod görüyorsan bu durumda gps ascii formatta veri göndermiyor demektir. Sirf binary kod diye birşeylerde gördüm orda belki özel bir kod şablonu vardır verileri hex olarak çözmeyi dene.
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.

LukeSkywalker

Ne yaptıysam okutamadım modülü. Son olarak verileri bir tampona alıp oradan LCD ye yazdırmayı denedim ama olmadı. MAX232 ile de 4.7K direnç ile de denedim. Simülasyonda çalışıyor devreyi kurunca çalışmıyor. Modül NMEA protokolü ile çalışıyor bu arada. Üstadlarım yazdığım kod aşağıda nerede hata var acaba?

int a=0;
char msg[67];
void main()
{
INTCON.GIE=1;
CMCON=7;
TRISA=0;                                              //Port ayarları (PortA CCP birimi devre dışı)
TRISB=0b00000010;
Usart_Init(4800);                                      // Usart birimi devrede (4800 Baud)
Lcd_Custom_Config(&PORTA,3,2,1,0,&PORTB,3,4,5);
Lcd_Custom_Cmd(LCD_CURSOR_OFF);
Lcd_Custom_cmd(Lcd_Clear);

 while(1)
         {
          if (Usart_Data_Ready())                      // Usart biriminden data geldiyse..
            {
             msg[a]=Usart_read();
             a++;
             if(a==20)
                {
                 a=0;
                 Lcd_Custom_Chr(1,1,msg[0]);
                 Lcd_Custom_Chr(1,2,msg[1]);
                 Lcd_Custom_Chr(1,3,msg[2]);
                 Lcd_Custom_Chr(1,4,msg[3]);
                 Lcd_Custom_Chr(1,5,msg[4]);
                 Lcd_Custom_Chr(1,6,msg[5]);
                }
             }
           }
}

teknikelektronikci

ustam bizde ayni modülden siparis verdik yakinda gelir denemelere baslariz duruma göre sizede bilgi veririm bu arad belki sizin modül bozukdur öyle bi imkani varmi ?
Ey Türk istikbalinin evlâdı! İşte, bu ahval ve şerâit içinde dahi, vazifen; Türk İstiklâl ve Cumhuriyetini kurtarmaktır! Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!

LukeSkywalker

Arkadaşlar uzun uğraşlar sonucunda modülün ttl çıkışlarından veri okudum ve lcd ye yazdırdım.

$GPGGA başlığından sonra virgülleri tesbit edip mi enlem ve boylam bilgilerini yazdırmalıyım?

mustafa_cmbz

hocam sorun neymiş merak ettim bende bu yakınlarda gps ile ilgili uyuglamalara başlıyacağımda o yüzden belki bizde aynı sorun ile karşılaşırsak kısa yoldan halletmiş oluruz...

birde sizin yazdığınız kod ile aynı işlemi yapan basic koduna ihtiyacım acaba elinde olan arkadaşlar varsa paylaşabilirmi? sadece okuma ilgili olarak..

birde şunu merak ediyorum..bu gps modülünde gönderme hattı var acaba bu modül ile bir bilgi gönderme şansımız varmı var ise bu bilgiyi nereden nasıl alacağız...

LukeSkywalker

Mustafa kardeş modülün beslemesini 4.6-4.7 volt civarında tutmalısın. Beslemesi çok hassas. Bu besleme seviyesini yakaladıktan sonrra modülün ttl çıkışını direkt PIC'in RX girişine bağladım. Hatasız okuyor karakterleri. Modülün giriş ucu modüle bilgi göndermek için. Bu modülle herhangi bir alıcıya bilgi gönderilmez. O iş içişn GSM/GPRS modül lazım.

teknikelektronikci

arkadaslar daha öncede bahsettim bizde aldik gps modül önümüzdeki haftalarda arkadas denemelre baslayacak fakat dikkat etmeniz gerek bir husus var gps antenin üzerien elinizle temas etmeyiniz cok hasas oldugu icin bozulabiliormus zaten ufacik bi sey ya ben daha büyük bekliyordum :) aklinizda olsun
Ey Türk istikbalinin evlâdı! İşte, bu ahval ve şerâit içinde dahi, vazifen; Türk İstiklâl ve Cumhuriyetini kurtarmaktır! Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!

LukeSkywalker

Üstadlar yardımlarınızdan dolayı hepinize teşekkür ediyorum. Proje tamamlandıktan sonra şemaları ve kodları burada paylaşacağım inşallah.

mustafa_cmbz

hocam bu modülün içinde pil de var en son alınan kordinaları vs. hafızada tutması içinmiş o yüzden ayaklarında şae olmamasına özen gösterilmeli...

gps'in giriş ucu demekki bu modülü kendi protkolünde işlem yaptırmak için de kullanılabilinir...diğer sony den farklı özelliklere sahip bir modül...projenin bitmesini bekliyoruz bizde ondan esinlenerek bişeyler yaparız...

LukeSkywalker

Modüldeki pil GPS modülün son aldığı bilgileri hafızada tutuyor ve saat bilgisini koruyor. Bu özellik araç yakibinde çok önemli. Araç çalındıktan sonra GPS'in çekmediği bir garaja veya kapalı bir ortama bırakılırsa son bilgiler gönderileceğinden yer tesbiti yapılabilir. Modülün girişlerinden gönderilecek komutlarla üzerindeki yanıp sönen ledden, baud rate oranlarına kadar pek çok özellik ayarlanabiliyor ve Nmea-Sirf Binary protokolleri arasında geçiş yapılabiliyor.

XX_CİHAN_XX

@maytere şuanda ttl pinlerden 4800 baud ile nmea protokolü ile sorunsuz çalıştırdın değil mi?
Acaba neden aynı kodlarla gps in diğer çıkışını kullanamadın bunu merak ettim. Sonuçta deniz elektroniğin devreside bu çıkışı kullanarak çalıştırmış.
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.

zenze

lassen lp gps modülle çalışan arkadaş oldumu ?

LukeSkywalker

Cihan hocam modülün üzerinde konnektör pabucundan hariç birde ayrıca vcc gnd rs232 ve ttl giriş çıkış olmak üzere padler var. Ben konya sokakta uzun uzun aramama rağmen uygun konnektör bulamadım ve deniz elektroniğin devresindeki konnektörüde sökmek istemediğimden  bahsettiğim padlere kablo lehimleyerek çıkış aldım. Fakat rs232 çıkışta osilaskopla inanılmaz bir gürültü gördüğümden ttl çıkışları kullandım. Konnektörden baktığımda herhangi bir gürültü yok ama padden bakınca var. TTL çıkışlar gayet güzel sinyal veriyor. Birde PIC ve modülün besleme voltajlarını 4.6 volta sabitlemek lazım. Voltaj arttığı zaman baudrate değerlerinde sapma gözleniyor ve bu da uyumsuzluğa sebep oluyor.