mBot Hızlı Başlangıç Eğitimi (Çeviri)

Kodla Büyü

Mesut AKGÜN

Seçkin Üye
Seçkin Üye
Mesajlar
260
GİRİŞ

6C664172-98A2-4DB3-9139-036C33913D95-300x225.png

MBlock'un hızlı bir şekilde nasıl kullanılacağını öğrenmenize ve mBlock ile eğlenceli bir programlama yapmanıza yardımcı olacak bir dizi basit örnek ile mBlock'un benzersiz işlevlerini görün.

Donanım Desteği:

Mcore.png

mBOT
Mbot.png

mCore Mikrodenetliyici Kartı


Bu çalışma, kolaydan zora bir düzende hazırlanmıştır. Daha iyi öğrenme sonuçları elde etmek için bunları okumanızı öneririz. Şu anda sadece mBot robotlarını ve mCore ana kontrol panelini destekliyor ve gelecekte mBlock yazılımına uyarlanmış daha fazla örnek ekleyeceğiz.

1- Yanıp sönme
2- Alternatif yanıp sönme
3- Karışık renk
4- Rastgele renk
5- Çalmak için düğmeye bas
6- Müzik parçası çal
7- Ambulans sesi
8- Ses Değişimi
9- Parlaklık Değişimi
10- İtfaiye sesi
11- ışık sensörü değeri
12- Sahne arka plan parlaklığı
13- Kızılötesi iletişim
14- Hareket, ses ve ışık kontrolü
15- M şeklindeki yol boyunca hareket edin
16- S şeklindeki yol boyunca hareket edin
17- Ambulans simülasyonu
18- Ultrasonik sensörün değeri
19- Bir engelin önünde otomatik olarak durma
20- Engel Algılama
21- Çizgi takip sensörü değeri
22- Beni aşağı indir !
23- Kenar tespiti
24- Basit çizgi takip programı
 
Son düzenleme:
1- Yanıp Sönme

Yerleşik LED ışığı 1 saniye kırmızı renkte yanıp söner ve 1 saniye bekler. Bu işlem 10 kez tekrarlanır.

Donanım Gereksinimleri: mBot veya mCore Mikrodenetliyici Kartı.

Uygulama: Programı Arduinoya Yükle

Örnek program için tıkla...

p1.png

Ekran Alıntısı1.JPG


2017-07-11_18_21_31.gif

Örnek Program:
blink.JPG

Komut dosyası açıklaması:
aciklama.JPG

Bilgi Noktaları:
Örnekteki iki 1saniye.JPG bloğunu silersek ne olur?
Program Arduino'ya yüklendiğinden, görüş süresinden daha hızlı (yaklaşık 0,05 saniye) bile çok hızlı çalışır. Silerseniz, ana kontrol panosu hızlı bir şekilde “kırmızı LED ışığı açıp kapat” programını çalıştırır, ancak gözünüz yanıp söndüğünü göremez. Yanıp sönen ışığı görmek için, LED ışığın açılıp kapanmasını kontrol eden komut dosyasının sonuna bir bekleme süresi eklemeniz gerekir.

Lütfen aşağıdaki komut dosyalarını ve etkilerini karşılaştırın:

kod.JPG

Genişletilmiş görevler:
Görev 1: Yerleşik LED'in yanıp sönme frekansını artırmak için örnek komut dosyalarını değiştirin (programı Arduino'ya yüklemeniz gerekir).
 
Son düzenleme:
2- Alternatif yanıp sönme
Soldaki dahili LED ışığı 1 saniye mavi yanar ve söner ardından sağdaki ışık 1 saniye mavi yanar ve söner. Bu işlem durmadan tekrar eder.

Örnek Program

jiao-ti-shan-shuo.gif


Kod Blokları:

2.JPG


Blok Açıklamaları:

script.JPG


Lütfen aşağıdaki senaryo ve etkilerini karşılaştırın:

Ekran Alıntısı.JPG


Genişletilmiş görevler:
Yerleşik LED ışığının renginin kırmızı ve mavi arasında yanıp sönmesini sağlamak için örnek komut dosyasını değiştirin. (programı Arduino'ya yüklemelisiniz)
 
3- Karışık renk
Yerleşik LED ışıkları, her biri 1 saniye boyunca kırmızı, sarı, yeşil, masmavi, mavi, pembe ve beyaz renklerini gösterir. Bu işlem sürekli tekrarlanır.
Örnek Program
cai-deng.gif

kodlar.JPG

Kod Açıklaması:
Ekran Alıntısı.JPG

Bilgi Kırıntıları:
Ekran Alıntısı.JPG

Yerleşik LED'in renk ve ışık değerleri için RGB renk haritasına başvurabilirsiniz (değer ne kadar büyükse, ışık o kadar parlaktır ve karışık renk tek renkten daha parlaktır. Göz kamaştırmayı önlemek, rengi ve ışığı daha iyi tanımlamak için 40 değerinin altında olmalıdır). Aşağıdaki tabloda RGB değerlerinin 10 a bölünüp sonrasında en yakın onluğa yuvarlandığı görülmektedir.
Ekran Alıntısı.JPG

Genişletilmiş görev

Sizde güzel ışık efektleri yapmak için RGB renk tablosunu kullanarak bir örnek yapın. (Programı Arduino'ya yüklemeniz gerekmektedir.)
 
Son düzenleme:
4- Rastgele renk

Rastgele sayıları kullanarak, dahili LED'lerin renklerini her 1 saniyede bir rastgele değiştirin.

Örnek Programı İndir

sui-ji-yan-se.gif


Bloklar:

Ekran Alıntısı.JPG


Kod Açıklaması:
Ekran Alıntısı.JPG


Bilgi Kırıntıları:
Rastgele sayı, her seferinde üretilen sayının belirsiz olduğu ve önceden üretilen ile hiçbir ilişkisi olmadığı anlamına gelir. Örneğin, bir zar atmanın sonucu, sonuç 1 ile 6 tam sayısı arasında olduğu için rastgele olarak kabul edilebilir.
Mblock rastgele sayı bloğu "-", "+" ve ondalık değer alabilir.
Ekran Alıntısı.JPG


Genişletilmiş görev:
Dahili LEDleri sağ ve sol ayrı ayrı olmak üzere rastgele yakıp söndürün.
 
Son düzenleme:
5- Çalmak için düğmeye bas
Dahili düğmeye basıldığında, sesli uyarı verir; Bırakıldığında sesli uyarı durur.

p2.png


Örnek Program için tıkla...

Kod Blokları:
Ekran Alıntısı.JPG


Kod Açıklaması:
Ekran Alıntısı.JPG

Bilgi Kırıntıları:
Günlük hayatımızda, insanların sıcak havalarda kısa kollu tişört giymek veya soğuk havalarda kalın kıyafetler giymek gibi koşullara göre farklı işleri seçmeleri veya yürütmeleri gerekir. Burada hava sıcaklığı bir şarttır. Tişört giymeniz, ya da kalın giysiler giymeniz, hava sıcaklığının değerlendirilmesine bağlıdır. Bir robot için, ise bir engelden önce dönmek veya önünde bir engel yoksa ileri doğru hareket etmek yine bir koşula bağlıdır. Engel olup olmadığı bir koşul olup, ileri veya geri hareket edip etmeme karar ardından yürütülen bir sonuçtur.
Mblock "eğer <> ise" bloku, koşul sağlanıyorsa, içindeki komut dosyasını çalıştırır. Bu örnekte, "koşul yerleşik düğmeye basılıp basılmadığı" dır; doğru olduğunda, yerleşik zil bir nota çalar ve doğru olmadığında hiçbir şey yapılmaz.

Eğer "sürekli tekrar" bloku kullanılmasaydı ne olurdu?
Yerleşik düğmenin durumu program çalışırken her zaman kontrol edilmesi gerektiğinden, “sürekli tekrarla” blokunu kullanmanız gerekir. Eğer “sürekli tekrarla” kullanmazsanız, program başladığında, bir kez hızlı bir şekilde kontrol edilecek ve çalışmayı durduracak. Sonrasında yerleşik düğmeye basılması zili kontrol etmeyecektir.
 
6- Müzik parçası çal

Dahili düğmeye basınca dahili zilden küçük yıldız şarkısını çalmak.

p2.png


Örnek Program İçin Tıkla

Kod Blokları:
Ekran Alıntısı.JPG


Kod Açıklaması:
Ekran Alıntısı.JPG


Bilgi Kırıntıları:
mBlock ses blokunda ton ve ritmi belirten iki açılır menü vardır.
1) Ton menüsünde C / D / E / F / G / A / B tonun adını tanımlar, C majörü Do / Re / Mi / Fa / So / La / Si ile eşleştirilir. Bir tonun ardındaki sayı ise farklı perdelerdir, standart orta C için C4, yüksek oktav için C5 ve düşük oktav için C3'tür.
2) Vuruş menüsünde yarım vuruş, çeyrek vuruş, sekizde bir vuruş, tam vuruş ve çift vuruş seçenekleri vardır.

