BAĞLAN

Arduino Matlab Radar Projesi

  • Görüntülenme 7491
  • PAYLAŞ
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  

    Radarlar, nesneleri radyo dalgalarının yansıması sonucu tespit eden cihazlardır. Fakat biz ultrasonik sensör kullanarak ses dalgaları ile nesnelerin yerlerini tespit edeceğiz. Arduino ile yapılmış birçok radar projesi mevcut. Kullanıcı arayüzleri farklı programlarda yazılabilir. Bu projemizde matlab gerçek zamanlı grafik ekranından radara takılan cisimlerin konumlarını göreceğiz. Matlab Radar projemize başlayalım.

    Malzemeler:

    1. Arduino Uno
    2. Ping Ultrasonik Sensör veya HC-SR04 Ultrasonik Sensör
    3. Servo Motor

    Ping Ultrasonik Sensörü ile Elektronik Devre Şeması:

    Devre Bağlantıları:

    Ping Sensör: 5v – 5v, Gnd – Gnd, Sinyal – Dijital 8. pin

    Servo Motor: Kırmızı – 5v, Kahverengi- Gnd, Dijital 9. pin

    HC-SR04 Ultrasonik Sensörü ile Devre Şeması

    Yazılım Kısmı:

    Ping Ultrasonik Sensörü ile Arduino Yazılımı:

    #include <Servo.h>
    Servo myservo;
    int pos = 1;
    long duration, inches, cm=0;
    const int pingPin = 8;
    int st=0;
     
    void setup()
    {
    Serial.begin(9600);
    myservo.attach(9);
    }
     
    void loop()
    {
     
    if (pos == 1)
    st = 0;
     
    if (pos == 180)
    st = 1;
     
    if (st==0)
    pos = pos+1;
     
    if (st==1)
    pos = pos-1;
     
    myservo.write(pos);
     
    data();
     
    Serial.print(pos); Serial.print( " "); Serial.println(cm);
    delay(30);
     
    }
     
    void data()
    {
    pinMode(pingPin, OUTPUT);
    digitalWrite(pingPin, LOW);
    delayMicroseconds(2);
    digitalWrite(pingPin, HIGH);
    delayMicroseconds(5);
    digitalWrite(pingPin, LOW);
    pinMode(pingPin, INPUT);
    duration = pulseIn(pingPin, HIGH);
    // convert the time into a distance
    inches = microsecondsToInches(duration);
    cm = microsecondsToCentimeters(duration);
    if (cm>100)
    {
    cm = 100;
    }
    }
     
    long microsecondsToInches(long microseconds)
    {
    return microseconds / 74 / 2;
    }
     
    long microsecondsToCentimeters(long microseconds)
    {
    return microseconds / 29 / 2;
    }

    Güncelleme: 22.12.2016

    Ultrasonic.h kütüphanesini buradan indirebilirsiniz >> Ultrasonic.zip

    HC-SR04 Ultrasonik ile Arduino Yazılımı

    #include <Servo.h>
    Servo myservo;
    #include <Ultrasonic.h>
    Ultrasonic sensor(6,5); // (Trig PIN,Echo PIN)
    int pos = 1;
    long cm=0;
     
    int st=0;
     
    void setup()
    {
    Serial.begin(9600);
    myservo.attach(9);
    }
     
    void loop()
    {
     
    if (pos == 1)
    st = 0;
     
    if (pos == 180)
    st = 1;
     
    if (st==0)
    pos = pos+1;
     
    if (st==1)
    pos = pos-1;
     
    myservo.write(pos);
     
    data();
     
    Serial.print(pos); Serial.print( " "); Serial.println(cm);
    delay(30);
     
    }
     
    void data()
    {
    cm = sensor.Ranging(CM);
    if (cm>100)
    {
    cm = 100;
    }
    }

     

    Matlab Yazılımı:

    Matlab de yeni bir script açın ve aşağıdaki kodu yapıştırın.

    clc;
    clear all;
    %Customize graph
    figure('units','normalized','outerposition',[0 0 1 1]);
    whitebg('black');
    %Draw Scale Data
    th = linspace(0,pi,1000);
    R = 10:10:100;
    for i=1:length(R);
    x = R(i)*cos(th);
    y = R(i)*sin(th);
    plot(x,y,'Color', [0.603922 , 0.803922 , 0.196078] ,'LineWidth',1);
    hold on;
    end
    %Draw Axis data
    x0 = [0 100 0 0 0 0 ]; x1 = [0 100 86.60 50 -50 -86.60]; y0 = [0 0 0 0 0 0]; y1 = [100 0 50 86.60 86.60 50];
    for i=1:length(x0);
    hold on;
    plot([x0(i),x1(i)],[y0(i),y1(i)] ,'Color', [0.603922 , 0.803922 , 0.196078],'LineWidth',2);
    end
    %Draw Sonar default data
    for i=1:180
    hold on;
    [x, y] = pol2cart(i*0.0174532925, 100);
    h(i) = plot([0,x],[0,y],'g','LineWidth',1);
    end
    %define serial port
    s1 = serial('COM12');
    s1.BaudRate=9600;
    fopen(s1);
    %Draw Sonar Data
    while(1)
    data = fscanf(s1);
    [th, r] = strtok(data);
    th = real(str2num(th));
    r = str2num(r);
    set(h(th),'color','r');
    [x0, y0] = pol2cart(th*0.0174532925, 100);
    [x, y] = pol2cart(th*0.0174532925, r);
    set(h(th),'XData',[x0,x]);
    set(h(th),'YData',[y0,y]);
    m = plot([0,x0],[0,y0],'r','LineWidth',3);
    drawnow
    delete(m);
    end
    fclose(s1);

    s1 = serial(‘COM12’); satırındaki port numarasını arduinonun bağlı olduğu port numarası yapın.

    Arduinoyu bilgisayara takın ve matlab dosyasını çalıştırın. Radarınız tarama yapmaya başlayacaktır


    PAYLAŞ
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    Sezgin GÜL

    Sezgin GÜL

    Makine Mühendisi, Girişimci, Maker

    Kimler Neler Demiş?

    27 Yorum - "Arduino Matlab Radar Projesi"

    avatar
    Sıralama:   En Yeniler | Eskiler | Beğenilenler
    serhat
    Ziyaretçi

    matlab kodlarındaki sayılar nereden geliyor?

    halil
    Ziyaretçi

    hocam iyi günler öncelikle elinize sağlık . Acaba elinizde matlab kodunun hc sr04 e uyarlanmış şekli var mı proje için lazımda yardımcı olursanız sevinirim şimdiden teşekkürler.

    Mehmet
    Ziyaretçi

    Merhaba ben Arduino uno ile yapıcam yalnız bağlantı şeması net değil ve uno da girişler farklı yardimci olurmusunuz

    eymen
    Ziyaretçi

    kodu yapıştırıyorum kontrol et diyorum hata vermiyor yukle deyince hata veriyor data(); burda hata veriyor bende ki arduino nana ordan mı kaynaklı hata

    eymen
    Ziyaretçi

    admin kodu alıyorum yapıştırıyorum kontrol et diyorum hata vermiyor arduino takıyorum bende ki nano yukle deyince hata veriyor data() burda hata veriyor arduino farklı oldugu için olabilir mi ?

    SAFA
    Ziyaretçi

    bu programın matlabdaki akış diyagramını yazabilirmisiniz

    Emirhan
    Ziyaretçi

    bu uygulamanın kodalrını hc-sr04 için düzenleyip atabilirmisiniz acaba

    huzeyfe
    Ziyaretçi

    merhaba. aynı projenin hc-sr04 matlab kodlarını paylaşabilirmisiniz?

    Tahsin
    Ziyaretçi

    Bu projeyi hcsr04 ile yapmak için kodda nasıl bi deişiklik yapmamız gerek bilenler yazabilir mi

    ömer
    Ziyaretçi

    merhaba ben bu projeyi yapmak istiyorum . Ping Ultrasonik Sensör yerine ,HC-SR04 Ultrasonik Mesafe Sensörü kullanabilirmiyim onu merak ettim .çünkü ikisisnin arasında cok fazla fiyat farkı var

    wpDiscuz

    Yeni Projeler More

    • 16 Şubat 2017
      1 hafta ÖNCE 2 Yorum

      Öğrenme Fonksiyonuna Sahip Hareket Kopyalayan Robot Kol Yapımı

      Bu projede öğrenme yoluyla hareket kopyalayan robot kol yapımından bahsedeceğim. Endüstride kullanılan robot kollar, her zaman aynı hareketleri yapmaya odaklıdır. Örneğin ürün bandından bir nesneyi alıp başka bir banda aktarımını yapan robot kollar sürekli aynı hareketi yapmaktadır. Bu hareketler önceden öğretilerek robot kola aktarılır. Burada da aynı mantıkla robot ...

    • 11 Şubat 2017
      2 hafta ÖNCE 10 Yorum

      Arduino İle Labirent Çözen Robot Yapımı

      Kendi robotunu yap projelerimizin bu bölümünde arduino ile labirent çözen robot yapacağız. Labirent çözen robot özellikle robot yarışmalarında yer almaktadır. Bir labirentin çözüm yolunu bulmak aslında tek bir etkene bağlıdır. Bu etken sağ veya sol taraftaki herhangi bir duvarı takip ettirmektir. Bu etkenden yola çıkarak robot sol veya sağ ...

    • 07 Şubat 2017
      3 hafta ÖNCE Yorum Yok

      Arduino ile MLX90614 Kızılötesi Sıcaklık Sensörü Kullanımı

      Cisme temas etmeden, cismin sıcaklığını ölçen MLX90614 kızılötesi sıcaklık sensöründen bahsedeceğim. Dahili bir 17-bit ADC ve güçlü bir DSP, MLX90614'ün ölçümlerinde yüksek doğruluk ve çözünürlük verir. Vücut sıcaklığı ölçmek için uygundur. Ayrıca hareket algılamada da kullanabilirsiniz. MLX90614 Özellikler: Ortam sıcaklığı ölçme aralığı -40 ile + 125 ° C Nesne ...

    • 05 Şubat 2017
      3 hafta ÖNCE Yorum Yok

      Arduino ile Yazıyı Sese Dönüştüren Emic 2 Modülü Kullanımı

      Robotunuzu konuşturmak ve neler olup bittiğini söyletmek ister misiniz ? Emic 2 yazıyı sese çeviren modülle kolaylıkla projeleriniz konuşabilir. Emic-2, Parallax tarafından, ses sentezini tamamen zahmetsiz kılmak için Grand Idea Studio ile birlikte tasarlanmıştır.

    • 31 Ocak 2017
      4 hafta ÖNCE 7 Yorum

      Arduino ile DHT22 Sıcaklık Nem Sensörü Kullanımı

      DHT sensörleri, kapasitif nem sensörü ve bir termistör olmak üzere iki parçadan oluşur. DHT11 ve DHT22 olan iki DHT modelini ele alalım. Görünüm ve pin yapısı olarak benzer görünmelerine rağmen farklı ölçüm hassasiyetlerine sahiptirler. Aşağıda iki modelin karşılaştırmasına bakalım.

    Bizi Takip Et

    Son Yorumlar

    Sezgin GÜL
    Sezgin GÜL 2017-02-25 23:01:46
    merhaba batuhan, hatanın sebebi AFMotor.h kütüphanesini yüklemediğinden kaynaklanmış. Kütüphaneyi buradan indirebilirsin http://www.robimek.com/wp-content/uploads/AFMOTOR-master.rar
    batuhan 2017-02-25 21:52:21
    sezgin bey öncelikle çok teşekkür ediyorum proje için ; Arduino ya kodu derlediğimde şöyle bir sorun ile karşılaşıyorum Arduino:1.8.1 (Windows.....
    Emin ERKMEN 2017-02-25 19:55:34
    Bu robotun üstüne ekleme yapabilir misiniz? 1 hafta içinde? Bu bizim için çok önemli.
    Sezgin GÜL
    Sezgin GÜL 2017-02-25 19:48:46
    Çizgili olan labirenti çözen robotlarda o özellik mevcut. İlerleyen günlerde o tarz proje paylaşacağım.
    Emin ERKMEN 2017-02-25 19:34:28
    Peki bu robot. En kısa yolu nasıl bulabilir. İkinci kez aynı labirentten geçtiği zaman en kısa yoldan gitmesi için ne.....
    Sezgin GÜL
    Sezgin GÜL 2017-02-25 18:10:10
    Kodlarda sorun yok videodaki robotta kullanılan kodlardır. Motor yönlerini doğru taktınız mı. Yön komutlarında doğru yönde dönüyorlar mı bunları da.....
    Emin ERKMEN 2017-02-25 18:03:27
    kodlarda sıkıntı yok yani?
    Sezgin GÜL
    Sezgin GÜL 2017-02-25 17:17:46
    Bağlantılarınız doğru ve sensörlerin konumları uygun ise enerji yetersizliğinden kaynaklanabilir