GPS MODÜL OKUMA

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

LukeSkywalker

Arkadaşlar deniz elektronikten aldığım Sirfstar III modülü bir türlü doğru dürüst okutamadım 16f628 'e. Bilgileri LCD ye yazdırıyorum fakat abuk subuk karakterler geliyor. Yardımlarınızı bekliyorum..MikroC ile yazdığım kod aşağıda..


Usart_Init(4800);                                    

while(1)
         {
          if (Usart_Data_Ready())                      
           {
             msg=Usart_read();                    
             lcd_chr_cp(msg);
           }
         }
}

parda

Merhaba;

Modülden gelen bilgiyi önce bir tamponda biriktirip sonra lcd ye göndermeyi deneyin.

Kolaylıklar
Bildiğim tek şey, hiç bir şey bilmediğimdir.

XX_CİHAN_XX

Assembly ama belki faydası olur.
http://picproje.org/index.php/topic,17900&highlight=gps
Birde gps teki ttl seviyedeki rx ve tx pinlerini kullanma. Normal rx - tx pinlerini kullan ancak bu pinleri dogrudan pice girmemelisin 4k7 gibi bir direnç ile zayıftlat yada en güvenilir yöntemi max232 den geçir.
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

Alıntı yapılan: "XX_CİHAN_XX"Assembly ama belki faydası olur.
http://picproje.org/index.php/topic,17900&highlight=gps
Birde gps teki ttl seviyedeki rx ve tx pinlerini kullanma. Normal rx - tx pinlerini kullan ancak bu pinleri dogrudan pice girmemelisin 4k7 gibi bir direnç ile zayıftlat yada en güvenilir yöntemi max232 den geçir.

TTL çıkışı kullanmadım. RS232 çıkışı kullandım ve 4.7K ile zayıflattım. Birde max232 ile deneyeceğim. Tampona biriktirip okumayı da denedim. İlk önce böyle direk görebilsem verileri, tampona alıp enlem boylam şeklinde yazdıracağım LCD'ye. Bu modül acaba çıkışta Ascii olarak bilgi üretmiyormu? Cihan hocam senin tasarladığın alıcıyı inceledim. Sen sony chipli modülü kullanmışsın, bendeki sirfstar modül. Deniz elektronik GPS gezgin alıcısıyla verileri almış 16f876 ile. Ben 16f628a kullanıyorum acaba orda bi problem olabilir mi?

Modül şu:
http://www.denizelektronik.com/GPS_SiRFstar.htm

XX_CİHAN_XX

Piclerin farklı olması ile ilgili bir durum değil. Bence sirfstar3 ün kullandığı protokol Sony çipli nmea protokolünden biraz farklı. Seninde dediğin gibi benim verdiğim kodlar sony çipe göre yazılmıştı.
Bence bu işi çözmenin en garanti yolu şudur. GPS in Tx pinini bir bilgisayarın com portundaki Rx pinine gir. GPS i 5v luk bir kaynak ile çalıştır. Kaynağın şasesinin Com portun şasesi ile birleşmesini sağla ve virtual terminal yada benzeri bir programla gps in saniyede bir yolladığı tüm bilgileri izle. Ona göre pic programını yaz.
Ben sony çipli GPS ide bu şekilde çözmüştüm.  ;)
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.

mihri

http://rapidshare.com/files/132428799/Virtual_GPS.rar.html

Önce yukarıdaki programı bilgisayarına kur yazdığın kodları proteusta bu programla test et daha kolay neticeye ulaşırsın. XX_CİHAN_XX arkadaşın dediği gibide yaparsan proteusta yazdığın kodları test etme imkanın olur.

Kolay gelsin.
"Eppur si muove!"

LukeSkywalker

Hocam bu programla proteusta test et demişsin. Bu programla proteusu nasıl haberleştiriyoruz? Sanırım rs232den yaptığım devreyi bağlayarak bu programın çıktılarını görebilecek miyim onu test et demek istedin? Cihan hocam senin dediğin gibi de yaptım. Modülün TX çıkışını RS232 ye bağladım ama hyper terminalden bilgi göremedim. Pazartesi max 232 ile birdaha deneyeceğim. Projemden de bahsediyim, görme özürlüler içinbelli  bir alanda yön tarifi yapacak bir sistem. ISD entegresine ses kayıtları yapılacak ve PIC hafızasına kaydedilen koordinatlarla GPS koordinatları karşılaştırılıp sesli komut verecek sağa sola gibi.. Ama GPS verilerini okutamadın henüz. Onu halletsem gerisi kolay..

Birde üstadlarım bu mikroC kodunda bir hata var mı acaba? Simülasyonda çalıştırıyorum ve bir Pic den diğerine Ascii olarak Nmea kodlarını gönderiyorum ve okutuyorum. Simülasyon ve C kodu aşağıda..

