mBot Eğitim Bölüm1

Kodla Büyü
MBlock Programını İndirme, Sürücüleri Kurma ve Bağlama

1-İndir.
2- Yazılımı kurun ve açın.
3- Arduino sürücüleri edinin. PC kullanıcıları için, M-block içinde Bağlan menüsüne gidin:

Adsız.png

4- Robotunuzu bilgisayarınıza USB kablosuyla bağlayın, robotunuzu açın ve mBlock'u açın. Bağlan-> Seri Port -> (port ID) seçeneğine gidin. (İPUCU: Bağlandığınız bağlantı noktası kimliğini bilmiyorsanız, kullanılabilir bağlantı noktalarını not edin, robotunuzun bağlantısını kesin ve hangi bağlantı noktasının kaybolduğunu görün.) Başarıyla bağlandığınızda, başlık çubuğu bağlandığınızı söyleyecektir. “Robotlar” Komut bloklarındaki kırmızı nokta yeşile dönecektir:
Ekran Alıntısı.JPG

Not: Aygıt yazılımını güncellemek, varsayılan programı sıfırlamak ve robot panosuna bir program yüklemek için USB üzerinden bağlanmanız GEREKİR.
5- Ardından, Kart menüsünde uygun devre kartının seçildiğinden emin olun:
Adsız.png

Burada mBot kullanıyorum, bu yüzden mCore kartı seçildi:

Şimdi programlamaya başlamaya hazırsınız.

Hayallerinizi İnşa Edin!
 
MBlock IDE'den veya Panoya Yükleyerek Çalıştırma

mBlock IDE
MBlock IDE'de bir program çalıştırırken, komutlar bilgisayardan robot panosuna gönderilir, burada yorumlanır ve ardından yürütülür. Bu, kullanıcıların bilgisayarlarını robotla birlikte kullanabilecekleri anlamına gelir. Örneğin, robotu kontrol etmek için klavyeyi kullanabilirsiniz:
Ekran Alıntısı.JPG

Web kameranızı, mBlock IDE'deki sahneyi ve daha fazlasını da kullanabilirsiniz.

MBlock IDE'yi kullanma konusundaki dezavantajlardan biri, bilgisayar ve robotun mesajlarını birbirine ilettiği için, bu mesajların ileri geri gitmesi biraz zaman aldığından, hafif bir gecikme yaşanmasıdır. Birçok programda, bunun robotun nasıl çalıştığı üzerinde büyük bir etkisi olmaz, ancak diğerleri üzerinde, örneğin çizgi izleyen bir programda, programın istediğimiz şekilde çalışmadığı anlamına gelir.

Dikkate alınması gereken bir diğer şey, eğer mBlock IDE'den çalışıyorsanız, elbette bir bilgisayara ve bir bilgisayar bağlantısına ihtiyacınız olacak. Bluetooth veya 2.4G modülünüz varsa, kablosuz iletişim kurabilirsiniz, ancak yoksa, robotun bilgisayara her zaman USB kablosu ile bağlanması gerekecektir.

Programları mBlock IDE üzerinden çalıştırmak istediğinizde, başlamadan önce “Aygıt Yazılımını Güncellemesi” ni seçin. Bağlan-> Aygıt Yazılımını Güncellemesi:
Adsız.png

Bu, şu anda robot panosundaki programların üzerine yazarak, bilgisayarın ve robotun doğru şekilde iletişim kurabildiğinden emin olmasını sağlayan ürün yazılımı üzerine yazacaktır. MBot Ranger'ı kullanıyorsanız, “Bluetooth modu” nu da seçmeniz gerekir:
select-bt-mode-for-ranger.png

Robot Panosu
Robot panosuna yüklenince program bağımsız olarak çalışır. Bu, yalnızca mBlock ortam programlamasıyla (“Hareket” ve “Görünümler” gibi) ilgili olan tüm blokların kullanılamadığı anlamına gelir. Avantajı ise, kod karta yüklendiğinden, sensörleri okumak ve buna göre hareket etmek arasında bir gecikme olmaz. Arduino kartına bir program yüklemek istediğinizde, Arduino moduna geçmelisiniz. Bunu menüden seçerek yapabilirsiniz:
auriga-program.png
orion-program.png
megapi-program.png
mBot-program.png

Arduino moduna girerken sahne düzeni (pandaların solda olduğu yer) gizlenir ve Arduino kodu sağda gösterilir. Bunun yanı sıra, yalnızca mBlock ortam programlamasına (“Motion” ve “Looks” gibi) uygun olan tüm programlama komut dosyaları gri renktedir. MBlock programınızı yazarken, Arduino kodu Arduino düzenleme penceresinde otomatik olarak oluşturulur.
Adsız.png

Programınızı yazmayı tamamladığınızda, “Arduino'ya Yükle” düğmesine tıklayın; program başarıyla yüklenir yüklenmez çalışmaya başlayacaktır.
tempsnip.png

NOT: Bir programı robot panosuna yükledikten sonra, aygıt yazılımı güncellemesi ya da arduinoyo kod yükleme gibi, önceden yüklenmiş olan varsayılan programın üzerine yazmış olacaktır. Bu programı tekrar kullanmanız gerekirse, Bağlan-> Varsayılan Programı Sıfırla -> (Robot Adı) bölümüne gidin:
tempsnip.png
 
USB, Bluetooth veya 2.4GHz ile Bağlantı
Programları mBlock IDE'den çalıştırmak istiyorsanız, Bluteooth, 2.4GHz (veya USB) üzerinden bağlayabilirsiniz.
USB kablosu:
1-Robotunuzu bilgisayarınıza USB kablosuyla bağlayın, robotunuzu açın ve mBlock'u açın.
2-Başlık çubuğunun bağlantınız kesilmiş olduğunu söylemelidir.
Windows:
connected.png

Mac:
mac.png

2.4GHz Modülü
2.4GHz modülünü ilk kez kullanıyorsanız, dongle ile elektronik modülü eşleştirmeniz gerekir:

1- 2.4GHz modülünü robot kartına yerleştirin.
2- Robotunuzu açın.
3- 2.4GHz modülünün üstündeki düğmesine basın.
Donanım kilidini bilgisayarınıza takın.
Modül üzerindeki LED'in yanıp sönmesi durduğunda, bileşenlerin başarıyla eşleştirildiği anlamına gelir.
Başarıyla eşleştirildikten sonra mBlock'u açın. Başlık çubuğu, bağlantınız kesildiğini gösterecek:
Ekran Alıntısı.JPG

Bağlan -> 2.4G Seri -> Bağlan'ı seçmeniz gerekir.
Adsız.png

