1 Mayıs 2016 Pazar

Robotino Ders 2 : Sensörler

Sensörler

Robotinoya bağlı 9 adet mesafe sensörü, 1 adet endüktif (metal) sensörü ve 2 adet çizgi sensörü var. Bu yazımda sizlere mesafe sensörlerini tanıtacağım ve örnek programları göreceğiz.
Robotinonun yan tarafında 9 adet mesafe sensörü vardır. Bunları Robotino View programının 'Robotino' menüsü altındaki 'Collision detection' alt menüsünden alacağız. Distance #1 ~ #9 bizim mesafe sensörlerimizdir. Örnek bir program yazalım ve sensörleri anlamaya çalışalım. Mesela diyelim ki robotumuz düz gitsin ve önüne bir engel çıkınca dursun. Bunun için en öndeki sensörü kullanacağız. Bu 1. mesafe sensörüdür. Yani Distance #1. İlk derste gördüğümüz standart elemanlarımızı alalım. Motor #1 ~ #3 ve Omnidrive.

Evet şimdi de 1. sensörümüzü alalım.
Şimdi iki tane sabit (constant), çarpma işlemi ve küçüktür işareti alalım. Artık bunların yerini size söylemeyeceğim biraz program menüsünü karıştırarak hem öğrenmiş olursunuz hem beni büyük bir dertten kurtarırsınız :)
Evet bu şekilde bağlantılarımızı yapıyoruz. Hemen açıklamasını yapıcam korkmayın :) Sol taraftan okumaya başlıyoruz programı. Diyor ki sensör 1 den gelen değeri oku. Eğer 1,7 den küçük ise çıkışı 1 yap. Şunu söylemeyi unuttum. Sensörler duvara veya engele yaklaşınca daha yüksek değer veriyorlar. O yüzden 1,7 yazdım. Devam edelim programa. Eğer duvara yakın değilse yani 1,7 den küçük ise çıkışı 1 verecek ve çıkan değeri 100 ile çarpıp ileri gitmeye verecek. Diyelim ki duvara yaklaştı ve 1,7 den büyük değer vermeye başladı. O zaman çıkışı 0 verecek ve çıkan değeri 100 ile çarpıp ileriye verecek. 0x100 = 0 olduğu için robot duracaktır. Programın mantığını anladığınızı düşünüyorum ve başka bir örnek program gösteriyorum. Diyelim ki sadece önünde engel varsa hareket etsin. Bunu iki şekilde yapabiliriz. Birincisi küçüktür işaretinin sonuna not (değil) kapısı koyarak ya da küçüktür işaretini silip yerine büyüktür yaparak. (Not kapısı gelen bilginin tersini gönderir. Yani 1 se 0 , 0 sa 1 yapar). Ben genelde büyüktür kullanmayı tercih ediyorum.
Evet bu şekilde yaparsak sadece önünde engel olduğu zaman hareket eder. Mantık yukarıdakinin tam tersi. 
Son bir örnek ile bu dersi burada bitireceğim. Bu programımızda robotumuza şunu öğretelim. Eğer bir engele gelirsen sağ tarafa doğru dik hareket et. Engeli geçince tekrar düz hareket et. 

Programımız bu kadar. Sakın gözünüz korkmasın çünkü üstteki programın aynısı. Sadece ek olarak bir tane not kapısı bir tane çarpma işlemi ekledik. Programın çalışma mantığını anlatayım. 1. Sensörden gelen değeri oku. Eğer 1,7 den küçük ise çıkışı 1 yap ve 100 ile çarpıp ileriye ver. 1x100 = 100 olduğu için ileriye doğru hareket edecektir. Aynı zamanda küçüktür 1 olduğu zaman not kapısı onu 0 yapacaktır ve 0x(-100) = 0 olduğu için sağa doğru gitmeyecektir. Ama diyelim ki duvara yaklaştık ve sensör 1,7 den büyük değer veriyor. Bu sefer sensörden gelen değer 1,7 den büyük olduğu için küçüktürden 0 çıkışını alacağız ve 0x100 = 0 olacağı için ileri gitmeyecek robotumuz. Not kapısı alınan bilginin tersini aldığı için 0 sa 1 olarak alacaktır ve 1x(-100) olacağından robot sağa doğru gidecektir. Bu derslik bu kadar yeter kafanızı çok karıştırmak istemiyorum :) Bu programları denemek istiyorsanız aşağıdaki linklerden herhangi birine basarak indirebilirsiniz.

İndirme Bağlantıları


Turbobit Mega

2 yorum: