Arduino GPS Modülü Kullanımı (GY-NEO6MV2)

Arduino GPS Modülü Kullanımı (GY-NEO6MV2)

Bu yazımızda Arduino GPS Modülü kullanımı ve bu modülden nasıl koordinat bilgilerinin alınacağını göstereceğiz. Projede kullanılacak GY-NEO6MV2 GPS modülü Arduino Uno kartına bağlanacaktır. Bağlantılar ise seri haberleşme üzerinden gerçekleştirilecektir. 

Arduino Uno Nedir ?

Arduino Uno, popüler bir mikrodenetleyici kartı olan Arduino’nun temel ve en çok kullanılan modelidir. Arduino platformu, özellikle hobi elektronik projeleri ve prototipleme için tasarlanmış, kullanımı kolay, açık kaynaklı bir donanım ve yazılım platformudur. Arduino Uno, bu platformun en yaygın ve temel kartlarından biridir.

Arduino Uno’nun temel özellikleri şunlardır:

  • Mikrodenetleyici: Arduino Uno, Atmel firması tarafından üretilen ATmega328P mikrodenetleyicisini içerir. Bu mikrodenetleyici, 8 bit, 16 MHz saat hızına sahiptir.
  • Giriş/Çıkış Pinleri: Arduino Uno, dijital ve analog giriş/çıkış pinleri içerir. Toplamda 14 dijital giriş/çıkış pini (6’sı PWM çıkışı olarak kullanılabilir) ve 6 analog giriş pini bulunur.
  • USB Bağlantısı: Arduino Uno’nun üzerinde bir USB bağlantı noktası bulunur. Bu, Arduino kartını bir bilgisayara bağlayarak program yükleme ve veri iletişimi sağlar.
  • Güç Beslemesi: Arduino Uno, USB üzerinden veya harici bir güç kaynağından beslenebilir. Genellikle 7-12V arasındaki bir harici güç kaynağı kullanılır.
  • Programlama ve Geliştirme: Arduino Uno, Arduino IDE (Integrated Development Environment) adlı bir yazılım ortamı üzerinden programlanır. Arduino IDE, C/C++ benzeri bir dil kullanarak yazılım geliştirmeyi kolaylaştırır.

Open Source (Açık Kaynak): Arduino platformu ve Arduino Uno’nun tasarımı açık kaynaklıdır. Bu, kullanıcıların kartın şemasını inceleyebilmesini, üzerine kendi projelerini geliştirebilmesini ve Arduino topluluğu tarafından geliştirilen kaynakları kullanabilmesini sağlar.

Arduino Uno, öğrencilerden profesyonel mühendislere kadar geniş bir kullanıcı kitlesi tarafından tercih edilen bir karttır. Elektronik projeler, otomasyon, robotik, IoT (Nesnelerin İnterneti) gibi birçok farklı uygulama alanında kullanılabilir.

arduino-gps

Arduino Uno Mikrodenetleyicisi

GPS Modülü Nedir ?

Arduino GPS modülü, Arduino mikrodenetleyici kartlarıyla kullanılmak üzere tasarlanmış bir GPS alıcısıdır. Bu modül, küçük bir devre kartı üzerinde bulunan bir GPS alıcısı ve bazen dahili bir anten içerir. Arduino GPS modülleri genellikle GPS konum verilerini okumak, işlemek ve Arduino kartına aktarmak için kullanılır. Bu sayede projelerinizde konum tabanlı uygulamalar geliştirebilirsiniz.

