Arduno ile mediatek MT3329 GPS modülü kullanımı
The mediatek MT3329 GPS module with Arduno use

The mediatek MT3329 GPS module with Arduno
Bu yazımızda MediaTek tarafından üretilen MT3329 v2.0 GPS modülünü kullanarak basit bir konum belirleme yapacağız.
Uygulama bize ham konum değerlerini verecektir.
MediaTek MT3329 v2.0 Temel Özellikleri
- Standart seri baud hızı atanabilmektedir.(default olarak 38400 bps’tir.).
- Dahili batarya
- Geliştirilmiş topraklama ve kart yerleşimi
- 66 kanal MediaTek MT3329 GPS Motor
- Yüksek hassasiyet: -165 dBm’ e kadar izleme, üstün kentsel performans
Kod:
String inputString = “”;
String a = “”; // a string to hold incoming data
boolean stringComplete = false; // whether the string is complete
int sayac=0;
int sayac2=0;
int sayac3=0;
void setup() {
// initialize serial:
Serial.begin(38400);
// reserve 200 bytes for the inputString:
inputString.reserve(200);
a.reserve(50);
}
void loop() {
// print the string when a newline arrives:
if (stringComplete) {
if(sayac3 < 5 ) {
sayac3++;
// clear the string:
inputString = “”;
a = “”;
stringComplete = false;
}
else {
Serial.println(a);
// clear the string:
inputString = "";
a = "";
stringComplete = false;
sayac3=0;
}
}
}
void serialEvent() {
while (Serial.available()) {
// get the new byte:
char inChar = (char)Serial.read();
// add it to the inputString:
if(inChar == ‘$’ && sayac==0){
inputString += inChar;
sayac++;
}
else if(inChar == ‘G’ && sayac==1){
inputString += inChar;
sayac++;
}
else if(inChar == ‘P’ && sayac==2){
inputString += inChar;
sayac++;
}
else if(inChar == ‘R’ && sayac==3){
inputString += inChar;
sayac++;
}
else if(inChar == ‘M’ && sayac==4){
inputString += inChar;
sayac++;
}
else if(inChar == ‘C’ && sayac==5){
inputString += inChar;
sayac++;
}
else if(sayac != 6){
inputString = “”;
sayac=0;
sayac2=0;
}
if(sayac==6){
if(inChar == ‘,’){
sayac2++;
}
if( sayac2 == 3){
if(inChar != ‘,’){
a += inChar;
}
}
if( sayac2 == 5){
a += inChar;
}
if( sayac2 == 7){
a += inChar;
}
inputString += inChar;
}
// if the incoming character is a newline, set a flag
// so the main loop can do something about it:
if (inChar == '\n' && sayac == 6) {
stringComplete = true;
sayac=0;
sayac2=0;
}
}
}
Örnek çıktı

- Öncelikle Processing için gerekli kütüphaneyi indirelim. googlemapper_library
- Daha sonra kodu Processing üzerinden kaydedelim. Fakat kaydettiğimiz yer birazönce indirdiğimiz klasör ile aynı olmalı
Kod:
import googlemapper.;
import processing.serial.; //arduino-processing iletişimi için
Serial myPort;
PImage map;
GoogleMapper gMapper;
float maCenterLat ;
float mapCenterLon;
public void setup() {
println(Serial.list());
//burada listelenen donanım sırasına göre
//Serial.list()[sayi] değerini düzenleyin
myPort = new Serial(this, Serial.list()[0], 38400);
size(640, 480);
}
public void draw() {
String mesaj= myPort.readStringUntil(10); // 10 ASCII kodu boşluk demek, gelen veriyi boşluk görene kadar al mesaj değişkenine ata.
if (mesaj!=null) //değer geliyorsa devam et
{
String[] mesaj2=split(mesaj, “,”);
// println(mesaj2);
String[] LAT=split(mesaj2[0], “.”);
int LATh=int(LAT[0])/100;
float LATm=float(LAT[0])%100;
LATm=(LATm+(float(LAT[1])/10000))/60;
String[] LON=split(mesaj2[1], “.”);
int LONh=int(LON[0])/100;
float LONm=float(LON[0])%100;
LONm=(LONm+(float(LON[1])/10000))/60;
maCenterLat=LATm+LATh;
mapCenterLon=LONm+LONh;
}
int zoomLevel =18;
String mapType = GoogleMapper.MAPTYPE_HYBRID;
int mapWidth=640;
int mapHeight=480;
gMapper = new GoogleMapper(maCenterLat, mapCenterLon, zoomLevel, mapType, mapWidth, mapHeight);
map = gMapper.getMap();
image(map, 0, 0);
saveFrame(“map.jpg”);
}