İçindekiler:

GPS Modüllü Arduino Mega Arayüz (Neo-6M): 8 Adım
GPS Modüllü Arduino Mega Arayüz (Neo-6M): 8 Adım

Video: GPS Modüllü Arduino Mega Arayüz (Neo-6M): 8 Adım

Video: GPS Modüllü Arduino Mega Arayüz (Neo-6M): 8 Adım
Video: Arduino TinyGPS.h Kütüphanesi Kullanımı - GPS Modülü Kullanımı 2024, Kasım
Anonim
GPS Modüllü Arduino Mega Arayüz (Neo-6M)
GPS Modüllü Arduino Mega Arayüz (Neo-6M)

Bu projede, bir GPS modülünün (Neo-6M) Arduino Mega ile nasıl arayüzleneceğini gösterdim. Boylam ve Enlem verilerini görüntülemek için TinyGPS kütüphanesi, seri monitörde Enlem, Boylam, Rakım, Hız ve uydu sayısını görüntülemek için TinyGPS++ kullanılır.

Adım 1: Gerekli Bileşenler

Donanım

  • Arduino Mega ==> 30 $
  • Neo-6M GPS modülü ==> 30 $

Yazılım

Arduino IDE'si

Projenin toplam maliyeti 60 TL'dir.

2. Adım: GPS Hakkında Bilgi

GPS nedir

Küresel Konumlandırma Sistemi (GPS), en az 24 uydudan oluşan uydu tabanlı bir navigasyon sistemidir. GPS, her türlü hava koşulunda, dünyanın herhangi bir yerinde, günde 24 saat, abonelik ücreti veya kurulum ücreti olmadan çalışır.

GPS nasıl çalışır?

GPS uyduları, kesin bir yörüngede günde iki kez Dünya'yı çevreler. Her uydu, GPS cihazlarının uydunun kesin konumunu çözmesine ve hesaplamasına izin veren benzersiz bir sinyal ve yörünge parametreleri iletir. GPS alıcıları, bir kullanıcının tam konumunu hesaplamak için bu bilgiyi ve trilaterasyon kullanır. Esasen, GPS alıcısı, iletilen bir sinyali almak için geçen süre ile her bir uyduya olan mesafeyi ölçer. Birkaç uydudan daha mesafe ölçümleri ile alıcı, bir kullanıcının konumunu belirleyebilir ve görüntüleyebilir.

2 boyutlu konumunuzu (enlem ve boylam) hesaplamak ve hareketinizi izlemek için bir GPS alıcısı en az 3 uydunun sinyaline kilitlenmelidir. 4 veya daha fazla uydu görüntülendiğinde, alıcı 3 boyutlu konumunuzu (enlem, boylam ve yükseklik) belirleyebilir. Genel olarak, bir GPS alıcısı 8 veya daha fazla uyduyu izler, ancak bu, günün saatine ve dünyanın neresinde olduğunuza bağlıdır. Konumunuzu belirledikten sonra, GPS ünitesi aşağıdaki gibi diğer bilgileri hesaplayabilir:

  • Hız
  • Rulman
  • İzlemek
  • gezi mesafesi
  • Hedefe uzaklık

sinyal nedir

GPS uyduları en az 2 düşük güçlü radyo sinyali iletir. Sinyaller görüş hattı ile hareket eder, yani bulutların, camın ve plastiğin içinden geçecekler, ancak binalar ve dağlar gibi çoğu katı nesneden geçmeyecekler. Bununla birlikte, modern alıcılar daha hassastır ve genellikle evlerin içinden geçebilir. Bir GPS sinyali 3 farklı türde bilgi içerir

sözde rasgele kod

Bu bir kimlik. hangi uydunun bilgi ilettiğini tanımlayan kod. Cihazınızın uydu sayfasından hangi uydulardan sinyal aldığınızı görebilirsiniz.

Efemeris verileri

Efemeris verileri bir uydunun konumunu belirlemek için gereklidir ve uydunun sağlığı, güncel tarih ve saat hakkında önemli bilgiler verir.

Almanak verileri

Almanak verileri, GPS alıcısına günün herhangi bir saatinde her bir GPS uydusunun nerede olması gerektiğini söyler ve o uydunun ve sistemdeki diğer tüm uyduların yörünge bilgilerini gösterir.

Adım 3: Neo-6M GPS Modülü

NEO-6M GPS modülü aşağıdaki şekilde gösterilmektedir. Harici bir anten ile birlikte gelir ve başlık pimleri ile birlikte gelmez. Bu yüzden lehimlemeniz gerekecek.

NEO-6M GPS Modülüne Genel Bakış

NEO-6M GPS Çipi