Arduino GPS modüllerinin temel özellikleri:

  • UART İletişim: Arduino GPS modülleri genellikle seri iletişim (UART) protokolünü kullanarak Arduino kartlarıyla iletişim kurar. UART, mikrodenetleyici ve GPS modülü arasında veri iletimini sağlar.
  • NMEA Veri Formatı: GPS modülleri genellikle NMEA (National Marine Electronics Association) veri formatını kullanır. Bu, GPS verilerini belirli bir standart formatta iletmelerini sağlar.
  • Konum ve Zaman Bilgileri: GPS modülleri, kullanıcılara enlem, boylam, yükseklik, hız, yön ve zaman gibi GPS konum ve zaman bilgilerini sağlar.
  • Anten Seçenekleri: Bazı GPS modülleri dahili antenlere sahipken, diğerleri harici bir GPS anteni bağlantısı gerektirebilir. Anten seçimi, modülün kullanılacağı ortama ve uygulamaya bağlı olarak değişebilir.

Arduino GPS modülleri, hava araçları, araç takibi, hava durumu istasyonları, coğrafi bilgi sistemleri (GIS) projeleri ve diğer konum tabanlı uygulamalar gibi birçok farklı proje türünde kullanılabilir. Arduino ile entegre edildiğinde, kullanıcılar GPS verilerini okuyabilir, işleyebilir ve projelerinde konum bilgilerini kullanabilirler.

arduino-gps

GY-NEO6MV2 GPS Modülü

GPS Modülü Nasıl Çalışır ?

GPS (Global Positioning System – Küresel Konumlandırma Sistemi), dünya genelinde konum belirlemek için kullanılan bir uzay tabanlı navigasyon sistemidir. GPS’nin çalışma mantığı, uydu tabanlı bir konumlandırma sistemine dayanır. İşte GPS’nin temel çalışma prensipleri:

  • Uydular: GPS, uzayda dönen uydu ağlarından bilgi alarak konum belirler. Bu uydu ağları, belirli bir düzen ve yörüngede yer alan GPS uydularını içerir. Genellikle 24 uydu, dünya yüzeyinin herhangi bir yerinde minimum dört uydu ile bağlantı kurabilmek için yeterlidir.
  • Uyduların Konumu ve Zaman Bilgisi: GPS uyduları, yüksek hassasiyetle saat tutarlar ve sürekli olarak konumlarını yayınlarlar. Uyduların yüksek doğrulukla sahip oldukları bu iki bilgi (konum ve zaman), GPS alıcıları tarafından kullanılır.
  • GPS Alıcıları: GPS alıcıları, uydu sinyallerini alır ve bu sinyallerden gelen bilgileri işleyerek kullanıcının konumunu belirler. Bir GPS alıcısı, en az dört uydu ile iletişim kurarak kullanıcının enlem, boylam ve yükseklik bilgilerini belirler.
  • Triangülasyon: GPS alıcıları, en az dört uydu tarafından gönderilen sinyallerin varış sürelerini ölçerek kullanıcının konumunu belirler. Bu işlem, triangülasyon adı verilen bir yöntemle gerçekleşir. Triangülasyon, bir noktanın konumunu belirlemek için üç veya daha fazla bilinen noktanın mesafesini kullanma prensibine dayanır.
  • Dünya Çevresinde Kesikli Konumlandırma: GPS alıcıları, dünya yüzeyinin her yerinde konum belirleme yeteneğine sahiptir. Bu sayede kullanıcılar, doğrudan GPS alıcıları üzerinden veya GPS entegre edilmiş cihazlar aracılığıyla hassas konum bilgilerine erişebilirler.

GPS’nin temel fikri, uydu sinyalleri aracılığıyla bir noktanın konumunu belirlemektir. GPS sistemi, ABD tarafından geliştirilmiş olup, 1970’lerin sonlarına doğru tam anlamıyla kullanıma açılmıştır. Bu sistem, sivil ve askeri kullanıma yönelik olarak tasarlanmıştır. günümüzde dünya genelinde yaygın olarak kullanılan bir teknolojidir.

GY-NEO6MV2 Teknik Özellikleri

GPS NEO-6Mv2, küçük boyutlu bir GPS modülüdür ve genellikle hobi elektroniği projelerinde ve taşınabilir cihazlarda konum belirleme amacıyla kullanılır. İşte GPS NEO-6Mv2’nin temel özellikleri:

  • Uydu Bağlantısı: NEO-6Mv2, Amerika Birleşik Devletleri tarafından işletilen GPS uydu sistemine bağlanabilir.
  • Küçük Boyut ve Hafiflik: Bu modül, kompakt bir form faktörüne sahiptir ve genellikle hafiftir, bu da taşınabilir cihazlarda ve hobi projelerinde kullanımı kolaylaştırır.
  • İntegre Anten: Modül, anteni modül üzerinde entegre ettiği için harici bir anten gerektirmez.
  • Uydu Sayısı: NEO-6Mv2, birkaç uydu ile bağlantı kurabilir ve bu sayede daha hassas konum belirleme sağlar.
  • Çalışma Gerilimi: Genellikle 3.3V veya 5V gibi düşük voltajda çalışabilir. Bu, çeşitli mikrodenetleyiciler veya mikrokontrol cihazları ile uyumlu olmasını sağlar.
  • UART (Universal Asynchronous Receiver-Transmitter) İletişim: Modül, seri iletişim arayüzü üzerinden mikrodenetleyicilerle haberleşebilir. Bu, GPS verilerini almak için genellikle kullanılan bir yöntemdir.
  • Yüksek Hassasiyet: NEO-6Mv2, yüksek hassasiyetle konum belirleme yeteneğine sahiptir. Bu, kullanıcıya doğru ve güvenilir konum bilgileri sağlar.
  • Çalışma Sıcaklığı: Modül, genellikle belirli bir sıcaklık aralığında (örneğin -40°C ila 85°C) sorunsuz bir şekilde çalışabilir.
  • Geliştirici Desteği: NEO-6Mv2, geniş bir kullanıcı tabanına sahip ve genellikle Arduino gibi popüler mikrodenetleyici platformlarıyla uyumludur. Bu, hobi elektroniği meraklıları için kolay entegrasyon sağlar.
  • Üretici ve Marka: NEO-6Mv2 modülü, genellikle üreticisi olan u-blox tarafından üretilir. Ancak, belirli modeller ve markalar da bulunabilir.

GPS NEO-6Mv2’nin özellikleri, belirli bir üreticinin modeline ve versiyonuna bağlı olarak değişebilir. Özellikle modülü kullanmadan önce ilgili teknik belgelere başvurmak önemlidir. Eğer Arduino GPS modül Datasheet incelemek isterseniz ilgili linkten ulaşabilirsiniz.

arduino-gps

GY-NEO6MV2 GPS Modülü

Arduino GPS Modül Kullanım Projesi

Malzeme Listesi

  1. Arduino GPS Modülü (GPS6MV2)
  2. Arduino UNO
  3. Breadboard
  4. Jumper Kablo

Bağlantı Şeması

Arduino GPS Kullanımı Projemizde 4 adet jumper kablo kullanmamız yeterli olacaktır. Bu kablolar aşağıdaki şekilde gösterildiği gibi bağlantıları gerçekleştirilecektir.

  • Arduino VCC (3-5V) => GPS 5V
  • Arduino GND => GPS GND
  • Arduino D3 => GPS Rx
  • Arduino D4 => GPS Tx

Arduino GPS Yazılım Kodu

#include <SoftwareSerial.h>
#include <TinyGPS++.h>

// Gy-GPS6MV2 modülünün TX ve RX pinleri
const int gpsTxPin = 3;  // Modülün TX pini, Arduino'nun D3 pinine bağlı
const int gpsRxPin = 4;  // Modülün RX pini, Arduino'nun D4 pinine bağlı

// SoftwareSerial nesnesi oluşturun
SoftwareSerial gpsSerial(gpsTxPin, gpsRxPin);

// TinyGPS++ nesnesi oluşturun
TinyGPSPlus gps;

void setup() {
  // Seri haberleşmeyi başlat
  Serial.begin(9600);
  gpsSerial.begin(9600);

  Serial.println("Arduino GPS Haberleşme Programı Başlatıldı");
}