Bluetooth
1- Robotunuzun açık olduğundan, Bluetooth modülünün karta doğru şekilde takıldığından ve mavi LED'in yanıp söndüğünden emin olun.
2- Başlık çubuğu bağlantınızın kesilmiş olduğunu söylemelidir.
Ekran Alıntısı.JPG

3- O zaman bağlanmaya hazırsınız:
Windows:
bt-connect.png

Mac:
Sisteminizin Bluetooth menüsünde “Makeblock” ile eşleştirin ve bağlanın. Ardından robotunuzu Seri Port menüsünde bulun.
 
Müzik Çal
Robotumuzla yapabileceğimiz en havalı basit şeylerden biri nota çalmaktır. Bir nota sadece bir sestir, ancak doğru notaları doğru sırayla bir araya getirdiğimizde bir başyapıtımız olur.
Haydi Başlayalım:

İlk önce nota çalalım. Herhangi bir nota.
Ekran Alıntısı.JPG

Bu bloğu programlama alanına sürükleyip bıraktım. Ve sonra tıkladım. Ve bir nota çaldı. Müzik demek, hayal gücünün bir parçası, ancak bir nota yeterli değil. Bu yüzden başka bir nota daha ekledim.
Adsız.png

İkinci blogu ilk bloğun altına sürüklediğimde, ilk bloğun altı beyaz olur. Bu, “bıraktığımda” birbirlerine uyacakları anlamına geliyor. Ayrıca notanın vuruşunu ve perdesini de değiştirebilirim. İşte, ikinci notanın vuruşunu değiştiriyorum:
Adsız.png

Tamam, şimdi daha fazla nota istiyorum. Daha fazla nota için, aynı “çalma sesini….” Sürükleyip bırakmak yerine yapabileceğim bir kısayol, kopyalayıp yapıştırmaktır. Programlama alanındaki bloklara sağ tıklarsam, bana bir menü gösterir:
Adsız.png

“kopyasını çıkart” seçildiğinde bloklar kopyalanır. Bunun, tıkladığım blok da dahil olmak üzere aşağıdaki tüm blokları çoğaltacağını unutmayın. Bu yüzden, alt bloğu tıklamış olsaydım, sadece bir blok kopyalanırdı. Üst bloğu tıkladığımda her iki blok da kopyalandı:
Adsız.png

Şimdi onları şarkımın sonuna ekleyebilirim:
Adsız.png

Ve geliştirmeye devam edin:
Ekran Alıntısı.JPG

Tamam. Şimdi duraklatmak istiyorum. Bu yüzden farklı bir bloğa ihtiyacım var. Beklemem gerek “Kontrol” blokları altında, “1 saniye bekle” bloğu var:
Ekran Alıntısı.JPG

Bunu şarkımın sonuna ekleyeceğim, sonra ilk yarıyı birkaç değişiklikle tekrarlayacağım:
Ekran Alıntısı.JPG

Kod yazmanın önemli bir yönü de yorumlardır. Bir programın nasıl çalıştığını etkilemese de, kodu okuyan insanlara çok yardımcı olurlar. Bu, başlangıçta kodu yazdıktan aylar sonra kodun ne işe yaradığını hatırlamanız veya sizinle aynı projede çalışan diğer insanlara rehberlik etmek için tüm programlara dahil edilmelidir. Yorum eklemek için, yorum eklemek istediğiniz bloğa sağ tıklayın ve ardından "yorum ekle" yi seçin:
Adsız.png

İşte şarkıma yorumlar ekledim:
Ekran Alıntısı.JPG

Tüm programlarınıza yorum eklediğinizden emin olun ve programlarda değişiklik yaparsanız gerektiğinde yorumları güncelleyin.

Meydan okuma:
Şarkının ne olduğunu biliyor musun?
Şarkıyı bitirebilir misin?
Güncelleştirilmiş durumu yansıtacak şekilde yorumları değiştirebilir misiniz?
“Merry Christmas” şarkısını yazabilir misiniz? (Yorum eklediğinizden emin olun)
Kendi şarkını yazabilir misin? (Yorum ekle)


Hayallerinizi İnşa Edin!
 
Led Yakma
MCore kartında 2 adet RGB LED vardır. RGB, Kırmızı-Yeşil-Mavi ve LED Işık-Yayan Diyot anlamına gelir. Her bir LED'e (kırmızı, yeşil ve mavi) 0'dan (ışık kapalı) 255'e (tam güç açılmış ışık) ışık seviyesi atanabilir. Bu ışıkları birleştirerek, çok çeşitli renkler oluşturabilirsiniz:
LED-lights-on-wall.jpg

Yerleşik LED'lerle çalışmak için bu bloğu sürükleyip bırakmam gerekiyor:
Ekran Alıntısı.JPG

İlk açılan menü bana hangi Ledleri kontrol etmek istediğim konusunda bir seçenek sunuyor. MBot'ta 3 seçenek var:
Adsız.png

Tüm LED'leri kontrol etmek istiyorum, bu yüzden “hepsini” seçeceğim. Diğer 3 açılır menü, LED'in ilgili rengi ne kadar parlak gösterdiğini kontrol etmenizi sağlar. Size 0, 20, 60, 150 ve 255 seçenekleri sunar, ancak bunların hiçbiri sizin için iyi değilse, istediğiniz değeri de yazabilirsiniz. LED'imin kırmızı değerini 35 olarak ayarlayacağım ve LED'lerin yandığını görmek için bloğu tıklayacağım.
Ekran Alıntısı.JPG

Robotun bir polis arabası gibi ışığının yanıp sönmesi, kırmızıdan maviye ve maviden kırmızıya dönmesi eğlenceli olabilir. Bunun sonsuza dek sürmesini istiyorum. Neyse ki, “Kontrol” Kodlarında “sürekli tekrarla” adında bir blok var:
Ekran Alıntısı.JPG

Gördüğünüz gibi, bu bloğun şekli şu ana kadar gördüğümüz diğer blokların şeklinden farklı. Bunun nedeni, programın bir döngüye girmesine izin veren bir kontrol bloğu olmasıdır. Programlamada, döngü kodun bir kısmının tekrarlanmasına izin veren bir özelliktir. Bu örnekte, döngü sonsuza dek tekrar eder, “sürekli tekrarla” içindeki tüm blokları tekrar eder:
Ekran Alıntısı.JPG

LED'ler önce kırmızı, sonra mavi olacaktır. Sonra program döngünün en üstüne geri dönecek ve LED'ler tekrar kırmızı, sonra mavi, sonra tekrar dönecek, vb. Sonsuza dek ayarlanacaktır. Bu iyi…. Fakat ışıklar çok hızlı renk değiştiriyor. Bir “Bekle” bloğu ekleyerek onları yavaşlatacağım:
Ekran Alıntısı.JPG

