Bilgisayar-Bilişim Teknolojileri
Ana Sayfa
Bilişim Teknolojileri Forumu Son Konuları
24 Saat
Bilişim Teknolojileri - Formatör - Bilgisayar Öğretmeni Kayıt
Kayıt Olun
iletişim
iletişim
Detaylı Arama
Arama

mBot Eğitim Bölüm1

Konu, 'Robotik' kısmında viper8 tarafından paylaşıldı.


Sayfayı Paylaş /bbnetsosyal

  1. viper8

    viper8 Aktif Üye

    Kayıt:
    16 Şubat 2010
    Mesajlar:
    233
    Beğeni:
    127
  2. viper8

    viper8 Aktif Üye

    Kayıt:
    16 Şubat 2010
    Mesajlar:
    233
    Beğeni:
    127
    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!
     
    mas1961 ve lombardini bunu beğendi.
  3. viper8

    viper8 Aktif Üye

    Kayıt:
    16 Şubat 2010
    Mesajlar:
    233
    Beğeni:
    127
    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:
    [​IMG]
    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:
    [​IMG] [​IMG] [​IMG] [​IMG]
    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
     
    lombardini bunu beğendi.
  4. viper8

    viper8 Aktif Üye

    Kayıt:
    16 Şubat 2010
    Mesajlar:
    233
    Beğeni:
    127
    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:
    [​IMG]
    Mac:
    [​IMG]
    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:
    [​IMG]
    Mac:
    Sisteminizin Bluetooth menüsünde “Makeblock” ile eşleştirin ve bağlanın. Ardından robotunuzu Seri Port menüsünde bulun.
     
    lombardini bunu beğendi.
  5. sonix

    sonix Aktif Üye

    Kayıt:
    12 Nisan 2014
    Mesajlar:
    236
    Beğeni:
    13
    çok güzel emeğinize sağlık hocam...
     
    viper8 bunu beğendi.
  6. viper8

    viper8 Aktif Üye

    Kayıt:
    16 Şubat 2010
    Mesajlar:
    233
    Beğeni:
    127
    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!
     
    lombardini bunu beğendi.
  7. viper8

    viper8 Aktif Üye

    Kayıt:
    16 Şubat 2010
    Mesajlar:
    233
    Beğeni:
    127
    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:
    [​IMG]
    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!
     
  8. viper8

    viper8 Aktif Üye

    Kayıt:
    16 Şubat 2010
    Mesajlar:
    233
    Beğeni:
    127
    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!
     
    caylakcekirge ve muallim0606 bunu beğendi.
  9. akrep4531

    akrep4531 Aktif Üye

    Kayıt:
    11 Mart 2008
    Mesajlar:
    166
    Beğeni:
    7
    eyv hocam
     
    viper8 bunu beğendi.
  10. caylakcekirge

    caylakcekirge Süper Üye Süper Üye

    Kayıt:
    4 Temmuz 2007
    Mesajlar:
    2.378
    Beğeni:
    24
    Hocam emeğine sağlık
     
    viper8 bunu beğendi.
  11. viper8

    viper8 Aktif Üye

    Kayıt:
    16 Şubat 2010
    Mesajlar:
    233
    Beğeni:
    127
    Ç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!
     
  12. viper8

    viper8 Aktif Üye

    Kayıt:
    16 Şubat 2010
    Mesajlar:
    233
    Beğeni:
    127
    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!
     
  13. viper8

    viper8 Aktif Üye

    Kayıt:
    16 Şubat 2010
    Mesajlar:
    233
    Beğeni:
    127
    Ş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!
     
    mas1961 bunu beğendi.
  14. viper8

    viper8 Aktif Üye

    Kayıt:
    16 Şubat 2010
    Mesajlar:
    233
    Beğeni:
    127
    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!
     
    fatisah bunu beğendi.
  15. viper8

    viper8 Aktif Üye

    Kayıt:
    16 Şubat 2010
    Mesajlar:
    233
    Beğeni:
    127
    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!
     
  16. viper8

    viper8 Aktif Üye

    Kayıt:
    16 Şubat 2010
    Mesajlar:
    233
    Beğeni:
    127
    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.

    [​IMG]
    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!
     
  17. viper8

    viper8 Aktif Üye

    Kayıt:
    16 Şubat 2010
    Mesajlar:
    233
    Beğeni:
    127
    Çizgi Takip Sensörü
    [​IMG]
    Ç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:
    [​IMG]
    Karanlık bir yüzey, alıcıya az miktarda kızılötesi ışığı yansıtır:
    [​IMG]
    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!
     
  18. viper8

    viper8 Aktif Üye

    Kayıt:
    16 Şubat 2010
    Mesajlar:
    233
    Beğeni:
    127
    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!
     
  19. H_M

    H_M Süper Üye Süper Üye Seçkin Üye

    Kayıt:
    4 Ağustos 2013
    Mesajlar:
    1.007
    Beğeni:
    54
    Hocam ellerinize sağlık harika bir çalışma:)
     
    viper8 bunu beğendi.
  20. viper8

    viper8 Aktif Üye

    Kayıt:
    16 Şubat 2010
    Mesajlar:
    233
    Beğeni:
    127
    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:
    [​IMG]

    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!
     

Sayfayı Paylaş /bbnetsosyal