Arduino Matlab Radar Projesi
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:
-
Arduino Uno
-
HC-SR04 Ultrasonik Sensör
-
Servo Motor
Devre Şeması
Yazılım Kısmı:
Ultrasonic.h kütüphanesini buradan indirebilirsiniz >> Ultrasonic.zip
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ı
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);
hocam bende cm = sensor.Ranging(CM); burda hata veriyor devamlı arduino sildim yükledim tekrar sorun gitmedi yardımcı olurmusunuz
s1 = serial(‘COM12’); abi bunu anlamadım ben servo motorsuz nasıl yapabılırım pekı yardım edersen cok tesekkur ederım
Hocam, Matlab’da çizdirilen grafiğin mantığını öğrenerek kendim yapmak istiyorum. Matlab kodu için açıklama yapabilir misin? Özellikle sayısal değerleri nasıl elde ettiğinizle alakalı.
Hocam kodu servo motor olmadan kullandım radar çubuğu gelmedi, matlabda sadece bu kodu kullanmak yetmiyecek anladığım kadarıyla ardunio ile haberleştirmem lazım demi?
çınar senmisin knk
Merhaba. Bende bunu aynı kodlarla HC-SR04 ile yaptım. Ama sensör 50 cm’den sonrasını algılayamıyor. Radar ekranında 50 cm’den sonrası ne olursa olsun resimdeki gibi direk kırmızı olarak çıkıyor. Yardımcı olursanız sevinirim. hizliresim.com/9QD1R3
Projedeki kütüphaneyi yeniledim. tekrar indirip kütüphaneye eklersen sorun ortadan kalkacaktır.
matlab kodlarındaki sayılar nereden geliyor?
grafik ekranının çizilmesi için hesaplanmış değerlerdir. Yani ekranda çıkan yarım dairelerin her biri arası ölçekli olarak ekrana basılır ve bu sayede nesne radara takıldığında ne kadar uzaklıkta olduğu ekrandan rahatlıkla okunabilir
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.
Merhaba ben Arduino uno ile yapıcam yalnız bağlantı şeması net değil ve uno da girişler farklı yardimci olurmusunuz
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
Tam hatayı yazarsanız yardımcı olurum.
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
anlamadım şimdi yükledi programı en başta neden hata verdi anlamadım yine de teşekkürler
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 ?
bu programın matlabdaki akış diyagramını yazabilirmisiniz
bu uygulamanın kodalrını hc-sr04 için düzenleyip atabilirmisiniz acaba
merhaba. aynı projenin hc-sr04 matlab kodlarını paylaşabilirmisiniz?
Bu projeyi hcsr04 ile yapmak için kodda nasıl bi deişiklik yapmamız gerek bilenler yazabilir mi
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
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.
teşekkürler
Bu projeyi HC-SR04 sensör ile yapamazmıyız
tabi yaparsınız uzaklığı hc-04 e göre hesaplattır çıkış datasını matlab a gönder
hocam acaba HC-SR04 için yapabildin mi?
Hocam oncelikle merhaba arduino yu bilgisayara baglamadan bu grafiği kaplosuz olarak nasil aktarabilirim.
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.
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.
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.
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 ?
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.
mrb porjenizi çok iyi başarlar dilerim. Ping Ultrasonik Sensörü en uyugun fiata nerdebulabilirim .