http://rapidshare.de/files/40084446/GPS_ALICI.rar.html

teknikelektronikci

merhaba kusura bakmayin konu ile alakasiz olabilir ama su verileri tampona alma islemi nasil oluor yani picn kendi tamponumu oluor ? yoksa ayrica bir entegre mi kullanioruz bu konuda biraz bilgi verebilirseniz cok sevinirim eger c veya basic mümkünse örnek verirseniz sevinirim simdidien tesekürler

(bu arada kuusra bakmayin konuyu dagitmak istemem konu ile alakasiz ise admin arkadaslar silebilir )
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!

XX_CİHAN_XX

@maytere aslında max232siz olması gerek(fakat hiç denemedim) istersen hyper terminal yerine aşağıdaki programı bir dene
https://www.picproje.org/index.php/topic,6412&highlight=virtual+terminal+port
Olamadı max ekleyip denersin sonuçta gps bir data gönderiyor ve bu datanın com porttan okunması gerek. Badu rate ayarlarını dogru yaptıgına dikkat et. Normalde gps in gönderdiği format 4800bps & 8n1 şeklinde olması gerek.
@teknikelektronikçi
Söz konusu buffera kayıt işlemi okunan tüm verilerin rame alınmasından ibarettir. Örneğin Gps 66 adet ascii formatında veri gönderir. Bunuda rame 66 byte olarak kaydedebiliriz. Başka bir değişle 66 adet register açıp sırayla gps ten gelen verileri tampona almış oluruz.
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.

mihri

http://rapidshare.com/files/132556075/Virtual_Serial_Port_Driver.rar.html

Gönderdiğim programla 2 adet sanal COM port oluşturup birleştiriyosun mesela COM5 ve COM6 oluşturup birleştirdiğinizde COM5'ten gönderdiğiniz veriyi COM6'dan alabiliyorsunuz. Virtual GPS'ten COM port ayarını COM5 yapın proteusta COMPIM kullanarak COM6'yı seçin baund rate'lerin aynı olmasına dikkat etmelisiniz tabii. Ayrıca kullanacağın buffer 128 byte olsun eğer GPS'ten alacağın dataları float, int gibi değişkenlerin içine atmayı planlıyorsan hız ve yükseklik floating olarak geliyor buna dikkat et.

Kolay gelsin.
"Eppur si muove!"

LukeSkywalker

Üstadlar gösterdiğiniz ilgiye gerçekten çok teşekkür ederim. Cihan hocam Baudrate ayarlarını yaptım birtürlü okumadı. Pazartesi günü baskı devre hazırlayıp bir seri iletişim kiti oluşturacağım max 232 kullanarak ve öyle bağlayacağım bilgisayara.

Mihri hocam gönderdiğin program için sağol. Yükledim ve proteusta simülasyonunu yaptım. Gayet güzel çalıştı kodlar. Karakterler aynen gözüküyor. Yazdığım kodda bir sıkıntı yok demekki. Devrede doğru. Modülden bilgi almamda sorun var.

Teknikelektronikci hocam tampon dediğimiz şey kod yazarken tanımlanan bir  değişken veya dizi.

teknikelektronikci

üstadlar desenize buncazamandir kodlarda kullandigim dizi degiskenler in tampon olduugnu  bilmiyordum valla ama saniirm bu konuda biraz bilgim az biraz daha gelistirmek gerek :D ilginiz iicin tesekür ederim

maytere hocam gps modülü sirf bilgisyara baglayip özel gps programlariyla verileri almaya calissaniz orda bir gözlemlesiniz olurmu acaba? elimde bu gibi bi program var isterseniz arsivden bulup gönderebilirim kolay gelsin
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

Teknikelektronikci dostum, Virtual terminal ile modülün gönderdiği bilgiyi gördükten sonra isteyebilirim senden. İlk önce bir göreyim modülün çıkışını pazartesi günü yazdığım programı ona göre değiştireceğim. Eğer GPS bilgilerini okuyan özel bir program lazım olursa isterim senden. Sağolasın..

ahmet2004



Bu modülde sadece TTL çıkış var.TTL  uçlar zarar görmüş olabilir PC'ye bağladı iseniz.

LukeSkywalker

Dostum gelen modülün üzerinde ttl ve rs232 çıkışlar mevcut. Ayrıca deniz elektronikten gelen devrede denedim modül çalışıyor ve bilgi veriyor çıkışta. Deniz elektronik 4.7K direnç üzerinden alıyor verileri. Bu da gösteriyor ki modülün rs232 çıkışından bilgi alınıyor. O datasheet pek doğru değil yani.