• 26-03-2023, 19:10:37
    #1
    Herkese merhaba,
    Lisans tezi projem için nRF24L01 modülünü kullanarak alıcı vericili uzaktan kontrollü araba yapıyorum fakat araştırma yaparken denediğim kodlarda şöyle bir hata alıyorum;
    void setup(){
      Serial.begin(9600);
      SPI.begin();
      SPI.setBitOrder(MSBFIRST);
      /* SPI başlatıldı */
      alici.channel(90);HATA ALIDĞIM KISIM BURASI    Alınan Hata: Compilation error: 'class RF24' has no member named 'channel'; did you mean 'setChannel'?
      alici.RXaddress("Hasbi");        HATA ALIDĞIM KISIM BURASI
      alici.init();                  HATA ALIDĞIM KISIM BURASI
      /* Alıcı ayarları yapıldı */
    }
  • 26-03-2023, 19:51:46
    #2
    classınızın altında oluşturduğunuz memberi bulamıyor. Kodları bir yerden alıp variable ve class isimlerini mi değiştirdin farkedilmesin diye ?
  • 26-03-2023, 19:57:50
    #3
    nRF24L01 modülü, kablosuz iletişim için kullanılan bir transceiver modülüdür. Bu modülü kullanarak alıcı vericili bir uzaktan kontrollü araba yapmak için gereken kodlar, kullanılacak mikrokontrolcüye, arabayı kontrol etmek için kullanılacak mekanizmalara ve diğer faktörlere bağlı olacaktır.


    Bununla birlikte, genel olarak, nRF24L01 modülünü kullanarak bir uzaktan kontrollü araba yapmak için aşağıdaki adımları takip edebilirsiniz:
    1. Alıcı ve verici için ayrı ayrı kodlar yazın.
    2. Alıcının kodunda, nRF24L01 modülünü başlatın ve gelen sinyalleri okuyun.
    3. Vericinin kodunda, nRF24L01 modülünü başlatın ve alıcıya gönderilecek sinyalleri belirleyin.
    4. Arabanızı kontrol etmek için kullanılacak motorları ve diğer mekanizmaları kontrol etmek için kod yazın.
    5. Vericiden gelen sinyalleri arabayı kontrol etmek için kullanın.
    6. Alıcı tarafından okunan sinyalleri arabayı kontrol etmek için kullanın.
    Alıcı için Örnek bir kod bloğu şu şekilde olabilir:

    #include <SPI.h>
    #include <nRF24L01.h>
    #include <RF24.h>
    
    // Bağlantı pimleri
    #define CE_PIN 9
    #define CSN_PIN 10
    
    // Adresler
    const byte address[6] = "00001";
    
    // RF24 nesnesi oluştur
    RF24 radio(CE_PIN, CSN_PIN);
    
    void setup() {
      Serial.begin(9600);
      // nRF24L01 modülünü başlat
      radio.begin();
      // Alıcıları dinlemeye başla
      radio.openReadingPipe(0, address);
      // Verileri okumaya hazır ol
      radio.startListening();
    }
    
    void loop() {
      // Gelen verileri oku
      if (radio.available()) {
        // Verileri oku
        int data;
        radio.read(&data, sizeof(data));
        
        // Okunan verileri işle
        Serial.println(data);
        
        // Arabayı kontrol etmek için gerekli kodları burada ekleyin.
      }
    }
    Bu örnek kodda, alıcının kodunu görebilirsiniz. Bu kod nRF24L01 modülünü başlatır ve gelen sinyalleri okur. Okunan sinyaller, arabayı kontrol etmek için kullanılabilir. Benzer şekilde, verici kodunu da yazabilirsiniz.

    Bu kodlar, nRF24L01 modülünü kullanarak kablosuz bir iletişim sistemi kurulmasını sağlar. Bu sistemde verici tarafından gönderilen sinyaller, alıcı tarafından okunarak işlenir ve arabanızı kontrol etmek için kullanılır.

    #include satırları, gerekli kütüphanelerin dahil edildiği bölümdür. SPI.h, SPI protokolünü kullanmak için gereklidir. nRF24L01.h ve RF24.h dosyaları ise nRF24L01 modülü için gereklidir.
    #define satırlarında CE_PIN ve CSN_PIN bağlantı pimleri tanımlanmaktadır. Bu pimlerin hangi Arduino pimlerine bağlandığı uygulamanın ihtiyaçlarına göre belirlenmelidir.
    const byte address[6] satırı, alıcı ve verici arasında iletişim kurmak için kullanılacak adresi belirtir. Verici ve alıcının aynı adresi kullanması gerekir.
    RF24 radio(CE_PIN, CSN_PIN); satırında RF24 nesnesi oluşturulur. Bu nesne, nRF24L01 modülünü kontrol etmek için kullanılır.
    void setup() fonksiyonu, Arduino'nun başlatma fonksiyonudur. Bu kod bloğunda, seri haberleşme hızı ayarlanır ve nRF24L01 modülü başlatılır. Ayrıca alıcı tarafından kullanılacak pipe adresi belirlenir ve verilerin okunmaya başlanacağı söylenir.
    void loop() fonksiyonu, Arduino'nun döngü fonksiyonudur. Bu kod bloğunda, radio.available() fonksiyonu ile alıcıda herhangi bir veri olup olmadığı kontrol edilir. Eğer veri varsa, radio.read() fonksiyonu ile veriler okunur. Okunan veriler, Serial.println() fonksiyonu ile seri monitöre yazdırılır. Ayrıca // Arabayı kontrol etmek için gerekli kodları burada ekleyin. yorum satırı altında arabanın kontrolü için gereken kodlar yer alır. Bu kısımda motor kontrolü, sensörlerden veri okuma gibi işlemler gerçekleştirilebilir.
    Bu kodların incelenmesi, nRF24L01 modülünün nasıl kullanıldığını anlamak için iyi bir başlangıç noktasıdır. Ancak, gerçek uygulamalarda arabanın yapılandırmasına ve ihtiyaçlarına göre farklı kodlar yazmanız gerekecektir.

    Verici İçin Örnek bir kod şöyle olabilir:

    #include <SPI.h>
    #include <nRF24L01.h>
    #include <RF24.h>
    
    // Bağlantı pimleri
    #define CE_PIN 9
    #define CSN_PIN 10
    
    // Adresler
    const byte address[6] = "00001";
    
    // RF24 nesnesi oluştur
    RF24 radio(CE_PIN, CSN_PIN);
    
    void setup() {
      Serial.begin(9600);
      // nRF24L01 modülünü başlat
      radio.begin();
      // Alıcıya gönderilecek verilerin gönderim adresini ayarla
      radio.openWritingPipe(address);
    }
    
    void loop() {
      // Arabayı kontrol etmek için gerekli kodları burada ekleyin ve verileri hazırlayın.
      int data = 1; // Örneğin sadece "1" göndereceğiz.
      
      // Verileri gönder
      radio.write(&data, sizeof(data));
      
      // Bekleme süresi
      delay(100);
    }
    Bu örnek kodlarda Arduino için gerekli kütüphaneler de dahil edilmiştir. Bu kodlar, Arduino platformuna uygun hale getirilmiştir.

    Bağlantı pimleri CE_PIN ve CSN_PIN olarak tanımlanmıştır ve bu bağlantıların hangi pimlere yapılacağı uygulama gereksinimlerine göre belirlenebilir.

    Bu kodlar, nRF24L01 modülü kullanılarak kablosuz bir iletişim sistemi kurulmasını sağlar. Bu sistemde verici tarafından gönderilen sinyaller, alıcı tarafından okunarak işlenir ve arabanızı kontrol etmek için kullanılır.

    #include satırları, gerekli kütüphanelerin dahil edildiği bölümdür. SPI.h, SPI protokolünü kullanmak için gereklidir. nRF24L01.h ve RF24.h dosyaları ise nRF24L01 modülü için gereklidir.
    #define satırlarında CE_PIN ve CSN_PIN bağlantı pimleri tanımlanmaktadır. Bu pimlerin hangi Arduino pimlerine bağlandığı uygulamanın ihtiyaçlarına göre belirlenmelidir.
    const byte address[6] satırı, alıcı ve verici arasında iletişim kurmak için kullanılacak adresi belirtir. Verici ve alıcının aynı adresi kullanması gerekir.
    RF24 radio(CE_PIN, CSN_PIN); satırında RF24 nesnesi oluşturulur. Bu nesne, nRF24L01 modülünü kontrol etmek için kullanılır.
    void setup() fonksiyonu, Arduino'nun başlatma fonksiyonudur. Bu kod bloğunda, seri haberleşme hızı ayarlanır ve nRF24L01 modülü başlatılır. Ayrıca vericinin kullanacağı pipe adresi belirlenir.
    void loop() fonksiyonu, Arduino'nun döngü fonksiyonudur. Bu kod bloğunda, int data = 1; satırı ile veriler hazırlanır ve radio.write() fonksiyonu ile veriler alıcıya gönderilir. Bu örnekte sadece "1" gönderildiği için data değişkeni 1 olarak belirlendi. Ancak gerçek uygulamalarda daha karmaşık veriler ve kontrol işlemleri kullanılabilir. delay(100) fonksiyonu ile programın çalışması yavaşlatılır ve aralıklı olarak veri gönderimi yapılır.
    Bu kodların incelenmesi, nRF24L01 modülünün nasıl kullanıldığını anlamak için iyi bir başlangıç noktasıdır. Ancak gerçek uygulamalarda arabanın yapılandırmasına ve ihtiyaçlarına göre farklı kodlar yazmanız gerekecektir.

    Arduino platformunda kullanımda olan birçok farklı motor kontrol kartı bulunmaktadır ve bunları kullanarak arabanızı kontrol edebilirsiniz.
    Bu kodlarda yer alan // Arabayı kontrol etmek için gerekli kodları burada ekleyin. yorum satırı altında motor kontrolü için ilgili fonksiyon ve değişkenleri yazmanız gerekecektir.

    diyor yapay zeka. Belki işinize yarar.
  • 26-03-2023, 20:14:33
    #4
    Ratvex adlı üyeden alıntı: mesajı görüntüle
    classınızın altında oluşturduğunuz memberi bulamıyor. Kodları bir yerden alıp variable ve class isimlerini mi değiştirdin farkedilmesin diye ?
    İnternetten bulduğum alıcı ve verici kodlarını deniyordum;
    #include <SPI.h>
    #include <nRF24L01p.h>  KODLARIN EN BAŞINDA BU KISIMDA HATA ALDIM AŞAĞIDAKİ GİBİ DEĞİŞİKLİK YAPTIM
    #include <Servo.h>
    Servo myservo;
    int pos = 0;
    nRF24L01p alici(7, 8);
    /* CSN - > 7, CE -> 8 olarak belirlendi */
    #include <SPI.h>
    #include <nRF24L01.h>                       YAPMIŞ OLDUĞUM DEĞİŞİKLİK BURADA
    #include <RF24.h>                              YAPMIŞ OLDUĞUM DEĞİŞİKLİK BURADA
    #include <Servo.h>
    Servo myservo;  
    int pos = 0;
    RF24 alici(7, 8);                                YAPMIŞ OLDUĞUM DEĞİŞİKLİK BURADA