Picproje Elektronik Sitesi

ENDÜSTRiYEL OTOMASYON => Robotik Sistem Tasarımı => Konuyu başlatan: makinahmet - 21 Ocak 2013, 13:44:25

Başlık: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: makinahmet - 21 Ocak 2013, 13:44:25
   Herkese merhaba.Herkese kolay gelsin.
   Okulda ikinci dönem projem için bi çizgi izleyen tasarlamam gerekiyor.Bildiğimiz gibi çizgi izleyenler sensörlerden gelen veriye göre hareketini gerçekleştiriyor. Genel olarak bu robotların basit olanlarında sensörlerden gelen veri bi trigger vasıtası ile 0 yada 5 volta çevrilerek pice aktarılıyor ve daha sonra hangi sensörden bilgi geliyorsa ona göre motor sürücüsü motoru sürüyor.

   Ancak pic ile sensörler arasında trigger kullanılması robotun dönüşlerde tepkilerini mekanikleştiriyor.. Bunun yerine sensörlerden gelen verinin analog olarak pice aktarılması (burada pic 16f877 olabilir) ve picte dijitale çevrildikten sonra donanımsal pwm vasıtası ile ve motor sürücüsüne gönderilen sinyal ile motorun sürülmesi, robotun dönüşlerini yaparken tepkilerin daha yumuşak ve çabuk olmasını sağlayabiliyor. Bu olay, pwm vasıtası ile motor dönüş oranlarının değiştirilmesi ile gerçekleştiriliyor.Ancak yine sorun olan şu ki, motorlara dönüş için belli oran verildiğinde robotun döneceği virajların yarıçapları aynı olmadığı için robotun ön tarafı yine yalpalama yaparak çizgiyi buluyor ve ona göre dönüş yapıyor.
 
   Robotun ön tarafı ne kadar az yalpalama yaparsa o kadar iyi olur. Dolayısı ile motor oranlarının -virajların yarıçapı ne kadar farklı olursa olsun- öyle bi verimesi lazım ki bu yalpalama olayı azalsın.

   Sensörlerden (ör:cny70'den) gelen analog verileri işlerken,sensörlerin yola göre konumları ve birbirlerine göre durumları önem arz etmekte. Öncelikle benim düşündüğüm yaklaşım biçimindeki sensör konumlarını aşağıdaki resimden bakabilirsiniz.

http://e1301.hizliresim.com/15/p/j5n3p.png (http://e1301.hizliresim.com/15/p/j5n3p.png)

   Görüldüğü üzere yol üzerinde üç sensör bulunmakta. Birinci ve üçüncü sensörler beyaza bakarken, ikinci sensör ise siyahta. Bunlar sensörlerin konumları. Düşüncemin temelini 2. sensörün sürekli siyahta kalması gerektiği oluşturuyor.Bunu 1. ve 3. sensörlerin durumuna bakarak gerçekleştirmek lazım.Sensörler sonuçta birer ölçüm aleti sayılabilir ve her ölçüm aletinin bi hassalığı vardır. Sensörlerin gönderdiği verileri hassaslık durumuna göre pic'te çeşitli matematiksel işlemlerle işleyip motor sürücüsüne göndermek hassas ve tepki süresi hızlı bir dünüş gerçekleştirebilir.

   Düşündüğüm yaklaşım biçimindeki matematiksel hesaplamalar özet olarak şöyle.
Varsayımlar;
Sensör beyazda iken sıfır volt,siyahta iken 5v vermekte.
Sensör voltaj aralığı = 0V' dan 5V'a.
Sensör hassaslığı =%1 (yani her 0,05V hassaslık ile renk değişimi belirleniyor.)
X1 = birinci sensör (robota üstten bakıldığında solda ve beyazın üstünde)
X2 = ikinci sensör (robota üstten bakıldığında ortada ve siyahın üzerinde)
X3 = üçüncü sensör (robota üstten bakıldığında sağda ve beyazın üzerinde) olmak üzere;

Robotun ileri gitmesi için tek bi durum mevcuttur;
X1 = 0v,   X2=5v,   X3=0v

Robotun sağa dönüşünde sensör durumları şöyledir;
Durum1) X1 = 0v,   X2=5v,        X3=0v        (düz yolda)
Durum2) X1 = 0v,   X2=4.95v,   X3=0.05v   (viraja girmeye başladı)
Durum3) X1 = 0v,   X2=4.80v,   X3=0.1v     (viraja girmeye devam)
Durum4) X1 = 0v,   X2=4.75,     X3=0.15v
.
.
.
.
Durum100) X1 = 0v,   X2=0v,   X3=5v   (1 ve 2. sensörler beyazda üçüncü sensör tamamen siyahta.)

Dönüşteki sensör voltaj durumalarına bakıldığında şöyledir;
x1 = Sürekli sabit.           (0v)
x2 = Sürekli azalan.         (5v'dan 0v'a)
x3 = Sürekli artan.           (0v'dan 5v'a)
x1 + x2 = sürekli azalan  (5v'dan 0v'a)
x2 + x3 = sürekli sabit     (5v)
x1 + x3 = sürekli artan    (0v'dan 5v'a)
x1+x2+x3 = sürekli sabit (5v)

Gelelim robotun virajın sagamı yoksa solamı olduğunu anlamasına.Eğerki 3. sensör voltaj değerinde artış varsa viraj sağadır.Tam tersine 1. sensör voltaj değerinde artış varsa viraj soladır.

Bizim istediğimiz olay ise sürekli olarak x2 = 5v olması.
Sağa dönüş için konuşalım tekrar.
Azalan x2 değerini, üçüncü sensördeki değişim oranını ölçerek, aynı oranda sağ motor devrini düşürüp,yada sol motor devrini arttırıp tekrar 5V seviyesine çekmemiz gerekiyor.peki bu oran nedir?

Ör:x3 sensöründe ölçülen değer 2.5 volt olsun.
Yukardaki bağıntılarda x1 = 0 ve x2 = 2.5 volt olur.Değişim oranı %50 dir. Sağ motor devri %50 düşürülmeli yada sol motor devri %50 artmalı.
Ör:x3 sensöründe ölçülen değer 1V olsun.
Yukardaki bağıntılarda x1 = 0 ve x2 = 4 volt olur.Değişim oranı %20 dir. Sağ motor devri %20 düşürülmeli yada sol motor devri %20 artmalı.

Dediğim gibi bu bi yaklaşım biçimidir.Yaklaşımlar doğru değere yaklaşmayı sağlayan düşüncelerdir sadece. Bu tip biyaklaşım üzerine çalışıldığında,daha ayrıntılara girersek sizce bu yaklaşım doğruya ne kadar yaklaşır?

Biraz uzun bi yazı oldu başınızı ağrıttım kusura bakmayın.
Düşünceleriniz için şimdiden teşekkürler.
İyi çalışmalar.
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: cengz - 21 Ocak 2013, 15:42:42
artış veya düşüş algılama güzel bir fikir, değerleri beli bir toplamından sonra karar verdirmek daha hasas olmasını sağlayacaktır.
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: berat23 - 21 Ocak 2013, 15:55:55
bu kontrast sensörleri ile çizgi izleyen pistlerinde düşündüğünüz gbi veriler elde edemezsiniz. neticede ya sihay ya da beyaz algılar gürültü ile beraber. temelden hatanız var.
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: LukeSkywalker - 21 Ocak 2013, 16:33:22
İnterpolasyon ile belki bişeyler çıkabilir ortaya...

mesaj birleştirme:: 21 Ocak 2013, 16:34:20

Alıntı yapılan: berat23 - 21 Ocak 2013, 15:55:55
bu kontrast sensörleri ile çizgi izleyen pistlerinde düşündüğünüz gbi veriler elde edemezsiniz. neticede ya sihay ya da beyaz algılar gürültü ile beraber. temelden hatanız var.
Yanlış düşünüyorsunuz. Bu veriler sensörlerden geliyor...
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: makinahmet - 21 Ocak 2013, 16:39:04
@Sn. Berat23 kontrast sensörlerinden en çok bilinen cny70 olsun bu mesela. datasheet'e baktığımızda kodak test kartı ile ölçümler yapıldığını ve grafiklerle verildiğini görüyoruz. Datasheet'te "Figure 9. Collector Current vs. Distance" grafiğine baktığımızda akımın, yaklaşımda sensörlerin bize verdiği bilgiye benzer olduğunu görmekteyiz.Test kağıdının kenarına olan "s" mesafesi bize bu bilginin alınabileceğini söylemekte. Aslında demek istediğinizi bende tam olarak anlamamış olabilirim. Daha açıklayıcı anlatabilirseniz sevinirim. Kullanılabilecek sensör tipi ne olabilir mesela?

@Sn.Cengz. Bahsettiğiniz toplamlar ne gibi toplamlar olabilir örnek verebilir misiniz?

@sn.lukeskywalker istatistiki değerden çok sayısal analiz diyorsunuz yani :)