void loop() {
  // GPS modülünden gelen verileri oku
  while (gpsSerial.available() > 0) {
    if (gps.encode(gpsSerial.read())) {
      // GPS verileri güncellendiğinde
      if (gps.location.isValid()) {
        // Enlem ve boylam verilerini seri monitöre yazdır
        Serial.print("Enlem: ");
        Serial.println(gps.location.lat(), 6);
        Serial.print("Boylam: ");
        Serial.println(gps.location.lng(), 6);
      }
    }
  }
}

Bu program, TinyGPS++ kütüphanesini kullanarak GPS modülünden enlem ve boylam verilerini okur. Verileri doğru bir şekilde alabilmek için GPS modülünün açık havada ve serbest bir gökyüzüne doğru bir şekilde yerleştirilmesi önemlidir. Ayrıca, bu örnekte enlem ve boylam verileri altı ondalık basamakla yazdırılmıştır (gps.location.lat(), 6 ve gps.location.lng(), 6), ancak bu değeri isteğinize göre ayarlayabilirsiniz.

Arduino GPS Modülü Kullanımı

TinyGPS++ Kütüphanesi Nedir ?

TinyGPS++, GPS modüllerinden gelen NMEA verilerini işlemek ve GPS konumunu çıkarmak için kullanılan bir Arduino kütüphanesidir. Bu kütüphane, GPS modüllerinden gelen verileri ayrıştırmak, konum bilgilerini elde etmek, hız ve yükseklik gibi diğer GPS verilerini okumak için işlevler sağlar.

Kütüphane, NMEA (National Marine Electronics Association) standartlarına uygun GPS modülünden alınan seri verileri analiz eder. GPS modülü genellikle bir mikrodenetleyiciye (örneğin Arduino) bağlıdır ve seri haberleşme aracılığıyla NMEA verilerini gönderir. TinyGPS++ kütüphanesi bu verileri alır ve işler.

Bu kütüphane, GPS konumunu anlamanızı sağlar. GPS modülünden gelen verileri kullanarak enlem ve boylam gibi coğrafi konum bilgilerini alabilir, hız ve yükseklik gibi diğer özelliklere erişebilirsiniz.

Kütüphanenin kullanımı genellikle basittir ve GPS ile ilgili projelerde, özellikle Arduino tabanlı projelerde yaygın olarak kullanılmaktadır. GPS modülünüzden gelen NMEA verilerini hızlı ve etkili bir şekilde işlemek için TinyGPS++ kütüphanesini kullanabilirsiniz.

arduino-gps

TinyGPS++ Kütüphanesi Nedir ?

TinyGPS++ Kütüphanesini Nasıl Kurabilirim ?

Bu kütüphaneyi Arduino IDE’ye eklemek için aşağıdaki adımları takip edebilirsiniz:

  1. Arduino IDE’yi Açın: Bilgisayarınızda Arduino IDE yüklü değilse Arduino’nun resmi web sitesinden indirebilir ve yükleyebilirsiniz.
  2. Kütüphane Yöneticisi’ni Açın: Arduino IDE’yi açtıktan sonra, menü çubuğundaki “Araçlar” sekmesine gidin. Ardından, “Kütüphane Yöneticisi”ni seçin.
  3. TinyGPS++ Arayın: Kütüphane Yöneticisi penceresinde sağ üst köşede bulunan arama kutusuna “TinyGPS++” yazın.
  4. Kütüphaneyi Seçin ve Yükleyin: Arama sonuçları arasında “TinyGPS++ by Mikal Hart” adlı kütüphaneyi bulun. Kütüphanenin yanındaki “Yükle” butonuna tıklayarak kütüphaneyi Arduino IDE’ye ekleyin.

Bu adımları takip ettikten sonra, yukarıda verdiğim GPS kodunu Arduino IDE’de çalıştırabilirsiniz. TinyGPS++ kütüphanesi, GPS modülünden gelen verileri daha kolay işlemenize yardımcı olacaktır.

Arduino GPS Yazılım Kodu (Ayrıntılı)

#include <TinyGPS++.h>
#include <SoftwareSerial.h>

// GPS modülünün RX ve TX pinleri
static const int RXPin = 4, TXPin = 3;

// GPS modülü ile haberleşme yapacak nesne
SoftwareSerial ss(RXPin, TXPin);

// TinyGPS++ nesnesi oluştur
TinyGPSPlus gps;

void setup() {
  Serial.begin(9600); // Seri haberleşmeyi başlat
  ss.begin(9600);    // GPS modülü ile haberleşmeyi başlat
}

void loop() {
  // GPS modülünden gelen verileri oku
  while (ss.available() > 0) {
    gps.encode(ss.read());
  }

  // GPS verileri kullanılabilecek durumdaysa
  if (gps.location.isUpdated()) {
    // Enlem ve boylamı seri monitöre yazdır
    Serial.print("Enlem: ");
    Serial.println(gps.location.lat(), 6);
    Serial.print("Boylam: ");
    Serial.println(gps.location.lng(), 6);

    // Hız, yükseklik, tarih ve saat gibi diğer GPS verilerini yazdır
    Serial.print("Hız: ");
    Serial.println(gps.speed.kmph());
    Serial.print("Yükseklik: ");
    Serial.println(gps.altitude.meters());
    
    Serial.print("Tarih: ");
    Serial.print(gps.date.year());
    Serial.print("/");
    Serial.print(gps.date.month());
    Serial.print("/");
    Serial.println(gps.date.day());
    
    Serial.print("Saat: ");
    Serial.print(gps.time.hour());
    Serial.print(":");
    Serial.print(gps.time.minute());
    Serial.print(":");
    Serial.println(gps.time.second());
    
    Serial.println(); // Bir satır boşluk ekleyerek verileri ayır
  }
}


Bu Arduino kodu, bir GPS modülü ile etkileşim kurarak ve TinyGPS++ kütüphanesini entegre ederek çeşitli GPS verilerini okur ve bu verileri seri monitöre yazdırarak kullanıcıya sunar. Kod, temel olarak enlem ve boylam bilgilerini içeren GPS konumunu, hızı, yüksekliği, tarihi ve saati takip etmek üzere tasarlanmıştır.

Kodun sunduğu temel bilgiler şunlardır:

  • Enlem ve Boylam: GPS modülünden elde edilen enlem ve boylam bilgileri, coğrafi konumu belirtir.
  • Hız: GPS modülünden alınan hız bilgisi, nesnenin hareket hızını kilometre cinsinden gösterir.
  • Yükseklik: GPS modülünden alınan yükseklik bilgisi, nesnenin deniz seviyesine göre yüksekliğini metre cinsinden belirtir.
  • Tarih ve Saat: GPS modülünden elde edilen tarih ve saat bilgileri, anlık zaman damgasını ve takvim bilgisini sağlar.

Bu bilgiler, kullanıcının bir GPS alıcısı kullanarak anlık konum, hız ve diğer önemli ölçümleri takip etmesini sağlar. Kullanıcı, GPS modülünün bağlı olduğu Arduino cihazını seri monitör üzerinden izleyerek, ilgili verilere anlık erişim sağlayabilir. Bu sayede, GPS teknolojisinin sunduğu çeşitli özellikleri kullanarak farklı projeler geliştirmek mümkündür.

Daha fazla içerik için Elektronik sayfamızı ziyaret edebilirsiniz. Değerli takipçilerimiz, sizlerle bilişim dünyasında harika bir yolculuk yaşıyoruz. Bilgiyi paylaşma, öğrenme ve keşfetme tutkusunu birlikte yaşıyoruz. Siz de bu heyecanlı serüvenimize katılmak ve bizi desteklemek isterseniz, bizi sosyal medyada takip etmeyi unutmayın!

Yorum Bırakın