Bu projede, mesafeyi ölçmek için HC-SR04 Ultrasonik sensör modülünü Raspberry Pi'ye bağlayacağız. Daha önce Engel Önleme Robotu oluşturmak için Raspberry Pi ile Ultrasonik sensör kullandık. Daha ileri gitmeden önce Ultrasonik sensör hakkında bilgi verelim.
HC-SR04 Ultrasonik Sensör:
Ultrasonik Sensör, mesafeyi yüksek doğruluk ve kararlı okumalarla ölçmek için kullanılır. 2cm ile 400cm arası veya 1 inç ile 13 fit arası mesafeyi ölçebilir. Havada 40KHz frekansında bir ultrason dalgası yayar ve eğer nesne kendi yoluna çıkarsa sensöre geri döner. Nesneye çarpıp geri gelmek için geçen süreyi kullanarak mesafeyi hesaplayabilirsiniz.
Ultrasonik sensör, "ECHO" adı verilen bir teknik kullanır. "ECHO" sadece yansıyan bir ses dalgasıdır. Çıkmaz bir noktaya ulaştıktan sonra ses geri geldiğinde bir ECHO'ya sahip olacaksınız.
HCSR04 modülü, 'Trigger' pimini yaklaşık 10us için yüksek yaptığımızda, ses hızında 8 döngülü bir sonik patlama gönderecek ve nesneye vurulduktan sonra Echo pini tarafından alınacaktır. Ses titreşiminin geri dönme süresine bağlı olarak uygun darbe çıkışı sağlar. Nesne uzaktaysa, ECHO'nun duyulması daha fazla zaman alır ve çıkış darbe genişliği büyük olacaktır. Ve eğer engel yakınsa, ECHO daha hızlı duyulacak ve çıkış darbe genişliği daha küçük olacaktır.
Ultrasonik dalganın sensöre geri dönmesi için geçen süreye göre nesnenin mesafesini hesaplayabiliriz. Sesin zamanı ve hızı bilindiği için aşağıdaki formüllerle mesafeyi hesaplayabiliriz.
- Mesafe = (Zaman x Havadaki Ses Hızı (343 m / s)) / 2.
Dalga aynı mesafeyi katederek ileri ve geri gittiği için değer ikiye bölünür, böylece engele ulaşma süresi geçen toplam sürenin yarısı kadardır
Yani santimetre cinsinden uzaklık = 17150 * T
Daha önce bu Ultrasonik sensörü ve Arduino'yu kullanarak birçok faydalı proje yaptık, bunları aşağıda kontrol edin:
- Ultrasonik Sensör kullanarak Arduino Tabanlı Mesafe Ölçümü
- Arduino ve Ultrasonik Sensör kullanarak Kapı Alarmı
- Arduino kullanarak IOT Tabanlı Dumpster İzleme
Gerekli Bileşenler:
Burada Raspbian Jessie OS ile Raspberry Pi 2 Model B kullanıyoruz. Tüm temel Donanım ve Yazılım gereksinimleri daha önce tartışılmıştır, ihtiyaç duyduğumuz dışında, Raspberry Pi Tanıtımı ve Raspberry PI LED Yanıp Sönüyor bölümlerine bakabilirsiniz:
- Önceden yüklenmiş işletim sistemine sahip Raspberry Pi
- HC-SR04 Ultrasonik Sensör
- Güç kaynağı (5v)
- 1KΩ direnç (3 adet)
- 1000uF kapasitör
- 16 * 2 karakter LCD
Devre Açıklaması:
Raspberry Pi ile LCD arasındaki bağlantılar aşağıdaki tabloda verilmiştir:
LCD bağlantısı |
Raspberry Pi bağlantısı |
GND |
GND |
VCC |
+ 5V |
VEE |
GND |
RS |
GPIO17 |
R / W |
GND |
TR |
GPIO27 |
D0 |
GPIO24 |
D1 |
GPIO23 |
D2 |
GPIO18 |
D3 |
GPIO26 |
D4 |
GPIO5 |
D5 |
GPIO6 |
D6 |
GPIO13 |
D7 |
GPIO19 |
Bu devrede, LCD'yi Raspberry Pi ile bağlamak için 8bit haberleşme (D0-D7) kullandık, ancak bu zorunlu değildir, 4-bit haberleşmeyi de kullanabiliriz (D4-D7) ama 4 bit haberleşme programı ile biraz bit olur yeni başlayanlar için karmaşık bu yüzden sadece 8 bit iletişim ile devam edin. Burada 8 adet data pin ve 2 adet kontrol pin olmak üzere 10 adet LCD'yi Raspberry Pi'ye bağladık.
Mesafeyi ölçmek için HC-SR04 sensörü ve LCD'yi Raspberry Pi ile bağlamak için devre şeması aşağıdadır.
Şekilde gösterildiği gibi, HC-SR04 Ultrasonik Sensörün dört pimi vardır,
- PIN1- VCC veya + 5V
- PIN2- TETİKLEME (sensöre mesafeyi algılamasını söylemek için 10us yüksek darbe verilir)
- PIN3- ECHO (Genişliği tetiklemeden sonraki mesafeyi temsil eden darbe çıkışı sağlar)
- PIN4- ZEMİN
Echo pin, Raspberry Pi'ye doğrudan bağlanamayan + 5V çıkış darbesi sağlar. Bu nedenle, + 5V mantığı yerine + 3.3V mantığı elde etmek için Gerilim Bölücü Devresi (R1 ve R2 kullanılarak oluşturulmuş) kullanacağız.
Çalışma Açıklaması:
Raspberry Pi Mesafe Ölçümü'nün tam çalışması, 1. Tetik pimini 10 uS için yukarı çekerek sensörü tetikleyin.
2. Ses dalgası sensör tarafından gönderilir. ECHO'yu aldıktan sonra, sensör modülü mesafeye orantılı bir çıktı sağlar.
3. Çıkış darbesinin DÜŞÜK'ten YÜKSEK'e geçtiği ve YÜKSEK'ten DÜŞÜK'e geçtiği zamanı kaydedeceğiz.
4. Başlama ve durma zamanımız olacak. Mesafeyi hesaplamak için mesafe denklemini kullanacağız.
5. Mesafe 16x2 LCD ekranda görüntülenir.
Buna göre Raspberry Pi için Python Programını aşağıdaki işlevleri yerine getirmek için yazdık:
1. Sensöre tetik göndermek için
2. Sensörden gelen darbe çıkışının başlatma ve durdurma zamanını kaydedin.
3. START ve STOP zamanlarını kullanarak mesafeyi hesaplamak için.
4. 16 * 2 LCD'de elde edilen sonucu görüntülemek için.
Tam Program ve Demo Videosu aşağıda verilmiştir. Program yorumlarla iyi bir şekilde açıklanmıştır, herhangi bir şüpheniz varsa aşağıdaki yorum bölümünde sorabilirsiniz.