10 Haziran 2016 Cuma

Robotino Bilgileri 1: Step Nedir ?

Step Nedir ?

Robotino Programlamasındaki en önemli şeylerden birisi Step yani Adımlardır. Peki nedir bu step? Step; Belirtilen şarta göre adım atlamadır. Yani aslında birden fazla programı içinde bulunduran ve sizin belirttiğiniz şartlara göre bu programlar arasında geçiş yapan şeydir. Mesela bir örnek verelim. Robotum hiçbir yere sapmadan dümdüz hareket etsin. Önüne engel çıkınca 5 saniye sağa gitsin ve tekrar dümdüz ileri gitsin. Hemen yapalım programı ve nasıl olduğunu gösterelim. Bir önceki dersimizde değişken tanımlamayı görmüştük. Bu derste değişken tanımlama kullanacağız. Eğer önceki konuyu okumadıysanız buradan o konuya gidebilirsiniz.


Evet bu şekilde programımızı yazdık. Bizim buradaki şartımız Duvar değişkeninin 1 çıkışını vermesi. Yani robot duvara 1,7 yaklaşırsa Duvar değişkeni 1 olacaktır ve diğer adıma geçecektir. Yeni step oluşturalım.
Step oluşturduk şimdi o stepteki programı ve şartını yazalım. Sağa doğru 5 saniye gidecek ve sonra ileri gitmeye devam edecek.
Evet bu şekilde yaptıktan sonra Main Programdan şartımızı tanımlayalım.

Sure değişkeni 5000 milisaniye ( 5 Saniye ) değerini alınca Step1'e geçiş yapacaktır. Step 1'de bildiğiniz gibi ileri gidiyor. Programımız ve dersimiz bu kadardı :)

İndirme Bağlantıları


Turbobit Mega

22 Mayıs 2016 Pazar

Robotino Ders 3: Değişken Tanımlama

Değişken Tanımlama

Bu dersimizde Robotino View programında değişken tanımlama ve bunu neden yaptığımızı öğreneceğiz. Değişken (yani Variables), robotumuza karmaşık işler yaptırmak istediğimizde bize yardımcı olacaktır. Değişken tanımlayarak step atlaması yapacağız. Yani tek bir programın içinde birden çok program olacak ve bunlar arasında sizin tanımladığınız şartlara göre otomatik olarak programlar arasında geçiş yapacaktır. Bu konu çok önemli. Bunu bilmeden hiçbir şey yapamazsınız. O yüzden ayrıntılı anlatacağım. Hemen basit bir program düşünelim ve programımıza uygulayalım. 

Şöyle basit bir pistimiz olsun ve robotumuz A noktasından B noktasına gitsin diyelim. Buna uygun programımızı yazmaya başlayalım.
Robotino View programını açalım. Motor ve motor sürücümüzü alalım.

 Program menümüze bakalım ve bir değişken oluşturalım.
Program menüsünde mavi renkle yazılan Variables'a sağ tıklayıp Add diyoruz.
Ve açılan pencereye herhangi bir değişken ismi yazıp OK diyoruz. Türkçe harf ve boşluk kullanamıyoruz unutmayın.
Bu şekilde yaptıktan sonra yan tarafta solakay writer ve solakay reader adlı iki tane elamanımız oluşuyor.
Bunlar kenarda kalsın biz programımıza devam edelim. Robotumuz düz gitsin ve duvarı görünce sola doğru kaysın istiyorum. Bunun için 1. sensörü kullanmamız lazım.
Bundan sonrası önemli. 1. Sensörümüzü alıyoruz ve büyüktür işaretini alıyoruz. 1. Sensör büyükse 1,7 den solakay = 1 olacak. Hemen yapıp anlatayım.

Evet bu şekilde yaptık. Ne yaptığımızı anlatayım. Eğer robotumuz duvara 1,7 değerinde yaklaşırsa solakay writer 1 değerini verecek ve programımızın ikinci adımına geçebileceğiz. Yani sola doğru hareket ettireceğiz. Resimde görülen solakay değişkenini yan taraftan Variables menüsünden alacağız ve solakay writer olacak. Şimdi bu programı yaptıktan sonra yeni bir step oluşturacağız. Robotino View programında Main Program yazan yere geliyoruz. Bunu yazarak değil de ekran görüntüsü ile anlatacağım.