Ekran Alıntısı.JPG


Acaba
Ekran Alıntısı.JPG
yerine
Ekran Alıntısı.JPG
kullanabilir miyim?
Hayır. Komut dosyasını aşağıdaki şekilde gösterildiği gibi yeniden yazarsanız ve “Eğer” ve “ise” kullanırsanız, program yerleşik düğmeye basılıp basılmadığını hızlı bir şekilde kontrol eder; değilse, koşul doğru olana kadar beklemeden otomatik olarak ilerleyecektir. Bu yüzden iki kod blokunu değiştirirseniz örnek etkileri elde edemezsiniz.
Ekran Alıntısı.JPG

Değiştirme yaptığınızda örnek efektler elde edilemez!

Genişletilmiş görev: Herhangi bir parçayı mBlock kodları ile çalınız.
 
7- Ambulans sesi
Yerleşik düğmeye her bastığınızda yerleşik zil ambulans sesi çalar.

p2.png


Örnek Program İçin Tıkla

Kod Blokları:
Ekran Alıntısı.JPG


Kod Açıklaması:
Ekran Alıntısı.JPG


Bilgi Kırıntıları:
1- Ambulans ses efektleri, 950 Hz'lik yüksek frekanslı ses ve 700 Hz'lik düşük frekanslı ses ile iki seste yüksek frekans ve düşük frekanstan oluşur. Yüksek frekanslı ses 0,6 saniye, düşük frekanslı ses 0,4 saniye sürer. Alternatif olarak yüksek ve düşük frekanslı sesler çalınır.
2- mBlockta ton frekansları iki şekilde gösterilebilir;
Ekran Alıntısı.JPG
ile
Ekran Alıntısı.JPG
aynı işlevi görür.
3- Bir ton çalma blokundaki ritm, sesin ms cinsinden süresidir.
Ekran Alıntısı.JPG
ile
Ekran Alıntısı.JPG
aynı işlevi görür.

Genişletilmiş Görev: Bu örnekte
Ekran Alıntısı.JPG
yerine
Ekran Alıntısı.JPG
kullanılabilir mi?
 
8- Ses Değişimi
Yerleşik zil yükselen bir ses çıkartır.

p2.png


Örnek Program İçin Tıkla

Kod Blokları:
Ekran Alıntısı.JPG


Kod Açıklaması:
Günlük hayatta, bir şişeye su döktüğümüzde çıkan ses gibi, bazı düzenli yükselen tonlu frekansları duyarız. Ton, bazı frekanslar arasında değişiyorsa (sadece iki frekansı olan (yüksek ve alçak olan ambulans gibi)), ton çalma bloğundaki frekans değerini doğrudan tanımlayabiliriz. Ancak, frekans büyüklüğü küçük ancak aralığı genişse, bu yöntem için çok uzun bir programa ihtiyaç vardır. Dolayısıyla, bu değerlerin düzenli olarak değiştiği bir program yapmak için “değişken” bir blok kullanabiliriz. Böylece kullandığımız kod kısalacaktır.

