Bugün Internet Computer Protocol blok zincirini tanıyıp Hello World örneğiyle bu merkeziyetsiz geliştirme ortamına ilk adımımızı...
Mindstorms EV3 Renk Sensörü Kullanımı
Kemal İKİZOĞLUHerkese merhaba,
Bugün sizinle birlikte Lego Mindstorms eğitim seti içerisinde bulunan renk sensörünün(color sensor) özelliklerini ve nasıl kullanıldığını öğreneceğiz. Vakit kaybetmeden hemen başlayalım.
Bu sensör her mindstorms seti içerisinde 1 adet vardır. Sekiz farklı renk arasında ayrım yapar. Aynı zamanda ışık şiddetlerini tespit ederek ışık sensörü olarak da hizmet eder. Öğrenciler renk sıralama ve çizgi izleyen robotlar oluşturabilir, farklı renklerin ışık yansıması ile deney yapabilir ve geri dönüşüm, tarım ve paketleme gibi sektörlerde yaygın olarak kullanılan bir teknoloji ile deneyim kazanabilirler. Resmi sitesinden sensörü satın almak istediğinizde 41,99$ yaklaşık olarak 202 TL gibi bir fiyatı bulunmaktadır.
Renk Sensörünün Kullanımı:
Sensörün kullanılabilen Measure(ölçme) , Compare(karşılaştırma), Calibrate(kalibre etme) 3 modu bulunmaktadır. Her birinin kendi içerisinde gerçekleştirdiği özel nitelikler bulunmaktadır. Şimdi bu alt modların hangi görevleri gerçekleştirebildiklerine bir göz atalım.
Measure (Ölçme) :
Measure başlığına ait 3 alt modu bulunmaktadır. Bu modun temel işlevi sensörden değer almaktır. Alınan değerleri gerekli yerlere bağlayıp işlem yapabilmektir. Colour(renk), reflected light intensity(yansıyan ışık yoğunluğu), ambient light intensity(ortam ışık yoğunluğu) olmak üzere bu 3 farklı alt modun her biri niteliğine dair ölçüm bilgisi vermektedir. Bir örneklerle durumu daha anlaşılır hale getirelim.
Measure modunda yer alan 3 farklı moddan daha anlaşılır olabilmesi için Ambient Light Intensity yani ortam ışık yoğunluğunu ölçen modu seçtim. Sensörden sürekli bilgi alabilmem için bir tane döngü aldım ve sensör bloğunu döngünün içerisine yerleştirdim. Bir tane Move Tank bloğundan alıp sensör bloğunun devamına yerleştirdim. En önemli kısım şimdi başlıyor. Sensöre ait ölçüm değerinden bir tane sağ motora bir tane de sol motora bağlantı yaptım. Move tank blokunda “On” modunu seçtim. Programı çalıştırdığınızda sensörden gelen değere göre motorların hareket ettiğini göreceksiniz.
Not: Motorların bağlı olduğu harflere dikkat ediniz, motor çalışmıyorsa portların doğruluğunu gözden geçiriniz.
Measure fonksiyonunda kullandığımız modlarda ölçülen değerler bu şekilde bağlantılarla programlama yapılır. Sensörden değer alınır ve gerekli birimlere bağlanarak işlemler gerçekleştirilir. Ortam ışığının şiddetine göre motorların ikisi de aynı şekilde değer alacak. Çalışmasını bu şekilde sürdürecektir.
Compare (Karşılaştırma):
Colour menüsü altında olduğu gibi Compare menüsü altında da aynı isimlerle 3 modumuz bulunmaktadır. Aynı isim fakat farklı görevler gerçekleştirmektedir. Compare yani karşılaştırma modunda sensöre tanımladığınız değerleri algıladığı değerlerle karşılaştırıp sonuçlarına göre işlemler yapabilmemize olanak sağlıyor. Renk karşılaştırma, yansıyan ışık yoğunluğu karşılaştırma ve ortam ışık yoğunluğu karşılaştırma olmak üzere 3 farklı alt modu bulunmaktadır. Şimdi bunları örneklerle somutlaştıralım.
Compare > Colour:
Birlikte küçük bir uygulama hazırlayalım. Ev3 tuğlasının 1.portuna sensörümüzü bağlayalım. Yapacağımız ise renk sensörü kırmızı algılarsa tuğla ekranında kalp çıksın, kırmızı harici renk olduğunda gözleri kuru kafa(Toxic) olan bir ifade çıksın.
Resimdeki gibi sensörün programlamasını hazırlayalım. Öncelikle turuncu sekmeli switch bloğu aldım. Blok özelliğini Colour Sensör > Compare > Colour yaptım. Karşılaştıracağım renk olarak kırmızı seçtim. Yeşil sekme Display bloğundan iki tane alıyorum ve switch özelliği olan doğru olduğunda ve yanlış olduğunda ifadeli iki kısma da bu display bloklarından yerleştiriyorum. Klasör simgesine tıklayıp Image seçiyorum. Toxic ya da Heart small yazan kısımları buluyoruz. Ve hazırladığımız tüm bunları bir döngü içerisine alıyoruz. Böylece kodlamamız bitmiş oluyor. Programı çalıştırdığımızda sensör kırmızı rengi gördüğünde kalp, diğer renkler için kuru kafa resmi çıkacaktır. Böylece renkleri karşılaştırdığımız bir örneği de gerçekleştirmiş olduk.
Compare > Reflected Light Intensity:
Renk sensörünün işlevlerinden biri de yansıyan ışığın yoğunluğunu hesaplayıp size verebilmesidir. Bu hassasiyet değeri 0 – 100 arasındadır. 0 çok karanlık 100 çok aydınlıktır. Bu modun kullanmasında dikkat edeceğimiz hususlardan birtanesi de sensörün baktığı yüzeyler değiştikçe farklı yansıma değerleri aldığınızı göreceksiniz. Beyaz bir zemin üzerinde 100 değerine çıktığını görürken siyah bir zemin üzerine geçtiğinizde en fazla 20 değerine çıktığını göreceksiniz. Sensörün programlamasında da izleyeceğimiz yol, değerin üzerindeyse şu işlemi yap değerin altındaysa şu işlemi yap şeklinde olacaktır.
Örneğimiz, siyah bantla çember çizilmiş bir zemin üzerinde robotumuzu ortaya bırakacağız ve siyah sınırı aşmadan çember içerisinde farklı yönlere giderek alan içerisinde kalmaya çalışacak. Başarabilecek mi dersiniz? 🙂
Robotumuzu hareket ettirebilmemiz için Move Tank bloğunu alıp On modunda tekerlere 40 güç veriyoruz. Wait bloğu alıp renk sensörü > refleccted light intensity seçiyoruz. Değerlerini 4 seçip 20 giriyoruz. Move Tank bloğu alıp Off modunu seçiyoruz. Move Steering bloğı alıp “On of Degree” modunu seçip -38 , 40 , -300 değerlerini giriyoruz. Bir tane loop döngüsü alıp önceden alana aldığımız bütün blokları döngü içerisine yerleştiriyoruz. Şimdi test zamanı =)
Not: Çalışmaya başlamadan önce zemin üzerinde sensörün alabileceği en fazla değerleri test edip sonrasında programlama yapılması daha sağlıklı sonuçlar verecektir.
Compare > Ambient Light Intensity:
Bu mod ile ortam ışık yoğunluğunu ölçerek işlemler yapabiliyoruz. Ortamdaki ışığın yoğunluğu 0 – 100 arası bir değerle ifade ediliyor. Bir önceki modda olduğu gibi 0 karanlık 100 aydınlık ortamı temsil ediyor. Ortamın yoğunluğunu küçük bir programla kontrol ederek modun kullanımını öğrenelim.
Örneğimizi hazırlayalım. 1 adet switch alalım. Modunu color sensor > compare > ambient light intensity yapalım. Switch değerlerini 2, 10 yapalım. Sensör değeri 10’dan büyükse (durum doğruysa) Good sesi; sensör değeri 10’dan küçükse No sesi çıkartsın. Programı çalıştırdığımızda ortam ışık yoğunluğu 10’dan büyük olduğunda Good, diğer durumlarda No sesi çıkartacaktır. Böylelikle ortamın yoğunluğunu da kolay bir şekilde test edebilirsiniz.
Calibrate (Kalibrasyon):
Renk sensörümüzün birçok modunu sizlerle test ettik. Fakat bazı durumlarda sensörü kendi durumlarımıza göre kalibre etme ihtiyacı hissedebiliriz. Çalıştığımız ortam, zemin vb. nedenlerden kaynaklı uygun değerleri baz almak isteyebiliriz. Böyle durumlar için sensörü nasıl kalibre edebileceğimizi öğrenelim.
Kalibre işlemi için önce sarı sekmeli Sensor bloğunda bulunan renk sensöründen bir tane alalım. Sensör modunu Calibrate > Reflected Light Intensity > Reset seçiyoruz. Yeşil sekmeli Action bloğundan Display bloğunu alalım. Modunu Text > Grid seçelim. Değerlerini 1,1,2 seçiyoruz. Bloğun sağ üstte yer alan kısmına “Black” ya da “Siyah” yazalım. Turuncu sekmeli Wait bloğundan alıp modunu Brick Buttons > Compare > Brick Buttons seçelim. Değerlerini 2,2 yapalım. Sensor sekmesinden 2 adet renk sensörü bloğundan alalım. İlk sensör bloğuna Measure > Reflected Light Intensity, ikinci sensör bloğuna Calibrate > Reflected Light Intensity > Minimum seçelim. Aldığımız iki sensörden ilk olanın Light değerini ikinci sensörün Value değerine bağlayalım. Baştaki Display bloğundan son bloğa kadar hazırladığımız blokları seçip kopyalayalım ve alana yapıştıralım. Yapıştırdığımız blokları öncekilerle birleştirelim. İkinci Display bloğunda değerlerimizi 1,2,2 olarak değiştirelim. Bloğun sağ üstte yer alan kısmına “White” ya da “Beyaz” yazalım. En sonda yer alan Calibrate bloğunda Minimum değerini Calibrate kısmından Maximum seçelim. Kodlamamızı böylece tamamlamış olduk.
Programı çalıştırdığımızda ekranda Black / Siyah yazdığında sensörü tanımlayacağımız siyah zemine yerleştirip EV3 orta tuşuna basalım. Ekranda White / Beyaz yazdığında sensörü tanımlayacağımız beyaz zemine yerleştirip EV3 orta tuşuna basalım. Böylelikle sensör tanımlamak istediğimiz değerlere kalibre edilmiş olacaktır.
Kalibrasyon Resetleme:
Not: Sensöre tanımlanan değerleri sıfırlamak için sensor sekmesinden bir adet renk sensörü bloğu alalım. Modunu Calibrate > Reflected Light Intensity > Reset yapalım. Ev3 üzerinde çalıştırdığımızda sensörümüz resetlenecektir.
Böylelikle ev3 renk sensöründe mevcut modlarının nasıl kullanıldığını öğrenmiş olduk. Program üzerinde blokları kullandıkça robot üzerinde çalışmalar yaptıkça anlamak ve öğrenmek daha da kolay bir hale gelecektir. Sorularınızı yorum sayfama bırakabilirsiniz.
Kolay gelsin.
Son Yorumlar..