Arduino
OKUDUĞUNUZ KONU
Arduino Ultrasonik Radar Projesi
119

Arduino Ultrasonik Radar Projesi

Yazar : Murat Duran17 Ekim 2015

Bu projemizde ultrasonik radar yapacağız, bildiğiniz üzere askeri radarlar radyo frekanslarının yansıtılmasıyla ölçülmektedir.Çok geniş bir alanda tarama yapan bu radarlar hava araçlarının tespitinde kullanılır.Bizde bu projede buna benzer ama daha küçük ölçeklisini yapacağız.Bizim radarımız radyo dalgalarıyla değil ses dalgalarıyla ölçüm yapmaktadır.Bizim yaptığımız radar 150º lik bir alanda tarama yapabilmektedir.

Projemiz arduino ve prosesing tabanlı çalışmaktadır.Arduino bölümü c++ ile yazıldı.Prosesing bölümü ise java ile hazırlandı.Kodları açık kaynaklı olarak paylaşmaktayız bu sayede geliştirme yapabilirsiniz.

Proje Malzemelerimiz

Projenin Malzemelerini Satın Al

Bu proje için gerekli malzemeleri Proje Hocam garantisi ile tek sepette satın alabilirsiniz.Malzemeler proje ile %100 uyumludur.İstenilmesi halinde arduino içerisine kodlar yüklenerek gönderilir. “Satın Almak İçin Yukarıda Butona Basınız”

İlk önce projemizin devresini kurun aşağıdaki şekilde hazırlayın düzgün görünmesi açısından breadboard üzerinde hazırladık siz isterseniz kullanamayabilirsiniz.

arduinoradarboardprojehocam

Projenin devresini kurduktan sonra usb ile bilgisayarınıza arduino kartınızı bağlayın , daha sonra bağlandı ibaresini görünce prosesing programını çalıştırın , program com portu hatası verirse yanlış portu yazmışsınız demektir.Bu yüzden kendi portunuzu girmeniz gerekiyor aşağıdaki prosesing kodunda bunu açıkladık.

Projenin arduino kodları aşağıdadır bu kodları kopyalayıp arduino kartınıza yüklemeniz gerekiyor.

// Proje Hocam - Radar Projesi
// Murat DURAN - V2
#include <Servo.h>. 

// Ultrasonik Sinyal pinleri
const int trigPin = 10;
const int echoPin = 11;

long duration;
int distance;

Servo myServo; 

void setup() {
  pinMode(trigPin, OUTPUT); 
  pinMode(echoPin, INPUT); 
  Serial.begin(9600);
  myServo.attach(12); // Servo motor sinyal pini
}
void loop() {
  // 15 derece ile 165 derece arasında dön
  for(int i=15;i<=165;i++){ myServo.write(i); delay(30); distance = calculateDistance(); Serial.print(i); Serial.print(","); Serial.print(distance); Serial.print("."); } for(int i=165;i>15;i--){  
  myServo.write(i);
  delay(30);
  distance = calculateDistance();
  Serial.print(i);
  Serial.print(",");
  Serial.print(distance);
  Serial.print(".");
  }
}

int calculateDistance(){ 
  
  digitalWrite(trigPin, LOW); 
  delayMicroseconds(2);

  digitalWrite(trigPin, HIGH); 
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH); 
  distance= duration*0.034/2;
  return distance;
} 

Projenin prosesing kodları , burada 23. satırda com portunu kendinize göre ayarlayın,Arduino kartınız hangi porttan haberleşiyorsa onu yazın.

radarprojehocam

// Proje Hocam - Radar Projesi
// Murat DURAN - V2
import processing.serial.*; // kütüphane entegresi
import java.awt.event.KeyEvent; 
import java.io.IOException;

Serial myPort; 

String angle="";
String distance="";
String data="";
String noObject;
float pixsDistance;
int iAngle, iDistance;
int index1=0;
int index2=0;
PFont orcFont;

void setup() {
  
 size (1366, 700);
 smooth();
 myPort = new Serial(this,"COM3", 9600); // Com portunu seçin
 myPort.bufferUntil('.'); 

}

void draw() {
  
  fill(98,245,31);

  noStroke();
  fill(0,4); 
  rect(0, 0, width, 1010); 
  
  fill(98,245,31); // yeşil renk

  drawRadar(); 
  drawLine();
  drawObject();
  drawText();
}

void serialEvent (Serial myPort) { 

  data = myPort.readStringUntil('.');
  data = data.substring(0,data.length()-1);
  
  index1 = data.indexOf(","); 
  angle= data.substring(0, index1); 
  distance= data.substring(index1+1, data.length()); 
  

  iAngle = int(angle);
  iDistance = int(distance);
}

void drawRadar() {
  pushMatrix();
  translate(683,700); 
  noFill();
  strokeWeight(2);
  stroke(98,245,31);
  // draws the arc lines
  arc(0,0,1300,1300,PI,TWO_PI);
  arc(0,0,1000,1000,PI,TWO_PI);
  arc(0,0,700,700,PI,TWO_PI);
  arc(0,0,400,400,PI,TWO_PI);
  // draws the angle lines
  line(-700,0,700,0);
  line(0,0,-700*cos(radians(30)),-700*sin(radians(30)));
  line(0,0,-700*cos(radians(60)),-700*sin(radians(60)));
  line(0,0,-700*cos(radians(90)),-700*sin(radians(90)));
  line(0,0,-700*cos(radians(120)),-700*sin(radians(120)));
  line(0,0,-700*cos(radians(150)),-700*sin(radians(150)));
  line(-700*cos(radians(30)),0,700,0);
  popMatrix();
}

void drawObject() {
  pushMatrix();
  translate(683,700); 
  strokeWeight(9);
  stroke(255,10,10); // kırmızı renk
  pixsDistance = iDistance*22.5; 
  // 40 cm ye kadar ölçer
  if(iDistance<40){ line(pixsDistance*cos(radians(iAngle)),-pixsDistance*sin(radians(iAngle)),700*cos(radians(iAngle)),-700*sin(radians(iAngle))); } popMatrix(); } void drawLine() { pushMatrix(); strokeWeight(9); stroke(30,250,60); translate(683,700); line(0,0,700*cos(radians(iAngle)),-700*sin(radians(iAngle))); popMatrix(); } void drawText() { pushMatrix(); if(iDistance>40) {
  noObject = "Out of Range";
  }
  else {
  noObject = "In Range";
  }
  fill(0,0,0);
  noStroke();
  rect(0, 1010, width, 1080);
  fill(98,245,31);
  textSize(25);
  text("10cm",800,690);
  text("20cm",950,690);
  text("30cm",1100,690);
  text("40cm",1250,690);
  textSize(40);
  text("Object: " + noObject, 240, 1050);
  text("Angle: " + iAngle +" °", 1050, 1050);
  text("Distance: ", 1380, 1050);
  if(iDistance<40) {
  text("        " + iDistance +" cm", 1400, 1050);
  }
  textSize(25);
  fill(98,245,60);
  translate(390+960*cos(radians(30)),780-960*sin(radians(30)));
  rotate(-radians(-60));
  text("30°",0,0);
  resetMatrix();
  translate(490+960*cos(radians(60)),920-960*sin(radians(60)));
  rotate(-radians(-30));
  text("60°",0,0);
  resetMatrix();
  translate(630+960*cos(radians(90)),990-960*sin(radians(90)));
  rotate(radians(0));
  text("90°",0,0);
  resetMatrix();
  translate(760+960*cos(radians(120)),1000-960*sin(radians(120)));
  rotate(radians(-38));
  text("120°",0,0);
  resetMatrix();
  translate(840+900*cos(radians(150)),920-960*sin(radians(150)));
  rotate(radians(-60));
  text("150°",0,0);
  popMatrix(); 
} 

Proje Dosyasını İndir

SİZCE NASIL OLMUŞ?
Beğendim
71%
İlginç
7%
Eh İşte
4%
Anlamadım
7%
Kötü
3%
Berbat
8%
YAZAR HAKKINDA
Murat Duran
Murat Duran
Açık kaynak donanım ve yazılım geliştiricisiyim , mekanik ve robotik sistemler üzerinde çalışmalar yapmaktayım.Ayrıca bir start-up firması olan Proje Hocam 'ın kurucuyum.
119 YORUMLAR
1 2
  • atilla
    11 Kasım 2016 at 21:42

    Merhaba,ben Com portunu bende hangisi oldugunu nasil bile bilirimki

  • elvan göçmen
    21 Aralık 2016 at 00:19

    distance = calculateDistance(); bu hatayı veriyor anlamıyorum çözemedim yardım edermisiniz alttaki hata da şu; exit status 1
    ‘calculateDistance’ was not declared in this scope

  • Arif
    22 Aralık 2016 at 10:48

    Simülasyon programını nasıl bulucaz

  • Muhammet Firat
    24 Aralık 2016 at 17:27

    Arduino klon R3 le bu projeyi yapabilir miyim

  • Deniz
    25 Aralık 2016 at 00:33

    Eline sağlık hocam normalde buzzerla bildirim yaptırmaya çalışıyordum yapamadım bunu denedim oldu

  • samet
    31 Aralık 2016 at 20:08

    merhabalar hocam
    prosesing ve arduınoyu aynı anda calısdarmıyorum portlarda sıkıntı verırıyor

  • ibrahim
    7 Ocak 2017 at 17:02

    bunu bluetooth ile yapmak istiyorum bu konuda yardımcı olabilir misiniz ?

  • FURKAN
    10 Ocak 2017 at 00:15

    Arduino Mega R3 yerine Arduino UNO kulansam birşey fark edermi

  • barçın
    15 Ocak 2017 at 14:21

    kodlarda değişiklik yapıyorum kontrol et’e basıyorum distance = calculateDistance(); hatsıyla karşılaşıyorum olmuyor yardım edrmisiniz

  • ALİ YEŞİLKAYA
    16 Ocak 2017 at 16:39

    hocam simülasyon kodlarının size bölümünde hata veriyor…Devreyi kurmadan simülasyonu çalıştırabiliyormuyuz acaba?

    • Murat Duran
      17 Ocak 2017 at 12:48

      Devreyi kurup arduino kodlarını , arduino kartınıza yükleyip usp ile devreyi bilgisayarınıza bağlamanız ardından port numarasını processing kodlarında değiştirip çalıştırmanız gerekiyor.

  • 15 Şubat 2017 at 19:32

    simülasyonu nasıl indireceğiz

  • Ulas Kutay
    19 Şubat 2017 at 17:02

    Arduino Uno İle bunu yapabiliriz Demişsiniz Peki Kodlarda bir değişiklik yapılacak mı ?

  • Hakan ÇAKAR
    11 Mart 2017 at 13:16

    Arduino UNO ile bu projeyi yapabilirmiyim

  • Ahmet güler
    13 Mart 2017 at 13:01

    Servo motor kullanmadan bu sonar sistemini nasıl aktif edebiliriz yardımcı olurmusunuz iyi çalışmalar

  • Berat DURAN
    13 Mart 2017 at 15:21

    Merhaba bu 40cm olan görüşü nasıl büyüyebiliriz 2-3metre falan?

  • Yılmaz
    14 Mart 2017 at 14:52

    bu devreyi bilgisayar üzerinden C# ile kontrol etmek istiyorum bu uygulamayı gerçekleştiren var ise kodları paylaşabilirmi acaba ok makbule geçer

  • furkan aldemir
    17 Mart 2017 at 17:10

    prosesing i çalıştırmak için hangi programı kullanıyorsun

  • Batuhan Tuzer
    17 Mart 2017 at 17:27

    Merhaba, bu projedeki ultrasonik sensör yerine manyetik sensör kullandigimda sistemin metali algilayarak konumunu tespit etmesini sağlayabilir miyim? Teşekkürler…

  • fırat bulca
    20 Mart 2017 at 12:36

    servom 180 derece dönmüyor çeşit çeşit kod denedim ama 180 harici her türlü turu atıyor

  • M.Durmuş ARSLAN
    27 Mart 2017 at 11:50

    merhaba size (1366,700); satır kodunda hata veriyor çalıştıramıyorum yardmcı olur musunuz

    Could not run the sketch (Target VM failed to initialize).
    For more information, read revisions.txt and Help ? Troubleshooting.

  • fatih
    11 Nisan 2017 at 17:23

    mesafe sensörünün görüşünü arttırmak için hangi kodu değişitrmemiz gerekli hocam

  • Eren EMRE
    17 Nisan 2017 at 12:07

    hocam servonun dönüş hızını arttırmak istiyorum.Yardımcı olurmusunuz.

  • kazim karasoy
    26 Nisan 2017 at 19:00

    merhaba
    projeyi yaptım ama motor çok yavaş hareket ediyor ve prosesing programında hep kırmızı gözüküyor bu hata neyden kaynaklanmaktadır?
    yardımcı olabilir misiniz?

  • kaan ayhan
    3 Mayıs 2017 at 13:41

    Breadboardsuz halinin yapılmış şeklini gönderebilir misiniz?

  • furkan aldemir
    17 Mayıs 2017 at 03:21

    Selamın Aleyküm bu projenin java bölümünü acil c# ile kontrol etmem lazım yaparmısınız yada yapan varsa paylaşırmısınız.

  • SİNAN MORAN
    18 Mayıs 2017 at 17:27

    Ultrasonic radar projesinde processing programındaki radar görüntüsünü 3.2 inç lik bir TFT Shield de nasıl görebiliriz?

  • sedat mutlu
    10 Haziran 2017 at 17:31

    slm hocam uno ile olmazmı megamı sart birde ben bu proglamı telefonda nasıl çalıştıra bilebilin

  • sedat mutlu
    13 Haziran 2017 at 04:10

    exit status 1
    stray ‘\303’ in program hatası ne

  • can çördük
    14 Temmuz 2017 at 15:47

    Arduino:1.6.12 (Windows 8.1), Kart:”Arduino/Genuino Uno”

    Çalışmanız programın 4.450 bayt (13 %) saklama alanını kullandı. Maksimum 32.256 bayt.
    Global değişkenler belleğin 237 byte kadarını (11%) kullanıyor. Yerel değişkenler için 1.811 byte yer kalıyor. En fazla 2.048 byte kullanılabilir.
    avrdude: ser_open(): can’t open device “\\.\COM3”: The system cannot find the file specified.

    Karta yüklenirken sorun oluştu. Tavsiyeler için http://www.arduino.cc/en/Guide/Troubleshooting#upload adresine göz atabilirsiniz.

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.

  • Mehmet
    31 Ağustos 2017 at 18:01

    Arduino mega ile olur mu hep hata veriyo

  • efe
    2 Kasım 2017 at 10:22

    abi processing de c++ mod nasııl yükleyeceğim çok acil

  • Kerim Sancakoğlu
    18 Kasım 2017 at 16:02

    Öncelikle Merhaba. Ben bu sistemi kapıdan aşağı bakıcak bir şekilde kurup altından geçenin insan olup olmadığını anlamak istiyorum. Bunu nasıl yapabilirim yardım ederseniz sevinirim.

  • can kurttekin
    27 Kasım 2017 at 13:42

    proje hakkinda merak ettigim ve egrenmek istediklerim var burdaki bilgiler yeterli degil benim icin bu projeyi gerceklestiren degerli kisi bana Canua21@hotmail.com bu mail adresinden ulasabilirmisiniz

  • ALİ
    7 Aralık 2017 at 00:10

    HOCAM BEN YAPTIM PROJEYİ SERVO MOTOR ÇOK HIZLI VE 150 DERCEDEN FAZLA DÖNÜYOR
    DÖNÜYOR

  • Aziz Emre Öztürk
    10 Ocak 2018 at 15:04

    Hocam bu projenin daha büyüğünü yapma şansımız varmı ? Uçakların radar hareketlerini görebilme şansımız mevcutmu ? (Askeri uçaklar dahil)

YORUM YAP