2 bekleme bloğuna ihtiyacım olduğuna dikkat edin - biri kırmızı ve diğeri mavi LED'in yandığı döngünün dibinde.
Meydan okuma:
1- LED'lerin farklı ayarlarıyla oynayın. Hangi farklı renkleri yapabilirsiniz? RGB LED'in hangi ayarları bu renkleri oluşturur?
2- Sol LED'i ve sağ LED'i farklı zamanlarda en sevdiğiniz renge ayarlayan bir program yazabilir misiniz? Yani sağ LED açıksa sol LED kapalıdır ve bunun tersi de geçerlidir.
3- Müzik eşliğinde bir ışık gösterisi veren bir program yazabilir misiniz? Yorum eklemeyi unutmayın

Hayallerinizi İnşa Edin!
 
Kare Bir Şeklinde Hareket
NOT: Bu örneği uygularken veya kendi programınızı geliştirirken, robotunuzun tekerleklerinin herhangi bir yüzeyle temas etmediğinden emin olun aksi halde robotunuz çalışma masanızdan düşebilir!
DİĞER NOT: Bu örnekte, programları mBlock IDE'den çalıştırıyoruz. Robot panosunda hiçbir programı güncellemeyeceğiz.

Robotlar hareket etmek için yapılmıştır ve örnekte bunu nasıl yapacağınızı öğreneceksiniz. Robotun hareketini kontrol eden blokta 2 açılır menü var. İlk menü robotun hareket ettiği yönü kontrol eder:
Adsız.png

İkinci menü ise gücü kontrol ediyor. En yüksek güç 255'tir, 0 motorları durdurur ve negatif sayılar yönü tersine çevirir. (NOT: Düşük güç seviyeleri, robotun hareket etmesini sağlamak için yeterince güçlü olmayabilir.)

Bu yüzden, başlamak için, robotumun 100 hızında ileri gitmesini sağlayacağım:
Ekran Alıntısı.JPG

Robotunuzun tam olarak düzgün çalışmaması mümkündür. Bu, tekerleklerden birinin tam olarak hizalanmamasından veya tekerleklerden birinin robota daha sıkı bir şekilde bağlanmasının daha fazla sürtünmeye neden olması gibi birkaç nedenden dolayı olabilir. Bu durumda, ileri çalışma bloğunu motor güç seviyelerini ayrı ayrı ayarlayan 2 blokla değiştirerek düzeltebilirsiniz:
Ekran Alıntısı.JPG

Robotumun tekerlerinde sorun yok, bu yüzden “ileriye git” bloğunu kullanmaya devam edeceğim. Bir kare içinde hareket eden bir program yazmak istiyorum. Öyleyse bir saniye ileri gidelim, sonra sağa dönüp. 90 derece dönene kadar sağa dönmek istiyorum. İlk önce bir saniye dönmeyi deneyeceğim ve sonra bunun yeterli olup olmadığına bakacağım:
Ekran Alıntısı.JPG

Neden istediğim gibi çalışmadığını görebiliyor musun? Göremiyorsanız, okumadan önce neden bu kodu çalıştırmayı denemiyorsunuz?
Robot programı çalıştırır ve sonra bitirir. Sondan bir önceki komut sağa dönmektir. Sonra robot bir saniye bekler. Ardından program sona erer. Programın hiçbir yerinde motorlar kapalı değildir. Böylece motorlar çalışmaya devam eder. Motorları durdurmak için bir blok eklemem gerekiyor:
Ekran Alıntısı.JPG

Ne kadar döneceğimi test etmek istediğimde, robotum biraz fazla uzaklaştı. Kodun ileriye doğru hareket eden kısmıyla ilgisi olmadığı için, kodun dönüş kısmını izole edeceğim. Bu, testi daha kolay ve daha hızlı hale getirecektir:
Adsız.png

Birkaç testten sonra robotumun 90 derece dönmesi için 0.65 saniyeye ihtiyacı olduğunu öğrendim. 90 derece dönmesi için gereken zaman birçok etkene bağlıdır. Örneğin, ne tür bir batarya kullandığınız, bataryanın ne kadar şarjlı olduğu, motor ve tekerlek arasında ne kadar sürtünme olduğu, dönüşün hız ayarı ve tekerlerin temas yüzeyleri gibi bu etkenlerin tümü 90 derece döndürmek için gereken süreyi etkiler. Bu yüzden, testlerinizi yaparken, farklı bir sayı elde etmeniz muhtemeldir.

Robotumun kare şeklinde hareket etmesi için 4 kez aynı hareketi yapması gerekiyor. Bir döngü kurmak için kullanabileceğim bir yineleme bloğu var. Tekrarlamak istediğimiz her şeyi “.. defa tekrarla” bloğuna koyun:
Adsız.png

Ve tekrar sayısını 4 olarak değiştirin:
Ekran Alıntısı.JPG

Meydan okuma:
1- Tekrar döngümdeki son hareket komutuna ihtiyacım var mı? Kodu daha düzenli hale getirebilir misiniz? Yani daha az komutla isteğimizi yapabilir mi?
2- Robotu dikdörtgenin içinde hareket ettiren bir program yazabilir misiniz?
3- Başlamadan önce uyarı sesi veren ve hareket halindeyken led yakan bir program yazmak için programınızı 2. adımdan itibaren genişletebilir misiniz?

Hayallerinizi İnşa Edin!
 
Çember Şeklinde Hareket
Bazen düz hareket veya keskin dönüş yapmak istemiyoruz (sola dönüş / sağa dönüş komutları gibi). Bu durumda “motor hızını ayarla” bloğunu kullanabiliriz:
Adsız.png

Bir motor (M1 - sol, M2 - sağ) ve bir güç seviyesi seçebiliriz (negatif güçler ters yönde hareket eder). Motorlara farklı değerler vererek robotumuzun dönmesini sağlayabiliriz. Aşağıdaki örnekte robot sol tekerin üstünde sola döner.
Ekran Alıntısı.JPG

Veya çember şeklinde hareket ettirebiliriz:
Ekran Alıntısı.JPG

Meydan okuma:

1- "8" şeklinde hareket edecek bir program yazınız.
2- İsminizin baş harfi şeklinde hareket eden bir program yazın.

Hayallerinizi İnşa Edin!
 
MBot Yarış
Yapı: Standart mBot (ultrasonik sensörü ve hat izleyiciyi kaldırabilirsiniz)

Program: Eğer panoya yüklerseniz, robotu kontrol etmek için uzaktan kumandayı kullanmanız gerekir. Programı mBlock ortamından çalıştırırsanız, robotu kontrol etmek için uzaktan kumandayı veya klavyeyi kullanabilirsiniz. Basit bir program kullandım ve mBlock ortamından çalıştırdım:
Adsız.png

Oyun: Robotunuzun yarışması için bir parkur tasarlayın ve yarışmaya başlayın.

Zorluk: Robotu kullanmak daha kolay olacak şekilde kodu değiştirebilir misiniz?

Hayallerinizi İnşa Edin!
 
Şarkı ve Dans

Bu robotla seçenekleriniz sınırsız. İstediğiniz herhangi bir şarkıyı çalan bir kod yazın. MBotun dans etmesini sağlayacak bir kod yazın. Programı mBlock Ide ortamından çalıştırın. Her bloğun üstüne bir “Yeşil Bayrak tıklandığında” bloğunu yerleştirin:

Adsız.png

Sonra Yeşil Bayrak'a tıkladığınızda, her iki kod bloğu aynı anda çalışır. Benim yazdığım program ile mBot'um müzikle dans ediyor:

Programımı indirebilir ve kendi kodlarınızla zenginleştirebilirsiniz.

Hayallerinizi İnşa Edin!
 
Sensörleri okumak
Bu bölümde, mBlock IDE'deki sensörlerden gelen değerlerin nasıl okunacağını öğreneceğiz. Özellikle ışık sensörü, ultrasonik sensör ve çizgi takip sensörü gibi.

Bir sensörün hangi değeri verdiğini bulmanın en kolay yolu, bir karaktere (varsayılan olarak panda) "söyletmektir". "Görünüm" bloklarında, "de" bloğu vardır:
Ekran Alıntısı.JPG

Tabii ki, pandadan “Merhaba!” Demesini istersek, panda “Merhaba!” Diyecektir. Neyse ki, bu metni okumak istediğimiz sensörün adıyla değiştirebiliriz. Bu kod ultrasonik sensör içindir:
Ekran Alıntısı.JPG

Çizgi takip sensörü:
Ekran Alıntısı.JPG

Ve yerleşik ışık sensörü:
Ekran Alıntısı.JPG

Takılıp sökülebilen sensörler için, seçilen bağlantı noktasının, sensörünüzü taktığınız bağlantı noktası ile aynı bağlantı noktası olduğundan emin olmalısınız.

Şimdi, bu bloğu tıkladığınızda size sensörün değerini söyleyecektir. Sürekli olarak güncellenmesi için, bu bloğu "sürekli tekrarla" bloğunun içine koymalısınız:
Ekran Alıntısı.JPG

Meydan okuma:

1-Farklı sensörlerin değerlerini aynı anda göstermenin bir yolunu bulabilir misiniz?
2-Tüm sensörler için olası değer aralığını bulabilir misiniz?

Hayallerinizi İnşa Edin!
 
Işık Sensörü
MCore kartı üzerindeki ışık sensörü ışığı ölçer - ışık ne kadar düşük olursa, değer yüksek, ne kadar yüksek olursa, değer o kadar düşük olur. Işık sensörünün değer aralığı 0-1023'dür.

Bu derste mBot çok fazla ışık olduğunu algılarsa bir nota çalması için programlayacağız ve çok fazla ışık olmadığını algılarsa farklı bir şekilde çalacak. Bunun için “IF” bloğuna ihtiyacımız olacak. Programlamada bir “IF” kullandığımız zaman, yazdıklarımızın 3 kısmı vardır:
1- “eğer” kendisi
2- Koşul
3- Koşul yerine getirildiğinde çalıştırılan kod.

Yani böyle bir şey yazmamız gerekiyor:

Eğer (koşul)
---- Bu kodu yap

Bu derste yapmak istediğim ilk şey, eğer karanlıksa, biraz ses çalmak. Yani durum “karanlık” ve kod “ses çal”:

Eğer (karanlık)
---- Sesi Oynat.

Işık sensörünün, 0 ile 1023 arasında bir değer döndürdüğünü, yüksek sayıların ışık ortamını temsil ettiğini unutmayın. 500'den daha az okunan bir ışık sensörünün karanlık bir ortamı temsil ettiğini söyleyebilirim. Böylece kodumuzu şöyle yazabiliriz:

Eğer (ışık sensöründeki değer, 500'den az ise)
---- Sesi Oynat.

Bunu kod bloklarıyla yazdığımızda:
1- Bir “eğer”
Ekran Alıntısı.JPG

2- Bir koşul. Bu örnekteki koşul 2 bölümden oluşmaktadır. “işlemler” Komut bloğundaki yeşil renkli olan "<" bloğuna ihtiyacımız var:
Ekran Alıntısı.JPG

3-Ve “Robotlar” bölümündeki ışık sensörü bloğuna ihtiyacımız var:
Ekran Alıntısı.JPG

“Işık sensörü 500'den az” koşuldur, bu nedenle ışık sensörü bloğunu “<” bloğunun sol tarafına yerleştirip ve sağ tarafına “500” yazalım. Mavi bloğu yeşil bloğun içine yerleştirirken, mavi bloğun sol tarafının yeşil bloğun uygun alanıyla aynı hizada olduğundan emin olun. Yeşil bloktaki boşluğun beyaz bir çizgisi varsa, mavi blok bırakılabilir:
Adsız.png

Ve bırakıldığında şöyle gözüküyor:
Ekran Alıntısı.JPG

3-Son olarak, koşul yerine getirildiğinde çalıştırılacak olan koda ihtiyacımız vardır:
Ekran Alıntısı.JPG

Bu kod bir araya getirildiğinde şöyle görünür:
Ekran Alıntısı.JPG

Bu kod çalıştığında, koşulu bir kez test eder ve ardından çalışmayı durdurur. Karanlıkta müzik çalmaya devam etmesini istiyorsak, "sürekli tekrarla" bloğunu ekleyebiliriz. Ayrıca, açıklayıcı bir yorum eklemeyi unutmayın:
Ekran Alıntısı.JPG

Peki ya karanlıkta C4 tonunu çalmak, ama ışıkta D4 tonunu çalmak istersem. Bunun için "eğer/ değilse" kontrol bloğunu kullanabiliriz:
Ekran Alıntısı.JPG

Meydan okuma:

1- Robotun ışıkta hareket ettiği ve karanlıkta durduğu bir program geliştirin.
2- Robotun karanlıkta dans ettiği ve ışığın aydınlıkta dinlendiği bir program geliştirin.
3- Işığa bağlı olarak robotun farklı hızlarda gittiği bir program geliştirin - ne kadar aydınlık olursa o kadar hızlı gitsin.
4- Birçok farklı nota çalan bir program geliştirin - ne kadar aydınlık olursa, frekans o kadar yüksek olsun.

Hayallerinizi İnşa Edin!
 
Ultrasonik Sensör

Ultrasonik sensör mesafeyi ölçer. “Gözlerden” biri bir ses iletir, diğeri sesin yankısının geri gelmesini bekler. Bu işlemin gerçekleştiği andan itibaren nesnenin sensörden uzaklığı hesaplanabilir. Ultrasonik sensörün değer aralığı 3-400 cm'dir. Bir nesne bu aralığın dışındaysa, sensör 400 değeri döndürür.

how-the-ultrasonic-works.png

Bu örnekte, robotun bir nesneye yaklaşana kadar ilerlemesini, daha sonra nesneden uzaklaşması ve yeni bir yöne gitmesini istiyorum:
Sürekli tekrarla:
---- Eğer Bir nesne tespit edilirse
---- ---- Yeni bir yöne dön
---- Değilse
---- ---- İleri git

Kodda şöyle gözüküyor:
Ekran Alıntısı.JPG

Bunu test ederken robotun bir nesneyle karşılaştığında yeterince dönmediğini fark ettim, bu yüzden dönüş sonrası bir bekleme komutu ekledim. Şimdi rastgele bir yöne dönmesini istiyorum - bazen sola bazen de sağa. Neyse ki, bunu yapmak için kullanabileceğim bir işlem bloğu var:
Ekran Alıntısı.JPG

Robot yalnızca sola veya sağa dönebilir, bu yüzden 0 ile 1 arasında rasgele bir sayı seçeceğim. Rasgele sayı 0 ise, robot sola döner. Rastgele sayı 1 ise, robot sağa döner. Böylece dönme davranışı şöyle görünecektir:
Ekran Alıntısı.JPG

Meydan okuma:

1- Tamamlanan programı yapmak için yukarıdaki kodu bir araya getirebilir misiniz?
2- Bir nesneyi takip eden bir program yazabilir misiniz? Böylece nesne çok yakınsa, robot geriye doğru gider, nesne uzaktaysa ileri doğru gider ve nesne algılanmazsa robot durur.

Hayallerinizi İnşa Edin!
 
Çizgi Takip Sensörü
line-follower-sensor.png

Çizgi takipçisi beyaz bir yüzeyi tespit edebilen 2 sensöre sahiptir (1-2 cm aralığında). IR (Kızılötesi) ışığı yayarak ve ne kadar geri yansıdığını kaydederek çalışır. Çok fazla yansırsa, beyaz bir yüzeye yakın olduğu düşülebilir. Biraz yansırsa, yüzeyin siyah olduğu veya sensörün bir yüzeye yakın olmadığı anlaşılabilir.

Parlak bir yüzey alıcıya fazla miktarda kızılötesi ışığı yansıtır:
Light-reflected.png

Karanlık bir yüzey, alıcıya az miktarda kızılötesi ışığı yansıtır:
Little-light-reflected.png

MBlock'ta çizgi izleyiciyle ilişkili 2 blok vardır:
Ekran Alıntısı.JPG

İlk blok, aşağıdaki değerlere bağlı olarak 0 ile 3 arasında bir sayı döndürür:
Ekran Alıntısı.JPG

İkinci blok ya doğru ya da yanlış dönecektir.
Robotumuzun siyah bir çizgiyi takip etmesini istiyorsak aşağıdaki yapıyı kullanmalıyız:
Eğer (Çizgi takip sensörü = 0)
---- ileri git
Değilse (Çizgi takip sensörü = 1)
---- Sola dön
Değilse (Çizgi takip sensörü = 2)
---- Sağa dön
Değilse (Çizgi takip sensörü = 3)
---- Sanırım kayboldum çizgi nerede?

Şimdi bunu mBlock ile kodlayalım:
Ekran Alıntısı.JPG

Ve işe yaramıyor - robot sıklıkla raydan çıkıyor. Bunun nedeni, bu programın mBlock IDE'den çalıştırılmasıdır. Sinyallerin ve komutların robottan bilgisayara gönderilip tekrar gelmesinin zaman aldığını unutmayın. Bu durumda, bu gecikme robotun çizgiyi takip etmesini engeller. Bu gecikmeyi azaltmak için bu programı robot panosuna yüklememiz gerekir. Sonra program düzgün çalışacaktır. MBot için “mBot programı” bloğunu kullanıyoruz, Arduino moduna girip “Arduino'ya Yükle”:
Ekran Alıntısı.JPG

Şimdi robot çizgiyi başarıyla takip ediyor.

Ekran Alıntısı.JPG
bloğunu kullanarak tekrar kodlayalım
Eğer ((Sağ siyah) VE (Sol siyah))
---- ileri git
Değilse ((Sağ beyaz) VE (Sol siyah))
---- Sola dön
Değilse ((Sağ siyah) VE (Sol beyaz))
---- Sağa dön
Değilse ((Sağ beyaz) VE (Sol beyaz))
---- Eyvah yolu kaybettim.
Dolayısıyla bunun için 2 koşulu birleştirecek bir “ve” bloğuna ihtiyacımız var:
Böylece son kod şöyle görünür:
Ekran Alıntısı.JPG

Meydan okuma:

1-Robot yumuşak bir şekilde dönmüyor. Neden? Tamir edebilir misin?
2-Robotun (beyaz) bir masa etrafında rastgele bir şekilde düşmeden hareket etmesi için bir program yazabilir misiniz? (Çizgi izleyici sensörün ışığın yansıtıldığını veya yansıtılmadığını tespit ettiğini unutmayın)
3- Bir çizgiyi izleyen VE nesnelerden kaçınan bir program yazabilir misiniz? Bir engel tespit edilirse, robot dursun ve nesnenin kaldırılmasını beklesin.

Hayallerinizi İnşa Edin!
 
Ultrasonik Theremin
Bir theremin, müzisyenin ellerinin bulunduğu yere göre nota çalan bir müzik aletidir. Yaklaşık 1929 yılında icat edilmiştir ve bu eğitim, ultrasonik sensörü kullanarak bir mBot Theremin'in nasıl yapıldığını incelemektedir.

Eğer Bir nesnenin uzaklığı 10 cm'den azsa
---- Yüksek not çal
Değilse Bir nesne 20 cm'den daha az uzakta ise
---- Daha düşük bir not çal
Değilse Bir nesne 30 cm'den daha az uzakta ise
---- Daha düşük bir not çal
Aksi takdirde ...

Kodumun başlangıcı şuna benziyor:
Ekran Alıntısı.JPG

Meydan okuma:

1-Programı bitirebilir misin? İstediğiniz kadar uzun veya kısa yapın ve daha sonra kendi müzik aletinizi çalın.
2-Yüksek notalar düşük notalardan daha hızlı çalar. Neden?
3-Programı daha az blokla daha etkili hale getirebilir misiniz?

Hayallerinizi İnşa Edin!
 
Sumo mBot
MBot'unuzu, antik Japon sumo güreşi savaş sanatına hazırlayın. Robotunuzu, rakibini aramak için programlayın (ultrasonik sensör ile) ve bulduğunda saldırı yapsın.

NOT: Bu ders, bir masada dövüşen 2 mBot ile kullanılmak üzere tasarlanmıştır. Lütfen robotların masadan düşebileceğini unutmayın. Bu faaliyette bulunurken herhangi bir hasarın olmamasını sağlamak için uygun önlemler alınmalıdır.

Çizgi takip sensörü tarafından döndürülen değerleri unutmayın:
ekran-alintisi-jpg.62574


Yani mBot'un davranışını etkileyen 2 farklı sensör var. Bunlar, aşağıdaki tabloda gösterilebilir:
Ekran Alıntısı.JPG


Şimdi açıkça tanımlanmış eylemlere sahibiz, programımız için bazı taslak kodlar yazabiliriz:

Sürekli {
---- iken (robot bir kenar tespit etmedi) {
---- ---- Eğer (bir düşman tespit edilirse)
---- ---- ---- Sürükle
---- ---- Değilse
---- ---- ---- İleri git
----}
---- Dön
}

Kodumuz şuna benziyor:
Ekran Alıntısı.JPG


Meydan okuma:

1- Farklı eylemleri bildirmek için LED'leri ve sesli uyarıyı kullanın.
2- MBot'un yarışmada daha iyisini yapması için kodu değiştirebilir misiniz?

Hayallerinizi İnşa Edin!
 
Değişkenlerle Renkleri Değiştirme
Her LED'in 3 farklı ışığı vardır - Kırmızı, Yeşil ve Mavi - her birine 0 ile 255 arasında bir değere atanabilir. Bu ana renkler kullanılarak elde edilebilecek renk çeşitliliği bu renk çarkında görüntülenmiştir:

LED-color-wheel.png


Bu derste, bu tekerlekteki tüm renkleri robotların LED'lerinde görüntülemek istiyorum. Taslak kodun ne olacağı hakkında bir fikriniz olsun. Işıklar tamamen maviye ayarlanmış olarak başlayalım ve tekerleğin etrafında saat yönünde (yani yeşile doğru) gidelim. Etrafta dolaşırken, mavi seviyesini azaltmamız ve yeşil seviyesini arttırmamız gerekiyor:

LED'i maviye ayarlayın.
Tamamen yeşil olana kadar tekrar edin:
--- mavinin seviyesi.
---- Yeşil seviyesini arttırın.

Bu kodumuzun başlangıcıdır. Ancak, bir sorun var. LED ayarlandıktan sonra, yeşil ve mavi seviyelerini “okuyamıyoruz”. Öyleyse bir sonraki döngüde, LED'lerin hangi değere ayarlanacağını nasıl bilebiliriz? Bir değişkene ihtiyacımız var.

Değişkenler bilgi depolanan yerlerdir. MBlock'ta değişkenler sayıları saklar. Her değişkene bir ad verilir. Ad, değişkenin ne tür bilgileri içerdiğini belirtecek şekilde seçilmelidir. Bu örnek için 3 değişkene ihtiyacım olacak:

kirmiziDegeri
yesilDegeri
maviDegeri

Yaygın bir isimlendirme kuralı, değişkenlerin ilk kelimenin küçük, sonraki tüm kelimelerin ilk harflerinin büyük, Türkçe ve boşluk karakteri içermeyecek şekilde tek bir sözcük olmalıdır. MBlock'ta bir değişken yapmak için, “Veri ve Bloklar” betiğine gidip “Bir Değişken Oluştur” u seçmeliyiz:
Ekran Alıntısı.JPG


Düğmeye bastığınızda, sizden bir isim isteyecektir:
Ekran Alıntısı.JPG


Değişkenin tutacağı bilgiyi tanımlayan bir isim seçtiğinizden emin olun. Bir değişkeni tanımladıktan sonra, programlama için kullanabileceğiniz değişkenle ilgili bazı bloklar gösterilecektir:
Ekran Alıntısı.JPG

Programın başında değişkenlere başlangıç değeri vermek iyi bir uygulama olarak kabul edilir. Programıma, mavi açık ve yeşil ve kırmızı kapalı durumda başlamak istiyorum. LED'lere maksimum 100 değerini vereceğim:
Ekran Alıntısı.JPG


Ve şimdi LED'leri bu değişkenlerin değerlerine ayarlamak istiyorum:
Ekran Alıntısı.JPG


Şimdi mavi ayarını sıfıra kadar tek tek azaltmak istiyorum. Aynı zamanda, yeşil ayarını 100'e çıkana kadar artırmak istiyorum. Bu adımı 100 kez tekrarlamam gerekecek:
Ekran Alıntısı.JPG


Meydan okuma:

1- LED'leri renk çarkındaki renkler arasında geçişe devam edecek şekilde programı tamamlayabilir misiniz?
2- Işığı ölçen bir program yazabilir misiniz? Hangi LED ayarları en karanlık ölçüm değerini verdi? Bu programı yazarken karşılaştığınız sorunları yazın. Problemleri nasıl çözdün?

Hayallerinizi İnşa Edin!
 
Yerleşik Düğme ve Zamanlayıcı
Bu derste, yerleşik butonu ve zamanlayıcıyı tanıtmak istiyorum. Yerleşik düğme, mBlock'ta 2 ilgili programlama bloğuna sahiptir. İlki bir başlık bloğu:
Ekran Alıntısı.JPG

Bu, çalıştırılacak bazı kodlar için tetikleyici olarak kullanılabilir.
NOT: bu blok sadece programları mBlock ortamından çalıştırırken kullanılabilir.

İkinci blok bir ikili karar bloğudur. ikili karar bloğu, koşullu (“Eğer” gibi) kullanılabilen ve doğru ya da yanlış olarak değer döndüren bir bloktur:
Ekran Alıntısı.JPG

Her iki bloğun açılır menüleri “basılı” veya “serbest bırakıldı”.

MBlock'da iki zamanlayıcı vardır - biri mBlock ortamında çalışır, diğeri ise robot panosu üzerinde çalışır. Bu nedenle, hangi zamanlayıcıyı kullanacağınız, programı çalıştırmak istediğiniz yere bağlıdır. MBlock ortam zamanlayıcı blokları “Algılama” komut dosyalarında bulunabilir:
Ekran Alıntısı.JPG

Robot zamanlayıcı blokları “Robotlar” betiğinde bulunabilir. Süre ölçeri sıfıra ayarlamak için “süre ölçeri sıfırla” bloğunu kullanabiliriz:
Süre ölçeri sıfırlandıktan hemen sonra saymaya başlayacaktır. Bu bloğu kullanarak süre ölçeri sıfırladığınızdan sonra ne kadar zaman geçtiğine daha sonra süre ölçer bloğuyla erişebilirsiniz:
Bu basit programda, yerleşik düğmeye basıldığında zamanlayıcıyı sıfırlar ve zamanlayıcı 10 saniyeyi geçinceye kadar devam eden döngü çalıştırılır.
Ekran Alıntısı.JPG

Bu örnekte, robotun 10 saniye 100 hızla ilerleyeceği yönündedir. “Neden sadece 100 hızında motorları açmıyorsun, 10 saniye bekledikten sonra da kapatmıyorsun?” Diye düşünüyor olabilirsiniz. Haklısınız bu durumda, aynı etkiye sahip olacaktır. Fakat değişken bir hıza sahip olmak istiyorsanız bu kodu kullanmanız yerinde olacaktır.

Meydan okuma:

1- LED'leri açan ve daha sonra birisinin yerleşik düğmeye basana kadar geçen süreyi mBlock ortamında görüntüleyen bir program yazabilir misiniz?
2- Boşluk çubuğuna 5 saniyede kaç kez basıldığını sayan ve bu sayıyı mBlock ortamında görüntüleyen bir program yazabilir misiniz?
3- MBot'un değişken hızlarda 10 saniye boyunca hareket ettiği bir program yazabilir misiniz?

Hayallerinizi İnşa Edin!
 
Çizgi Sayma
Çizgi takip sensörü genellikle bir çizgiyi takip etmek için kullanılır, ancak bu derste bunun yerine çizgileri saymada nasıl kullanılabileceğini öğreneceğiz. Saydığımız çizgileri hafızada tutan bir değişkene ihtiyacımız olacak. Programda başka nelere ihtiyacımız var? Devam etmeden önce bazı taslak bir kod yazın.
Bir değişken tanımla.
İleri git
Döngü:
---- Bir çizgi görürsek
---- ---- Değişkenin değerini bir arttır.
Döngü sonu

Bu programın sonunda, mBot'un geçtiği çizgi sayısı değişkende tutulmalıdır. Bunu mBlock koduyla yazabiliriz. 10 saniye boyunca ilerlemeye ve çizgi saymaya karar verdim:
Ekran Alıntısı.JPG

Şu anda bu kodla ilgili 2 sorun var. İlki, çizgiSayisi değişkenini okumak için bir yol olmadığıdır. Meydan okumaları okuyun ve ikinci problemi çözüp çözemediğinizi görün.

Meydan okuma:
1- Değişkenin değerini görebilmek için bir yol ekleyin.
2- Bu kodla kaydedilen değişkenin değeri doğru olmayacaktır. Nedenini anlayabiliyor musun? Ve bu nasıl düzeltilir?

Hayallerinizi İnşa Edin!
 
Varsayılan Programın İşlevlerle Yazılması (Bloklar)
Bir programın farklı bölümleri genellikle farklı şeyler yapar. Bir program, her bir bölümün belirli bir işlevi yerine getirmesiyle ayrı bölümlere ayrılabilir. Ana programdan, bu fonksiyonlar “çağrılabilir” veya çalıştırılabilir. Bu, kodu daha okunaklı hale getirir.

MBlock'da, “Veri ve Bloklar” betiğinde “Blok Oluştur” u tıklayarak bir işlev (veya blok) oluştururuz:
Ekran Alıntısı.JPG


Sonra bloğun ne yaptığını temsil eden bir ad seçin:
Ekran Alıntısı.JPG

Ve sonra blok tanımlanır ve kullanıma hazırdır.

Bu yüzden bu derste varsayılan programı yeniden oluşturmak istiyorum. Yine de tam bir kopya değil, varsayılan programa yakın bir yaklaşım olacaktır. İlk olarak, robot bip sesi ve ışıkla başlar:
Bunu kendi tanımladığım başlangıç bloğuna koyacağım ve mBot programından çağıracağım:
Ekran Alıntısı.JPG


Bu, tam olarak set LED komutları ve çalma tonu komutlarının doğrudan mBot programından çağrıldığı gibi çalışır. Böyle olsa bile kodun okunması çok daha kolay. Sonra, uzaktan kumanda bölümün kodunu yazmak istiyorum. Yine, bu kodu kendi bloğuma yazacağım:
Ekran Alıntısı.JPG


Daha sonra davranışı izleyen bir satır ve nesne kaçınma davranışı için benzer bloklar yazalım. Şimdi, bu davranışları ana programıma yazmam gerekiyor. Gördüğünüz gibi, son program çok basit görünüyor:
Ekran Alıntısı.JPG


Meydan okuma:

1- Nesne Algılama ve Çizgi Takip fonksiyonlarını yazıp programa ekleyebilir misiniz?
2- Bazen düğmeye basıldığında, bir veya 2 mod atlıyor. Bu hatayı düzeltebilir misin?
3- Varsayılan Programa ne kadar yakınsınız?
 
Fonksiyonlar ve Parametrelerle Engel Algılama
Fonksiyonlar, kodunuzu kolay okunur ve iyi organize edilmiş kılmak için kullanışlı bir özelliktir. Fonksiyonların gerçek gücü parametreler ile birlikte geliyor. Bu derste, bu gücü fonksiyon ve parametreleri kullanarak nesne kaçınma programını yeniden yazarak keşfedeceğiz.

Bu, orijinal nesne algılama kodudur:
Ekran Alıntısı.JPG


Şimdi bu kodu yeni bir fonksiyona koyacağım (Yeni Blok):
Ekran Alıntısı.JPG

Fonksiyonu yukarıdaki resmin altındaki NesneAlgilama bloğu ile çağırabilirim. Fakat 100 motor hızı yerine 150, 200 veya 255 hızında olmasını istiyorum. Bunu, parametre kullanarak yapabilirim. Bir parametre, fonksiyona bir değerin iletilmesini sağlar.

MBlock'ta fonksiyona bir parametre göndermek isteğimizde , fonksiyonu oluşturduğunuz anda veya fonksiyonu oluşturduktan sonra fonksiyon bloğunun herhangi bir yerine sağ tıklayıp "düzenle" yi seçin:
Adsız.png


Ardından ‘Seçenekler’e gidin:
Adsız.png


Parametre ekleyebileceğiniz yer burasıdır. Bir parametre eklediğinizde, parametre türünü belirtmeniz gerekir: rakamsal girdi, sözel girdi veya mantıksal girdi. Rakamsal girdi sadece sayısal bir değer içindir, bir sözel girdi sayı veya harf olabilir ve mantıksal girdinin değeri ya doğru ya da yanlıştır. Benim örneğimde, fonksiyonumun robotumu farklı motor hızlarında çalıştırmasını istiyorum. Motor hızları bir sayı olduğundan, 'Rakamsal girdi ekle' seçeneğini seçeceğim.
Adsız.png


Gördüğünüz gibi bu üst bloktaki yeni bir giriş (parametre) oluşturur. Bunu “number1” olarak adlandırır, ancak programımdaki hızı göstereceği için, adı “hiz” olarak değiştireceğim:
Adsız.png


Şimdi, tamam düğmesine bastığımda, fonksiyon tanım bloğunda hiz parametresine sahip:
Ekran Alıntısı.JPG


Bizim için kalan tek şey, motorların hızını belirlerken hız parametresini kullanmak. Bunu, hiz parametresini NesneAlgilama tanım bloğundan hızı belirlediğimiz yerlere sürükleyip bırakarak yapabiliriz. Son işlev şöyle görünür:
Ekran Alıntısı.JPG

Üsteki resimde NesneAgilama fonksiyonunun hiz parametresinin 125 değeri verilerek çağrıldığı görülmektedir.

Meydan Okuma:
1- Farklı hız değerlerinde geçiş yapın ve bu fonksiyonu eğlenceli hale getirin.
2- Dönüş yönünü kontrol eden başka bir parametre ekleyin - sola 0, sola 1, rastgele 2 gibi.
3- Fonksiyon ve parametreleri kullanan başka bir program yazın.
Hayallerinizi İnşa Edin!
 
mBot Kızılötesi İletişim
Gereksinimler:
2 veya daha fazla mCore kartı.

Giriş:
MCore kartı bir IR alıcısı ve bir IR vericisi ile donatılmıştır ve mBlock mesaj göndermek ve almak için kullanılabilen 2 bloğa sahiptir:
Ekran Alıntısı.JPG

Gönderici Robotu:
Bir robotun bir mesaj göndermesi gerekiyor. Mesajınızı "...... mesajını mBota gönder” bloğuna yazmalısınız. Mesajda değişken gönderemezsiniz ve alıcı robot mesajı diğer fonksiyonlara giriş yapmak için kullanamaz, bu nedenle uzun mesajlar yazmanın bir anlamı yoktur. Harfleri kullanmak işimizi görecektir:
Ekran Alıntısı.JPG

Bu blokların döngüler halinde olması gerekir; böylece mesajın gönderilmesi ve alınması aynı anda gerçekleşir. Ancak, mBot’un mesajını sürekli olarak gönderirseniz, bir süre sonra dinleneceğini unutmayın. Bunu önlemek için, her 50 gönderimde kısa bir bekleme komutu vermeniz önerilir. LED komutları eklemek, mesajların ne zaman gönderilip ne zaman gönderilmediğini anlamamızı sağlar:
Ekran Alıntısı.JPG


Alıcı Robot
Diğer robotun mesajı alması için dinlemesi gerekiyor. Mesajı almak için “olana kadar bekle” bloğunu kullanın. Ayrıca koşul ifadesinde çift tırnak eklemeniz gerekir.
Ekran Alıntısı.JPG

Çift tırnak işareti kullanmazsanız, program başarıyla derlenmeyecektir. Mesaj alındıktan sonra, bu mesajın tetiklediği eylemi gerçekleştirebilirsiniz. Bu örnekte, LED yeşile dönecek ve 0,5 saniye bekleyecektir:
Ekran Alıntısı.JPG

Gönderen robottan birden fazla mesaj gönderirseniz, alınan mesaj boş bırakılana kadar beklemeli ve ardından gönderilen her olası mesajı test etmelisiniz. Bu örnekte, programın mesaj boş kalana kadar beklediği, sonra “a”nın LED'leri yeşile ve “b”nin LED'leri maviye çevirdiği görülür:
Ekran Alıntısı.JPG


Meydan okuma:
1- 2 program yazın, gönderici robot rastgele bir mesaj göndersin ve alıcı robot, aldığı mesaja bağlı olarak LED'i kırmızı veya yeşil yaksın.
2- Gönderici robotun ultrasonik sensörünün algıladığı mesafe hakkında bilgi gönderdiği ve alıcı robotun LED'leri buna göre yaktığı 2 program yazın
3- Gönderici robotun ultrasonik sensörünün algıladığı mesafe hakkında bilgi gönderdiği ve alıcı robotun mesafesini buna göre ayarladığı 2 program yazın.
4- Çizgi takip eden 2 robotu olan bir program yazın. İlk robotun, bir engel algıladığında durmasını sağlayan ve ikinci robota da durmasını söyleyen ultrasonik bir sensörü var.

Hayallerinizi İnşa Edin!
 
Seri İletişim

Giriş: Bir program mBot'a yüklendiğinde mBot ile seri olarak iletişim kurmak mümkündür. Seri iletişim USB, 2.4GHz veya Bluetooth ile yapılabilir. Seri olarak iletişim kurmak için Uzantılar menüsünden “Communication” uzantısını seçmeniz gerekir:
Adsız.png

Bu seçildikten sonra, “Robotlar” betiğine gidildiğinde, aşağıda iletişim bloklarını bulacaksınız. “Uzantıyı Göster” i tıklamanız gerekebilir:
Adsız.png

İletişim blokları şuna benzer:
Ekran Alıntısı.JPG

Robotunuzla bilgisayarınız arasında iletişim, mBlock programlama ortamının sağ tarafındaki pencerede gerçekleşir:
Ekran Alıntısı.JPG


Programlama: Sensörlerin mevcut değeri bu iletişim üzerinden görüntülenebilir. Mevcut değeri görüntülemek için “.......satırını yaz” bloğunu kullanın:
“Merhaba” girişini ultrasonik sensör değeri ile değiştirin ve sürekli tekrarlayın:
Ekran Alıntısı.JPG

Bu dosyayı çalıştırdığımda aşağıdaki çıktıyı aldım:
Write-feedback.png


Robotunuz ayrıca giriş satırından okunarak da kontrol edilebilir. İlk önce verilerin uygun olup olmadığını kontrol edin:
Ekran Alıntısı.JPG

Eğer öyleyse, bununla satırı okuyun:
Ekran Alıntısı.JPG

Ve bununla karşılaştırın:
Ekran Alıntısı.JPG

Sonunda, robotunuzu isteklerinize göre davranacak şekilde programlayın. Bu programda, “r” girişi LED'leri kırmızı yakacak, “o” girişi de kapatacaktır:
Ekran Alıntısı.JPG

Ardından, giriş alanında ışıkları kırmızı yaktım, kapattım ve tekrar kırmızı yaktım:
turn-LEDs-on-and-off.png

Meydan okuma:

Seri haberleşme ile motorları kontrol eden bir program yazın.

Hayallerinizi İnşa Edin!
 
Geri
Üst