Robotik Kodlama

Robotik Kodlama
Ana Sayfa

İLGİNİZİ ÇEKEBİLECEK LİNKLER :

29 Nisan 2021 Perşembe

NRF24L01 Kablosuz RF Modülü

 

NRF24L01 Kablosuz RF Modülü 


NRF24L01, modern uygulamalar için yasal RF iletişim cihazlarından biridir. NRF24L01 en ucuz olanıdır ve harika özelliklerle birlikte gelir. Tek bir modül 2.4 GHz frekansında iletişim kurarak yasal hale getirir. Tek bir modül ile veri gönderip alabilir. Transreceiving tek yeteneği değil, aynı anda toplam 6 diğer NRF24L01 modülü ile iletişim kurabilir. Cihaz, Arduino uygulaması ile arayüz oluşturur ve her türlü uzaktan kumanda uygulamasını kapsar. Bu kablosuz modül, SPI iletişim protokolünü kullanır ve 125 adres aralığı ile 10MBs veri hızı sunar, bu da onu en güvenilir RF modülü yapar. RF modülü, verileri alıcıya aktarmak için GFSK modülünü kullanır.
nRF24L01 RF modülü

NRF24L01 Pinout Yapılandırması

NRF24L01'de herhangi bir özel pin yoktur, iletişim kurmak için sunduğu tüm pinler tüm mikrodenetleyicilerde ve kartta mevcuttur. Cihaz, çalışması için bu pinler aracılığıyla harici bir mikrodenetleyici / Arduino ile arayüz oluşturacaktır. 8 pimden oluşur. Mevcut tüm pimler şunlardır:

nRF24L01 RF modülü Pin çıkışı konfigürasyon şeması

Güç kaynağı pimleri

VCC

Modülün güç pini, kendisini güç kaynağına bağlayan VCC'dir.

GND

nRF24L01 başka bir mikro denetleyici ile çalışır ve onunla çalışmak için ortak bir zemine ihtiyaç duyacaktır. GND pini ortak zemin ihtiyacını çözecektir.

İletişim Pinleri

CE

CE, modülün iletimini / alımını etkinleştiren bir etkinleştirme pimidir. Cihazı yalnızca kendi üzerinde YÜKSEK bir durum olduğunda etkinleştirecektir.

CSN

Bu pin, mikro denetleyiciden veri dinleme ve işlemeyi etkinleştirmek içindir. Mikrodenetleyici ile modül arasındaki veri iletişimini sürdürmek için YÜKSEK olmalıdır.

SCK

NRF24L01'deki SPI iletişiminin saat puls pinidir. Veriler modül ile mikro denetleyici arasında SCK pini üzerindeki saat darbesine göre hareket edecektir.

MOSI

Mikro denetleyiciden SPI pinleri aracılığıyla iletilen veriler, MOSI pininde nRF24L01 tarafından alınacaktır.

MİSO

SPI pinleri kullanılarak nRF24L01'den iletilen talimatlar, MISO pinindeki mikrodenetleyici tarafından alınacaktır.

IRQ Kesinti Pimi

IRQ, SPI pinleri için yeni bir veri mevcut olduğunda olayı oluşturan bir kesme pinidir. Vericiye geri bildirim göndermeye yardımcı olur.

NRF24L01 RF Modül Özelliği

  • 2.4GHz frekansında çalışır, bu da onu neredeyse her ülkede yasal kılar.
  • Tek bir modül hem verici hem de alıcı görevi görebilir.
  • Yerleşik bir anten, verileri 100 metreye kadar gönderebilir.
  • Bir modül nRF24L01, bir seferde maksimum 6 diğer modülle iletişim kurabilir.
  • Çalışması için 3,3 volt gerekir, ancak voltajlar yalnızca 3,6V'a kadar çıkabilir, aksi takdirde ısınması ve yanması fazla zaman almaz.
  • Cihazın dahili 16MHz osilatörü vardır.
  • NRF24L01'in iletim hızı 256kbps ile 2Mbps arasındadır.
  • Cihaz, 125 farklı ağı tek bir yerde çalıştırma özelliği veren 125 kanal aralığına sahiptir.
  • Kanal frekansları 2400MHz ile 2525MHz arasında değişmektedir.

NRF24L01 Uygulamaları

  • Küçük bir örgü ağın oluşturulmasında, nRF24L01 kullanılacak en iyi seçimdir.
  • Gelişmekte olan ve ticari olarak uzaktan kumanda uygulamaları nRF24L01 ile harika çalışıyor.
  • Ev düzeyindeki çoğu IoT uygulaması bu kablosuz modüle sahiptir, ancak yalnızca küçük bir düzeyde.

NRF24L01 İletişim Modülü nasıl kullanılır

nRF24L01 tüm mikrodenetleyiciler ve akıllı tahtalar ile kullanılabilir ancak kullanmak için bazı pinler ve veri bilgilerinin anlaşılması gerekir. Modülü kullanmak için SPI protokollü başka bir mikro denetleyiciye bağlayın. Önce güç girişini cihazlara verin ve ardından verilen devreye göre SPI pinlerini takın.

Kablosuz RF modül devresi

Taktıktan sonra nRF24L01'in çalıştırılmasının iki yolu olduğunu unutmayın. İlki verici ve ikinci ve alıcıdır. Verici ve alıcı olarak iletişim kurmak için önce mikrodenetleyicinin bilmesi gerekirdi. Modern uygulamada Arduino, nRF24L01 iletişiminin en verimli iletişimini destekleyen tek cihazdır.

Arduino ile kullanımı

İnternette nRF24L01 hakkında pek çok uygulamada kullanılmasına yardımcı olabilecek çok fazla çalışma ve araştırma var ancak Arduino'da her geliştiricinin anlaması gereken bu modülün temeli var. NRF24L01'in temel çalışması, Arduino'da verici ve alıcıdır, her ikisi de aşağıdaki yöntemlerle elde edilebilir. İşte Arduino UNO için devre .

nRF24L01 RF modülü arduino ile arayüz oluşturuyor

Verici Örneği olarak nasıl kullanılır

NRF24L01 bir verici olarak hareket ettiğinde, yalnızca tek bir kanaldan başka bir modüle veri iletebilir. Verici olarak kullanmak için Arduino'daki programın bilmesi gerekirdi. Programı yükledikten sonra, verici ve alıcı arasındaki modları programlamadan hiçbir şekilde değiştiremezsiniz. Verici olarak kullanmak için aşağıdaki kod yüklenmelidir:

#include <nRF24L01.h>
#include <RF24.h>
#include <SPI.h>

RF24 radio(3, 2);

void setup()
{
radio.begin(); 
radio.openWritingPipe(10101); 
radio.stopListening();
}
void loop()
{
const char data[] = "DATA";
radio.write(&data, sizeof(data));
delay(2000);
}

Verici koduyla ilgili ayrıntılar

Arduino ve nRF24L01 arasındaki iletişim aşağıdaki kitaplıklara bağlıdır:

#include <nRF24L01.h>
#include <RF24.h>
#include <SPI.h>


Her Arduino kartının belirli bir MISO, MOSI ve SCK SPI pinine sahip olduğunu biliyoruz. Yani, Arduino'nun bunları anlatması gerekmeyecek, ancak CSN ve CE pinlerinin başlatılması gerekiyor. NRF24L01 kitaplığı, hem CSN hem de CE'nin PIN'ini almak için yerleşik bir işleve sahiptir, bu da:

RF24 radyo (3, 2);

3 sayısı CE pinini temsil eder ve 2 CSN pinini temsil eder. Her ikisi de herhangi bir dijital pime göre değiştirilebilir; burada yukarıda verilen devreye göredirler.

Bundan sonra modül aşağıdaki komutu kullanarak başlatılmalıdır:

radio.begin ();

Adres, alıcıyla iletişim kurması gereken cihaz için 5 bit ile tanımlanabilir. Herhangi bir 5 bitlik sayı kullanılabilir.

radio.openWritingPipe (10101);

Bundan sonra modülün modunu bilmesi gerekir. Ya alıcı ya da verici olarak çalışıyor. Aşağıdaki komut nRF24L01'i bir verici yapacaktır.

 radio.stopListening ();

Daha sonra cihaz bir verici olarak kullanılabilir. Başlatma için bilinen tek şey veri göndermektir. Modül sınırlaması nedeniyle bir seferde yalnızca 32 bayt veri gönderilebilir olduğunu her zaman aklınızda bulundurun. Aşağıdaki komut bunu tanımlamaya yardımcı olacaktır:

const char data [] = "DATA";
radio.write (& veri, sizeof (veri));



Gönderilen veriler, programın kurulumunda veya döngüsünde tanımlanabilir.

NRF24L01'i Alıcı Örneği olarak kullanma

Yukarıdaki kısım tamamen iletim yöntemiyle ilgilidir, ancak alıcı yöntemi vericiden farklı değildir. Vericide yalnızca üç talimat değişecek.

  • Vericide bulunmayan adres kanalı
  • Modülün bir alıcı olarak başlatılması
  • Veri alma ve kontrol yöntemi

Alıcı için aşağıdaki kod:

#include <nRF24L01.h>
#include <RF24.h>
#include <SPI.h>

RF24 radio(3, 2); 

void setup()
{
radio.begin(); 
radio.openReadingPipe(0,00001); 
radio.startListening();
}
void loop()
{
if (radio.available())
{
char data[32] = {0};
radio.read(&data, sizeof(data));
}
}

Alıcı koduyla ilgili ayrıntı

Dikkat ederseniz, alıcı için vericiden yalnızca üç parça farklıdır.

İlk bölüm adres bölümüdür:

radio.openReadingPipe (0,10101);

Adres kısmında artık iki bölüm var. ikincisi, iletim cihazının adresini tanımlayan adres kısmıdır. "0" olan ilk bölüm kanalı tanımlar. Modülün bir seferde iletişim kurmak için 6 kanal sunduğunu yukarıda belirttiğimiz gibi, programlamanın ilk kısmı birden fazla kanal oluşturmaya yardımcı olacaktır.

İkinci kısım, modülün bir verici olarak başlatılmasıdır. Modülü bir verici olarak başlatmak için aşağıdaki komutu başlatın:

radio.startListening ();

Üçüncüsü verinin alınmasıdır.

eğer (radio.available ())

Gelen veriler hakkında bilgi sahibi olmanıza yardımcı olacaktır

radio.read (veri, boyut);

Verilerin okunmasına yardımcı olacaktır.

NRF24L01 Örneği

Bir sürü uygulama var nRF24L01 kullanılabilir ancak bir ağ oluşturmak nRF24L01'in en iyi yeteneklerinden biridir ve bu da onu başka bir modülden farklı kılar. Mesh olarak kullanmak için toplam 3-7 modül mevcut olmalıdır. Verilen resmi takip edin.

nRF24L01 RF modülü örneği

Ardından aşağıdaki talimat, alıcı ucundaki farklı kanalları başlatmak için kullanılmalıdır.

radio.openReadingPipe (0, ADDRESS); 
radio.openReadingPipe (1, ADDRESS); 
radio.openReadingPipe (2, ADDRESS); 
radio.openReadingPipe (3, ADDRESS); 
radio.openReadingPipe (4, ADDRESS); 
radio.openReadingPipe (5, ADDRESS);

Alıcı, cihazlar arasında ayrım yapamaz, bu nedenle geliştiriciler her zaman verilerin vericiler arasında aynı olmaması gerektiğini akılda tutar.

ANA SAYFAYA DÖN

Bahadır ÖZGEN
Electronic Robotic Coding Research and Development 1975 - ∞
Learn Forever
If you want, let's learn together...
https://roboticcode2020.blogspot.com/
bahadirozgen1975@gmail.com
facebook    robotic.code
instagram    @roboticcode


Sayfalarımı ziyaret ettiğiniz için teşekkür ederim.Bu sitede mevcut olan içerikler kendi oluşturduğum projeler yazı,resim ve videolardan oluşmaktadır.İçerik oluşturmak çok uzun sürdüğü için bazı projelerde yurtdışı kaynaklardan faydalandım.Buradaki amacım ticari değildir.Kaynağı belli olan ve bizim kaynağına ulaşabildiğimiz materyal (yazı, fotoğraf, resim, video v.b.) için ilgili konularda fotoğraflarda logo varsa v.b. not olarak gösterilecektir.Sitemizde yayınlanan tüm içerik, bizim tarafımızdan ve internet üzerinden youtube, facebook ve blog gibi paylaşıma sunulmuş kaynak sitelerden alındığı için, sitemiz yasal yükümlülüğe tabi tutulamaz. Sitemizde telif haklarının size ait olduğu bir içerik varsa ve bunu kaldırmamızı isterseniz, iletişim sayfamızdan bizimle iletişime geçtiğiniz takdirde içerik yayından kaldırılacaktır.Bu konu ve modüller ile uğraşarak, ileride çok güzel makine ve elektronik aletler yapabilirsiniz.

GPS modülü ve Arduino Lcd'de GPS koordinatları

 

GPS modülü ve Arduino Lcd'de GPS koordinatları

Küresel Konumlandırma Sistemi (GPS), her biri 24 saatte bir Dünya etrafında iki devre oluşturan 24 yörüngeli uydudan oluşan uydu tabanlı bir navigasyon sistemidir. Bu uydular üç bitlik bilgi iletir - uydunun numarası, uzaydaki konumu ve bilginin gönderildiği zaman. Bu sinyaller, GPS uyduları ile GPS uyduları arasındaki mesafeyi hesaplamak için bu bilgiyi kullanan GPS alıcısı tarafından alınır. Üç veya daha fazla uydudan gelen sinyallerle, bir GPS alıcısı, uyduların bilinen konumundan yerdeki konumunu (yani, boylam ve enlem) nirengi yapabilir. Dört veya daha fazla uydu ile, bir GPS alıcısı bir 3D konumu (yani, enlem, boylam ve yükseklik) belirleyebilir. Ek olarak, bir GPS alıcısı hızınız ve seyahat yönünüz hakkında veri sağlayabilir. GPS alıcısı olan herkes sisteme erişebilir. GPS, dünyanın her yerinde haftanın 7 günü 24 saat gerçek zamanlı, üç boyutlu konumlandırma, navigasyon ve zamanlama sağladığından, CBS veri toplama, ölçme ve haritalama dahil olmak üzere çok sayıda uygulamada kullanılmaktadır.

Alıcının belirli bir uydudan 20.000 km uzaklıkta olduğunu belirlediğini varsayalım. Bu, alıcının merkezi uydu ile hayali bir küre üzerinde herhangi bir yerde olabileceği anlamına gelir. İkinci bir uydudan 25.000 km uzakta olduğunu da belirlerse, bu, konumunu daha da daraltır. Uzayda hem ilk uydudan 20.000 km hem de ikinci uydudan 25.000 km uzakta olabileceği tek konum, bu iki kürenin kesiştiği yerdir. Bu kesişme noktaları bir çemberdir. Üçüncü bir ölçüm, ilk ikisinin oluşturduğu daireyle kesişen başka bir küre ekler. Bu kesişme iki noktada gerçekleşir ve bu nedenle, bu üç ölçümle, GPS alıcısı konumunu tüm evrende yalnızca iki noktaya daraltmıştır.


Dördüncü bir ölçüm, iki noktadan biriyle tam olarak kesişecektir. Ancak pratikte bu dördüncü ölçüme ihtiyacınız olmayabilir, çünkü iki noktadan biri normalde uzayın binlerce kilometre uzağında yer alacaktır ve bu nedenle muhtemelen sizin konumunuz değildir! Ancak rakımı hesaplamak için dördüncü bir ölçüm kullanılır. Ayrıca alıcının saatinin evrensel saatle gerçekten senkronize olmasını sağlar.

 Bu örnek dört uydunun kullanımını gösterse de, birçok alıcı aynı anda dörtten fazla uyduyu izleme yeteneğine sahiptir. Bazı durumlarda bu, alıcının konumsal doğruluğunu geliştirir.

Gerekli Malzemeler


  • GPS modülü
  • GPS Anteni
  • Arduino UNO
  • LCD 16 x 2
  • Breadboard
  • Potansiyometre 10kohm
  • Bağlantı telleri

GPS modülü Pin Bağlantıları

GPS modülünde bağlantılar için modülden sağlanan 4 pim bulunur.

  1. Tx Veri İletim Pimi
  2. Rx Veri Alma Pimi
  3. Vcc 5V güç kaynağı
  4. GND Güç kaynağı topraklaması

Ana Özellikler:

  • Küçük form faktörü: 25,4 * 25,4 * 3 mm
  • RoHS / WEEE uyumlu
  • Yüksek hassasiyet -159dBm
  • 32 Kanala kadar uydu arama
  • Hızlı Konum Düzeltme
  • Düşük güç tüketimi
  • RTCM girişi hazır.
  • Dahili WAAS / EGNOS / MSAS Demodülatör.
  • NMEA0183 V 3.01 veri protokolünü destekleyin.
  • Konuma dayalı hizmetler için gerçek zamanlı navigasyon.
  • Araç Navigasyonu, Deniz Navigasyonu, Filo Yönetimi, AVL ve Konum Tabanlı Hizmetler, Otomatik Pilot, Kişisel Navigasyon veya tur cihazları, İzleme cihazları / sistemleri ve Haritalama cihazları uygulaması için.

GPS modülünün Arduino ile Kullanımı

Arduino ile arayüz oluşturan GPS modülü

Devreyi aşağıdaki şekilde bağlayın

  • GPS GND'den Arduino GND'ye
  • Arduino 5V ile GPS Vcc
  • Arduino Tx ile GPS Rx
  • Arduino Rx ile GPS Tx
  • Arduino dijital pin 4 ile LCD Rs
  • Arduino dijital pin 5 ile LCD En
  • Arduino dijital pin 6 ile LCD D4
  • Arduino dijital pin 7 ile LCD D5
  • Arduino dijital pin 8 ile LCD D6
  • Arduino dijital pin 9 ile LCD D7