İyi çalışmalar.
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: LukeSkywalker - 21 Ocak 2013, 16:54:22
Aynen öyle...
Hele bir de bunun kübik olanını kullanırsanız o zaman daha atraksiyonlu olur.
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: makinahmet - 21 Ocak 2013, 17:27:22
@sayın lukeskywalker interpolasyon yönteminden lineer olanı biliyorum (tabi şimdilik). En kısa zamanda kitaplardan kübik interpolasyona bakıp sisteme nasıl uyarlayabilirim ona bakacağım.Çok teşekkürler.

Yarından itibaren robotu oluşturmaya başlayacağım.İlk ölçeceğim şey sensörler olacak tabi.Uzun ve zahmetli bir süreç olacak gibi duruyor. Ama çok şey öğreneceğim kanaatindeyim. Gelişmeleri ve neler yaptığımı yavaş yavaş buraya ekleyeceğim.Bilgi paylaşıldıkça çoğalır.

İyi çalışmalar.
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: superconductor - 21 Ocak 2013, 19:14:51
Merhabalar
Çizgi izleyen robot ile bende uğraşmaktayım.Yarışma şartlarıdan dolayı sensörleri analog okumak yerine digital okuyorum.İllaki bir flash patlıyor yada pistin bir tarafı daha aydınlık oluyor, güneş vuruyor, spot yanıyor vs.Dış etkiler sensörleri baya sıkıntıya sokabiliyor.Işık geçirmez bir perdeleme yapılsa bile pistin bazı bölgeleri tozdan dolayı daha az yansıtabiliyor.

Tavsiyem sensör sayısını arttırmanız.Sensörleri yine analog okuyarak belli eşikten yukarı ise bir hata değeri verdirmeniz.Hataları içten dışa doğru arttırarak verebilirsiniz.Örneğin [5 3 1 -1 -3 -5] şeklinde.
Daha sonra oluşan hataların toplamını okuma yapan sensör sayısına böldüğünüzde çizginin yerini bulabilirsiniz.
Bulduğunuz hatayı PID yada PD kontrolle motor sürmek için kullanırsınız.
Sensörleri kalibre etmek için eşik değerini değiştirmek gerekir.
Eşik değerini bulmak için sensörden gelen en yüksek veriden en düşüğü çıkartıp sonucu ikiye bölün, bölüme en düşük değeri ekleyin.

Yarışma derdiniz yoksa analog çalışmayı iki sensörlede yapabilirsiniz.Sensörleri,çizgiyi ikiside yarım görecek şekilde koyarsınız birini - ile çarpar sonra iki sonucu toplarsınız.Bu sonucu pid denkleminde kullanabilirsiniz.İki sensörle çalışırken sensörlerin ikiside çizgi dışına yaklaşırsa hata azalacağından hızı düşürmeniz gerekir.



Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: LukeSkywalker - 21 Ocak 2013, 19:23:17
http://www.micromouseonline.com/2008/11/11/line-follower-sensor-experiments/#axzz2IdHYhm3r (http://www.micromouseonline.com/2008/11/11/line-follower-sensor-experiments/#axzz2IdHYhm3r)
http://www.societyofrobots.com/member_tutorials/book/export/html/350 (http://www.societyofrobots.com/member_tutorials/book/export/html/350)
http://www.micromouseonline.com/2008/11/16/line-follower-sensors-setup/#axzz2IdHYhm3r (http://www.micromouseonline.com/2008/11/16/line-follower-sensors-setup/#axzz2IdHYhm3r)

Bu da yukarıdaki arkadaşın bahsettiği dijital okuma ile yapılan PID. (Pek taraftar değilim.)
http://www.chibots.org/?q=node/339 (http://www.chibots.org/?q=node/339)
http://www.ermicro.com/blog/?p=1163 (http://www.ermicro.com/blog/?p=1163)

Bana sorarsanız interpolasyon + PID ile daha iyi sonuçlar elde edilir.
Sadece kübik interpolasyon kullanılarak da mükemmele yakın sonuç elde etmek mümkn.

Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: z - 21 Ocak 2013, 21:07:20
Bu yarışmalarda robot bir test turu atıp yolu hafızaya alsa sonra hafızadaki yola gore giderken ara ara da yola senkronlasa olmuyormu?

mesaj birleştirme:: 21 Ocak 2013, 21:56:55

Eğer bu yöntem kabul edilirse çözüm bezier eğrilerinde. İlk turda zaman kaybedilse bile diğer turlarda jet gibi gidilebilir.
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: makinahmet - 21 Ocak 2013, 21:31:44
Cny70 sensörü var şu an elimde.Datasheet'te yazdığına göre bu alet yukarı-aşağı ve sağa-sola hareketleri alğılayabilmekte. Beyaz kağıt üzerine siyah zeminde sensörlerin birini denedim.Breadboard üzerine kurdum.siyah beyaz kağıdı sensörü tam kapatacak şekilde (sensör ile zemin arasında yükseklik farkı neredeyse yok diyelim) üzerinde gezdirdim. Siyah zemine girince 0.01 volt hassasiyeti okuyabildim. 3.95 ten 3.94'e.Denemeyi elle yaptığım için hassasiyet okumak zor oluyor. Sonuç olarak el ile binde bir hassasiyet okuduysam makina ile yapılan deneyde hassaslık daha fazla olacaktır. Demekki gerekli virajları,gerekli yazılım yazıldığında gerçekten kıvrak bi şekilde alabiliriz. 

@superconductor PID konusuna değinmişsiniz. Bu konuyu daha önce duymuştum.Şimdilik çok bilgim yok. Bizim üniversitede son sınıfta otomatik kontrol dersinde veriliyor diye biliyorum(gelecek yıl alacağım inşallah :) ). Kalibre olayında da haklısınız. Sonuç olarak zeminden belli bir yüksekliği olacağı için başlangıç değeri olarak 0v değilde daha yüksek bi değer verecektir. Maksimum olarakta 5v vermeyecektir.Bu konuları araştıracağım. Yarışmalarda başarılar dilerim. Teşekkürler. 

@LukeSkywalker verdiğiniz linklerde gerçekten faydalı bilgiler mevcut. Gerekli robotu kaba taslak, en hassas biçimde, en kısa zamanda oluşturmaya çalışacağım ve çoğu matematiksel sistemi bu yapı üzerinde deneyeceğim. Teşekkürler.

@sayın Z yarışmalara katılmadım hiç formatlarını çok bilmiyorum. Hafızaya alma işlemi ise ilgi çekici bi konu :)
İyi çalışmalar.
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: berat23 - 22 Ocak 2013, 00:02:38
ben anlatamadım herhalde. pist,siyah ve beyazdan ibaretse isterseniz analog okuyun ister dijital,her sensör size aynı sizin tabirle mekanik cevabı verir zira ölçüm alınacak şey ya siyah ya da beyaz. sensörden gelen voltajın değişimi her halükarda yine sizin tabirle mekanik yani sert geçişli bir sinyal olacaktır,o ölçüm aldığınızda gördüğünüz .01 v ise gürültüdür. eğer pist ortası beyaz,kenarı tamamen siyah ve bu ikisi arasında bir yumuşak geçişten ibaret olsaydı yansımaya bağlı merkezden sapma tespit edilebilirdi. artık daha açık nasıl anlatabilrim bilemiyorum.

bu digital pid yapıyoruz diyenlerde aslında pid yapıyor denilemez,8 sensörün olsa ara durumlarla birlikte 6+8=14 durumun var ki bu çok kaba bir veri.çizginin konumunu taayıcılardaki gibi line sensor kullanarak diyelim 256 seviyede ölçersen pid anlamlı olur. yoksa iyi ayarlanmış bir aç-kapa sistemde aynı sonucu verir(diyelim 7 sensör,merkezden uzakta algıladıkça daha çok dönme mantığı).

yani analog demek sadace analog veri alman değil,fiziksel olarak öyle olması demek.yoksa elinde 3 seviyeli,8 seviyeli veriler varsa eğri uydurmalar şunlar bunlar çok anlamlı değil.

ayrıca cn70 nasıl hareket algılıyormuş?
http://www.vishay.com/docs/83751/cny70.pdf (http://www.vishay.com/docs/83751/cny70.pdf)
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: erdo_celik - 22 Ocak 2013, 01:41:10
Arkadaşlar bende çizgi izleyen ile uğraşıyorum 8 sensörüm var (pololu QTR8A)bu sensörleri analog okumam lazım okumada problem yok ama kalibrasyon yapmam gerek çünkü beyazda 10 bit analog ölçümde 36 değeri siyahta 870 değerini alıyorum bu sensörün kalibrasyonu nasıl yapılıyor.yarışmalardaki gördüğüm robotlar yarışa başlamadan önce çizgi üzerinde sağa sola okuma yaptırılıyor.Burada kalibrasyonmu yapılıyor?
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: LukeSkywalker - 22 Ocak 2013, 09:59:17
Alıntı yapılan: berat23 - 22 Ocak 2013, 00:02:38
ben anlatamadım herhalde. pist,siyah ve beyazdan ibaretse isterseniz analog okuyun ister dijital,her sensör size aynı sizin tabirle mekanik cevabı verir zira ölçüm alınacak şey ya siyah ya da beyaz. sensörden gelen voltajın değişimi her halükarda yine sizin tabirle mekanik yani sert geçişli bir sinyal olacaktır,o ölçüm aldığınızda gördüğünüz .01 v ise gürültüdür. eğer pist ortası beyaz,kenarı tamamen siyah ve bu ikisi arasında bir yumuşak geçişten ibaret olsaydı yansımaya bağlı merkezden sapma tespit edilebilirdi. artık daha açık nasıl anlatabilrim bilemiyorum.

bu digital pid yapıyoruz diyenlerde aslında pid yapıyor denilemez,8 sensörün olsa ara durumlarla birlikte 6+8=14 durumun var ki bu çok kaba bir veri.çizginin konumunu taayıcılardaki gibi line sensor kullanarak diyelim 256 seviyede ölçersen pid anlamlı olur. yoksa iyi ayarlanmış bir aç-kapa sistemde aynı sonucu verir(diyelim 7 sensör,merkezden uzakta algıladıkça daha çok dönme mantığı).

yani analog demek sadace analog veri alman değil,fiziksel olarak öyle olması demek.yoksa elinde 3 seviyeli,8 seviyeli veriler varsa eğri uydurmalar şunlar bunlar çok anlamlı değil.

ayrıca cn70 nasıl hareket algılıyormuş?
http://www.vishay.com/docs/83751/cny70.pdf (http://www.vishay.com/docs/83751/cny70.pdf)
Hiç uğraştınız mı çizgi izleyenle? Analog okuduğunuz zaman verilerin nasıl geldiğini çok rahat görebilirsiniz. Sensör beyaza yaklaştıkça üzerine düşen ışık miktarı artacağından üzerindeki voltaj azalır. Beyaza yaklaştıkça yerden yansıyan ışık miktarı artar. Deneme yapmadan bu kadar sert mesajlar  vermemeliyiz bence..

mesaj birleştirme:: 22 Ocak 2013, 10:01:46

Alıntı yapılan: z - 21 Ocak 2013, 21:07:20
Bu yarışmalarda robot bir test turu atıp yolu hafızaya alsa sonra hafızadaki yola gore giderken ara ara da yola senkronlasa olmuyormu?

mesaj birleştirme:: 21 Ocak 2013, 21:56:55

Eğer bu yöntem kabul edilirse çözüm bezier eğrilerinde. İlk turda zaman kaybedilse bile diğer turlarda jet gibi gidilebilir.
İki veya daha fazla tur atılan yarışmalarda bu dediğiniz encoder ile yapılıyor şu anda ecnebiler tarafından. Bizim yarışmalarda genelde tek tur atıldığı için büyük risk var hafıza konusunda.
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: makinahmet - 22 Ocak 2013, 11:03:35
  Herkese tekrar merhaba.Kolay gelsin.
  @sayın berat23 ne demek istediğinizi şimdi daha iyi anlamış durumdayım.Teşekkürler.Hareket derken yanlış kelime kullandım orda. Şöylesi daha doğru olurdu. Belli mesafe arasında önünde (0-5 mm) cisim varsa, uzaklığına ve renk değişimine göre değer veriyor. Sizin verdiğiniz datasheet'te benim dediğim grafik "Fig. 11 - Relative Collector Current vs. Displacement" grafiği.Zeminin siyah yada beyaz olması durumunda geçişlerin ani olması durumunda da haklısınız.Ancak şu ayrıntıyı göz ardı ediyorsunuz bence;

  Verdiğiniz datasheet'te 5. sayfada "PACKAGE DIMENSIONS in millimeters" başlığı altındaki Led ile transistör arası mesafenin 2.8mm olduğunu görmekteyiz.Dolayısı ile led zemine ışık yolladığı zaman, eğerki siyah çizgi ile beyaz çizginin tam geçişi bu aralığa denk gelirse,ledimiz hem siyah zemine hemde beyaz zemine ışık yollamış olacak.Mesafe arasında kalan siyah zemin ve beyaz zeminin birbirine göre alan oranlarıda dediğiniz gürültüyü oluşturacak. Dolayısı ile ara voltaj değeri bu alanların oranlarına göre oluşacak. Tabi analog okuyan başka sensörlerde mevcuttur.İlla cny olacak diye bir kaide mevcut değil :) Araştırıldığı takdirde bulunabilir.

  Bunun deneylerini ben yapacağım.Yapanlarda var." Lectura Analógica de Sensores CNY70 { turmandreams.blogspot.com } (http://www.youtube.com/watch?v=O_4jPKxfAeg#ws) " Umarım haklısınızdır çünkü devrede trigger kullanmak işime gelir hem yorucu hesaplamalardan da kurtulmuş olurum :)


@erdo çelik sorunuzun cevabını  sayın superconductor yukarda vermiş. Bilgilerden yola çıkarak araştırma yaparsanız hesaplayabilirsiniz.

Bu arada youtube'da japonların yaptığı çizgi izleyenleri izledim. helal olsun adamlara çalışıyorlar."http://www.youtube.com/watch?v=blRPGKn5Cak"Bu projenin bana çok şey öğreteceğini şimdiden gördüm. Bu konuda bana yardımcı olan ve olacak bütün ustalara en derin saygılarımı iletirim.Bilgi paylaşıldıkça çoğalır.
İyi çalışmalar
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: superconductor - 22 Ocak 2013, 15:46:39
Alıntı Yapbu digital pid yapıyoruz diyenlerde aslında pid yapıyor denilemez,8 sensörün olsa ara durumlarla birlikte 6+8=14 durumun var ki bu çok kaba bir veri.çizginin konumunu taayıcılardaki gibi line sensor kullanarak diyelim 256 seviyede ölçersen pid anlamlı olur. yoksa iyi ayarlanmış bir aç-kapa sistemde aynı sonucu verir(diyelim 7 sensör,merkezden uzakta algıladıkça daha çok dönme mantığı).

Neden pid olmasınki? Ortamdan az örnek alıyorum diye pid değil denilemez. Aldığınız veri çok köşeli olur ama çizgi izleyene yetiyor. Türev çıkışının anlamlı olabilmesi için pid fonksiyonunu makul seviyede yavaş güncellemek gerekiyor zira çok hızlı güncellerseniz atıyorum 400 taramada bir hata değişimi yakalıyor, oda motorlara etki edene kadar yeniden güncellenip sıfırlanıyor. Ben 10ms de bir pid fonksiyonu çağırıyorum mesela.
Robota katsayıları kablosuz olarak verdiğimden etkilerini gerçek zamanlı görebiliyorum. Türevi kıstığımda salınım başlıyor,dahada kısarsam çizgiden çıkacak kadar kontrolsüzleşiyor. Aynı şekilde integrali kapatırsam bu sefer kalıcı durum hatası kendini gösteriyor ve hız kaybediyorum.

Analog seviye okuma ile yapılsa çok daha yumuşak bir kontrolünüz olur doğrudur, evde denemişliğim var çok güzel sonuçlar alınıyor ama yarışmada denemedim. Pololunun 3pi robotu sensörlerden aldığı veriyi 5-6 kademeye ayırmış o şekildede bir çalışma olabilir.

İyi çalışmalar.
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: LukeSkywalker - 22 Ocak 2013, 15:59:11
Pololu 3pi'de kademesiz analog okuma yapıyor sensörlerden.
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: superconductor - 22 Ocak 2013, 16:13:49
Alıntı YapPololu 3pi'de kademesiz analog okuma yapıyor sensörlerden.
Doğrudur modifiyelidir belki gördüğüm proje.Asfalt gibi çıkıntılı bir yüzeyde gidebiliyordu. 
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: LukeSkywalker - 22 Ocak 2013, 16:31:32
Merak ettim link verir misiniz?
Saygilar.
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: superconductor - 22 Ocak 2013, 17:04:16
youtube da izlemiştim tekrar rastlarsam buraya eklerim mbed vardı üzerinde.
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: berat23 - 22 Ocak 2013, 20:01:02
pid olmaz derken az örnek almayı kastetmedim,alınan verinin hassasiyetini kastettim. ayrıca olmaz diye birşey yok,sağlıksız olmaz diye birşey var. yoksa istersen yapay sinir ağı kur ona öğret hareketi. uğraştığına değer mi konu o.

@makinahmet

siyah beyaz geçişlerinde gri değerler görmek olası ama ne kadar anlamlı olur o tartışılır.
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: makinahmet - 22 Ocak 2013, 21:02:07
  Merhabalar.
  Bugün sensör ölçümlerine başladım. Geçişlerde neler olduğunu gözlemeye çalıştım.Voltaj değerinde neler oluyor? Algılayıcı siyah ve beyazın ortasına yakın bir yere geldiğinde anlık hareketi durdurduğumuzda voltaj da sabit kalmakta. Aşağıdaki resim ölçümlerden birinden.Şimdilik laboratuar ortamına geçiş yapmadığım için evde denemeler yapmaktayım. Evdeki ölçüm aleti ucuz kalite ne yazıkki.(Öğrenciyim osiloskopum yok :) )Resme bakıldığında algılayıcı hemen hemen siyah ile beyazın ortasında. Ölçülen değer 2,34 bazende 2,35 oluyor. Fotoğrafı flashsız çektim.

http://f1301.hizliresim.com/15/q/j7gq7.jpg (http://f1301.hizliresim.com/15/q/j7gq7.jpg)
Sensörü sağa sola hareket ettirip siyah beyaz çizgilerde gidip gelince değerlerdeki değişmeler aynı grafikteki gibi non-lineer gerçekleşiyor.Her renk değişimine yaklaştıkça değerde artıyor.

  Bu noktada akla gelen soru şu: Geçişler çizgi izleyendeki gibi, çok hızlı bir şekilde olduğu zaman, bu değerler sensör tarafından algılanabilir mi? Yada Sn.berat23 ün de dediği gibi "siyah beyaz geçişlerinde gri değerler görmek olası ama ne kadar anlamlı olur o tartışılır." Sonuçolarak bunun cevabını yapılacak olan robot üzerinde deneyerek görücez gibi. 
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: z - 22 Ocak 2013, 21:26:55
PID Çizgi izleyenin bu linki daha önce de verilmişti.

(http://elm-chan.org/works/ltc/ltc01.jpeg)

http://elm-chan.org/works/ltc/report.html (http://elm-chan.org/works/ltc/report.html)

Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: LukeSkywalker - 22 Ocak 2013, 22:37:23
Cny yerine qrd serisi sensorleri oneririm.

mesaj birleştirme:: 22 Ocak 2013, 22:47:50

Ayrica sensorlerin renk gecisine olan uzakligina gore urettigi voltaj degerleri interpolasyona tabi tutuldugunda o kadar anlamli oluyor ki....
Bunlari defalarca ve farkli yarismalarda dereceler almis olan birisi olarak belirtiyorum...
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: makinahmet - 31 Ocak 2013, 03:20:11
Herkese tekrar merhabalar. Bütünlemeler derken bizim projeye ara verdik biraz :)
En azından laboratuara geçtim artık. Çalışmalar biraz daha hızlanmış olacak.
Bi kaç arkadaşla beraber ufak bir çalışma yaptık. Mekanik kısım için bir ön çalışma oldu.
(https://lh6.googleusercontent.com/-kEPE4MqknWQ/UQnD6pjs7JI/AAAAAAAAAOs/WZIts61J0Tg/s651/1359570556612.jpg)

Ara ara çalışmalardan fotoğraflar yükleyeceğim :)
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: erhanmete - 31 Ocak 2013, 12:35:22
bence motoru kablo bağı ile tutturursanız başta yanılırsınız. ayrıca tekerlerde mutlaka encoder olmalı.
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: ibrsel - 31 Ocak 2013, 19:13:53
Alıntı Yapbence motoru kablo bağı ile tutturursanız başta yanılırsınız. ayrıca tekerlerde mutlaka encoder olmalı.

Bende 3 yıldır MEB in düzenlemiş olduğu robot yarışmalarına katılıyorum, çizgi izleyen ve Sumo robot katagorisinde..Hatta geçen yıl sumo robotta ilk 10 a girebilme başarısını gösterdik..Eldeki imkanlar dahilinde; Yazılım, kasa ve montaj dahil herşeyi ile kendimiz yapmaya çalışıyoruz.(hazır motor sürücü, sensör kartı, kasa ürünleri kullanmıyoruz) . Dolayısı ile çizgi izleyenlerde @makinahmet arkadaşımızın yaptığı gibi kablo bağı ile motoru tutturup hızlı yapıştırıcı ile iyice sabitliyoruz.Şimdilik daha iyi bir çözüm bulamadım. Eğer daha iyi tavsiyeleriniz var ise görüşlerinizi bende sabırsızlıkla bekliyorum..Bu arada 3 yıldır katılmamıza rağmen bir türlü çizgi izleyende ilk 10 lara giremedik. Sebebini de PID yi hala çözememiş olmamızda buluyorum..Çünkü gerçekten çok iyi robot yapan arkadaşlar ile yarışıyoruz..

Herkese iyi çalışmalar ...
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: makinahmet - 31 Ocak 2013, 19:53:16
Alıntı yapılan: erhanmete - 31 Ocak 2013, 12:35:22
bence motoru kablo bağı ile tutturursanız başta yanılırsınız. ayrıca tekerlerde mutlaka encoder olmalı.
Kablo değilde,resimde tam görünmüyor şimdi farkettim.Naylon kelepçeler oluyor ya hocam.Tahtakalede satılanlardan.Onlarla bağlayalım dedik.Kelepçeler motoru tam sıkı sıkıya tutmuyor. Patteks kullanalım dedik ama sonra ilk etapta kullanmamaya karar verdik. Yapıştırıcı ve kelepçe dışında aklıma metal kelepçeler geliyor. Hani sulama hortumlarını musluğa geçirip sonra kelepçe ile vidalıyorlar ya ondan işte.

Alıntı yapılan: ibrsel - 31 Ocak 2013, 19:13:53
Bende 3 yıldır MEB in düzenlemiş olduğu robot yarışmalarına katılıyorum, çizgi izleyen ve Sumo robot katagorisinde..Hatta geçen yıl sumo robotta ilk 10 a girebilme başarısını gösterdik..Eldeki imkanlar dahilinde; Yazılım, kasa ve montaj dahil herşeyi ile kendimiz yapmaya çalışıyoruz.(hazır motor sürücü, sensör kartı, kasa ürünleri kullanmıyoruz) . Dolayısı ile çizgi izleyenlerde @makinahmet arkadaşımızın yaptığı gibi kablo bağı ile motoru tutturup hızlı yapıştırıcı ile iyice sabitliyoruz.Şimdilik daha iyi bir çözüm bulamadım. Eğer daha iyi tavsiyeleriniz var ise görüşlerinizi bende sabırsızlıkla bekliyorum..Bu arada 3 yıldır katılmamıza rağmen bir türlü çizgi izleyende ilk 10 lara giremedik. Sebebini de PID yi hala çözememiş olmamızda buluyorum..Çünkü gerçekten çok iyi robot yapan arkadaşlar ile yarışıyoruz..

Herkese iyi çalışmalar ...
Ben proje olarak yapıyorum. Yarışma amacım yok ama başka projelerimden de gördüğüm kadarı ile (örneğin türbin kanadı yapmaya çalışmıştım) kendi yaptığımız düzenekler piyasadan gelenlar kadar verimli olmayabiliyor.Makina çıktıları çok daha hassas toleranslı oluyor.Tabi bu söyldiklerim kaliteli malzeme için geçerli :)
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: LukeSkywalker - 31 Ocak 2013, 19:58:23
Ben defalarca derece aldim, son katildigimiz yarisma olan meb 6. Rob. Yarismasinda cizgi izleyen kategorisinde 1. Ve 3.oldu robotlarim. Kablo bagi kullandim, encoder yok.
Tamamen el yapimi cnc kesim vs yok. Robotunuz bitince yarismaya sokun. Size cok sey katacak o yarisma.
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: erhanmete - 31 Ocak 2013, 20:00:02
en basit olarak aliminyum levhadan L büktürerek motor buna vidalanabilir.
L in diğer yüzüde şaseye. böylece ekseni daha rahat ayarlayabilirsiniz.
ayrıca motorlar ne kadar birbirinin aynısı da olsa asla aynı hızda
dönmezler bunu engellemek için ben olsam iki motora da encoder koyardım
ayrıca pid eencoderlerden de   feedback alırdı. hem düz gittiğimi bilirdim hem hızımı.
iki motor olunca düz gidebilmesini nasıl sağlıyorsunuz ? (encodersiz)
muhakkak bir tarafa çekecektir. ilk önce düz gidebilsin de sonra bir şekilde döner.

ayrıca daha evvel hiç çizgi izleyen yapmadım bunlar sadece öneri. derece almış olmak yöntemin doğru olduğunu göstermez.   
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: LukeSkywalker - 31 Ocak 2013, 20:01:14
Ne gosterir peki yontemin dogrulugunu? Sensoru ile kus mu tutacak?

mesaj birleştirme:: 31 Ocak 2013, 20:02:53


Ne gosterir peki yontemin dogrulugunu? Sensoru ile kus mu tutacak?
Bir robot yapin yarismaya katilin bakalim, ne yontemler goreceksiniz. Ne yazikki bilgi sahibi degilsiniz ama fikir sahibisiniz.
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: erhanmete - 31 Ocak 2013, 20:11:46
kuş tutsun istiyorsan onuda yaptırırız da.
ama bu cevap niye yazdıklarımın neresine bozuldun.