Ekran Alıntısı.JPG


Bilgi Kırıntıları:
Değişken tanımlaması
Ekran Alıntısı.JPG
kısmından yapılır. Değişken tanımlandığında aşağıdaki bloklar oluşur;
Ekran Alıntısı.JPG

Görüldüğü üzere değişken ilk oluştuğunda "0" değerine sahiptir.
Örnek programımızda "f" değişkeninin başlangıç değerini 500 yapıp 50 sefer 20 artırıyoruz yani en son aldığı değer: 500+20*50=1500Hz'tir.

Genişletilmiş Görev:
Sizde frekansı azalan bir örnek yapınız.
 
10- İtfaiye sesi
İtfaiye motorlarının ses efektlerini taklit etmek için dahili zili kullanma.

p2.png


Örnek Program İçin Tıkla

Kod Blokları:
Ekran Alıntısı.JPG


Kod açıklaması:
Çevrimiçi veriler, itfaiye sireninin düşük frekanslı sesinin 650Hz ile 750Hz arasında ve yüksek frekanslı sesinin 1450Hz ile 1550Hz arasında olduğunu gösteriyor. Siren sesi, aşağıdaki desen tekrarlanarak üretilir: düşük frekanslı ses, 1,5 saniye içinde yüksek frekanslı bir sese yükselir ve ardından 3,5 saniye içinde daha düşük frekansa düşer. Bu nedenle, itfaiye aracı siren sesleri programatik olarak aşağıdaki gibi simüle edilebilir:
düşük frekansı 700Hz olarak ayarlayın ve daha sonra yüksek frekanslı sesi 1500HZ olacak şekilde ayarlayın, zil sesi tekrar tekrar 700Hz ila 1500Hz arasında ve ardından 700Hz'ye kadar çalın. Amplifikasyon süresinin düşme süresine oranı 1,5: 3,5'tir, bu değer 3: 7'dir, bu nedenle frekans yükseltmesinin düşmeye oranı 7: 3 olmalıdır. Böylece itfaiye sesini taklit etmiş oluruz.

Bilgi Kırıntıları:
Neden “f = 1500” değil “f> 1500” e kadar tekrarlayın kullandık?
Bunun nedeni, itfaiye motorunun ses efektlerini taklit etmekte olan örnekte, 700Hz'den 1500Hz'ye yükseltildiğinde her seferinde sondaj süresinin tanımlanması zordur ve frekansın her arttırılmasında ne kadar bir artış olması gerektiğidir. Bu yüzden parametreleri ayıklamak zorunda kaldık. F = 1500'ü ayarlarsak, son frekansın 1500'e ulaşması gerekir, eğer farklı bir değer olursa döngüyü kırabilir, veya hata ayıklamayı zorlaştırarak tekrar tekrar artar. Bu yüzden f> 1500 kullanıyoruz ve frekans 1500'ün üzerindeyse, döngü bozulacak ve frekansı düşüren bir sonraki program yürütülecektir.

Genişletilmiş Görev:
Sizde polis arabasının ses efektlerini taklit edin:
Düşük frekanslı ses 650Hz ile 750Hz arasında ve yüksek frekanslı ses 1450Hz ile 1550Hz arasındadır. Düşük frekanslı bir sesi yüksek frekanslı bir sese yükseltip 0.23 saniye sonra yüksek frekanslı sesi düşük frekanslı bir sese 0,1 saniye sonra düşürmelisin.
 
11- ışık sensörü değeri
Yerleşik ışık sensörünü değerini anlık olarak görtermek.

p5.png


Örnek Program İçin Tıkla

Kod Blokları:
Ekran Alıntısı.JPG