Bunlar programda kullanılacak bağlantılardır. LCD bağlantısının geri kalanı için Arduino ile LCD arayüz oluşturma hakkındaki öğreticiye bakın.

  • GPS Antenini GPS modülüne bağlayın.

Not:

Bu bağlantıdaki sorun, Arduino programlama sırasında Arduino IDE'den program yüklemek için seri portları kullanmasıdır. Kablolamada bu pinler kullanılırsa, program Arduino'ya başarıyla yüklenmeyecektir. Bu nedenle, programı Arduino'ya her yazışınızda Rx ve Tx'teki kabloları ayırmanız gerekir. Program başarıyla yüklendikten sonra, bu pinleri yeniden bağlayabilir ve sistemin çalışmasını sağlayabilirsiniz.


Arduino ile GPS modülünün Arduino Kodu

// Basit bir GPS Alıcısı Oluşturma

#include <TinyGPS.h>

#include <LiquidCrystal.h>

LiquidCrystal lcd( 4, 5, 6, 7, 8, 9 );

// Create an instance of the TinyGPS object

TinyGPS gps;

void getgps(TinyGPS &gps);

void setup()

{

Serial.begin(4800);

lcd.begin(16, 2);

}

void getgps(TinyGPS &gps)

// The getgps function will display the required data on the LCD

{

float latitude, longitude;

//decode and display position data

gps.f_get_position(&latitude, &longitude);

lcd.setCursor(0,0);

lcd.print("Lat:");

lcd.print(latitude,5);

lcd.print(" ");

lcd.setCursor(0,1);

lcd.print("Long:");

lcd.print(longitude,5);

lcd.print(" ");

delay(3000); // wait for 3 seconds

lcd.clear();

}

void loop()

{

byte a;

if ( Serial.available() > 0 ) // if there is data coming into the serial line

{

a = Serial.read(); // get the byte of data

if(gps.encode(a)) // if there is valid GPS data...

{

getgps(gps); // grab the data and display it on the LCD

}

}

}

Sonuç:

Arduino programlama sırasında Arduino IDE'den program yüklemek için seri portlar kullanır. Kablolamada bu pinler kullanılırsa, program Arduino'ya başarıyla yüklenmeyecektir. Bu nedenle, programı Arduino'ya her yazışınızda Rx ve Tx'teki kabloları ayırmanız gerekir. Program başarıyla yüklendikten sonra, bu pinleri yeniden bağlayabilir ve sistemin çalışmasını sağlayabilirsiniz.

Programı başarıyla yükledikten sonra LCD, mevcut konumunuzun enlem ve boylamını gösterir. Bu konumları Google harita arama çubuğuna, ilki enlem ve ikincisi boylam virgül ve boşlukla ayıracak şekilde yazın. Şimdi Google haritası mevcut konumunuzu gösterecek

GPS modülünün kullanılabileceği yerler

  • Otomotiv ve Deniz Seyrüsefer
  • Otomotiv Gezgini Takibi
  • Acil Durum Bulucu
  • Coğrafi Araştırma
  • Kişisel Konumlandırma
  • Spor ve Rekreasyon
  • Gömülü uygulamalar: Akıllı telefon, UMPC, PND, MP


ANA SAYFAYA DÖN

Bahadır ÖZGEN
Electronic Robotic Coding Research and Development 1975 - ∞
Learn Forever
If you want, let's learn together...
https://roboticcode2020.blogspot.com/
bahadirozgen1975@gmail.com
facebook    robotic.code
instagram    @roboticcode


Sayfalarımı ziyaret ettiğiniz için teşekkür ederim.Bu sitede mevcut olan içerikler kendi oluşturduğum projeler yazı,resim ve videolardan oluşmaktadır.İçerik oluşturmak çok uzun sürdüğü için bazı projelerde yurtdışı kaynaklardan faydalandım.Buradaki amacım ticari değildir.Kaynağı belli olan ve bizim kaynağına ulaşabildiğimiz materyal (yazı, fotoğraf, resim, video v.b.) için ilgili konularda fotoğraflarda logo varsa v.b. not olarak gösterilecektir.Sitemizde yayınlanan tüm içerik, bizim tarafımızdan ve internet üzerinden youtube, facebook ve blog gibi paylaşıma sunulmuş kaynak sitelerden alındığı için, sitemiz yasal yükümlülüğe tabi tutulamaz. Sitemizde telif haklarının size ait olduğu bir içerik varsa ve bunu kaldırmamızı isterseniz, iletişim sayfamızdan bizimle iletişime geçtiğiniz takdirde içerik yayından kaldırılacaktır.Bu konu ve modüller ile uğraşarak, ileride çok güzel makine ve elektronik aletler yapabilirsiniz.