Resim 1
Resim 2
Resim 3
Resim 4
Resim 5
Son resmi açıklıyacağım. Ben değişken adını solakay yapmıştım ve onu büyüktür işaretine bağlamıştım. Eğer ki 1. sensör 1,7 değerinden büyük olursa solakay değişkenim 1 değerini verecektir. Main programda eğer solakay 1 olursa adım 2 ye geç dedik. Şimdi 2. adımı yapalım.
Şuan ki programımızla robotumuz bu hareketi yapacaktır. Sola kaydırmak için gereken programımızı yazalım.
Basitçe programımızı yazdık. Şimdiiii robotumuz hep sola giderse duvara çarpacaktır. O yüzden sol tarafta duvar görürse ileri gitsin istiyorum. Bunun içinde bir değişken oluşturalım. İsmini ilerigit yapacağım. Sol tarafta olan sensörümüz 3. ve 4. sensördür. Ben 3. sensörü kullanacağım. Tıpkı ilk yaptığımız programdaki gibi 3. Sensör 1,7 den büyükse ilerigit = 1 olsun diyeceğiz.
Evet bu şekilde yaptıktan sonra Main programa geliyoruz. 
Resim 1
Resim 2
Evet bunları yaptıktan sonra programımız düzgün şekilde çalışacaktır. Bunu yapma amacımızı anlatayım hemen. Eğer ilerigit değişkeni 1 olursa step1 e geçecektir. Yani ileri gidecektir. Programımız nasıl çalışacak görelim.
Programımız böyle çalışacaktır. Bu programı aşağıdaki linklerden indirebilirsiniz.

İndirme Bağlantıları


Turbobit Mega

17 Mayıs 2016 Salı

Basit Programlar 1 : Duvar Takibi

Duvar Takibi


Geçen dersimizde sensörleri tanıtıp örnek program yazmıştık. Bu makalede ise geçen dersten öğrendiğimiz bilgiler ile robotumuza duvar takibi yaptıracağız.
Hemen başlayalım. Robotino View programını açalım. Motorlar ve motor sürücümüzü alıp bağlayalım.

Programda yapmamız gerekeni anlattıktan sonra yani mantığı kavradıktan sonra devam edeceğiz programa. Şimdiiii robotumuz yan yan gidecek ve duvara yaklaştığında duvardan biraz kaçacak. Ama duvardan kaçarken ve yan yan giderken robot sağa veya sola doğru döneceği için yamuk gidecektir. Bunu düzelteceğiz. Yani robotumuz yan yan gidip duvara yaklaşınca kaçacaktır ve yamuk gitmeye başlarsa kendini toplayacaktır.  Başlayalım o zaman programa.

Bakalım burada ne yapmışız. Demişiz ki eğer 1. sensör duvara 1,7 yaklaşırsa -100 hızında geri git. Yani büyüktür 1 çıkışını verince robotumuz 100 hızında geri gidecektir. Neden çarpma kullandık toplama kullanmadık? Hemen anlatıyorum. Çünkü çarpma kullanırsak eğer büyüktür 0 değerini verirse 0x-100 olur ve robot geriye gitmez. Ama toplama kullansaydık 0+(-100)=-100 olduğundan daimi olarak robot geriye gidecekti. Bu bilgilerden sonra fark ettiyseniz robotumuz hareket etmiyor. Sol tarafa doğru daimi hareket etsin diyelim.
Bunu da yaptıktan sonra robotun kendi kendini toplamasına geldi sıra. Bunun için sensör dengelemesi kullanacağız. Robotino'nun 1.Sensörünün yanında bulunan 2. ve 9. sensörleri dengelersek robot duvara bakarak kendini sağa veya sola doğru toplayacaktır. Peki nasıl dengeleyeceğiz ?

Ahanda böyle yaparsak dengeleyecektir. Burada neler yapmışız bakalım. Robotumuz duvara yakın değilken robot kendini toplayacaktır. Çünkü değil kapısı almışız. Yani büyüktür 0 değeri verdiğinde değil kapısı ona 1 olarak çıkış verecektir. 2. ve 9. sensörü birbirinden çıkartarak dengeledikten sonra değil kapısı ile çıkartma işlemini çarpıp dönmeye veriyoruz ve bu şekilde robotumuz kendini toparlamış oluyor. Bu programı aşağıdaki linklerden indirebilirsiniz.

İndirme Bağlantıları


Turbobit Mega

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