Modülün kalbi, u-blox'tan bir NEO-6M GPS çipidir. 50 kanalda 22 uyduya kadar izleyebilir ve yalnızca 45mA besleme akımı tüketirken, sektörün en yüksek hassasiyet düzeyine yani -161 dB izlemesine ulaşır. U-blox 6 konumlandırma motoru ayrıca 1 saniyenin altında İlk Düzeltme Süresi (TTFF) özelliğine sahiptir. Çipin sağladığı en iyi özelliklerden biri Güç Tasarruf Modudur (PSM). Alıcının parçalarını seçici olarak AÇIK ve KAPALI konuma getirerek sistem güç tüketiminde bir azalma sağlar. Bu, modülün güç tüketimini önemli ölçüde yalnızca 11mA'ya düşürür ve onu GPS kol saati gibi güce duyarlı uygulamalar için uygun hale getirir. NEO-6M GPS çipinin gerekli veri pinleri 0,1 adım başlıklarına bölünmüştür. Bu, UART üzerinden bir mikrodenetleyici ile iletişim için gerekli pinleri içerir.

Not: - Modül, varsayılan baud 9600 ile 4800bps'den 230400bps'ye kadar olan baud hızını destekler.

Konum Sabitleme LED Göstergesi

NEO-6M GPS Modülünde Konum Sabitleme durumunu gösteren bir LED vardır. Hangi durumda olduğuna bağlı olarak çeşitli oranlarda yanıp söner

  1. Yanıp Sönme Yok ==> Uydu arıyor demektir
  2. Her 1 saniyede bir yanıp sönme – Konum Düzeltme bulunduğu anlamına gelir

3.3V LDO Regülatörü

NEO-6M çipinin çalışma voltajı 2,7 ila 3,6V arasındadır. Ancak modül, MICREL'den MIC5205 ultra düşük çıkışlı 3V3 regülatör ile birlikte gelir. Lojik pinler de 5 volt toleranslıdır, bu nedenle herhangi bir mantık seviye dönüştürücü kullanmadan Arduino veya herhangi bir 5V lojik mikrodenetleyiciye kolayca bağlayabiliriz.

Pil ve EEPROM

Modül, bir HK24C32 iki kablolu seri EEPROM ile donatılmıştır. 4KB boyutundadır ve NEO-6M çipine I2C üzerinden bağlanır. Modül ayrıca süper kapasitör görevi gören şarj edilebilir bir düğme pil içerir.

Pille birlikte bir EEPROM, pil destekli RAM'in (BBR) korunmasına yardımcı olur. BBR, saat verilerini, en son konum verilerini (GNSS yörünge verileri) ve modül konfigürasyonunu içerir. Ancak kalıcı veri depolama amaçlı değildir.

Pil saati ve son konumu koruduğundan, ilk düzeltme süresi (TTFF) önemli ölçüde 1 saniyeye düşer. Bu, çok daha hızlı konum kilitleri sağlar.

Pil olmadan GPS her zaman soğuk başlatılır, bu nedenle ilk GPS kilidi daha fazla zaman alır. Pil, güç verildiğinde otomatik olarak şarj olur ve verileri güç olmadığında iki haftaya kadar korur.

Pin yapısı

GND, Toprak Pimidir ve Arduino'daki GND pimine bağlanması gerekir

Seri haberleşme için TxD (Verici) pini kullanılır

Seri haberleşme için RxD (Alıcı) pini kullanılır

VCC, modül için güç sağlar. Arduino üzerindeki 5V pinine direk bağlayabilirsiniz

Adım 4: Arduino Mega

Arduino, kullanımı kolay donanım ve yazılıma dayalı açık kaynaklı bir elektronik platformdur. Arduino kartları girişleri okuyabilir - bir sensör üzerindeki ışık, bir düğmedeki parmak veya bir Twitter mesajı - ve bir çıkışa dönüştürebilir - bir motoru etkinleştirebilir, bir LED'i açabilir, çevrimiçi bir şeyler yayınlayabilir. Kart üzerindeki mikrodenetleyiciye bir dizi talimat göndererek kartınıza ne yapacağını söyleyebilirsiniz. Bunu yapmak için Arduino programlama dilini (Kablolama tabanlı) ve İşleme tabanlı Arduino Yazılımını (IDE) kullanırsınız.

arduino mega

Arduino Mega 2560, Atmega2560 tabanlı bir Mikrodenetleyici kartıdır.

  • Kart üzerinde bu cihazı benzersiz kılan ve diğerlerinden farklı kılan 54 dijital I/O pini ve 16 analog pin bulunmaktadır. 54 dijital I/O'dan 15'i PWM (darbe genişlik modülasyonu) için kullanılır.
  • Kart üzerine 16MHz frekansında bir kristal osilatör eklenir.
  • Kart, bilgisayardan karta kod bağlamak ve aktarmak için kullanılan USB kablo bağlantı noktası ile birlikte gelir.
  • DC güç jakı, karta güç sağlamak için kullanılan kartla birleştirilir.
  • Kart, voltajı gereksinimlere göre düzenleme esnekliği sağlayan 5V ve 3.3V olmak üzere iki voltaj regülatörü ile birlikte gelir.
  • İletişim kurmak için maksimum hız üreten USART adlı bir sıfırlama düğmesi ve 4 donanım seri bağlantı noktası vardır.
  • Tahtaya güç vermenin üç yolu vardır. Karta güç sağlamak ve kodu karta aktarmak için bir USB kablosu kullanabilir veya kartın Vin'ini veya Güç jakı veya meyilli kullanarak gücü açabilirsiniz.

