HC-SR04 ultrasonıc sönsör hata önlemi

Başlatan Denizccan, 27 Mayıs 2015, 20:54:14

exjra

Alıntı yapılan: Denizccan - 14 Haziran 2015, 03:56:52
exjra hocam sensörleri o kadar araştırmama rağmen sizin söylediğiniz bilgiyi hiçbir yerde okumamıştım şaşırdım doğrusu. ilk verdiğim sipariş 4 delikli olanlardan gelmişti, sonradan verdiğim siparişte ise 2 delikli olanlardan gelmişti ve iki delikli olanlardan çalışırken ince bir ses geliyordu bende bir düşünmüştüm neden delik yapısı değişti ve ses geliyor diye ama görünüş  aynı olduğundan ve uzaklık verisi aldığımdan dolayı aldırış etmemiştim. ilk işim iki ayrı devre kurarak iki sensörü karşılaştırcam.

burç tankal hocam daha önce watch dog timer kullanmadım, az bir bilgiye sahibim o konuda. Serdar hocamın ccs kitabından hatırladığım kadarıyla PIC donanımsal yada yazılımsal takılmalarda kaldığında reset atmamıza yaradığını hatırlıyorum sadece herhangi bir takılma anında yani benim yaşadığım durumda program kaldığı yerden devam edermi yoksa en baştan mı başlar bilmiyorum doğrusu.

Ben sensörleri kullanarak kendi kendine park yapabilen bir oyuncak araç tasarladım bitirme projesi olarak. Projemi bitirdim ve okula teslim ettim 2 gün önce. Şimdi watch dog timer programda kaldığı yerden başladığını varsayarsak tekrar sensör okuma yapmaya çalışacak ama benim aracım engele çapraz konumda durduğundan istediği kadar tekrardan ölçüm yapmaya çalışsa bile yapamayacak bulunduğu konumdan dolayı. Ama benim mutlaka bir uzaklık verisi alıp ona göre aracı hareket ettirmem gerektiğinden watch dog timer kullanmak sorunumu çözmeyecek kanısındayım. Ben son yazdığım kodu kullanarak bitirdim projeyi. Araç okuma yapamadığı taktirde 218 sayısını alıyordum o sayıyı alıncada aracı küçük adımlarla hareket ettirerek konumu değiştirip çaprazlıktan kurtularak aracın işlem yapmasına imkan sağladım.Ama sizin söylediğiniz şeklide hemen deneyeceğim bu vesile ile watch dog timer konusu hakkında bilgi sahibi olurum cevap verdiğiniz için teşekkür ederim.


Hatanın algoritmamda olmadığına ikna olduğumda sensörlerin farklı olduğunu görmüş oldum. Ben de daha önce hiçbir yerde rastlamadım böyle bir bilgiye. Hatta distrübütörlerle yaptığım görüşmede onlar da ilk defa duyduklarını söylediler. Ancak vardığım sonuç bu. Farklı bir durumla karşılaşan veya çözüm bulan olursa lütfen paylaşsın. WDT kullanımının bu durumda çözüm olmasını beklemek pek doğru olmayacaktır. Çünkü ben döngüsel bir algoritma değil ExtInt modülünü kullanarak yazdım. Kısacası algoritmanız değil sensörünüz kilitleniyor. WDT işlemcinizi resetler ancak sensörün beslemesini kapatıp açmadan ya da bir şekilde resetlemeden diyelim problemi aşmanız şimdilik mümkün görünmüyor.

exjra

#16
Alıntı yapılan: burç tankal - 13 Haziran 2015, 22:36:24
İki gün önce ben de 4 yön mesafe tayini için sr04 sensörü kullanarak bir devre yaptım. ara sıra takıldığını gördüğümde bakmadığım yer kalmadı. sonra farkettim ki çıkan ses geri gelmeyince while döngüsünde sonsuz beklemeye giriyor. Aklıma gelen ilk çözüm watch dog timer kullanmak oldu. Hiç başka timer'lar ile uğraşmaya gerek yok. bekçi köpeğini 1/128 gibi bir ön bölücü ile kullanırsan yarım saniyede bir pici resetler. while komutunun hemen altında köpeği tekmelersin,   _asm clrwdt _endasm her bir başa dönüşte tekmelediğin için reset atamaz. ama program takıldığın anda reset gerçekleşir. En kolay ve kısa yolu budur bence.

Haklısınız basit çözüm budur ancak her algoritma baştan başlatılmaya müsait değildir. Bu nedenle daha güvenli bir çözüm bulunmalıdır.

exjra

Alıntı yapılan: Baran Ekrem - 16 Haziran 2015, 20:47:34
Soru : 2 tane bu sensörden olsa birini normal birini dikey koysak.Bunları motor üzerine sabitleyip ikisinide belirli hızda döndürsek(aynı hızda) 3 boyutlu sonar yapabilir miyiz. ? :D

mesaj birleştirme:: 17 Haziran 2015, 20:48:15

Tabi matematiksel işlemler ile 3 boyutlu bir şekil tespit etmeye yarar mı bu modüller ?

Dediğiniz sistemi yapabilirsiniz ancak sensörün tepki süresinden dolayı çok yavaş çalışacaktır. Ayrıca yanlış hatırlamıyorsam 15 derece gibi bir görüş açısına sahip bu sensörler ile ölçüm aldığınız objenin uzaklığıyla ters orantlı bir doğruluğa sahip olursunuz ki bu objenin çıkardığınız yüzey haritasında büyük hatalar olması anlamına gelir. Iki servo ve hatta obje etrafında dönen bir 3. ekseni de hesaba katarsak hem maliyetli hem çok hatalı bu sistem yerine kinect veya primesense gibi bir sensör kullanmak çok daha güvenilir ve gerçekçi olacaktır :)