Konuyu Değerlendir
  • 0 Oy - 0 Ortalama
  • 1
  • 2
  • 3
  • 4
  • 5
Arduino İle Kısa Menzilli Radar Yapımı
#1
Uygulamada yeni öğrendiğimiz uzaklık sensörünü servo motorun üzerine bağlayarak, 0-180 derece arasındaki cisimlerin uzaklığını bulan basit bir radar yapacağız. Bunun için servo motoru 10 derecelik açılarla döndürüp, o açıdaki maksimum uzaklığı ölçeceğiz. Uzaklığı daha kolay ölçebilmek için bu uygulamamızda "mesafeOlcumu” fonksiyonunu tanımlayacağız. Servonun 10'ar derecelik açılarla dönmesini sağlayabilmek için 2 tane for döngüsü kullanılacaktır. Her 10 derecelik açılardaki maksimum uzaklıklar bilgisayardan görüntülenebilmesi için seri port yardımıyla USB üzerinden bilgisayara yollanacaktır.

Bu uygulamayı yapmak için ihtiyacımız olan malzemeler:

1 x Arduino
1 x Breadboard
1 x HC-SR04 (ultrasonik uzaklık sensörü)
1 x Servo motor

[Resim: uzaklik_2.jpg]

Kod:
#include <Servo.h>

const int trigPin = 8; /* Sensorun trig pini Arduinonun 6 numaralı ayağına bağlandı */
const int echoPin = 7;  /* Sensorun echo pini Arduinonun 7 numaralı ayağına bağlandı */

Servo radarServosu;

int aci = 0;

long mesafeOlcumu(){
 long sure;
 long uzaklik;
 digitalWrite(trigPin, LOW); /* sensor pasif hale getirildi */
 delayMicroseconds(5);
 digitalWrite(trigPin, HIGH); /* Sensöre ses dalgasının üretmesi için emir verildi */
 delayMicroseconds(10);
 digitalWrite(trigPin, LOW);  /* Yeni dalgaların üretilmemesi için trig pini LOW konumuna getirildi */
 sure = pulseIn(echoPin, HIGH, 11600); /* ses dalgasının geri dönmesi icin gecen sure ölcülüyor */
 uzaklik= sure /29.1/2; /* ölçülen sure uzaklığe çevriliyor */    
 if(uzaklik > 200 || uzaklik < 1 )
   uzaklik = 200;
 return uzaklik;
}

void ekranaYazdir(int aciDegeri, long uzaklikDegeri){
   Serial.print("aci= ");
   Serial.print(aciDegeri);
   
   Serial.print("uzaklik= ");
   Serial.println(uzaklikDegeri);
}

void setup(){
 pinMode(trigPin, OUTPUT); /* trig pini cikis olarak ayarlandi */
 pinMode(echoPin,INPUT); /* echo pini giris olarak ayarlandi */
 
 radarServosu.attach(9);
 
 Serial.begin(9600); /* Seri haberleşme başlatıldı */
}

void loop()
{
 for(aci = 0; aci < 180; aci += 10) /* radarımız 0dan 180 kadar 10ar 10ar dönecektir */
 {
   radarServosu.write(aci); /* radari donduruyoruz */
   delay(15); /* radarin donmesini bekliyoruz */
   ekranaYazdir(aci, mesafeOlcumu());
 }
 for(aci = 180; aci>=1; aci-=10) /* radarımız 180dan 0 kadar 10ar 10ar dönecektir */
 {                                
   radarServosu.write(aci); /* radarı donduruyoruz */
   delay(15); /* radarın dönmesini bekliyoruz */
   ekranaYazdir(aci, mesafeOlcumu());
 }
}

Bul
Alıntı


Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi

Hakkımızda
    Yapay Zeka Forum , Yapay Zekayı Türkiye'ye tanıtmak ve bu alanda Türkçe kaynak sıkıntısını gidermek ve aynı zamanda Yapay Zekaya ilgi duyan tüm kişileri bir araya getirmek amacıyla kurulmuştur.

Yapay Zeka Forum


yapay zeka

,

yapay sinir ağı

,

yapay sinir ağları

,

derin öğrenme

,

makine öğrenmesi