yazdık işte öneri diye,

nasıl istersen öyle yap sende.
ama gençler siz benim dediğimi yapın. mekaniğiniz sağlam olsun.
öyle cırtla falan olmaz bu işler. japon videolarına bakın bakalım hiç cırt mırt var mı ?

Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: makinahmet - 31 Ocak 2013, 20:14:02
Alıntı yapılan: erhanmete - 31 Ocak 2013, 20:00:02
en basit olarak aliminyum levhadan L büktürerek motor buna vidalanabilir.
L in diğer yüzüde şaseye. böylece ekseni daha rahat ayarlayabilirsiniz.
ayrıca motorlar ne kadar birbirinin aynısı da olsa asla aynı hızda
dönmezler bunu engellemek için ben olsam iki motora da encoder koyardım
ayrıca pid eencoderlerden de   feedback alırdı. hem düz gittiğimi bilirdim hem hızımı.
iki motor olunca düz gidebilmesini nasıl sağlıyorsunuz ? (encodersiz)
muhakkak bir tarafa çekecektir. ilk önce düz gidebilsin de sonra bir şekilde döner.

ayrıca daha evvel hiç çizgi izleyen yapmadım bunlar sadece öneri. derece almış olmak yöntemin doğru olduğunu göstermez.   
Evet metal sistem naylondan daha rijit olacaktır.L şeklinde motora bağlamak biraz zor olabilir ama u profillerin kanatlanmış şekilleri geldi aklıma.Onlar tam rijitlik sağlayabilir. Encoder konusunda haklısınız. Ancak şimdilik basit bi çizgi izleyen yapıp onun üzerinde geliştirme yapacağım çünkü daha önce hiç yapmadım. Gövdeyi değiştirip genişliği daha az bi gövde ve daha uzun olacak şekilde düşünüyorum.Düz gitme konusunda ise hafif sapmalar oluyor.

Alıntı yapılan: LukeSkywalker - 31 Ocak 2013, 19:58:23
Ben defalarca derece aldim, son katildigimiz yarisma olan meb 6. Rob. Yarismasinda cizgi izleyen kategorisinde 1. Ve 3.oldu robotlarim. Kablo bagi kullandim, encoder yok.
Tamamen el yapimi cnc kesim vs yok. Robotunuz bitince yarismaya sokun. Size cok sey katacak o yarisma.
Yarışmalara katılmayı düşünmüyorum hocam. O kadar meşgulümki kendime bile zor zaman ayırıyorum :(
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: erhanmete - 31 Ocak 2013, 20:15:20
hem bilgi hemde fikir sahibiyim merak etme.
askerlik bilmek için genaral mi olmak gerekiyor.
cahilliğine veriyor tartışmak da istemiyorum.

mesaj birleştirme:: 31 Ocak 2013, 20:17:21

bu aliminyum bükme profil falan işleri basit işler arkadaşlar bunları atlamayın bence
dediğim gibi bunlar sadece öneri encoder olmasada olur tabiki ama bir dahakini öyle yaparsınız.
sıkıntı yok. maksat eğlenmek :)
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: makinahmet - 31 Ocak 2013, 20:20:20
@Sayın lukeskywalker,  Sayın erhanmete beye sert çıkmanıza gerek yoktu.Paylaşım platformundayız sonuçta :)

@Sayın erhanmete kusura bakmayın özür dilerim bu konu hakkında.

Herkes çok değerli insanlar. Herkesin düşünceleri değerli. Heleki teknik konularda kim olduğu önemli değildir, değerlidir :)
İyi çalışmalar.
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: LukeSkywalker - 31 Ocak 2013, 20:22:33
Cahillik sizde kusura bakmayinda. Agzinizla soyledinoz robot yapmadim diye. Bu is tecrube isi. Verdiginiz ornekte cok sacma. O halde oturdugun yerden mercedes tasarimi da yap. Sonucta muhendis olmak icin once amele olmaya da gerek yok. Ama insaat muhendisligi ogrencilerine amelelik yaptiriyorlar degil mi? Veya elektronik muhendisi olmak icin lehim atmaya da gerek yok bu mantikla. O cizgi encoder ile değil ir sensor ile takip edilir. Encoderli motorlar hem pahali hem agir. 3 tane yanyana kullanilan plastik kelepce L metalden de diger aparatlardan da hem hafif hem de stabil olacaktir. Ayrica ir reflektor sensorlere ek olarak geri besleme gyro+accelerometreden alinir. Ha amacin hiz değilse istedigini koy robota, istersen 20kg yap. Ama o olmaz bu olmaz demek sacma. İnsanin sevkini kirar bu tur yaklasimlar.

mesaj birleştirme:: 31 Ocak 2013, 20:24:14

Alıntı yapılan: makinahmet - 31 Ocak 2013, 20:20:20
@Sayın lukeskywalker,  Sayın erhanmete beye sert çıkmanıza gerek yoktu.Paylaşım platformundayız sonuçta :)

@Sayın erhanmete kusura bakmayın özür dilerim bu konu hakkında.

Herkes çok değerli insanlar. Herkesin düşünceleri değerli. Heleki teknik konularda kim olduğu önemli değildir, değerlidir :)
İyi çalışmalar.
Ben sert cikmadim kimseye...mesajlari dikkatli okuyun.
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: ibrsel - 31 Ocak 2013, 20:24:25
Alıntı YapBen defalarca derece aldim, son katildigimiz yarisma olan meb 6. Rob. Yarismasinda cizgi izleyen kategorisinde 1. Ve 3.oldu robotlarim.
Tebrik ediyorum..Bende sumoda ilk 10 a girince ağırlığı çizgi izleyene vermeye başladım. İnsan hedeflerine yaklaşınca biraz işi gevşetiyor herhalde..Şimdilik çizgi izleyen üzerinde çalışıyorum..çizgi izleyen kasası olarak çift yüzlü plaket kullanmaya başladım. Devremi de bunun üzerine yerleştiriyorum.(CNY sensörler ters yüzde kalıyor tabii)..Plaketi de elimizdeki basit 3 eksenli CNC tezgahında kesiyoruz..
[IMG]http://img451.yukle.tc/images/61631.JPG[/img] (http://bit.ly/V0BZqe)
[IMG]http://img466.yukle.tc/images/45712.JPG[/img] (http://bit.ly/V0BZqe)

3 yıldır CNY sensörleri digital okutarak katıldık yarışmaya.. Motorları HPWM ile sürüyorum..Bu hali ile ilk önceleri bana gayet başarılı gibi görünüyordu.. Fakat piyasada PID ile yapılan robotlar çoğaldıkça bizimkide başarı ortalamasını düşürmeye başladı..Bende daha hızlı motorlar kullanarak hızı arttırmayı denedim..Fakat bu kez robotta istikrar bozulmaya başladı..Ek olarak CNY leri analog okutmaya başlamayı düşünüyorum..
Bu arada PID ile ilgili görüş ve bilgilerinizden bahsederseniz benim gibi PID ye yeni başlayanlar için önderlik yapmış olursunuz..

İyi çalışmalar..


Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: LukeSkywalker - 31 Ocak 2013, 20:28:53
İlk once cny70 sensorleri qrd1114 sensorler ile degistirmenizi tavsiye ediyorum. Önceki sayfalarda vardi pid ile ilgili verdigim linkler. Analog okutmaniz pid icin daha saglikli olacaktir fakat yazilim zorlasir. Robot uzerinde usb veya en azindan icsp soket barindirin ki program yuklemek deneme asamasinda kolay olsun. Tekerleklerin surtunme katsayisi cok onemli, robotun agirlik merkezi yere yakin olsun. Pili iyi konumlamissiniz.
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: makinahmet - 31 Ocak 2013, 20:31:41
Sayın ibirsel pid konusunda topicin ilk sayfasında Sayın lukeskywalkerin verdiği linkler çok işinize yarayacaktır. Bu konuda çok teşekkür ediyoruz ona :) Bu konuda önceki sayfalardada belirtildiği gibi çeşitli yöntemler kullanabilirsiniz.Daha başka yakaşım biçimlerini de siz geliştirme imkanına sahipsiniz.
Bugün ufak bi devre çalışması yaptık arkadaşlarla. Onuda birazdan yüklerim.
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: ibrsel - 31 Ocak 2013, 20:34:10
Devremiz üzerinde ICSP programlama pinleri var zaten..Bu bana denemelerim esnasında oldukça kolaylık sağlıyor. LCD nin de olması hangi CNY nin okuduğunu görmem açısından yine kolaylık sağlıyor..Motorları plaketin altından sabitleyip pilide üstten üzerine baskı yapacak şekilde bağlıyorum. Denemelerimde ince tekerleklerin daha iyi sonuç verdiğini gördüm..Bu arada PID ile ilgili diğer linklerinizi göremedim..Arama kısmından bir araştırma yapayım..
İyi çalışmalar..
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: LukeSkywalker - 31 Ocak 2013, 20:36:23
Motorlar robotun altinda degil plaketiin ustu de olmali.
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: ibrsel - 31 Ocak 2013, 20:38:19
Alıntı YapMotorlar robotun altinda değil plaketiin ustu de olmali.
Robotun altına koymamın sebebi ; Arka yüksek olunca öne doğru meyil vermesi..Böylelikle CNY ler yere daha iyi bakıyor diye düşünüyorum..
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: makinahmet - 31 Ocak 2013, 20:41:27
Alıntı yapılan: LukeSkywalker - 21 Ocak 2013, 19:23:17
http://www.micromouseonline.com/2008/11/11/line-follower-sensor-experiments/#axzz2IdHYhm3r (http://www.micromouseonline.com/2008/11/11/line-follower-sensor-experiments/#axzz2IdHYhm3r)
http://www.societyofrobots.com/member_tutorials/book/export/html/350 (http://www.societyofrobots.com/member_tutorials/book/export/html/350)
http://www.micromouseonline.com/2008/11/16/line-follower-sensors-setup/#axzz2IdHYhm3r (http://www.micromouseonline.com/2008/11/16/line-follower-sensors-setup/#axzz2IdHYhm3r)

