Işık ile hareket eden MBot
Işık ile hareket eden MBot
Bu uygulamamızda ortamdaki ışık şiddetine göre mBot robotumuzun hızını belirleyeceğiz ve karanlık bir ortamda robotumuz üzerinde bulunan LED’ leri yakacak. Bir önceki uygulamamızdan farklı olarak burada değişken kullanmamız gerekiyor. Ayrıca işlemler kod bloğunu da kullanacağız. Bir önceki uygulamamızı kaydettiyseniz onun üzerinde değişiklikler yaparak bu projeyi oluşturabilirsiniz. Hadi başlayalım…
İlk önce bilmemiz gereken bir noktaya değinelim. Işık algılayıcılar 0-1024 arası değer alırlar, motorlar ise 0-255 arası değerlerde çalışır. Biz ışık şiddetine göre motorun hızını belirlemek için ışık şiddetini 4 e bölerek aşağı yukarı bir eşitleme yapmamız gerekiyor.
DEĞİŞKEN Nedir?
Kodlamada kullandığımız sensörlerin (ışık şiddeti, nem, sıcaklık…vb.) okuduğu değerleri bilgisayarın hafızasında saklamamıza yarayan veri tutucudur. Bir çeşit kutu gibi düşünebiliriz.
Değişken oluşturarak başlayalım. Kod bloklarından Veri&Blok seçeneğine tıkladığımızda Bir Değişken Oluştur düğmesini göreceğiz. Bu düğmeye tıklayıp ekrana gelen Yeni Değişken penceresinde Değişken ismi alanına Hız yazıp Tamam düğmesi tıklandığında değişkenle ilgili kodlar görüntüye gelecektir.
Veri&Blok
Bu kodlardan Hız, 0 olsun kodunu kodlama alanına sürükleyip bırakalım.
Ardından İşlemler kod bloğundan bölme işlemini kodlama alanına alalım. Işık değerini 4′ e bölerek Hız değişkenine eşitleyelim. Aşağıdaki resimdeki gibi Bölme işleminin sol tarafına ışık algılayıcı kodu sürükleyip ekleyin diğer tarafına da klavyeden 4 yazın.
Bu oluşturduğumuz bloğu da aşağıdaki resimdeki gibi Hız, 0 olsun bloğunda 0’ ın yerine sürükleyip bırakın.
Şimdi robotumuzu hareket ettirmek için 1. Uygulamamızda kullandığımız Robotlar kod bloğundan İleri git hızı 50 yap bloğunu kullanacağız. Veri &Blok kod bloğundan da Hız değişkenini sürükleyip 50 üzerine bırakın.
Böylece ışık algılayıcının ölçtüğü değere göre Hız değişkenin değeri değişecek, motor hızları da Hız değişkeninin değeri ile doğru orantılı olarak artacak veya azalacaktır.
Şimdi amacımız robotumuzun ışık algılayıcısı 50’ den düşük bir değer okuduğunda ışıklarını yakıp ileri doğru hareket etmesini sağlamak. Fakat burada bir çelişkiyle karşılaşıyoruz. Robotumuzun ışık algılayıcısı hemen RGB LED’ lerinin yanında olduğu için ledler yanınca ışık algılayıcı 50 nin üzerinde bir değer okuyacağından RGB LED’ leri söndürecektir. Bunun için kodlarımızı aşağıdaki gibi iç içe karar yapıları kullanarak düzenlememiz gerekiyor.
Böylece ışık algılayıcı 50’ den küçük bir değer okuduğunda ışıkları yakacak, 450’den büyük bir değer okuduğunda ışıkları söndürecektir.
Kart ledler bloğunda Kırmızı, Yeşil, Mavi değerlerini 255 olarak seçersek RGB Ledleri beyaz yanacaktır, 0 olarak seçersek sönecektir.
Işık şiddetine göre hareket eden MBot
Bu derste neler öğrendik?
- Algılayıcılar ve ışık algılayıcı.
- Algılayıcılardan gelen verileri okuma.
- Değişken kullanımı.
- İç içe karar yapıları kullanma. (eğer-ise-değilse / içinde eğer-ise)
- RGB Ledleri ile Beyaz ışık yakmak.