Özellikler

Pin yapısı

Pin Açıklaması

  • 5V & 3.3V ==>Bu pin, 5V civarında çıkış regüleli voltaj sağlamak için kullanılır. Bu düzenlenmiş güç kaynağı, kontrolöre ve karttaki diğer bileşenlere güç sağlar. Kartın Vin'inden veya USB kablosundan veya başka bir regüle edilmiş 5V voltaj kaynağından elde edilebilir. Diğer bir voltaj regülasyonu ise 3.3V pin ile sağlanmaktadır. Çekebileceği maksimum güç 50mA'dır.
  • GND ==>Proje için birden fazla topraklama pini gerektiğinde kullanışlı hale getiren kart üzerinde 5 adet topraklama pini mevcuttur.
  • Reset ==> Bu pin kartı resetlemek için kullanılır. Bu pimi DÜŞÜK olarak ayarlamak, kartı sıfırlayacaktır.
  • Vin ==> 7V ile 20V arasında değişen karta sağlanan giriş voltajıdır. Güç jakının sağladığı gerilime bu pin üzerinden erişilebilir. Ancak bu pin üzerinden karta giden çıkış voltajı otomatik olarak 5V'a ayarlanacaktır.
  • Seri İletişim ==> RXD ve TXD, seri verileri iletmek ve almak için kullanılan seri pinlerdir, yani Rx, veri almak için kullanılırken Rx, veri iletimini temsil eder. Bu seri pinlerin dört kombinasyonu kullanılır; burada Serail 0, RX(0) ve TX(1) içerir, Seri 1 TX(18) ve RX(19), Seri 2 TX(16) ve RX(17) içerir, ve Seri 3, TX(14) ve RX(15) içerir.
  • Harici Kesmeler ==> Altı pin harici kesmeler oluşturmak için kullanılır, yani kesme 0(0), kesme 1(3), kesme 2(21), kesme 3(20), kesme 4(19), kesme 5(18). Bu pinler, DÜŞÜK değer sağlama, yükselen veya düşen kenar veya kesme pinlerine değer değiştirme gibi çeşitli yollarla kesintiler üretir.
  • LED ==> Bu kart, dijital pin 13'e bağlı dahili LED ile gelir. Bu pindeki YÜKSEK değer LED'i açar ve DÜŞÜK değer ise kapatır.
  • AREF ==> AREF, analog girişler için bir referans voltajı olan Analog Referans Voltajı anlamına gelir.
  • Analog Pinler ==> Kart üzerinde A0 ile A15 olarak etiketlenmiş 16 adet analog pin bulunmaktadır. Tüm bu analog pinlerin dijital I/O pinleri olarak kullanılabileceğine dikkat etmek önemlidir. Her analog pin 10 bit çözünürlükle gelir. Bu pinler topraktan 5V'a kadar ölçüm yapabilir. Ancak üst değer, AREF ve analogReference() işlevi kullanılarak değiştirilebilir.
  • I2C ==>İki pin 20 ve 21, 20'nin SDA'yı (esas olarak verileri tutmak için kullanılan Seri Veri Hattı) ve 21'in SCL'yi temsil ettiği (esas olarak cihazlar arasında veri senkronizasyonu sağlamak için kullanılan Seri Saat Hattı) I2C iletişimini destekler.
  • SPI İletişimi ==> SPI, denetleyici ve diğer çevre birimleri bileşenleri arasında veri iletimi için kullanılan Seri Çevre Birimi Arayüzü anlamına gelir. SPI iletişimi için 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS) olmak üzere dört pin kullanılır.

Adım 5: Arduino IDE

Burada Arduino IDE'yi zaten kurduğunuzu varsayıyorum.

1. Aşağıda verilen gerekli kütüphaneyi indirin

TinyGPS kitaplığı

2. İndirdikten sonra. Çıkarın ve C:\Users\…\Documents\Arduino\libraries klasörüne taşıyın (-) olmadığından emin olun.

3. Arduino IDE'yi açın ve kodu program bölümünden kopyalayın.

4. Ardından bunun için tahta seçin Araçlar ==> Panolar ==> Arduino Mega 2560 kullanıyoruz burada pano seçin

5. Kartı seçtikten sonra bunun için bağlantı noktasını seçin Araçlar ==> Bağlantı Noktaları'na gidin

6. Pano ve bağlantı noktasını seçtikten sonra yükle'ye tıklayın.

7. Kod yüklendikten sonra çıktıyı görmek için seri terminali açın.

6. Adım: Bağlantılar

Arduino MEGA ==> NEO-6M GPS

  • 3.3V ==> VCC
  • GND ==> GND
  • Tx1 (18) ==> Rx
  • Rx (19) ==> Tx

Seri1 yerine Seri2 veya Seri3'ü de kullanabilirsiniz.

Önerilen: