Yazılar Eğitimler mBlock Eğitimi

MBlock ile HC-SR04 Mesafe Sensörü Kullanımı

Merhaba,

HC-SR04 ses dalgalarını kullanarak mesafe ölçümü işlemi için kullanılan bir aygıttır.

Üzerinde ses dalgaları için bir verici ve bir alıcı bulundurur. Verici üzerinden ses dalgaları yayımlayarak bu dalgaların bir yüzeye çarpıp geri dönmesi arasında geçen süre üzerinden mesafe ölçme imkanı sunmaktadır.

2 – 400 cm aralığında ölçüm yapabilmekte, ancak verimli çalışma aralığı 2-40 cm’dir

3 mm hassasiyette çalışır.

Çalışma Prensibi:

Sensörün Trig pininden uygulanan sinyal 40 kHz frekansında ultrasonik bir ses yayılmasını sağlar. Bu ses dalgası herhangi bir cisme çarpıp sensöre geri döndüğünde, Echo pini aktif hale gelir. Biz ise bu iki sinyal arasındaki süreyi ölçerek -yani sesin yankısını algılayarak- cismin sensörden uzaklığını tespit edebiliriz.

Neler Yapacağız?

  • Arduino Uno ile Breadboard üzerine Mesafe sensöründen oluşan bir devre kuracağız.
  • Kullanacağımız blokları tanıyacağız.
  • Mesafe ölçümü için gerekli algoritmayı kuracağız.
  • Mesafedeki değişimi gözlemleyeceğiz.

Gerekli Malzemeler:

  • 1 Adet Arduino Uno
  • 1 Adet BreadBoard
  • 1 Adet HC-SR04 Ultrasonik mesafe sensörü.
  • 4 Adet iki ucu erkek jumper kablo

Gerekli Araçlar:

  • Mblock
  • 3DRoboLab Türkçe bloklar.

MBlock uygulamasına 3DRoboLab Türkçe bloklar uzantısı ekleme.

Programı çalıştırıp üst kısımdaki araç çubuğundan uzantılar ikonuna tıklıyoruz.

Daha sonra açılan pencereden Uzantıları Yönet ikonuna tıklıyoruz.

Açılan Pencerenin Arama bölümüne 3DRoboLab yazıyoruz.

Daha sonra 3DRoboLab adlı uzantıyı indirip, Uzantı ekle ikonuna tıklıyoruz ve 3DRoboLab Türkçe Bloklar MBlock kütüphanenize eklenmiş oluyor.

basit uygulamalar için hazırlamış olduğumuz kodların çalışmasında herhangi ek bir işlem yapmanıza gerek yoktur.

MBlock Programı üzerinden Arduino kartına bağlanma.

Programı çalıştırıp üst kısımdaki araç çubuğundan Kartlar ikonuna tıklıyoruz.

Daha sonra açılan pencereden kullandığımız kartı seçiyoruz.

Kartı seçtikten sonra gene araç çubuğu üzerinde bulunan Bağlan ikonuna tıklıyoruz.

Karşımıza çıkan pencerede seri port’un üzerine geliyoruz ve yan tarafta bağlı COM’lar çıkıyor. Arduino kartı hangi COM’da bağlıysa o COM’u seçiyoruz ve program üzerinden karta bağlanmış oluyoruz.

Devremizin Kurulumuna Geçebiliriz.

Arduino Uno ve BreadBoard devresinin kurulması;

  • GND(toprak) çıkışını, toprak hattına bağlıyoruz.
  • Echo çıkışını D13 numaralı pine bağlıyoruz.
  • Trıg çıkışını D12 numaralı pine bağlıyoruz.
  • Son olarak da 5V çıkışını bağlıyoruz.

Şimdi kullanacağımız blokları tanıyalım.

Serial BaudRate bloğu bir iletişim bağlantısında verinin ne kadar hızlı aktarıldığını tanımlar. MBlock uygulamasının veri aktarma hızı 115200 olduğu için bu seçimi gerçekleştirdik.

Serial Veri Yaz bloğu da, Bilgisayarın USB portuna bağlı olan arduino kartından, seri porta butonun durumunu göndermesini sağlar. Böylece bilgisayara arduino kartından okuduğumuz sensör verilerini gönderebiliriz.

Yazdığımız kodlar Arduinonun anlayacağı dile çevrilir. Ardından Arduino kartına yazılır.

Bu programı Arduinoya yüklediğimizde seri port ekranından Mesafe değerini gözlemleyebiliriz.

#include <Arduino.h>
#include <Wire.h>
#include <SoftwareSerial.h>

 /* 3D Robotics Laboratory: www.3drobolab.com */
double angle_rad = PI/180.0;
double angle_deg = 180.0/PI;
double Mesafe;
float getDistance(int trig,int echo){
    pinMode(trig,OUTPUT);
    digitalWrite(trig,LOW);
    delayMicroseconds(2);
    digitalWrite(trig,HIGH);
    delayMicroseconds(10);
    digitalWrite(trig,LOW);
    pinMode(echo, INPUT);
    return pulseIn(echo,HIGH,30000)/58.0;
}

void setup(){
    Serial.begin(115200);
}

void loop(){
    Mesafe = getDistance(12,13);
    Serial.println(String("M:")+Mesafe);
    _delay(0.5);
    _loop();
}

void _delay(float seconds){
    long endTime = millis() + seconds * 1000;
    while(millis() < endTime)_loop();
}

void _loop(){
}

 

Hazırladığımız kod bloklarının Arduinonun anlayacağı dile (C/C++) çevriliyor. Kodları yüklemek için Arduino’ya yükle butonuna tıklamanız yeterlidir.

Kodlar derlendikten sonra Arduino’ya 30-50 sn. arasında yüklenmiş olacaktır.

Seri Port Ekranından Mesafe değerini takip edebilirsiniz.

İyi Eğlenceler…

Mert Dursun
subscriber

Comments

Bir cevap yazın