Bu da yukarıdaki arkadaşın bahsettiği dijital okuma ile yapılan PID. (Pek taraftar değilim.)
http://www.chibots.org/?q=node/339 (http://www.chibots.org/?q=node/339)
http://www.ermicro.com/blog/?p=1163 (http://www.ermicro.com/blog/?p=1163)

Bana sorarsanız interpolasyon + PID ile daha iyi sonuçlar elde edilir.
Sadece kübik interpolasyon kullanılarak da mükemmele yakın sonuç elde etmek mümkn.

Sayın ibirsel.
İlk sayfadan bulabilirsiniz.
Bazı linkler teorik bazı linkler ise kodlarla ilgili. linklerden özellikle http://www.chibots.org/?q=node/339 (http://www.chibots.org/?q=node/339) bu konunun mantığını güzel anlatmış.
iyi çalışmalar.
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: ibrsel - 31 Ocak 2013, 20:46:01
@makinahmet , duyarlılığınız için teşekkür ediyorum..Linkleri incelemeye başladım..Tabii zayıf ingilizce ve Google Translate aracılığı ile :)

İyi çalışmalar..
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: LukeSkywalker - 31 Ocak 2013, 20:48:05
Motorlarin altta olmasi agirlik merkezini yukseltir. Virajlarda savrulursunuz.
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: erhanmete - 31 Ocak 2013, 20:51:03
Alıntı yapılan: LukeSkywalker - 31 Ocak 2013, 20:22:33
Cahillik sizde kusura bakmayinda. Agzinizla soyledinoz robot yapmadim diye. Bu is tecrube isi. Verdiginiz ornekte cok sacma. O halde oturdugun yerden mercedes tasarimi da yap. Sonucta muhendis olmak icin once amele olmaya da gerek yok. Ama insaat muhendisligi ogrencilerine amelelik yaptiriyorlar değil mi? Veya elektronik muhendisi olmak icin lehim atmaya da gerek yok bu mantikla. O cizgi encoder ile değil ir sensor ile takip edilir. Encoderli motorlar hem pahali hem agir. 3 tane yanyana kullanilan plastik kelepce L metalden de diger aparatlardan da hem hafif hem de stabil olacaktir. Ayrica ir reflektor sensorlere ek olarak geri besleme gyro+accelerometreden alinir. Ha amacin hiz değilse istedigini koy robota, istersen 20kg yap. Ama o olmaz bu olmaz demek sacma. İnsanin sevkini kirar bu tur yaklasimlar.

mesaj birleştirme:: 31 Ocak 2013, 20:24:14
Ben sert cikmadim kimseye...mesajlari dikkatli okuyun.

:)
akşam akşam iyi oldu bu
tabiki oturduğum yerden mercedes tasarımı da yapabilirim. kim karışır. belkide daha iyisini yaparım. benim mantık bu. yoksa hep konuşulduğu gibi olduğumuz yerde sayarız.
bak ne güzelde kendin söylemişssin mühendis olmak için amele olmaya gerek yok tabi.

neyse tekrar soruyorum dediğim neye bozuldun da böyle coştun, en nihayetinde klavyenin başından bağırsan da çağırsan da pek bişi değişmeyecek ben gene aynısını söyleyeceğim.
ama yapacak arkadaşlar bakacak belki de ne L si falan çak cırtı bitsin diyecekler.

bu hırsı neden yaptın hiç anlamadım.
hıı bilgisizim biraz belkide ondan anlamamışımdır :)

ayrıca ne kadar yavaş yazıyorum bi cevap yazıcam kırk tane mesaj yazmışsınız :) yerinede gitmiyecek :)





Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: ibrsel - 31 Ocak 2013, 20:59:36
Alıntı YapMotorlarin altta olmasi agirlik merkezini yukseltir. Virajlarda savrulursunuz.
Bu önerinizi değerlendireceğim.. Teşekkürler..
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: LukeSkywalker - 31 Ocak 2013, 21:02:48
Tabiki yaparsiniz tasarim ama binen olmaz. Sinirlendigim costugum yok. Size gore dogru olmayan sey dogru degil midir?   L profil kullanmak bir yontemdir cirtta bir yontemdir. Dogrulugu veya yanlisligi diye birsey yok. Kimisi de tutar japonla yapistirir. Sen yanlis yapiyorsun mu diyecegiz? Her sey vida ile tutturulsaydi yapiatiriciya gerek olmazdi degil mi? Herkesin tasarimi kendisine goredir. O yuzden size gore yanlis olan seyleri bu bastan yanlistir diyerek elestirmenizi garipsedim acikcasi. Ayrica bu tur tasarimlarin onaylandigi yer yarisma alanlaridir. 1000 robot icerisinden 1.lik aliyorsaniz dogru seyler yapmissiniz demektir. Ayrica juri ozel odulunu de biz aldikki bu da tasarima veriliyor. Bu seneki meb yarismasi İstanbulda. Gelin gorun ortami bence madem ilgilisiniz.

mesaj birleştirme:: 31 Ocak 2013, 21:04:53

Ayrica size 40 tane mesaj yazmadim. 1 tane cevap yazdim okumussunuz ki ona binayen cevap yazmissiniz.
Saygilar.
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: erhanmete - 31 Ocak 2013, 21:08:46
yok yok gelemem dostum.
o kadar çok iş varki oyuncaklarla pek uğraşacak vaktim yok :) (espri tabiki)

işte bende senin dediğin gibi yazdım ben olsam dedim daha sağlam yapardım dedim. yanlıştır falan demedim.
öneri dedim dimi. sonra kuş falan yakaladık orda koptuk zaten :) birde bilgi fikir olayı varki deme gitsin çok kırdı beni.

mesaj birleştirme:: 31 Ocak 2013, 21:09:54

bak gene aynısı oldu ben yazarken eklemişsin.
yok kırkınıda sen yazdın demedim yazılmış dedim.

mesaj birleştirme:: 31 Ocak 2013, 21:15:11

bu bilgi fikir olayında cem yılmazın bir esprisi var o geliyor aklıma o yüzden çok takılmıyorum.
izlersen sen de çok gülersin, belkide izlemişsindir o yüzden yazmışsındır bak o zaman çok ince olurdu.
"beyni yok fikri var" diyor gösterisinde ama bunu neye diyor :)
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: LukeSkywalker - 31 Ocak 2013, 21:28:40
Ben de cem yilmaz izleyecek vakit bulamiyorum uzun zamandir oyuncak yapmaktan.
İyi geceler.
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: makinahmet - 31 Ocak 2013, 23:14:06
(https://lh5.googleusercontent.com/-_vdu3hp9wu4/UQrc8N6CRuI/AAAAAAAAAPM/hCORQoGy3PE/s488/1359664163314.jpg)
Evet. Bugün yaptığımız ufak çalışma.Amacımız 7805 regülatörü ile voltajı CNY sensöre uygun hale getirip, inceleme amaçlı ilk defa bağlantısını yaptığımız 74hc14 ün sensörden gelen veriyi 0-5 volt yapmasını gözleyerek,L293D entegresi ile sensör kontrollü motor on-off yaparak hareket elde etmekti. BÖylece bir kontrast sensörü ile ilk motor uygulamamızı yapmış olduk.En temel devremiz.

İyi çalışmalar.
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: makinahmet - 08 Şubat 2013, 15:11:54
Tekrar merhabalar. projede ilerlemeler kaydediyoruz. İlk çalışmada pcb devre oluşturmak istemedik ve bu yüzden bread boardı gövde üzerine yerleştirdik :D Böylece daha kolay ve çabuk işlem yapabildik. Amaç sadece çizgi izletmekti. :)
(https://lh3.googleusercontent.com/-1FOJIC58y0k/URT1mcupmMI/AAAAAAAAAPg/1XoFRmIEJd8/s488/1360259262918.jpg)

(https://lh3.googleusercontent.com/-jhHCD3clJg0/URT1mZsTuKI/AAAAAAAAAPk/iXDBEp4611Y/s651/1360259285162.jpg)

Şu şekilde basit bi kodla işimizi hallettik.

//çizgi izleyen robotta sensör işlemleri
//sağ sensör b3 pinine giriş yapıp a7 pininden çıkış yapıyor
//orta sensör b2 pinine giriş yapıp a0 pininden çıkış yapmakta
//sol sensör ise b1 pinine giriş yapıp a1 pininden çıkış yapmakta



void main()
{


set_tris_a(0b00000000);  //a portu tamamen çıkış
set_tris_b(0b11111111);  //b portu tamamen giriş

while(1)
{
//koşullar bölümü
if(input(pin_b3))       //eğerki b3 pininde 5v varsa
{
output_high(pin_a7);
}else                   //değilse
{
output_low(pin_a7);
}
 
if(input(pin_b2))           //eğerki b2 pininde 5v varsa
{
output_high(pin_a0);
}else                             //değilse
{
output_low(pin_a0);
}

if(input(pin_b1))         //eğerki b1 pininde 5v varsa
{
output_high(pin_a1);
}else                          //değilse
{
output_low(pin_a1);
}

}//while parantezi
} //main fonksiyonun parantezi



ancak sensörlerimizden ortadaki bozulundu -yada bağlantıları özenli yapmadık :) - Ancak önemli olan proğramın bazı sensörlerin işlevini yitirmesinde dahi çalışması olmalıydı (Örneğin örtadaki sensör için ) Başından proğramı bu duruma göre yazmış olduk.Bu çalışmada sensörlerden gelen veri trigger ile düzeltildi. Amaç şimdilik çizgi izletmekti. İlerleyen zamanlarda sensör sayısı çoğalarak yazılacak proğram da karmaşıklaşacak büyük ihtimal.Analoğ veri alınıp işlenmesi ise şimdilik rafa kaldırıldı.

İyi çalışmalar.
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: makinahmet - 16 Şubat 2013, 23:21:18
Bir hafta sonra tekrar merhaba. Sensörlerden gelen verileri işlemeye devam ediyoruz. arabamızın mekanik aksamında bir değişiklik yapmadık sayılır. Yukardaki resimlerde ki gibi. Ancak pillerde problem yaşadık ve biz de deneme amaçlı Nİ-CD 700mah 4.8V luk pillerden aldık. Şarj edip edip deneme yapıyoruz :D Amacımız sensörlerden gelen verileri işlemek.

Bilindiği üzere üç sensörle hareket etmekteyiz hala. Önceki yazılan sensör işleme kodunun mantığı olasıklıklara dayanmakta idi.Araç hafif hızlandığında veya viraja girdiğinde yoldan kolaylıkla çıkıyordu.Kodun açıklaması şöyleydi (araca yukardan bakıldığında x-y eksen takımında aracın ön kısmı +y yönünde konumlu olmak üzere ve yol beyaz çizgi ise siyah);
1)sol sensör siyahta ise (sola viraj var demektir) sag motoru ileri çalıştır sol motora güç verme.
2)sag sensör siyahta ise (saga viraj var demektir) sol motoru ileri çalıştır sol motora güç verme.
3)orta sensör siyahta ise iki motora da güç ver.

Yeni yazdığımız kodunda temeli yine olasılıga dayanmakta.Ancak bu defasında koşul sayımızda artış olmakta.

//çizgi izleyen robotta sensör işlemleri
//sağ sensör  b3 pinine giriş yapıyor
//orta sensör b2 pinine giriş yapıyor
//sol sensör  b1 pinine giriş yapıyor
//sol motor ileri dönüş a1 pininden yapılmakta
//sol motor geri  dönüş a0 pininden yapılmakta
//sag motor ileri dönüş a7 pininden yapılmakta
//sag motor geri  dönüş a6 pininden yapilmakta

#define solsen  input(pin_b1)  //Sol sensör beyazda
#define ortasen input(pin_b2)  //Orta sensör beyazda
#define sagsen  input(pin_b3)  //Sag sensör beyazda


#define sagmoileri output_high(pin_a7);  //Sag motor ileri
#define sagmogeri  output_high(pin_a2);  //sag motor geri
#define solmoileri output_high(pin_a1);  //sol motor ileri
#define solmogeri  output_high(pin_a0);  //sol motor geri

#define sagmoileridur  output_low(pin_a7);  //sag motor ileri deaktif
#define sagmogeridur   output_low(pin_a2);  //sag motor geri deaktif
#define solmoileridur  output_low(pin_a1);  //sol motor ileri deaktif
#define solmogeridur   output_low(pin_a0);  //sol motor geri deaktif

void main(){

set_tris_a(0b00000000);  //a portu tamamen çıkış
set_tris_b(0b11111111);  //b portu tamamen giriş
output_b(0x00);

while(1){
//koşullar bölümü

//üc sensör de beyazda ise motorlar dursun
if(solsen && ortasen && sagsen)
{
sagmoileridur;
sagmogeridur;
solmoileridur;
solmogeridur;
}

//uc sensörde siyahta ise motorlar dursun
if(! solsen && ! ortasen && ! sagsen)
{
sagmoileridur;
sagmogeridur;
solmoileridur;
solmogeridur;
}

//orta sensör siyahta,sol sensör beyazda,sag sensör beyazda
if(! ortasen && solsen && sagsen)
{
sagmoileri;
sagmogeridur;
solmoileri;
solmogeridur;
}

//sol sensör siyahta,orta sensör siyahta,sag sensör beyazda
if(! solsen && ! ortasen && sagsen)
{
sagmoileri;
sagmogeridur;
solmoileridur;
solmogeridur;
}

//sag sensör siyahta,orta sensör siyahta,sol sensör beyazda
if(! sagsen && ! ortasen && solsen)
{
solmoileri;
solmogeridur;
sagmoileridur;
sagmogeridur;
}

//sag sensör siyahta,orta sensör beyazda,sol sensör beyazda
if(! sagsen && ortasen && solsen)
{
sagmogeri;
sagmoileridur;
solmoileri;
solmogeridur;
}

//sol sensör siyahta,orta sensör beyazda,sag sensör beyazda
if(! solsen && ortasen && sagsen)
{
solmogeri;
solmoileridur;
sagmoileri;
sagmogeridur;
}


}//while parantezi
} //main fonksiyonun parantezi


Daha çok koşul daha iyi adaptasyon sağladı.Görüldüğü gibi kodda tekerin bazı yerlerde geri dönüşü hesaba katıldı. Keskin virajlara daha iyi adapte oldu. Bu şekilde hızımız da biraz artmış oldu.Bir daha ki sefere yazılan kodda yapılacak işlem ise üç sensörde beyaz veya üç sensörde siyah gördüğünde kesme yaparak en son hangi sensörün beyaz yada siyah gördüğüne göre motorlara çizgiye doğru yön vermek olacak.

İyi çalışmalar.
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: makinahmet - 24 Şubat 2013, 23:49:49
Herkese tekrar merhabalar. Sönsördeb gelen verileri işlemek için çalışmlarımız sürüyor.
En son yapılan çalışmada kodlarımız sensörlerin siyah yada beyaz konumuna göre motorları
olasılıklar çerçevesinde yönlendiriyordu. Adaptasyonu önceki haftalara nazaran bu hafta yine
olasılık koşullarını kullanarak arttırdık. Önceki haftaki amacımız=yazılan kodda yapılacak işlem ise üç sensörde beyaz veya üç sensörde siyah gördüğünde kesme yaparak en son hangi sensörün beyaz yada siyah gördüğüne göre motorlara çizgiye doğru yön vermekti. Ancak biz kesme
kullanmayı tercih etmedik. Onun yerine sensörerin siyah ve beyaza göre olası durumlarını numaralandırdık.Artık 3 sensörde beyazda ise
En son hangi koşulun geçerli olduğunu hatırlayıp ona göre çizgiden çıktığında çizgiye geri dönüyor. Yani U dönüşlerini çok rahat yapıyor :D


//çizgi izleyen robotta sensör işlemleri
//sağ sensör  b3 pinine giriş yapıyor
//orta sensör b2 pinine giriş yapıyor
//sol sensör  b1 pinine giriş yapıyor
//sol motor ileri dönüş a1 pininden yapılmakta
//sol motor geri  dönüş a0 pininden yapılmakta
//sag motor ileri dönüş a7 pininden yapılmakta
//sag motor geri  dönüş a6 pininden yapilmakta

#define solsen  input(pin_b1)  //Sol sensör beyazda
#define ortasen input(pin_b2)  //Orta sensör beyazda
#define sagsen  input(pin_b3)  //Sag sensör beyazda