Kod Açıklaması:
Bu örnekte ışık sensörünün değerlerini yakalamayı ve görüntülemeyi göreceğiz. Sahne ile etkileşime girileceğinden kodu arduino modda yükleme yapmayın!

Ekran Alıntısı.JPG


Bilgi Kırıntıları:
Sensörler, ortamdaki olayları veya değişiklikleri tespit etmek ve diğer elektronik cihazların elektronik bileşenlerine bilgi göndermek için kullanılır. Program çalışırken ve hata ayıklama yaparken, ortamın ışığını, sesini, mesafesini ve diğer bilgileri anlamamıza yardımcı olmak için gerçek zamanlı sensör değerlerini toplamak gerekir.
Işık sensörü değer aralığı: 0 ~ 1000'dir, güneş ışığı altında (> 500), akşam (0 ~ 100), aydınlatma (100 ile 500)'dür.
Eğer "sürekli tekrarla" bloğunu kullanmasaydık ne olurdu?
"sürekli tekrarla" bloğu, ışık sensörünün gerçek zamanlı değerleri göstermesini sağlayabilir veya yalnızca başlangıç değerlerini sürekli olarak görüntüleyebilir.
Ayrıca, ortam ışığı sabit değilse (örneğin, floresan lamba), sensör değerlerinin hızlı değişimini görebilirsiniz. Şimdi değer değiştirme hızını azaltmak için "1 saniye bekle" bloğu eklenebilir ve değişikliği net bir şekilde görebilirsiniz.
 
12- Sahne arka plan parlaklığı
Ortam ışığı değiştikçe mBlock sahne arka plan parlaklığı da değişir.

Uygulama:
Çevrimiçi hata ayıklama (seri / Bluetooth bağlantısı)

p5.png


Örnek Program İçin Tıkla

Kod Blokları:
Ekran Alıntısı.JPG


Kod Açıklaması:
Ekran Alıntısı.JPG


Bilgi Kırıntıları:
Işık sensörünün parlaklık aralığı, sahne alanı arka planından farklı olduğundan dönüşüm gereklidir. Işık sensörü değeri 0 ile 1000 arasındadır. Çevredeki ortamın parlaklığı arttıkça, değer de artar. mBlock sahne arka plan parlaklığı -100 ile 100 arasındadır. Parlaklık kademeli olarak -100 ile 100 arasında değiştiğinde, arka plan siyahtan saf beyaza değişir. Işık sensörünün değer aralığı sahne alanı arka planından farklı olduğundan, ışık sensörü değerlerini sahne alanı arka planı ile eşleştirmek için dönüşüm gerekir (ışık sensörünün değeri / 5-100)
Ekran Alıntısı.JPG
 
13- Kızılötesi iletişim
mBot1'in yerleşik düğmesine bastığınızda ses çalar ve mBot2'ye iletişim sinyalleri gönderir. mBot2 sinyalleri alır, sonra ses çıkarır ve yerleşik ledler yanar.

p6.png


mbot1 Programı İçin Tıkla mbot2 Programı İçin Tıkla

Kod Blokları:
Ekran Alıntısı.JPG


Kod Açıklaması:
Bu örnek, mCore onboard IR alıcısı ve IR vericisi kullanılarak uygulanır.
İki mBot / mCore hazırlayın ve Program 1'i mBot1 / mCore1'e, Program 2'yi mBot2 / mCore2'ye yükleyin.
Program 1 - Bir mesaj gönderme: Sadece on butonuna basın mBot1 / mCore1 ses çalar ve yerleşik kızılötesi gönderici tarafından bir mesaj gönderir. Mesajın içeriği özelleştirilebilir. Bu örnekte mesaj “s” olarak ayarlanmıştır.
Program 2 - Mesajları alma: “s” mesajı alındığı sürece, mBot2 / mCore2 yerleşik led kırmızı ışık verir ve sesli uyarı duyulur.
Başka mBotlar varsa, gönderilen / alınan mesajlar aynı olduğu sürece, birden fazla mBot / mCore arasında iletişim kurmak ve etkileşimde bulunmak için örnek programı kullanabilirsiniz.

