Kullanılacak Malzemeler:
Kumanda alıcımızı pinlerini doğru takmaya dikkat edelim. Hassas bir alıcı olduğundan yanlış bağlantı yaparsanız kolay bozulur. Özellikle GND ve VCC pinlerini doğru takalım.
Not: Çizim programında Chq1838 kızıl ötesi alıcının resmi bulunmadığından başka bir kızıl ötesi alıcısı ile devre şeması çizildi.
Mblock programımıza kumanda alıcısını kullanabilmek için uzantı eklememiz gerekmektedir.
Uzantılar –> Uzantıları Yönet yolunu takip ederek IRremote uzantısını indir.
7. pine kumanda alıcısının sinyalini bağlıyoruz. Bu kodla beraber Serial Ekranda kumanda kumanda tuş değerlerini okuyoruz. Sonraki kodumuzda kumanda tuş değerlerini değişken olarak tanımlıyoruz. Tanımladığımız tuşları kodumuz içinde istediğimiz şekilde kullanabiliriz.
Eğer koşulu ile tanımladığımız tuşlarla aynı değere sahip kumanda tuşuna basıldığında led yak söndür işlemini gerçekleştirebiliriz.
]]>Kullanılacak Malzemeler:
Kumanda alıcımızı pinlerini doğru takmaya dikkat edelim. Hassas bir alıcı olduğundan yanlış bağlantı yaparsanız kolay bozulur. Özellikle GND ve VCC pinlerini doğru takalım.
Devre şemamız aşağıdaki şekilde kurulmalıdır.
Mblock programımıza kumanda alıcısını kullanabilmek için uzantı eklememiz gerekmektedir.
Uzantılar –> Uzantıları Yönet yolunu takip ederek Arduino Rover uzantısını indir.
Uygulamamızın kod kısmına geçebiliriz. Uygulamada yapmak istediğimiz olay kumandamızdan 1 tuşuna basınca led yanacak, 2 tuşuna basına led sönecek. Örnek kodları inceleyelim.
Bu uzantı kodlarında kumandadan basılan tuşların sadece adları görünüyor. Bizim elimizdeki kumanda farklı ise başka tuşlarla kodumuz çalışır. İleride başka kumanda kütüphanesi eklenirse özellikle basılan tuşun seri numaralarını okuyabildiğimiz o zaman daha kapsamlı uygulama yapabiliriz. Zamanla daha iyi farklı kumanda uzantısı eklenirse onu da açıklama yaparız.
]]>Analog Giriş Pinleri: A0-A5 aralığındaki pinlerdir. Potansiyometreden okunan değer 0-1023 değer aralığındadır.
Potansiyometrenin sağ ayağı 5V pinine, sol ayağı GND pinine, orta ayağı A0 pinine bağlanmalıdır.
Devre kurulumu tamamlandıktan sonra mBlock sahnemizdeki Panda kuklası renklendirilmelidir. Pandamızın potansiyometreden gelen değere göre renk değiştirmesi istenmektedir. Pot değerini okumak için A0 analog pini kullanılmıştır. Pot değeri 0-1023 aralığındadır. Bu değer aralığını daraltmak amacıyla “pot degeri/4” işlemi yapılarak işlem sonucu renk etkisi olmuştur.
]]>Hemen açıklayayım, pin sayısından tasarruf etmek için 7 segment displaylerimizde 7 segment ve 1 nokta dışında 2 tane ortak pin konmuş durumda. 8 pin ile 8 kısmı kontrol ederken ortak kısımlar ile dörder pinin çıkışını sağlayabiliyoruz. Yani diyelim ki siz ekrandaki tüm kısımları yakmak istiyorsunuz normalde 8 giriş 8 çıkış 16 pin olması gerekirken çıkış pinleri 2 ye indirgendiği için 8 giriş 2 çıkış toplamda 10 pini bağlamanız yeterli oluyor.7segLed Ortak anot dediğimiz bu ortak pinlerin VCC, ortak katot dediğimiz ise bu ortak pinlerin GND olmasıdır. Örneğin siz ortak anotta 1 yazmak için b ve c pinlerini gnd ye bağlarken iki ortak anotunuzu da 5V a bağlamak zorundasınız. Oysa ortak katot olsaydı ekrana 1 yazabilmek için b ve c pinlerini 5V a iki ortak katotunuzu ise GND a bağlamak zorundasınız. Benim tavsiyem bu devrede 220 ohm direnç kullanmanız. Şimdi gelin basitçe 0’dan 9’a kadar 7 Segment Displayimize sayıları yazdıralım arkadaşlar…
]]>Robotlar bölümünde bulunan yukarıdaki kod bloğu ile programı yapabiliriz.
İsterseniz önce Çizgi izleyen sensörlerin siyah ve beyaz renkli zeminlerde hangi değerleri aldığını test edelim.
Çizgi izleyenin sağ tarafı ( sensör 2) siyah çizgi dışında kaldığında 1 değerini,
Çizgi izleyenin sol tarafı ( sensör 1) siyah çizgi dışında kaldığında 2 değerini,
sensörlerin her ikisi beyaz zeminde ise 3 değerini, sensörlerin her ikisi siyah zeminde ise 0 değerini alır.
Gelelim esas kodlarımıza;
Çizgi adında bir değişken oluşturduk ve bu değişkene kapı 2 deki çizgi sensörünün okuğudu değeri atadık. İç içe eğer komutlarını kullandık. Çizginin aldığı değer 0 ise ( her iki sensör siyah renkte ise ) ileri gitmesini, Çizginin aldığı değer 1 ise (sadece sol tarafdaki sensör siyahı algıladıysa) sola dönmesini,
Çizginin aldığı değer 2 ise (sadece sağ tarafdaki sensör siyahı algıladıysa) sağa dönmesini sağladık.
Bu kodlarla çizeceğiniz siyah yolda robotunuzun hareket etmesini kolaylıkla sağlayabilirsiniz.
mBlock 3.45 modeli ile birlikte yeni bir blok dahil olmuştur. Bu blok sayesinde 1, 2 gibi değerlere eşitleme işlemine gerek kalmamıştır.
Bu yeni güncelleme ile gelen kod bloğu ile programımızı yazacak olursak.
Robotlar bölümünde ses tonu bloğu ile çalmak istediğiniz sesi seçebilirsiniz.
Notaların vuruş miktarını ise ikinci bölümden seçebilirsiniz.
Sembollerin yanındaki sayılar ise notanın tonunu belirtir. 2 den 8 e doğru incelerek gitmektedir.
İnternetten bulduğunuz notalara göre istediğiniz şarkıyı çaldırabilirsiniz…
]]>Şimdi hep birlikte Işık şiddetine göre hareket eden bir program yapalım.
İsterseniz Mbot üzerindeki LED ışıkların ortamdaki ışığın miktarına göre farklı renklerde yanmasını sağlayabilirsiniz.
Yukarıdaki kodlara göre ışık değeri 500 den küçükse araçtaki LED ışıkların kırmızı renkte, değilse yeşil renkte yanmasını sağladık.
Cizmin MBot’a olan uzaklığını bulmak için;
Yol = Hız X Zaman formülünden faydalanır. Sesin doğadaki hızı 343 olarak bilindiğinden mesafe bu veriler sayesinde kolayca
Bu uygulamamızda Robotlar bölümünde bulunan aşağıdaki bloğu kullanacağız.
Bir cismin MBot’umuza olan uzaklığını ekranda görmek için şu bloğu kullanabilirsiniz:
MBot’umuzun hiçbir yere çarpmadan hareket etmesini sağlayacaksak şu blokları kullanabilirsiniz:
Mesafe ve hız adında değişkenler oluşturalım. Ultrasonik sesnsörden gelen veriyi Mesafe değişkenin atayarak sürekli mesafeyi ölçmesini sağlayalım. Eğer mesafe 25 ten küçükse geri gitmesini, eğer mesafe 15 ten küçükse 0 ile 100 arasında rastgele bir sayı belirlemesini ve bu belirlediği sayının 50 den küçük olması halinde sağa, 50 den büyük olması halinde ise sola dönmesini, eğer mesafe 25 ten küçük değilse ileri gitmesini sağladık. Motorumuzun hareket hızını belirleyen Hız değişkenini ise 100 olarak belirledik.
M1 soldaki, M2 sağdaki motorun hareket etmesini sağlar. (Motorları ters bağladıysanız, bu durum tam tersi olacaktır.)Motorlar 0 ile 255 arasında değer alırlar.
İki motoru aynı anda hareket ettirmek istediğimizde de1. Numaralı blok kullanılır. Motoru durdurmak içinde hızı 0 yapmak gerekir.Motorlar 0 ile 255 arasında değer alırlar.
İki motoru aynı anda hareket ettirmek istediğimizde de 1 Numaralı blok kullanılır. Motoru durdurmak için ise hızı 0 yapmak gerekir.
İleri ve Geri gitme işini sürekli yapmak isterseniz koldarınızı aşağıdaki şekilde düzenlemeniz gerekecektir.
Şimdi de sağa sola dönmesini test edelim. Klavyeden yön tuşları ile hareketi sağlayalım.
Kısa bir not :
Aşağıdaki komut ile mBot’un kendi etrafında sürekli dönmesini sağlayabilirsiniz.
Uygulama için önce devreyi kuralım;
Not: i2c modülü farklı frekanslarda çalışabilir. LCD ekran çalışmazsa aşağıdaki kodun 0x27 olan kısmını 0x3F ile değiştirmek gerekebilir.
LCD i2C kullanımı ile sorun yaşarsanız daha önceki yazımızdan kurulumu detaylı inceleyebilirsiniz.
]]>