#define sagmoileri output_high(pin_a7);  //Sag motor ileri
#define sagmogeri  output_high(pin_a2);  //sag motor geri
#define solmoileri output_high(pin_a1);  //sol motor ileri
#define solmogeri  output_high(pin_a0);  //sol motor geri

#define sagmoileridur  output_low(pin_a7);  //sag motor ileri deaktif
#define sagmogeridur   output_low(pin_a2);  //sag motor geri deaktif
#define solmoileridur  output_low(pin_a1);  //sol motor ileri deaktif
#define solmogeridur   output_low(pin_a0);  //sol motor geri deaktif

int kosul;

void main(){

set_tris_a(0b00000000);  //a portu tamamen çıkış
set_tris_b(0b11111111);  //b portu tamamen giriş
output_b(0x00);

while(1){
//koşullar bölümü

//uc sensörde beyazda ise
if(solsen && ortasen && sagsen)
{
//90 derecelik sola dönüş
if(kosul == 2){
solmogeri;
solmoileridur;
sagmoileri;
sagmogeridur;
}

//90 derecelik saga dönüş
if(kosul == 3){
solmoileri;
solmogeridur;
sagmogeri;
sagmoileridur;
}
//saga virajdan çıktı ise
if(kosul == 4){
solmoileri;
solmogeridur;
sagmogeri;
sagmoileridur;
}

//sola dönüşlü virajdan çıkarsa
if(kosul == 5){
solmogeri;
solmoileridur;
sagmoileri;
sagmogeridur;
}
}

//uc sensörde siyahta ise motorlar dursun
if(! solsen && ! ortasen && ! sagsen)
{
sagmoileridur;
sagmogeridur;
solmoileridur;
solmogeridur;
}

//orta sensör siyahta,sol sensör beyazda,sag sensör beyazda
if(! ortasen && solsen && sagsen)
{
sagmoileri;
sagmogeridur;
solmoileri;
solmogeridur;
kosul = 1;  //tam gaz ileri
}

//sol sensör siyahta,orta sensör siyahta,sag sensör beyazda
if(! solsen && ! ortasen && sagsen)
{
sagmoileri;
sagmogeridur;
solmoileridur;
solmogeridur;
kosul = 2;     //90 derece sola dönüş
}

//sag sensör siyahta,orta sensör siyahta,sol sensör beyazda
if(! sagsen && ! ortasen && solsen)
{
solmoileri;
solmogeridur;
sagmoileridur;
sagmogeridur;
kosul = 3;   //90 derece saga dönüş
}

//sag sensör siyahta,orta sensör beyazda,sol sensör beyazda
if(! sagsen && ortasen && solsen)
{
sagmogeri;
sagmoileridur;
solmoileri;
solmogeridur;
kosul = 4;   //saga tam dönüş
}

//sol sensör siyahta,orta sensör beyazda,sag sensör beyazda
if(! solsen && ortasen && sagsen)
{
solmogeri;
solmoileridur;
sagmoileri;
sagmogeridur;
kosul = 5;   //sola tam dönüş
}


}//while parantezi
} //main fonksiyonun parantezi

Bi sonraki hedefte çok daha dar açılı ve sinüsoidal olmayan virajları almak.
İyi çalışmalar.
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: datasheet - 25 Şubat 2013, 09:17:51
Alıntı yapılan: makinahmet - 24 Şubat 2013, 23:49:49
Herkese tekrar merhabalar. Sönsördeb gelen verileri işlemek için çalışmlarımız sürüyor.
En son yapılan çalışmada kodlarımız sensörlerin siyah yada beyaz konumuna göre motorları
olasılıklar çerçevesinde yönlendiriyordu. Adaptasyonu önceki haftalara nazaran bu hafta yine
olasılık koşullarını kullanarak arttırdık. Önceki haftaki amacımız=yazılan kodda yapılacak işlem ise üç sensörde beyaz veya üç sensörde siyah gördüğünde kesme yaparak en son hangi sensörün beyaz yada siyah gördüğüne göre motorlara çizgiye doğru yön vermekti. Ancak biz kesme
kullanmayı tercih etmedik. Onun yerine sensörerin siyah ve beyaza göre olası durumlarını numaralandırdık.Artık 3 sensörde beyazda ise
En son hangi koşulun geçerli olduğunu hatırlayıp ona göre çizgiden çıktığında çizgiye geri dönüyor. Yani U dönüşlerini çok rahat yapıyor :D


//çizgi izleyen robotta sensör işlemleri
//sağ sensör  b3 pinine giriş yapıyor
//orta sensör b2 pinine giriş yapıyor
//sol sensör  b1 pinine giriş yapıyor
//sol motor ileri dönüş a1 pininden yapılmakta
//sol motor geri  dönüş a0 pininden yapılmakta
//sag motor ileri dönüş a7 pininden yapılmakta
//sag motor geri  dönüş a6 pininden yapilmakta

#define solsen  input(pin_b1)  //Sol sensör beyazda
#define ortasen input(pin_b2)  //Orta sensör beyazda
#define sagsen  input(pin_b3)  //Sag sensör beyazda


#define sagmoileri output_high(pin_a7);  //Sag motor ileri
#define sagmogeri  output_high(pin_a2);  //sag motor geri
#define solmoileri output_high(pin_a1);  //sol motor ileri
#define solmogeri  output_high(pin_a0);  //sol motor geri

#define sagmoileridur  output_low(pin_a7);  //sag motor ileri deaktif
#define sagmogeridur   output_low(pin_a2);  //sag motor geri deaktif
#define solmoileridur  output_low(pin_a1);  //sol motor ileri deaktif
#define solmogeridur   output_low(pin_a0);  //sol motor geri deaktif

int kosul;

void main(){

set_tris_a(0b00000000);  //a portu tamamen çıkış
set_tris_b(0b11111111);  //b portu tamamen giriş
output_b(0x00);

while(1){
//koşullar bölümü

//uc sensörde beyazda ise
if(solsen && ortasen && sagsen)
{
//90 derecelik sola dönüş
if(kosul == 2){
solmogeri;
solmoileridur;
sagmoileri;
sagmogeridur;
}

//90 derecelik saga dönüş
if(kosul == 3){
solmoileri;
solmogeridur;
sagmogeri;
sagmoileridur;
}
//saga virajdan çıktı ise
if(kosul == 4){
solmoileri;
solmogeridur;
sagmogeri;
sagmoileridur;
}

//sola dönüşlü virajdan çıkarsa
if(kosul == 5){
solmogeri;
solmoileridur;
sagmoileri;
sagmogeridur;
}
}

//uc sensörde siyahta ise motorlar dursun
if(! solsen && ! ortasen && ! sagsen)
{
sagmoileridur;
sagmogeridur;
solmoileridur;
solmogeridur;
}

//orta sensör siyahta,sol sensör beyazda,sag sensör beyazda
if(! ortasen && solsen && sagsen)
{
sagmoileri;
sagmogeridur;
solmoileri;
solmogeridur;
kosul = 1;  //tam gaz ileri
}

//sol sensör siyahta,orta sensör siyahta,sag sensör beyazda
if(! solsen && ! ortasen && sagsen)
{
sagmoileri;
sagmogeridur;
solmoileridur;
solmogeridur;
kosul = 2;     //90 derece sola dönüş
}

//sag sensör siyahta,orta sensör siyahta,sol sensör beyazda
if(! sagsen && ! ortasen && solsen)
{
solmoileri;
solmogeridur;
sagmoileridur;
sagmogeridur;
kosul = 3;   //90 derece saga dönüş
}

//sag sensör siyahta,orta sensör beyazda,sol sensör beyazda
if(! sagsen && ortasen && solsen)
{
sagmogeri;
sagmoileridur;
solmoileri;
solmogeridur;
kosul = 4;   //saga tam dönüş
}

//sol sensör siyahta,orta sensör beyazda,sag sensör beyazda
if(! solsen && ortasen && sagsen)
{
solmogeri;
solmoileridur;
sagmoileri;
sagmogeridur;
kosul = 5;   //sola tam dönüş
}


}//while parantezi
} //main fonksiyonun parantezi

Bi sonraki hedefte çok daha dar açılı ve sinüsoidal olmayan virajları almak.
İyi çalışmalar.

video paylaşırmısınız ?
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: makinahmet - 26 Şubat 2013, 01:30:40
Video eklemeye çalışrım.
İyi çalşmalar.
Başlık: Ynt: Çizgi izleyende sensörlerden gelen veriyi işlemek için yaklaşım biçimi...
Gönderen: makinahmet - 23 Mart 2013, 18:31:55
Merhabalar. Çalışmalara sınavlar dolayısı ile ara vermek zorunda kaldık. Ancak çalışmanın son hali videodaki gibidir.

https://www.youtube.com/watch?v=BAJylZqqgqw (https://www.youtube.com/watch?v=BAJylZqqgqw)