Bilgi Kırıntıları:
Kızılötesi iletişimde karakterler:
Çocuklar için Blok programlamada tanımlanan mesaj bir sinyal olarak kullanılır. Program karmaşık olduğunda hata yapmaktan kaçınmak için mümkün olduğunca az yer kaplayan ve Türkçe karakter içermeyen mesajlar kullanılmalıdır.
Neden
Ekran Alıntısı.JPG
bloğunu kullandık:
Ekran Alıntısı.JPG
bloğu bir sinyalin kızılötesi iletişime uygun olup olmadığını belirlemek için kullanılır. Bu durumda bir
Ekran Alıntısı.JPG
bloğuyla değiştirilemez.
Ekran Alıntısı.JPG
bloğunu kullanabilmek için "uzantılar"->"communication" uzantısını aktif etmeniz gerekir.
Adsız.jpg


Genişletilmiş Görev:
Kod bloklarını mBot1'in düğmesine basınca değil güçlü bir ışık algılayınca mesaj göndermesini sağlayın.
 
14- Hareket, ses ve ışık kontrolü
Bilgisayar klavyesinde ↑ tuşuna bastığınızda mBot ileri hareket eder; "boşluk" tuşuna bastığınızda mBotun yerleşik ledi yeşil yanar; 1 tuşuna bastığınızda mBotun yerleşik zili çalar.

mbot.png


Uygulama: Çevrimiçi hata ayıklama (seri / Bluetooth bağlantısı)

Örnek Program İçin Tıkla

Kod Blokları:
Ekran Alıntısı.JPG


Kod Açıklaması:
Ekran Alıntısı.JPG


Bilgi Kırıntıları:
Eğer hız 255'in üzerine ayarlanırsa, otomatik olarak maksimum hız olan 255 olarak ayarlanır.

Genişletilmiş Görev:
mBot'un programını bir tuşa basınca hem hareket edecek hemde ses çalacak şekilde ayarlayın.
 
15- M şeklindeki yol boyunca hareket edin
Yerleşik düğmeye basın ve mBot M şeklindeki bir parçada hareket eder.

Örnek Program İçin Tıkla

Kod Blokları:
Ekran Alıntısı.JPG


Kod Açıklaması:
Ekran Alıntısı.JPG


Bilgi Kırıntıları:

MBot izini 4 bölüme ayırın;
Bölüm 1: Düz hareket etmek.
Bölüm 2: Sağa dönüp düz hareket etmek.
Bölüm 3: Sola dönüp düz hareket etmek.
Bölüm 4: Sağa dönüp düz hareket etmek.
İleriye doğru hareket hızını 0'a ayarlayarak mBot'u durdurun.
M-zi-gui-ji.png


Not: MBot’un hızını ileriye gitme, sola dönme, sağa dönme ve bekleme süresi, hareket ettiği mesafe ve dönme açısı ayarlanabilir. Genel olarak uygun bir açı elde etmek için birçok kez denemeniz gerekir. Ayrıca, hareket ettiği toprak ve motor gücü (elektrik hacmi) gibi koşulları da göz önünde bulundurmalısınız. Bu örnekteki parametreler referans içindir.

Örneğin “Bölüm 2: Sağa dönme ve dümdüz hareket etme”, beyaz bir kağıda mBot koyun ve 150 hızında 1 saniye boyunca sağa dönme gibi uygun bir değer girin. Beyaz kağıda döndükten sonra mBot yönünü çizin. Açı çok büyükse, sağa dönüş süresini azaltırsınız; çok küçükse, sağa dönüş süresini artırırsınız. Bu adımları tekrarlayın ve uygun bir değer elde edin.

Görev 1: mBotu "Z" şeklinde bir düzlemde hareket ettirin.
Görev 2:mBota farklı hareketlerde farklı tepki veren ışık ve ses blokları ekleyin.
 
Geri
Üst