BAĞLAN

Arduino Matlab Radar Projesi

  • Görüntüleme 6928
  • 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.rar

    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

    User Rating: 4.3 (3 votes)
    Sending

    PAYLAŞ

    Sezgin GÜL

    Makine Mühendisi, Maker, Robotik Sistemler Uzmanı

    25 Yorum "Arduino Matlab Radar Projesi"

    1. halil
      20 Aralık 2016

      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.

      Cevapla
    2. Mehmet
      14 Aralık 2016

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

      Cevapla
    3. eymen
      8 Aralık 2016

      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

      Cevapla
      • Sezgin GÜL
        Sezgin GÜL
        9 Aralık 2016

        Tam hatayı yazarsanız yardımcı olurum.

        Cevapla
        • eymen
          10 Aralık 2016

          31 sırada ki data(); kısmında veriyor derliyorum sıkıntı yok ama yukle deyince oldu araçlardan portu ayarladım ardiuno yu seçtim ama bende ki nano

          Cevapla
          • eymen
            10 Aralık 2016

            anlamadım şimdi yükledi programı en başta neden hata verdi anlamadım yine de teşekkürler

            Cevapla
    4. eymen
      7 Aralık 2016

      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 ?

      Cevapla
    5. SAFA
      25 Temmuz 2016

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

      Cevapla
    6. Emirhan
      14 Mayıs 2016

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

      Cevapla
    7. huzeyfe
      11 Mayıs 2016

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

      Cevapla
    8. Tahsin
      14 Nisan 2016

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

      Cevapla
    9. ömer
      16 Mart 2016

      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

      Cevapla
      • Sezgin GÜL
        16 Mart 2016

        ping sensör 100 tl hc-sr04 ise 5 tl . fiyata bakmıyorsan ping sensör en iyisi. hatasız ölçüm yapar ve hızlıdır. hc-sr04 kullanırsan da kodu değiştirmen gerekiyor.

        Cevapla
        • ömer
          18 Mart 2016

          teşekkürler

          Cevapla
    10. ahmet
      4 Mart 2016

      Bu projeyi HC-SR04 sensör ile yapamazmıyız

      Cevapla
      • Sezgin GÜL
        4 Mart 2016

        tabi yaparsınız uzaklığı hc-04 e göre hesaplattır çıkış datasını matlab a gönder

        Cevapla
      • halil
        20 Aralık 2016

        hocam acaba HC-SR04 için yapabildin mi?

        Cevapla
    11. Evren
      16 Aralık 2015

      Hocam oncelikle merhaba arduino yu bilgisayara baglamadan bu grafiği kaplosuz olarak nasil aktarabilirim.

      Cevapla
      • Sezgin GÜL
        16 Aralık 2015

        bluetooth veya rf ile değerleri gönderirsin.Bluetooth ile yapmak istersen buradan iki bluetooth modulun haberleşme ayarlarına bakabilirsin. http://www.robimek.com/hc-05-ile-hc-06-bluetooth-modullerin-haberlesmesi/ Slave modda olan bluetooth u pc ye serial dönüştürücü ile bağla. Master olan modülü de arduinoya bağla.Ya da pcnin kendi bluetooth unu da kullanabilirsin. Ama bazen bağlantı erken kopuyor. Sadece arduino kodunda loop kısmındaki Serial.print(pos); Serial.print( ” “); Serial.println(cm); “println” ifadelerinin yerine “write” yaz.

        Cevapla
    12. Şinasi
      2 Aralık 2015

      Merhaba devre çok güzel fakat ben devreyi biraz daha geliştirip cismi algıladıgında benim istedigim bir ses dosyasini calistirmasini istiyorum ayni zamanda buna ek olarak bir cisim gördügü zaman bu cisme kitlenip bu cismin hareket ettigi yere yönelmesini istiyorum bunu nasil saglarım teşekkürler.

      Cevapla
      • Sezgin GÜL
        2 Aralık 2015

        Merhaba
        Buradaki projeden ses dosyası çalma işlemine bakabilirsin.http://www.robimek.com/arduino-ile-sd-karttan-melodi-calma/ Yazılımda mesafeye koşul tanımlayarak gerekli dosyayı çaldırırsın.Eğer mp3 formatında çaldırmak istersen bu projeye bakabilirsin. http://www.robimek.com/arduino-ile-wtv020sd-16p-mp3-modul-kullanimi/
        Cismi takip ettirmek için en az iki sensör kullanman gerekir. Bu sensörleri birbirleriyle küçük bir açı yapacak şekilde bitişik yerleştir. Sensörleri de servonun kanadına yapıştır. Yani servo hareket ettikçe sensörlerde dönecek.Yazılım kısmında örneğin iki sensör kullandıysan iki sensörün ölçümünü karşılaştır. Hangi sensörde cisim algılandıysa o tarafa servoyu belli bir adım hareket ettir. Hareket işleminde iki sensörde de cisim algılama olana kadar birer ikişer derece (hassasiyetini belirleme ) arttırarak devam ettir. Bu şekilde cismi takip ettirebilirsin.

        Cevapla
        • Şinasi
          11 Aralık 2015

          Yeniden merhaba ,1 haftalık malzeme araştırmasından sonra benim bulduğum devre elemanları hem arduinoya başlangıç için hemde devreyi geliştirmek adına yapmak istediğim devre kısaca (son hali artık 😀 ) sizin devrenizden tek farklı olarak ben görüntüyü kamera yardımı ile de almak istiyorum bu yüzden kullanmak istediğim malzemeler ;
          Arduino Kamera Modülü OV7670 Arduino – ARM – PIC Uyumlu
          direnc.net/Arduino-Uno-Maxi-Baslangic-Seti,PR-23611.html
          direnc.net/SG90-9G-SERVO-MOTOR-1-ADET,PR-17719.html

          Bunları haricinde başka almam gereken bir malzeme bulunuyor mu acaba ?

          Cevapla
          • Sezgin GÜL
            12 Aralık 2015

            Servo motor tekrar almana gerek yok kamerayı da ultrasonik sensörün üzerine veya yanına yerleştirebilirsin. Bu kamera modülünü rahatlıkla kullanabilirsin ama görüntü kalitesi çok düşüktür. başka malzemeye gerek yok.

            Cevapla
    13. hüseyin
      4 Kasım 2015

      mrb porjenizi çok iyi başarlar dilerim. Ping Ultrasonik Sensörü en uyugun fiata nerdebulabilirim .

      Cevapla
      • Sezgin GÜL
        4 Kasım 2015

        Teşekkürler Hüseyin. Ping sensör genelinde pahalıdır ama yurt dışında biraz daha uygun fiyata bulabilirsin.

        Cevapla

    Bir yorum yaz

    E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

    Projeler Devamı

    Bizi Takip Et

    izmir escort- izmir escort- izmir escort- izmir escort- izmir escort