• “İlim, Çin’de dahi olsa gidip alınız.” Hz. Muhammed (s.a.v.)

    Ultrasonik Mesafe Sensörü ile Sabit Mesafede Kalma


    Bu projede arduino ile HC-SR04 ultrasonik sensörünü kullanmayı, mesafe ölçmeyi ve sabit mesafede kalmayı öğreneceğiz. Ultrasonik sensörler ultrasonik ses dalgaları yayan ve bunların engellere çarpıp geri dönmesine kadarki geçen süreyi hesaplayıp aradaki mesafeyi bulan sensörlerdir. Yaydığı ses dalgalarının tüm katı ve sıvı cisimlerden yayılması SR04 sensörünün mesafe ölçümü, cisim agılama gibi birçok uygulamada kullanılmasını sağlamaktadır.



    İnsan kulağı teoride 20 Hz ile 20000 Hz arasındaki frekans aralığını işitir. Ultrasonik ses dalgaları ise 20 kHz ile 500kHz frekansları arasındadır. Frekansların yüksek olması yayılan sinyallerin enerjilerinin yüksek olmasını ve yüzeylerden daha iyi yansımasını sağlamak içindir. Ayrıca bu sayede uygulamalarda insanları rahatsız etmeyecek şekilde kullanılabilir. SR04 sensörünün çalışma frekansı ise 40Khz dir. Yani 40 Khz frekans değerinde ses dalgası üretir. 2cm - 4m arasında 3mm hassasiyetle ölçüm yapabilen bu sensör, önünde duran en yakın nesnenin mesafesini vermektedir. Uzak nesneleri algılaması için nesnenin daha büyük olması gerekmektedir. Algılama açısı yaklaşık 15 derecedir.



     HC-SR04 giden ve dönen ses arasındaki süre farkını mikrosaniye (1/1,000,000sn) cinsinden vermektedir. Sesin hızını havada yaklaşık 343m/s olarak düşünelim. Hesapları cm cinsinden yapmak istersek ses hızı 34300 cm/s olarak alabiliriz. Zaman birimini mikrosaniye cinsinden aldığımızda 0,0343 cm/us olarak karşımıza çıkmaktadır. Sesin gidişi ve gelişi 2 kat sürdüğü için tek gidiş veya tek geliş için ilk hesapladığımız değeri ikiye bölebiliriz, sonuç 0,01715 cm/ us olarak ortaya çıkmaktadır. Hesapları Arduino için daha kolay integer değerleri cinsinden yapmak istersek 1/0,01715 = 58 olduğunu görebiliriz. Böylece HC-SR04'nin bize verdiği mikrosaniye cinsinden değeri 0,01715 ile çarpar veya 58'e bölersek santimetre cinsinden en yakın yansıtıcı nesnenin mesafesini bulmuş oluruz.


    SR04 sensörü üzerinde 4 pin mevcuttur. Bunlar sırasıyla VCC, Trig, Ecgo, GND . Trig üretilen sinyalin sensöre uygulanması, Echo yansıyan sinyalin işlemciye iletilmesi için kullanılır. Sinyallerin sensör tarafından iletilmesi ve algılanması transduser tarafından sağlanır. Trig bacağına sensör datasheetine göre 10 us lojik 1 uygulanır. Bu sinyal sensöre uygulandığında sensör 40 Khz lik sinyali üretir ve gönderir. Sensörden ilk olarak bir ses dalgası gönderilir, yansıyan ses dalgası transducer tarafından algılanır ve tekrar gönderilir ancak gönderilmeden önce biraz beklenir. Çünkü bir önceki ses dalgasının cisim yada ortam tarafından tam anlamıyla emilmiş olması gerekir. Eğer bekleme yapmaksak sensör saçma değerler döndürür.Çünkü ilk yolladıgımız sinyal bir yerden yansıyarak sensöre geri dönmeye devam eder. Yansıyan sinyal echo bacağından okunur ve bu sayede mesafe ölçümü yapılabilir. Önemli olan nokta echo pininin ne kadar süre lojik 1 de kaldığıdır. Ölçülmesi gereken değer budur. Çünkü mesafenin bulunması için öncelikle zamanın hesaplanması gerekir.

    Bizim amacımız ultrasonik sensör kullanarak sabit mesafede kalabilmek. Örneğin duvara 8 cm mesafe koyan ve duvarı takip eden bir robot yapmak istiyorsunuz ya da süpürge robotu yapmak istiyorsunuz vs. Robot 8 cm den yakınsa uzaklaşsın, uzaksa yakınlaşsın. Bunun için de koda iki adet if ekleyerek istediğimizi yapmış bulunuyoruz. Ben basit manada yapmak için bir step motor kullanarak proje hazırladım.

    Projenin videosu ve kodu aşağıda mevcuttur.

    Github

    Youtube

    0 yorum: